5eMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CACHE_DIR | No | Disk cache location (local stdio mode). | ~/.cache/5eMCP |
| REDIS_URL | No | Redis connection URL (e.g. redis://localhost:6379). When set and reachable, Redis is used instead of disk cache. Falls back to disk on connection failure. | |
| GITHUB_TOKEN | No | Read-only GitHub PAT. Strongly recommended. | |
| DEFAULT_RULESET | No | Which ruleset to use ("2024" or "2014"). | 2024 |
| MANIFEST_TTL_SECONDS | No | How often to rebuild the manifest (seconds). | 3600 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| helpA | Returns a guide to all available 5eMCP tools and when to use each. Call this first when unsure which tool to reach for — it explains the decision between omnisearch vs typed search vs _get tools, class feature lookups, book content, DM calculators, and the fetch_content fallback. |
| manifest_statusA | Returns the manifest build time, file counts by content type, and any unknown content types (those without typed handlers). |
| list_sourcesA | List all available source abbreviations with their content types and files. Optionally filter by content type. |
| fetch_contentA | Fallback tool — fetch any file in the manifest by content type and file name. Prefer the typed _search and _get tools (spell_search, monster_get, class_get, etc.) when available. Use fetch_content for content types that don't have a typed tool, or when you need raw file access. Omit file_name to list available files for a content type. Returns tag-resolved, metadata-stripped JSON. |
| spell_searchA | Search D&D 5e spells by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| spell_getA | Get a specific D&D 5e spell by exact name. Returns the complete entry with description merged in. Prefer this over spell_search when you have an exact name. |
| monster_searchA | Search D&D 5e monster or creatures by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| monster_getA | Get a specific D&D 5e monster or creature by exact name. Returns the complete entry with description merged in. Prefer this over monster_search when you have an exact name. |
| item_searchA | Search D&D 5e magic or mundane items by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| item_getA | Get a specific D&D 5e magic or mundane item by exact name. Returns the complete entry with description merged in. Prefer this over item_search when you have an exact name. |
| condition_searchA | Search D&D 5e condition, disease, or status effects by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| vehicle_searchA | Search D&D 5e vehicle or vessels by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| object_searchA | Search D&D 5e objects by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| trap_searchA | Search D&D 5e trap or hazards by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| psionic_searchA | Search D&D 5e psionic power or disciplines by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| deck_searchA | Search D&D 5e deck (e.g. Deck of Many Things)s by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| reward_searchA | Search D&D 5e supernatural gift or boons by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| optfeature_searchA | Search D&D 5e optional class feature or invocations by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| table_searchA | Search D&D 5e random tables by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| variantrule_searchA | Search D&D 5e variant rules by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| race_searchA | Search D&D 5e playable species or races by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| race_getA | Get a specific D&D 5e playable species or race by exact name. Returns the complete entry with description merged in. Prefer this over race_search when you have an exact name. |
| background_searchA | Search D&D 5e character backgrounds by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| background_getA | Get a specific D&D 5e character background by exact name. Returns the complete entry with description merged in. Prefer this over background_search when you have an exact name. |
| feat_searchA | Search D&D 5e feats by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| feat_getA | Get a specific D&D 5e feat by exact name. Returns the complete entry with description merged in. Prefer this over feat_search when you have an exact name. |
| deity_searchA | Search D&D 5e deity or gods by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| language_searchA | Search D&D 5e languages by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| skill_searchA | Search D&D 5e skills by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| sense_searchA | Search D&D 5e sense (e.g. darkvision, tremorsense)s by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| book_searchA | Search D&D 5e sourcebooks by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| book_getA | Get a specific D&D 5e sourcebook by exact name. Returns the complete entry with description merged in. Prefer this over book_search when you have an exact name. |
| adventure_searchA | Search D&D 5e published adventures by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| adventure_getA | Get a specific D&D 5e published adventure by exact name. Returns the complete entry with description merged in. Prefer this over adventure_search when you have an exact name. |
| class_searchA | Search D&D 5e character classs by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| class_getA | Get a D&D 5e character class by exact name. Returns the full class entry plus a resolvedFeatures array containing the complete text of every class feature at each level — no reference strings, actual feature descriptions. The ruleset param selects the correct edition: '2024' returns the 2024 XPHB version (e.g. XPHB Wizard), '2014' returns the classic PHB version. For features at a specific level use classfeature_search. For subclass details use subclass_get or subclassfeature_search. |
| subclass_searchA | Search D&D 5e subclass or archetypes by name. Returns a list of matching entries. Use when you know the content type; if unsure of the type, use omnisearch instead. |
| subclass_getA | Get a specific D&D 5e subclass or archetype by exact name. Returns the complete entry with description merged in. Prefer this over subclass_search when you have an exact name. |
| classfeature_searchA | Search D&D 5e class features by name or class. Returns features from the classFeature array embedded in class files. Use class_name to filter to a specific class (e.g. 'Wizard'). Use level to find features gained at a specific level. When ruleset='2024', returns 2024 (XPHB) features; '2014' returns classic features. |
| subclassfeature_searchA | Search D&D 5e subclass features by name, class, or subclass. Returns features from the subclassFeature array embedded in class files. Use class_name to filter to a parent class (e.g. 'Wizard'). Use subclass_name to filter to a specific subclass (e.g. 'Abjurer'). Use level to find features gained at a specific level. When ruleset='2024', returns 2024 (XPHB) features; '2014' returns classic features. |
| omnisearchA | Search across ALL D&D 5e content types simultaneously — spells, monsters, items, classes, subclasses, feats, races, backgrounds, conditions, and more. Start here when you don't know what type of content you need. Each result includes an entityType field so you can tell what kind of thing was found. For deeper filtering within a single type, follow up with the typed _search tool (e.g. spell_search, monster_search). Homebrew is included by default. |
| book_content_getA | Get content from a D&D 5e sourcebook or adventure by source abbreviation (e.g. SCC, EGW, PHB). Uses a drill-down navigation model to minimise token usage — fetch only what you need:
|
| cr_calculateA | Calculate the Challenge Rating (CR) for a custom monster given its defensive and offensive stats. Uses the DMG Appendix B algorithm: defensive CR is derived from HP (adjusted for damage immunity, resistance, or vulnerability) and AC; offensive CR is derived from DPR and attack bonus (or save DC). The two are averaged to produce the final CR. Provide at least one of attackBonus or saveDc for the offensive calculation. |
| cr_scaleA | Look up the expected stat ranges for a given Challenge Rating from the DMG reference table. Returns proficiency bonus, expected AC, HP range, attack bonus, DPR range, and save DC. Useful for scaling a homebrew monster up or down to a target CR, or for quickly checking whether a monster's stats are appropriate for its intended CR. |
| encounter_buildA | Evaluate the difficulty of a D&D 5e encounter given the party composition and monster CRs. Supports both 2014 (classic) and 2024 (one D&D) rulesets. 2014 mode: uses four difficulty tiers (easy/medium/hard/deadly) with a monster count XP multiplier. 2024 mode: uses three difficulty tiers (low/moderate/high) with no multiplier. Both modes add a 'trivial' tier below easy/low and an 'absurd' tier above deadly/high. Returns total XP, adjusted XP (2014 only), difficulty label, and full threshold breakdown. |
| loot_generateA | Generate individual treasure loot for a monster of a given Challenge Rating, based on the DMG individual treasure tables. Returns all possible outcomes for the appropriate CR bracket (Challenge 0-4, 5-10, 11-16, or 17+) with their d100 range, probability percentage, and average coin amounts (using dice average values). Roll a d100 to select a row, or use the average coins for a quick reference. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| 5eMCP | Load D&D 5e tool guidance for this session. Tells the assistant which tool to reach for — omnisearch vs typed search vs class_get vs calculators. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 46 tools
Typed _search and _get tools target distinct content types, and help/omnisearch explicitly guide fallback when the type is unknown. Some ambiguity remains between similar types (item/object/vehicle, book_get/book_content_get, classfeature vs subclassfeature), but descriptions mostly resolve it.
All tool names are snake_case and mostly follow a predictable contenttype_search/contenttype_get suffix pattern. Deviations like omnisearch, list_sources, manifest_status, and book_content_get are readable but prevent perfect uniformity.
At 46 tools, the set is excessive for an MCP server; many are near-identical search wrappers differing only by content type. These could largely be consolidated behind omnisearch or a typed search parameter, reducing selection overhead.
The surface covers a wide range of D&D 5e content types plus raw fetch fallback, book drill-down, and DM calculators. Minor gaps include missing typed _get counterparts for several search-only types, but fetch_content helps compensate.