About Mnehmos.chatrpg.game
Mnehmos.chatrpg.game is an MCP server published by Mnehmos in the Communication category: mCP server: Mnehmos.chatrpg.game.
The repository has 2 stars and 2 forks, with the last commit 9 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/Mnehmos/mnehmos.chatrpg.gameThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (8)
create_characterFull D&D 5e character creation with auto-calculated stats
Parameters not published.
delete_characterRemove with cascade cleanup, batch support
Parameters not published.
get_characterRetrieve by ID/name, supports listing and filtering
Parameters not published.
level_upLevel progression with HP rolls, spell slots
Parameters not published.
manage_spell_slotsFull/half/third casters, warlock pact magic
Parameters not published.
roll_checkSkill checks, saves, attacks, initiative
Parameters not published.
take_restShort/long rest with hit dice and recovery
Parameters not published.
update_characterModify stats with before/after comparison
Parameters not published.
Ask AI
Ask AI about Mnehmos.chatrpg.game
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 17 hours ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
ChatRPG
D&D 5e MCP Server for AI Dungeon Masters
A Model Context Protocol (MCP) server providing 30+ D&D 5e tools for LLM-powered tabletop gaming. Features real-time combat tracking, character persistence, ASCII art rendering, and a web client interface.
Features
- 30+ D&D 5e Tools - Character creation, combat encounters, spell tracking, dice rolling
- ASCII Art Output - Retro-style box drawing for immersive terminal/chat display
- Dual Transport - stdio for Claude Desktop, SSE for web client
- Real-time Sync - WebSocket broadcasting for encounter updates
- Persistent Storage - Characters and encounters saved to AppData
- Web Client - Browser-based interface with typing indicators
Quick Start
1. Build & Run
npm install
npm run build
# Run with stdio (for Claude Desktop)
npm start
# Run with SSE (for web client, port 3001)
node dist/index.js --sse
2. Configure Claude Desktop
Add to your Claude Desktop config:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"chatrpg": {
"command": "node",
"args": ["C:\\path\\to\\ChatRPG\\dist\\index.js"]
}
}
}
3. Web Client
The web client connects to the SSE endpoint:
# Start server with SSE
node dist/index.js --sse
# Open web-client/index.html in browser
Available Tools
Character Management
| Tool | Description |
|---|---|
create_character |
Full D&D 5e character creation with auto-calculated stats |
get_character |
Retrieve by ID/name, supports listing and filtering |
update_character |
Modify stats with before/after comparison |
delete_character |
Remove with cascade cleanup, batch support |
level_up |
Level progression with HP rolls, spell slots |
take_rest |
Short/long rest with hit dice and recovery |
manage_spell_slots |
Full/half/third casters, warlock pact magic |
roll_check |
Skill checks, saves, attacks, initiative |
Combat System
| Tool | Description |
|---|---|
create_encounter |
Initialize combat with participants and terrain |
get_encounter |
Retrieve state with verbosity levels |
execute_action |
Attack, dash, dodge, disengage, grapple, shove, cast |
advance_turn |
Turn management with condition ticking |
end_encounter |
Close with outcome tracking |
roll_death_save |
D&D 5e death save mechanics |
manage_condition |
Apply/remove conditions with duration |
manage_encounter |
Composite operations with state sync |
render_battlefield |
ASCII tactical map |
modify_terrain |
Hazards, obstacles, difficult terrain |
Magic System
| Tool | Description |
|---|---|
manage_concentration |
Concentration checks and tracking |
manage_aura |
Spirit Guardians, Paladin auras, etc. |
use_scroll |
Spell scroll mechanics |
synthesize_spell |
Improvised magic with Arcana checks |
Spatial Mechanics
| Tool | Description |
|---|---|
measure_distance |
Grid-based distance (5e rules) |
calculate_aoe |
Sphere, cone, line, cube, cylinder |
check_line_of_sight |
Obstacle detection |
check_cover |
Half, three-quarters, full cover |
place_prop |
Interactive battlefield objects |
calculate_movement |
Pathfinding with terrain |
World & Session
| Tool | Description |
|---|---|
manage_location |
Location graph for navigation |
move_party |
Travel between locations |
manage_party |
Party composition and roles |
manage_inventory |
Item management and equipping |
manage_notes |
Session notes with tagging |
get_session_context |
Comprehensive state snapshot |
Dice
| Tool | Description |
|---|---|
roll_dice |
Standard notation, advantage/disadvantage, batch rolls |
Project Structure
ChatRPG/
├── src/
│ ├── index.ts # MCP server (stdio + SSE transports)
│ ├── registry.ts # Tool registration (30+ tools)
│ ├── types.ts # Shared Zod schemas
│ ├── fuzzy-enum.ts # Fuzzy enum matching
│ ├── websocket.ts # Real-time broadcasting
│ └── modules/
│ ├── ascii-art.ts # Box drawing, formatting
│ ├── characters.ts # Character CRUD, leveling
│ ├── combat.ts # Encounters, conditions, actions
│ ├── data.ts # Locations, party, inventory, notes
│ ├── dice.ts # Dice parsing and rolling
│ ├── magic.ts # Spells, concentration, auras
│ └── spatial.ts # Distance, AoE, movement
├── web-client/ # Browser-based interface
├── tests/ # Vitest test suites
├── dist/ # Compiled output
└── design docs/ # ADRs and documentation
Development
Commands
# Development with auto-rebuild
npm run dev
# Type check
npx tsc --noEmit
# Build
npm run build
# Run tests
npm test
# Run tests once
npm test -- --run
Adding a New Tool
- Define Zod schema in
src/modules/[module].ts - Write handler function
- Export schema from module
- Register in
src/registry.ts - Add tests in
tests/[module]/
Git Workflow
- main - Production-ready, auto-deploys to Railway
- development - Active development branch
Data Storage
Character and session data is stored in:
- Windows:
%APPDATA%\rpg-lite-mcp\ - macOS/Linux:
~/.config/rpg-lite-mcp/
rpg-lite-mcp/
├── characters/ # Character JSON files
├── encounters/ # Active encounter state
├── locations/ # Location graph
├── party/ # Party composition
└── notes/ # Session notes
Example Usage
Ask Claude:
"Create a level 5 halfling rogue named Finn with high dexterity"
Response:
╔═══════════════════════ CHARACTER SHEET ════════════════════════╗
║ Finn ║
║ PC - Halfling Rogue (Level 5) ║
║ ║
║ HP: [████████████████] 35/35 ║
║ ║
║ ────────────────────────────────────────────────────────────── ║
║ ║
║ AC │ Speed │ Initiative │ Prof Bonus ║
║ 15 │ 25 ft │ +4 │ +3 ║
╚════════════════════════════════════════════════════════════════╝
Other commands:
- "Roll 4d6 drop lowest for ability scores"
- "Start a combat encounter with 3 goblins"
- "Cast fireball centered at position 5,5"
- "Move the party to the tavern"
Deployment
The server is deployed on Railway and auto-deploys from the main branch.
SSE Endpoint: https://chatrpg-production.up.railway.app/
Troubleshooting
Server Won't Start
- Verify build:
npm run build - Check path in config is absolute
- Test manually:
node dist/index.js
Tool Calls Failing
- Rebuild:
npm run build - Run tests:
npm test -- --run - Check TypeScript:
npx tsc --noEmit
Encoding Issues
If ASCII art displays as garbled text (e.g., ââ€â‚¬ instead of ─), ensure:
- Source files are UTF-8 encoded
- Terminal/client supports Unicode
- No double-encoding in transport layer
Architecture
MCP Protocol
- Transports: stdio, SSE (Server-Sent Events)
- Format: JSON-RPC 2.0
- Capabilities: Tools (30+)
Design Principles
- ASCII Art First - All output uses box drawing for terminal aesthetics
- Zod Validation - Strict input schemas with fuzzy enum matching
- Stateful Persistence - JSON files in AppData
- D&D 5e Accurate - SRD-compliant mechanics
- Real-time Updates - WebSocket broadcasting for encounters
Contributing
This project follows TDD:
- Write failing tests
- Implement minimal code to pass
- Refactor
PRs must:
- Include tests
- Pass TypeScript strict mode
- Follow existing patterns
License
Proprietary - Personal, non-commercial use permitted. See LICENSE.
Credits
- @modelcontextprotocol/sdk - MCP TypeScript SDK
- Zod - Schema validation
- Vitest - Testing framework
- D&D 5e SRD (System Reference Document)
README fetched from the repository 17 hours ago. The original is authoritative.