A Model Context Protocol (MCP) server that provides AI-powered tools for the game Umamusume Pretty Derby. This server enables Claude AI to help you with champion meeting information, rating calculations, and stamina validation.
This MCP server provides three powerful tools:
Get detailed information about Champion Meeting events:
- Current, Previous, or Next - Query meetings by scope
- Search by Name - Find specific champion meetings
- Returns venue, surface, distance, category, direction, condition, season, and weather information
Calculate your Umamusume's rating before the end of a career run:
- Analyzes stats from game screenshots
- Processes skills and validates each stat
- Provides detailed rating calculations
- Auto-updates data daily for accuracy
Check if your Umamusume has sufficient stamina for a Champions Meeting Cup:
- Validates stamina requirements for specific races
- Helps optimize your training strategy
- Node.js >= 24.0.0
- pnpm package manager
-
Clone the repository
git clone <your-repo-url> cd mcp-server
-
Install dependencies
pnpm install
-
Build the project
pnpm run build
-
Start the server
pnpm run server
The server will start on
http://localhost:5096
For development with hot reload:
pnpm run devImportant: Claude Web requires HTTPS (ports 80/443) with a valid SSL certificate. You'll need to expose your server using one of these methods:
- Install Cloudflare Tunnel
- Authenticate and create a tunnel:
cloudflared tunnel login cloudflared tunnel create umamusume-trainer
- Run the tunnel:
cloudflared tunnel --url http://localhost:5096
- Copy the provided HTTPS URL
- Install ngrok
- Run:
ngrok http 5096
- Copy the HTTPS URL provided
- Go to claude.ai
- Open any conversation
- Click the MCP icon (puzzle piece) in the input area
- Click "Add Server"
- Enter the MCP discovery URL:
https://umamusume.training/.well-known/mcp.json - The server will connect automatically
- Open Claude Desktop settings
- Navigate to Developer → Edit Config
- Add the server configuration to
claude_desktop_config.json:
{
"mcpServers": {
"umamusume-trainer": {
"url": "https://umamusume.training"
}
}
}- Restart Claude Desktop
- Open
%APPDATA%\Claude\claude_desktop_config.json - Add the same configuration as above
- Restart Claude Desktop
- MCP Endpoint:
/mcpor/ - Discovery:
/.well-known/mcp.json - Health Check:
/health
- Protocol Version: 2025-06-18
- Transport: Streamable HTTP
- Default Port: 5096
- Framework: Hono
- Runtime: Node.js
Once connected to Claude, you can ask questions like:
- "What's the current Champions Meeting?"
- "Calculate the rating for my Umamusume with these stats: [provide stats]"
- "Does my Umamusume have enough stamina for the next Champions Meeting?"
- "Find information about the Winter Champions Meeting"
mcp-server/
├── src/
│ ├── index.ts # Main server setup
│ ├── server.ts # Server entry point
│ └── tools/ # MCP tools
│ ├── champions_meeting.ts
│ ├── rating_calculator/
│ └── validate_stamina/
├── public/
│ └── index.html # Homepage
└── package.json
pnpm run dev- Development mode with hot reloadpnpm run build- Build TypeScript to JavaScriptpnpm run start- Start production serverpnpm run server- Start development server with env file
- Ensure you're using HTTPS with a valid SSL certificate
- Verify the
/.well-known/mcp.jsonendpoint is accessible - Check that ports 80 or 443 are properly forwarded
- Verify the URL in your config matches
https://umamusume.training - Check the config file path and JSON syntax
- Restart Claude Desktop after configuration changes
- Check logs in Claude Desktop's developer console
- Confirm the server is running (
/healthendpoint should return{"status":"ok"}) - Check that the MCP discovery endpoint returns valid JSON
- Verify protocol version compatibility
Contributions are welcome! Please feel free to submit a Pull Request.