About Ttrpg MCP On Cloudflare
Ttrpg MCP On Cloudflare is an MCP server published by TedTschopp in the Developer Tools category: my attempt to do an MCP server with GitHub Pages.
The repository has 1 stars and 1 forks, with the last commit 7 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/TedTschopp/ttrpg-mcp-on-cloudflareThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Ttrpg MCP On Cloudflare
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 6 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- !License declaredNo license file. Legally you have no right to use it in a product.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
TTRPG GM Tools MCP Server
A Model Context Protocol server for tabletop RPG game masters.
🏗️ Architecture
This project uses a two-part architecture:
- GitHub Pages - Hosts static data files (encounters, names, treasures, etc.) at
https://ttrpg-mcp.tedt.org/ - Cloudflare Worker - Implements the MCP protocol and executes tool logic at
https://ttrpg-mcp.tedt.org/mcp
Note: GitHub Pages can only serve static files. The MCP protocol requires a real server to handle dynamic requests, which is why we need the Cloudflare Worker.
🎲 Features
This MCP server provides tools for game masters:
- Random Encounter Generator - Generate random encounters based on difficulty and environment
- NPC Name Generator - Create character names for various fantasy races
- Location Name Generator - Generate tavern, city, and dungeon names
- Personality Trait Generator - Create NPC personalities and quirks
- Treasure Generator - Generate loot and treasure hoards
- Weather Generator - Create atmospheric weather descriptions
- Plot Hook Generator - Generate adventure hooks and quest ideas
🔧 Setup
Prerequisites
- Deploy the Cloudflare Worker (see
cloudflare-mcp-server/README.md) - Configure your MCP client
For MCP Clients (Claude Desktop, etc.)
Add this to your MCP client configuration:
{
"mcpServers": {
"ttrpg-gm-tools": {
"url": "https://ttrpg-mcp.tedt.org/mcp",
"transport": {
"type": "http"
}
}
}
}
Important:
- The URL is
https://ttrpg-mcp.tedt.org/mcp(notmcp.json) - Transport is Streamable HTTP (JSON responses), not SSE
- You must deploy the Cloudflare Worker first (see
cloudflare-mcp-server/folder)
Local Development
- Clone this repository
- Install Ruby 3.1+ (system Ruby 2.6/2.7 is often too old for
github-pages) - Install Bundler (if needed):
gem install bundler - Install site dependencies:
bundle install - Run locally (from the repo root):
bundle exec jekyll serve - Visit:
http://localhost:4000/
📁 Structure
├── _config.yml # Jekyll configuration
├── data/ # JSON data files for generators
│ ├── encounters.json # Encounter data
│ ├── names.json # NPC names by race
│ ├── locations.json # Location names
│ ├── traits.json # Personality traits
│ ├── treasure.json # Treasure tables
│ ├── weather.json # Weather descriptions
│ └── plot_hooks.json # Adventure hooks
├── cloudflare-mcp-server/ # Cloudflare Worker implementation
│ ├── src/index.ts # Worker entrypoint (/mcp)
│ ├── src/mcp/server.ts # MCP SDK server registration (tools/resources/prompts)
│ ├── src/tools/ # Central registry + per-tool modules
│ ├── src/data/fetch.ts # JSON fetch + Cloudflare caching
│ └── test/ # Vitest smoke tests
├── demo.md # Interactive demo page
└── index.md # Landing page
🚀 Usage
Once configured in your MCP client, you can use natural language to invoke tools:
- "Generate a random encounter for a level 5 party in a forest"
- "Give me a dwarf name for my NPC"
- "Create a tavern name"
- "Generate some personality traits for my villain"
🛠️ Technology Stack
- Jekyll/Liquid - Static site generation
- GitHub Pages - Hosting
- JSON - Data storage and API responses
- MCP SDK - MCP server implementation (
@modelcontextprotocol/sdk)
⚙️ Runtime Behavior
/mcpacceptsPOSTonly;GET /mcpreturns405- CORS is restricted via
ALLOWED_ORIGINS(missingOriginis allowed for non-browser clients) - Data reads are cached (in-memory + Cloudflare Cache API)
- The server supports
completion/completefor prompt args and for the resource template variable inttrpg://data/{dataset} - Tool results and prompt messages may include
resource_linkcontent blocks pointing at related datasets - The server and dataset resources include MCP
iconsmetadata (light/dark SVGs)
📝 License
MIT License - Feel free to use and modify for your campaigns!
🤝 Contributing
Contributions welcome! Add more:
- Encounter types
- Name lists for different cultures/races
- Treasure items
- Plot hooks
- New tool types
🔗 Resources
README fetched from the repository 6 days ago. The original is authoritative.