dmcp (shawnrushefsky/dmcp) is an MCP server listed on the M8ven Trust Index. It scores 56 out of 100, grade D. It declares 204 tools. No publisher has claimed this listing.

D
Caution
56/100

dmcp

MCP server for AI dungeon masters in text-based RPGs

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

Code Verified⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

shawnrushefsky

Source: Glama · also listed on github_code

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
🚨
Known vulnerabilities in dependencies: 1 critical, 3 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
// tools this server exposes204 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

create_ability

Create an ability template or character-owned ability

get_ability

Get an ability by ID

update_ability

Update an ability's details

delete_ability

Delete an ability

list_abilities

List abilities with optional filters

learn_ability

Copy a template ability to a character

use_ability

Use an ability (checks cooldown, sets new cooldown)

tick_ability_cooldowns

Reduce all ability cooldowns (call at end of round)

check_ability_requirements

Check if a character meets an ability's requirements

store_audio

Store an audio file for an entity. Provide either a URL to fetch from or a local file path. Useful for TTS-generated narration, character dialogue, or voice reference clips for voice cloning.

get_audio

Get audio file metadata by ID

get_audio_file_path

Get the full local file path for an audio file. Useful when you need to pass the audio file to another tool (like TTS voice cloning).

get_audio_data

Get audio with base64 data included (for playback or processing)

list_entity_audio

List all audio files for an entity

list_game_audio

List all audio files in a game

list_voice_references

List voice reference clips for voice cloning. These are audio samples that can be used as reference audio for TTS engines that support voice cloning (like Chatterbox, XTTS, CosyVoice).

get_character_voice_references

Get all voice reference clips for a specific character, along with character info. Returns file paths ready to use with voice cloning TTS engines.

delete_audio

Delete a stored audio file (removes file and database record)

set_primary_audio

Set an audio file as the primary audio for its entity

update_audio_metadata

Update metadata for an audio file (label, description, voice reference info)

batch_create_npcs

Create multiple NPCs at once. Use this when populating a location with several characters. Returns all created characters.

setup_combat_encounter

Complete combat setup in one call: creates enemy NPCs and starts combat with all participants (enemies + players at location). Returns the ready-to-play combat state.

scene_transition

Complete scene transition in one call: moves specified characters to a new location and logs a narrative event. Perfect for moving between scenes.

get_character_context

Get comprehensive character context in one call: character details, inventory, and current location info. Reduces multiple tool calls to one.

get_location_context

Get comprehensive location context in one call: location details, present characters, and items here. Reduces multiple tool calls to one.

create_character

Create a new character (PC or NPC). IMPORTANT: Call this IMMEDIATELY when introducing any named NPC in narrative, BEFORE continuing the scene. Every named character mentioned in dialogue or description should exist in the database.

get_character

Get character details

update_character

Update character attributes, skills, status, or voice

list_characters

List characters in a game. Use verbosity to control response size: 'minimal' for quick lookups (id/name only), 'standard' for common fields, 'full' for all details.

move_character

Move a character to a different location

modify_health

Modify a character's health. Use mode 'damage' to reduce health, or 'heal' to restore health.

modify_conditions

Add and/or remove conditions from a character in a single call. More efficient than separate add/remove calls.

get_character_by_name

Look up a character by name within a game. Supports exact, partial, and fuzzy matching. Returns the best match or an error if no reasonable match found.

list_character_summaries

List characters with quick-identification summaries. Use this to help identify characters by appearance before looking up their full details. More efficient than loading full character data when you just need to identify who's who.

delete_character

Delete a character permanently. This is IRREVERSIBLE and will remove the character and all associated data.

roll

Roll dice using standard notation

check

Perform a skill or ability check

contest

Opposed check between two characters

start_combat

Initialize a combat encounter

get_combat

Get current combat state

get_active_combat

Get the active combat for a game

next_turn

Advance to the next combatant's turn

add_combat_log

Add an entry to the combat log

remove_combatant

Remove a character from combat (defeated, fled, etc.)

end_combat

End a combat encounter

get_game_menu

CALL THIS FIRST when player wants to play. Returns existing games (most recent first) or instructs to start new game if none exist.

create_game

Create a new game with a setting and style

load_game

Load an existing game by ID

list_games

List all saved games

get_game_state

Get full current state overview for a game

delete_game

Delete a game and all its data. This is IRREVERSIBLE and removes all characters, locations, quests, and history.

update_game

Update a game's name, setting, or style

set_game_title_image

Set or remove the title image for a game

set_game_favicon

Set or remove the favicon image for a game. This image will be displayed as the browser favicon when viewing this game in the web UI. Should be a square image (ideally 32x32 or larger).

get_interview_template

Get the full game setup interview template with all questions. Use this to guide players through game creation.

save_game_preferences

Save the player's game preferences after the interview

get_game_preferences

Get the saved game preferences for a game

list_image_generation_presets

List all image generation presets for a game. Presets allow different configurations for different use cases (character portraits, location art, items with text, etc.)

get_image_generation_preset

Get a specific image generation preset by ID, including full configuration details

get_default_image_preset

Get the default image generation preset for a game

create_image_generation_preset

Create a new image generation preset. Use different presets for different purposes: character portraits, location art, items with text, etc. Each preset can have its own tool, model, style, and workflow configuration.

update_image_generation_preset

Update an existing image generation preset. Only specified fields are updated; others are preserved.

delete_image_generation_preset

Delete an image generation preset. This is IRREVERSIBLE.

set_default_image_preset

Set which image generation preset should be used by default

set_rules

Store a rule system for the game

get_rules

Get the current rule system for a game

update_rules

Partially update the rule system

get_display_config

Get the current display configuration for the web viewer (colors, fonts, visibility options)

set_display_config

Set display configuration for the web viewer. Can set any subset of options.

reset_display_config

Reset display configuration to defaults

apply_theme_preset

Apply a predefined theme preset globally. Available presets include genre-specific themes with appropriate colors, fonts, and styles.

list_theme_presets

List all available theme presets with their colors and styles

get_game_theme

Get the display configuration for a specific game

set_game_theme

Set display configuration for a specific game. Each game can have its own visual theme.

apply_game_theme_preset

Apply a predefined theme preset to a specific game. This allows different games to have completely different visual themes.

reset_game_theme

Remove a game's custom theme, reverting to the global theme

auto_theme_game

Automatically apply an appropriate theme to a game based on its genre and setting. Call this when creating a new game to set up the visual style.

create_faction

Create a new faction/organization

get_faction

Get a faction by ID

update_faction

Update a faction's details

delete_faction

Delete a faction

list_factions

List factions in a game

update_faction_resource

Update a faction resource value. Use mode 'delta' to add/subtract, or 'set' to set an absolute value.

modify_faction_goals

Add and/or complete faction goals in a single call. More efficient than separate add/complete calls.

modify_faction_traits

Add and/or remove faction traits in a single call. More efficient than separate add/remove calls.

store_image

Store an image for an entity. Provide a URL and the image will be downloaded and stored locally.

get_image

Get image metadata by ID

get_image_data

Get image with base64 data included (for displaying or processing). Supports format conversion, resizing, and quality control.

list_entity_images

List all images for an entity

list_entities_missing_images

List all entities in a game that don't have a primary image. Useful for batch image generation workflows. Returns entities grouped by type with counts.

delete_image

Delete a stored image (removes file and database record)

set_primary_image

Set an image as the primary image for its entity

update_image_metadata

Update label, description, or entity association of an image

build_image_prompt

Build an image generation prompt from an entity's structured imageGen data. If a template exists for the entity type (or a specific templateId is provided), uses template-based building. Otherwise combines imageGen schema, notes/description, and preset defaults.

list_image_prompt_templates

List all image prompt templates for a game. Templates allow configurable prompt building from entity data using placeholder syntax.

get_image_prompt_template

Get full details of an image prompt template including the template strings.

create_image_prompt_template

Create a new image prompt template for building prompts from entity data. Templates use placeholder syntax: - {{field.path}} - simple value substitution - {{field.path|"default"}} - value with default if missing - {{field.path|}} - value or empty string if missing Available fields include: name, no

update_image_prompt_template

Update an existing image prompt template. Only specified fields are updated.

delete_image_prompt_template

Delete an image prompt template. This is IRREVERSIBLE.

create_item

Create a new item. IMPORTANT: Call this IMMEDIATELY when introducing any item in narrative - whether found, given, purchased, or mentioned. Items must exist in the database before being referenced in dialogue or description.

104 further tools are not listed here. The complete surface is in the source.

// known CVEs in dependencies1 critical3 high1 low

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

criticalvitest@4.0.16GHSA-5xrq-8626-4rwp

When Vitest UI server is listening, arbitrary file can be read and executed

high@modelcontextprotocol/sdk@1.25.1GHSA-345p-7cg4-v4c7

@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse

high@modelcontextprotocol/sdk@1.25.1GHSA-8r9q-7v3j-jr4g

Anthropic's MCP TypeScript SDK has a ReDoS vulnerability

highsharp@0.34.5GHSA-f88m-g3jw-g9cj

sharp inherited vulnerabilities in libvips: CVE-2026-33327, CVE-2026-33328, CVE-2026-35590, CVE-2026-35591

lowuuid@10.0.0GHSA-w5hq-g745-h8pq

uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configDMCP_DB_PATH
configDMCP_HTTP_PORTTo use a different port, add -e =8080 and change -p 8080:8080.
configDMCP_LOG_LEVEL
configXDG_DATA_HOME
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

204/204 tools missing one or more hints — create_ability (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_ability (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); update_ability (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +201 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Tool inputs are validated

197/204 tool handlers declare input schemas (97%)

Declare an inputSchema with zod/joi/yup on every tool definition.

Tool test coverage

Only 0/204 tools referenced in tests (0%)

Write tests that reference each tool by name so every tool has at least one test.

Production dependencies are patched

0 critical, 3 high severity in production deps — @modelcontextprotocol/sdk@1.25.1 (high), @modelcontextprotocol/sdk@1.25.1 (high)

Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.

Dev dependencies

1 critical/high in dev-only deps (does not ship to users)

Upgrade dev dependencies when convenient.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 6 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/shawnrushefsky/dmcp?variant=verified)](https://m8ven.ai/mcp/shawnrushefsky/dmcp)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: f112a74c9c7a840fc9c16f8ba2abb7f017c375ac
code hash: cc91b1f397a81482b64187a9cafa7abbaf60c0ccad54e7cb5206f6a2254d7e1d
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client