@scrymaster/mcp
v1.0.0
Published
ScryMaster authoring MCP — author a ScryMaster D&D 5e adventure end-to-end (create, edit, validate, simulate, publish) via the bearer-authed API, no browser.
Downloads
173
Maintainers
Readme
ScryMaster authoring MCP (scrymaster-mcp)
A Model Context Protocol server that lets an AI assistant author a
ScryMaster adventure end-to-end without a browser — create, edit, validate, simulate, read the
quality signals, and publish, at full Studio parity. It is a thin stdio wrapper over the bearer-authed
/api/v1 surface; all authz, storage, and game logic live in the app.
Canonical host: always use the apex
https://scrymaster.com— neverwww(it 308-redirects and some agents won't follow the cross-host hop).
Tools
- Grounding:
get_vocabulary(works before auth — call it first; also lists the wizard/module recipes). - Drafts:
list_adventures,get_adventure,create_adventure,save_adventure,delete_adventure,update_listing. - Recipes (stamp, don't hand-wire):
apply_wizard,insert_module. - Quality (steer toward GOOD, not just valid):
validate_adventure,simulate_adventure,get_health,get_world. - Releases:
dry_publish,publish_adventure,list_versions,restore_version. - Art & narration:
upload_image,set_scene_background,set_choice_image, plus the narration-enrichment suite.
The authoring contract: get_vocabulary → get_adventure → edit (or apply_wizard/insert_module) →
save_adventure(baseHash) → validate_adventure → simulate_adventure → get_health → get_world →
dry_publish → publish_adventure. The baseHash/409 contract prevents clobbering; the same validation
and IP-denylist gates the Studio enforces run on your publish.
Connect
Mint a token. In the app: Story Studio → ⚙ Settings → Integrations → API tokens → Generate → copy the
scry_…value (shown once; revocable any time; only its hash is stored).Register the server with your MCP client — no repo needed, it runs via
npx.Claude Code:
claude mcp add scrymaster --env SCRYMASTER_TOKEN=scry_your_token_here \ --env SCRYMASTER_API_URL=https://scrymaster.com -- npx -y @scrymaster/mcpClaude Desktop / any MCP client (
claude_desktop_config.json):{ "mcpServers": { "scrymaster": { "command": "npx", "args": ["-y", "@scrymaster/mcp"], "env": { "SCRYMASTER_TOKEN": "scry_your_token_here", "SCRYMASTER_API_URL": "https://scrymaster.com" } } } }A one-URL remote OAuth connector (no token paste) is rolling out next.
No MCP client? Every tool maps 1:1 to a bearer-authed REST call — see the API & MCP reference and the MCP quickstart.
Notes
get_vocabularyneeds no token; every other tool sendsAuthorization: Bearer scry_….- Writes are owner-scoped (a token only ever touches its owner's drafts) and recorded in the story's provenance ledger, labeled as MCP authorship.
scope: "global"asset uploads require the app-owner token; other creators get"session"(campaign) assets.- The app side needs
SUPABASE_SERVICE_ROLE_KEYconfigured (Vercel) to resolve tokens and write.
