add_event
Add an event to the adventure log.
Run a D&D 5e campaign from a chat window — characters, NPCs, locations, quests, combat, session notes and an adventure log, all saved between sessions.
LABSCO SUMMARY
A model can already narrate a dungeon; what it cannot do is remember, three sessions later, how much gold the party has and which NPC owes them a favour. Putting characters, quests, game state and an event log behind tools means those facts survive the conversation and can be queried rather than recalled. The bulk character update is the small thing that makes combat workable — applying damage to the whole party is one call, not five.
A FastMCP server that gives a Dungeon Master — or a solo player — structured storage for a campaign. Everything hangs off one active campaign: character sheets with 5e stats, NPCs, locations, quests, combat encounters, session notes and a searchable event log, persisted to disk so a game picks up where it stopped.
create_campaign, get_campaign_info, list_campaigns, load_campaigncreate_character, get_character, update_character, bulk_update_characters, add_item_to_character, list_characterscreate_npc, get_npc, list_npcs, create_location, get_location, list_locationscreate_quest, update_quest, list_questsstart_combat, next_turn, end_combatget_game_state, update_game_stateadd_session_note, get_sessions, add_event, get_events1d20 or 3d6+2, and experience distributed across an encounter — roll_dice, calculate_experienceNo account and no key — campaign data is stored locally. Python 3.12+ and uv on your PATH. The package is gamemaster-mcp (version 0.1.0), installed from a clone with uv pip install . and launched with uv run gamemaster-mcp; the client config needs the project directory as its working directory. The README supplies a system prompt for the assistant — paste it in, because it is what tells the model to keep the campaign state updated rather than only answering questions. The project describes itself as under construction.
Build from source — git clone https://github.com/study-flamingo/gamemaster-mcp.git
USE CASES
Create the campaign, build each player character with race, class and ability scores, place the opening location and the first NPC, then log the first quest.
Set the initiative order, walk the turns, apply damage across the party in one call, and close the encounter when it ends.
Read the game state and the last session's notes to recover where the party is, what they were chasing and what they were carrying.
Log events as they happen with types and importance, then search the adventure log later for the NPC or the promise you half-remember.
Let the model run the world from stored state — rolling dice, tracking quests and updating your sheet — rather than holding the campaign in its head.
Record the notes and attendance, calculate and distribute the experience, and update the party's funds and location.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
add_eventAdd an event to the adventure log.
add_item_to_characterAdd an item to a character's inventory.
add_session_noteAdd notes for a game session.
bulk_update_charactersUpdate properties for multiple characters at once by a given amount.
calculate_experienceCalculate experience points for an encounter.
create_campaignCreate a new D&D campaign.
create_characterCreate a new player character.
create_locationCreate a new location.
create_npcCreate a new NPC.
create_questCreate a new quest.
end_combatEnd the current combat encounter.
get_campaign_infoGet information about the current campaign.
get_characterGet detailed character information.
get_eventsGet events from the adventure log.
get_game_stateGet the current game state.
get_locationGet location information.
get_npcGet NPC information.
get_sessionsGet all session notes.
list_campaignsList all available campaigns.
list_charactersList all characters in the current campaign.
list_locationsList all locations in the current campaign.
list_npcsList all NPCs in the current campaign.
list_questsList quests, optionally filtered by status.
load_campaignLoad a specific campaign.
next_turnAdvance to the next turn in combat.
roll_diceRoll dice with D&D notation.
start_combatStart a combat encounter.
update_characterUpdate a character's properties.
update_game_stateUpdate the current game state.
update_questUpdate quest status or complete objectives.
BEFORE YOU INSTALL
30 tools when we connected.
Python 3.12+
The documented client runs the server on your machine.
CONTEXT COST
Rated by the size of the 30 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
This one is built from source rather than installed with a single command.
git clone https://github.com/study-flamingo/gamemaster-mcp.git
cd gamemaster-mcp
uv venv
uv pip install .{
"mcpServers": {
"gamemaster-mcp": {
"command": "uv",
"args": [
"run",
"gamemaster-mcp"
],
"cwd": "<YOUR_PATH_TO_GAMEMASTER_MCP>"
}
}
}