MCP server that looks up D&D 5e (2024 / 5.5e) rules — spells, monsters, conditions, classes, magic items — via the Open5e API. Designed to pair with roll20-character-mcp-server.
14 tools with complete JSON Schema definitions and descriptions. All tools follow verb_noun naming (search_*, get_*, list_). Descriptions are clear and domain-specific (100-250 chars typical). Parameters are well-typed with enums for edition/documentKey. However, output schemas are not explicitly documented in the source, only inferred from formatters. Error handling is minimal (no recovery guidance). All tools are read-only, reducing risk but also limiting composition patterns.
Get details for one background. (2024 SRD currently has only Acolyte, Criminal, Sage, Soldier — content limitation.)
Get details for one class or subclass.
Get the full description of a condition (e.g. 'Charmed', 'Frightened', 'Stunned').
Get the full stat block (AC, HP, speed, abilities, CR, description) for one creature, by slug or name.
Get the full description, rarity, type, and attunement requirements of one magic item.
Get details for one race / species.
Get the full text of a rules section by slug or title.
Output schemas not explicitly documented. Return types are inferred from format functions (formatSpellFull, formatCreatureFull, etc.) but not declared in tool definitions. LLMs cannot plan downstream calls without knowing what fields to expect.
No error recovery guidance. Tools return generic error messages (e.g., 'No spell named X found') without suggesting next steps. LLMs cannot self-correct or know whether to retry, search differently, or ask the user.
Pagination not fully exposed. search_* tools accept 'limit' but do not return total count or next_cursor. LLMs cannot determine if results are truncated or plan multi-page queries.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2025-06-18+ | v2 |
Get the full description and metadata for one spell. Resolves by exact slug ('srd-2024_fireball' for 2024, 'fireball' for 2014) or case-insensitive name.
List classes and subclasses. The 2024 SRD also includes subclass entries here (Champion, Circle of the Land, Life Domain, etc.).
List the standard conditions (Blinded, Charmed, Frightened, Poisoned, etc.) plus any third-party additions (Bloodied, Slowed, ...). Conditions are essentially identical between 2014 and 2024.
Search creatures (monsters, NPCs). Filter by name, CR range (crMin/crMax), type (humanoid, fiend, dragon, ...), and size. Defaults to 2024 SRD; pass edition='2014' for the original 5e SRD.
Search magic items. Filter by name, rarity (common/uncommon/rare/very rare/legendary/artifact), and attunement requirement.
Search rules sections (Ability Checks, Combat, Resting, etc.). Substring filter on title.
Search D&D spells. Filter by name substring, level (0=cantrip..9), school, class, ritual flag, concentration flag. Defaults to the 2024 SRD; pass edition='2014' for the original 5e SRD.
dnd_list_conditions and dnd_list_classes have empty or minimal input schemas. No parameters to filter or control output. Descriptions are generic ('List the standard conditions'). These tools are discovery-only and do not guide when to call them.
documentKey parameter is complex and underdocumented. Accepts source keys like 'srd-2024', 'a5e-ag', 'tob', or empty string for all sources. LLMs may not understand when to use it or what values are valid for each edition.