MCP server for Genesys-RPG character creation and round-tripping with RPGSessions.com
Server has 17 tools with consistent naming (verb_noun pattern) and descriptions present for all. However, parameter descriptions are sparse or generic, output schemas are undocumented, and error handling lacks recovery guidance. Most tools are READ_ONLY data lookups with reasonable schemas, but WRITE/DESTRUCTIVE tools (rpgsessions_*) expose raw table/row abstractions that violate the chat-data-model pattern. No tool annotations (readOnlyHint, destructiveHint) despite clear risk stratification.
Build a blank-but-valid Genesys character JSON skeleton. NOTE: produces the legacy big-blob shape. The v1 RPGSessions backend uses relational tables; this skeleton cannot be uploaded directly. v2/v3 will rework it. Useful as a starting point for hand-editing.
Build a skill entry for a Genesys character.
Build a talent entry for a Genesys character.
Build a weapon entry for a Genesys character.
Look up one canonical adversary by exact (case-insensitive) name. Returns {} if not found.
List all Genesys skills with their type (combat/social/knowledge/magic/general) and linked characteristic.
Three WRITE/DESTRUCTIVE tools (rpgsessions_update_child_row, rpgsessions_insert_child_row, rpgsessions_delete_child_row) expose raw PostgREST table names and row IDs instead of domain-specific abstractions. LLMs cannot reason about 'character_nds_skill' vs 'character_nds_weapon', these should be wrapped in high-level tools like 'add_skill_to_character', 'remove_weapon_from_character'. Violates chat-data-model pattern.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk stratification. 11 tools are READ_ONLY, 5 are WRITE, 1 is DESTRUCTIVE. Annotations enable agents to reason about safety and retry logic. Missing from all 17 tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
List Genesys weapon qualities (Defensive, Pierce, Limited Ammo, etc.) with descriptions.
Clone an existing character (or vehicle) by id.
Create a new character on RPGSessions.com via TanStack server function.
Delete one child row on a character by its row id.
Fetch one character by id with all child rows embedded. Returns a structured payload: top-level fields + `info`, `configuration`, `notes`, plus lists for `details`, `attributes`, `characteristics`, `skills`, `talents`, `weapons`, `armor`, `equipment`, `xp_log`.
Insert a new child row on a character.
List characters in your RPGSessions library (id, name, image_url, created_at).
Update name / description / image_url on a character you own. Pass only the fields you want to change. Other fields are left untouched.
Update one child row on a character (skill, weapon, attribute, etc.) by its row id.
Search canonical Genesys rulebook adversaries.
Search the bundled weapons list (mostly Star Wars / sci-fi flavored). Use as inspiration; weapons are normally hand-built per character.
Output schemas are not documented. Tools like rpgsessions_get_character return 'a structured payload: top-level fields + info, configuration, notes, plus lists for details, attributes, characteristics, skills, talents, weapons, armor, equipment, xp_log' but no formal schema is provided. LLMs cannot plan downstream calls without knowing exact field names and types.
Parameter descriptions for WRITE/DESTRUCTIVE tools are minimal. 'patch' parameter in rpgsessions_update_child_row is described as 'fields to set, e.g. {"ranks": 3}', no guidance on which fields are valid for which tables, no validation rules, no error recovery hints. Violates param-validation-rules pattern.
No error handling guidance. Tools do not document what errors are possible, whether they are retryable, or what the LLM should do next. E.g., rpgsessions_delete_child_row offers no guidance on 'row not found' or 'permission denied' scenarios. Violates recovery-guide pattern.