• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
dcm31

dcm31

mcp-mythic

Mythic GME MCP - Fate Chart roller and Chaos Factor tracker
Public
Like
mcp-mythic
Home
Code
3
README.md
H
main.ts
test.ts
Branches
1
Pull requests
Remixes
History
Environment variables
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
README.md
Code
/
README.md
Search
…
Viewing readonly version of main branch: v11
View latest version
README.md

Mythic GME MCP Server

A Mythic Game Master Emulator implementation as an MCP server. Perfect for solo RPGs or GM-less sessions.

Tools

ToolDescription
check_sceneStart a scene - Normal, Altered, or Interrupted?
roll_fateAsk a yes/no question with given odds
get_chaosGet current Chaos Factor (1-9)
set_chaosSet Chaos Factor to specific value
adjust_chaosIncrement or decrement Chaos Factor

How It Works

Scene Check

When starting a new scene, roll d10 vs Chaos Factor:

ResultWhenMeaning
NormalRoll > ChaosScene proceeds as expected
AlteredRoll ≤ Chaos, evenSame scene with a twist
InterruptedRoll ≤ Chaos, oddCompletely different scene

Higher Chaos = more likely to have scenes go sideways.

The Fate Chart

Ask the oracle a yes/no question and set the odds:

OddsWhen to use
impossibleIt would break reality
no_wayExtremely unlikely
very_unlikelyReally doesn't fit
unlikelyProbably not
50_50Could go either way
somewhat_likelyLeans toward yes
likelyProbably yes
very_likelyAlmost certainly
near_sure_thingOnly extreme circumstances prevent it
sure_thingWould be shocking if no
has_to_bePractically certain

Fate Results

  • Yes / No - Standard answers
  • Exceptional Yes - Yes, and even better than expected
  • Exceptional No - No, and things get worse
  • Random Event - On doubles (11, 22, 33...) something unexpected happens!

Chaos Factor

The Chaos Factor (1-9) represents how out of control the story is:

  • Low (1-3): Stable, predictable. Scenes more likely Normal, "No" more likely.
  • Medium (4-6): Balanced. Default starting point is 5.
  • High (7-9): Chaotic, unpredictable. Scenes often Altered/Interrupted, "Yes" more likely.

After each scene:

  • Scene went as expected → decrease chaos
  • Scene spiraled out of control → increase chaos

Usage

With OpenAI Responses API

const response = await openai.responses.create({ model: "gpt-4o", input: "Start a new scene where I enter the tavern", tools: [{ type: "mcp", server_label: "mythic", server_url: "YOUR_ENDPOINT_URL", require_approval: "never", }], });

Direct Testing

# Check if scene proceeds normally curl -X POST YOUR_ENDPOINT_URL \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"check_scene","arguments":{}}}' # Roll fate curl -X POST YOUR_ENDPOINT_URL \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"roll_fate","arguments":{"odds":"likely"}}}' # Adjust chaos after a wild scene curl -X POST YOUR_ENDPOINT_URL \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"adjust_chaos","arguments":{"direction":"up"}}}'

Example Session

You: I want to start a scene entering the tavern to meet my contact.
AI: [checks scene] ✅ Scene Normal - Roll: 8 vs Chaos 5
    The scene proceeds as planned. You enter the tavern...

You: Is my contact already there? (likely)
AI: [rolls fate] 🎲 Yes - Roll: 23 vs threshold 75
    Yes, you spot them in a corner booth.

You: That went smoothly - decrease chaos.
AI: [adjusts chaos] 📉 Chaos Factor decreased: 5 → 4

You: Next scene - I follow the contact to the secret meeting.
AI: [checks scene] 🔄 Scene Altered - Roll: 2 vs Chaos 4
    The scene happens, but something's different...
    Perhaps guards are patrolling, or the meeting location changed?

See Also

  • mcp-dice - Minimal MCP server example
  • mcp-tester - Test any MCP server
  • Mythic GME - Original game
FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2026 Val Town, Inc.