44[ ![ License: ISC] ( https://img.shields.io/badge/license-ISC-blue.svg )] ( LICENSE )
55[ ![ TypeScript] ( https://img.shields.io/badge/TypeScript-5.0+-blue.svg )] ( )
66[ ![ MCP] ( https://img.shields.io/badge/MCP-Compatible-green.svg )] ( )
7- [ ![ Tests] ( https://img.shields.io/badge/tests-2080%2B %20passing-brightgreen.svg )] ( )
8- [ ![ Tools] ( https://img.shields.io/badge/MCP%20tools-28 -blue.svg )] ( )
7+ [ ![ Tests] ( https://img.shields.io/badge/tests-1889 %20passing-brightgreen.svg )] ( )
8+ [ ![ Tools] ( https://img.shields.io/badge/MCP%20tools-32 -blue.svg )] ( )
99
1010** A rules-enforced RPG backend that turns any LLM into a game master who can't cheat.**
1111
@@ -46,9 +46,9 @@ You talk to an AI (Claude, GPT, etc.) in natural language. You say things like "
4646
4747## v1.0 Release (January 2026)
4848
49- ### 85% Tool Reduction: 195 → 28 Consolidated Tools
49+ ### 85% Tool Reduction: 195 → 32 Tools ( 28 Consolidated + 4 Meta/Event)
5050
51- This release consolidates 195 individual tools into ** 28 action-based tools** using:
51+ This release consolidates 195 individual tools into ** 28 action-based tools** plus 4 standalone meta/event tools using:
5252
5353- ** Action enums** - Each tool handles multiple operations via an ` action ` parameter
5454- ** Fuzzy matching** - Typo-tolerant action matching with suggestions
@@ -61,18 +61,20 @@ This release consolidates 195 individual tools into **28 action-based tools** us
6161
6262| Metric | Before | After | Change |
6363| --------| --------| -------| --------|
64- | MCP Tools | 195 | 28 | ** 85 .6% reduction** |
65- | Tests | 1,242 | 2,080+ | +67 % coverage |
64+ | MCP Tools | 195 | 32 | ** 83 .6% reduction** |
65+ | Tests | 1,242 | 1,889 | +52 % coverage |
6666| Token overhead | ~ 50K | ~ 6-8K | ** 85% reduction** |
6767
6868### Meta-Tools for Discovery
6969
70- Two special tools help LLMs discover and use the consolidated tools :
70+ Four standalone tools support discovery and real-time events :
7171
7272| Tool | Purpose |
7373| ------| ---------|
7474| ` search_tools ` | Search tools by keyword, category, or capability |
7575| ` load_tool_schema ` | Load full parameter schema before first use |
76+ | ` subscribe_to_events ` | Subscribe to PubSub event topics (combat, quest, etc.) |
77+ | ` unsubscribe_from_events ` | Unsubscribe from event topics |
7678
7779---
7880
@@ -216,7 +218,7 @@ git clone https://github.com/Mnehmos/rpg-mcp.git
216218cd rpg-mcp
217219npm install
218220npm run build
219- npm test # 2080+ tests should pass
221+ npm test # 1889 tests should pass
220222```
221223
222224### MCP Client Configuration
@@ -311,13 +313,15 @@ src/
311313│ └── repos/ # Repository pattern for persistence
312314├── server/
313315│ ├── consolidated/ # 28 action-based tools
316+ │ ├── handlers/ # Extracted handler implementations (combat, spatial)
314317│ ├── consolidated-registry.ts # Tool registration
315- │ └── meta-tools.ts # search_tools, load_tool_schema
318+ │ ├── meta-tools.ts # search_tools, load_tool_schema
319+ │ └── events.ts # PubSub + MCP notification streaming
316320└── utils/
317321 ├── fuzzy-enum.ts # Action matching with typo tolerance
318322 └── schema-shorthand.ts # Token-efficient parsing
319323
320- tests/ # 2080+ tests mirroring src/ structure
324+ tests/ # 1889 tests mirroring src/ structure
321325docs/ # White paper and LLM spatial guide
322326```
323327
@@ -355,9 +359,9 @@ docs/ # White paper and LLM spatial guide
355359
356360``` bash
357361npm test
358- # 2080+ tests passing
362+ # 1889 tests passing, 6 skipped
359363# 85+ test files
360- # Coverage across all 28 consolidated tools
364+ # Coverage across all 32 tools ( 28 consolidated + 4 meta/event)
361365```
362366
363367---
@@ -381,7 +385,7 @@ Contributions welcome! Please:
381385- [x] Corpse and loot mechanics
382386- [x] NPC memory and relationships
383387- [x] Improvisation engine
384- - [x] Tool consolidation (195 → 28 )
388+ - [x] Tool consolidation (195 → 32 )
385389- [x] Fuzzy action matching
386390- [x] Preset systems (creatures, encounters, locations)
387391- [ ] WebSocket real-time subscriptions
0 commit comments