RPG

Deterministic, multi-world embodied AI simulation engine with physics, persistence, and rule-based action validation.
  • typescript

3

GitHub Stars

typescript

Language

6 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "mnehmos-rpg-mcp": {
      "command": "path/to/rpg-mcp-win.exe",
      "args": []
    }
  }
}

RPG-MCP is a deterministic, schema-driven world kernel that lets embodied AI agents inhabit a simulated reality with real bodies, constraints, and consequences. It provides the physics, persistence, and execution layer you need to run multi-world, agent-based simulations where LLMs propose intentions and the engine validates and executes them in a safe, reproducible manner.

How to use

You will run RPG-MCP as an MCP server and connect with an MCP client. You can operate multiple worlds, manage embodied entities, and drive simulations by issuing high-level intents (move, attack, cast spell, interact). The engine validates every action against physics and rules, ensuring actions are tool-mediated and deterministic across runs. Use the client to configure worlds, create characters, manage inventories, and observe world state through structured feedback from the server.

Typical usage patterns include: creating a world, spawning characters, advancing the world in fixed steps, and issuing intents for each agent. You can fork worlds for branching timelines, track combat with initiative and death saves, and leverage systems like spellcasting, theft, corpse looting, NPC memory, and an improvisation engine to craft dynamic scenarios. All actions flow through MCP tools, with results observable in full audit logs and world state snapshots.

How to install

Prerequisites: you need Node.js for source builds or you can use stand-alone binaries. Ensure you have a supported shell (bash/zsh on macOS/Linux, PowerShell or CMD on Windows). You also need npm to install dependencies when building from source.

Option 1: Stand-alone binaries (recommended). Download the pre-built binary for your platform and run it directly.

Windows: download the Windows binary and run it with the executable name. The binary is self-contained and does not require Node.js.

macOS: download the macOS binary, make it executable, and run it.

Linux: download the Linux binary, make it executable, and run it.

Option 2: From source. This builds a local MCP server you can run and develop against.

Clone the repository and install dependencies, then build and test.

Commands to run:

git clone https://github.com/Mnehmos/rpg-mcp.git
cd rpg-mcp
npm install
npm run build
npm test

MCP client configuration samples

Configure your MCP client to connect to RPG-MCP using either a prebuilt binary or a local source runtime. Two explicit configurations are shown below.

{
  "mcpServers": {
    "rpg_mcp": {
      "command": "path/to/rpg-mcp-win.exe"
    }
  }
}

For running from source with Node.js, use the following configuration.

{
  "mcpServers": {
    "rpg_mcp": {
      "command": "node",
      "args": [ "path/to/rpg-mcp/src/dist/index.js"]
    }
  }
}

Available tools

create_world

Create a new world within a project, establishing a unique worldId and baseline environment.

get_world

Retrieve the state or metadata for a specific world by its ID.

list_worlds

List all worlds under the current project, with IDs and high-level stats.

delete_world

Delete a world and cascade its related data to keep the namespace clean.

generate_world

Procedurally generate a world using Perlin noise or other terrain generation techniques.

get_world_state

Dump the full state of a world for inspection or replay.

get_world_map_overview

Provide a summary of biome distribution and key region statistics.

get_world_tiles

Return the full grid of tiles for a world or region.

get_region_map

Detail a single region within a world, including terrain and points of interest.

apply_map_patch

Apply a domain-specific patch to the world map using a DSL for modifications.

preview_map_patch

Dry-run a map patch to preview changes before applying them.

update_world_environment

Adjust time, weather, and seasonal parameters for a world.

find_valid_poi_location

Terrain-aware placement of points of interest within a region.

suggest_poi_locations

Suggest multiple valid POI locations based on terrain and gameplay goals.

create_character

Create a full D&D-style stat block for a character, including inventories and traits.

get_character

Retrieve character data by ID.

update_character

Update any field on a character block.

list_characters

List all characters in the repository or a specific world.

delete_character

Remove a character from the world or database.

create_item_template

Define item types and templates for in-world objects.

get_item

Get an item template by ID.

list_items

List all item templates.

search_items

Query item templates by name, type, or value.

update_item

Modify an item template.

delete_item

Remove an item template.

give_item

Add an item to a character's inventory.

remove_item

Remove an item from a character's inventory.

transfer_item

Move an item between characters.

use_item

Consume or activate an item.

equip_item

Equip an item into an equipment slot.

unequip_item

Unequip an item back to the character's inventory.

get_inventory

Fetch a basic inventory list for a character.

get_inventory_detailed

Get full item details from a character's inventory.

transfer_currency

Move currency between characters with automatic conversion rules.

create_encounter

Initialize a combat encounter with participants.

get_encounter_state

Check current combat state and HP standings.

load_encounter

Resume a saved combat encounter.

end_encounter

End combat and sync health/damage states.

execute_combat_action

Execute a combat action such as attack, heal, move, or cast spell.

advance_turn

Proceed to the next action in initiative order.

roll_death_save

Roll a D&D 5e death save for a participant.

execute_lair_action

Trigger a legendary creature lair action during encounters.

cast_spell

Cast a known spell with slot consumption and validation.

take_long_rest

Restore all HP and spell slots after a long rest.

take_short_rest

Heal and recover minor resources during a short rest.

steal_item

Record theft with heat tracking and witness data.

check_item_stolen

Check if a given item is currently marked as stolen.

check_stolen_items_on_character

List all stolen items held by a character.

check_item_recognition

NPCs recognize stolen items and react accordingly.

sell_to_fence

Sell stolen goods to fences with pricing and heat considerations.

register_fence

Register an NPC as a fence with buy rates and heat capacity.

report_theft

Report theft to authorities and apply bounty tracking.

advance_heat_decay

Process heat decay over time for theft-related items.

get_fence

Retrieve fence details and reputation.

list_fences

List all fences available in the world.

create_corpse

Create a corpse entity when a creature dies.

get_corpse

Retrieve a corpse by ID.

get_corpse_by_character

Find the corpse associated with a character.

get_corpse_inventory

Inspect items on a corpse.

list_corpses_in_encounter

Show corpses present in a combat encounter.

list_corpses_nearby

Find corpses near a given position.

loot_corpse

Loot a corpse for items.

harvest_corpse

Harvest resources from a corpse.

generate_loot

Generate loot based on a loot table.

create_loot_table

Define a custom loot table.

get_loot_table

Retrieve a loot table by ID.

list_loot_tables

List all loot tables in the system.

advance_corpse_decay

Progress decay state for corpses.

cleanup_corpses

Remove decayed corpses from the world.

get_npc_relationship

Fetch relationship status between characters and NPCs.

update_npc_relationship

Create or modify relationship data.

record_conversation_memory

Store a summary of conversations with NPCs.

get_conversation_history

Retrieve memories of conversations with an NPC.

get_recent_interactions

Show recent interactions across NPCs.

get_npc_context

Provide full context for LLM prompt injection.

interact_socially

Phase-2: conduct spatially aware social interactions.

resolve_improvised_stunt

Resolve Rule of Cool stunts with outcomes.

apply_custom_effect

Apply boons, curses, or transformations to entities.

get_custom_effects

List active improvised effects.

remove_custom_effect

Remove an active effect.

process_effect_triggers

Fire triggers when effects reach conditions.

advance_effect_durations

Tick durations for active effects.

attempt_arcane_synthesis

Attempt dynamic spell creation with synthesis.

get_synthesized_spells

List mastered or synthesized spells.

create_quest

Define a quest with objectives and rewards.

get_quest

Retrieve a single quest by ID.

list_quests

List all quests in the world or campaign.

assign_quest

Assign a quest to a character.

update_objective

Increment progress on a quest objective.

complete_objective

Mark an objective as completed.

complete_quest

Mark an entire quest as complete.

get_quest_log

Fetch the full quest log for a character or party.

create_secret

Create hidden information with reveal conditions.

get_secret

Present DM-only view of a secret.

list_secrets

List all secrets for the current world.

update_secret

Modify secret properties.

delete_secret

Remove a secret from the world.

reveal_secret

Show a secret to players when conditions are met.

check_reveal_conditions

Test if secret reveal conditions are satisfied.

get_secrets_for_context

Format secrets for LLM prompt context.

check_for_leaks

Scan text for accidental secret disclosures.

create_party

Create an adventuring party block.

get_party

Retrieve party details by ID.

list_parties

List all parties in the current world.

update_party

Modify party properties.

delete_party

Remove a party from the world.

add_party_member

Add a character to a party.

remove_party_member

Remove a character from a party.

update_party_member

Change a party member's role or status.

set_party_leader

Set the party leader.

set_active_character

Define the active character for prompts.

get_party_members

Fetch party members with full details.

get_party_context

Get a summary of the party for LLM prompts.

get_unassigned_characters

List characters not currently in a party.

move_party

Move an entire party across the world map.

get_party_position

Show the current party location.

get_parties_in_region

List parties located in a specific region.

look_at_surroundings

Observe current location details.

generate_room_node

Create a room node in the dungeon network.

get_room_exits

List exits from the current room.

move_character_to_room

Move a character between rooms.

dice_roll

Roll dice with full D&D notation (e.g., 2d6+3, 4d6dl1, adv).

probability_calculate

Calculate odds for events or actions.

algebra_solve

Solve algebraic equations.

algebra_simplify

Simplify algebraic expressions.

physics_projectile

Compute projectile trajectories for physics tests.

create_nation

Create a grand strategy nation with resources and headers.

get_nation_state

Retrieve private nation state data.

get_strategy_state

View the world with fog of war and strategic context.

propose_alliance

Suggest diplomatic actions like alliances.

claim_region

Make territorial claims in the world map.

init_turn_state

Initialize turn-based state for strategy play.

get_turn_status

Check readiness of nations for turns.

submit_turn_actions

Submit batch actions for a turn.

mark_ready

Signal that a nation is ready for the turn.

resolve_turn

Process all actions for a turn.

poll_turn_results

Get resolution results for turn actions.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
RPG MCP Server - mnehmos/rpg-mcp | VeilStrat