JKTJJ MCP Server
MCP server for AI agent access to JKTJJ's structured BJJ data — gyms, coaches, events, and cities worldwide.
Install
opencode
Add to your opencode.json:
{
"mcp": {
"jktjj": {
"type": "remote",
"url": "https://mcp.jktjj.com/mcp",
"enabled": true
}
}
}
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"jktjj": {
"type": "url",
"url": "https://mcp.jktjj.com/mcp"
}
}
}
Cursor
Settings → MCP Servers → Add:
- Name:
jktjj - Type:
url - URL:
https://mcp.jktjj.com/mcp
Smithery
npx @smithery/cli mcp add jktjj-com/jktjj-mcp
MCP Inspector
npx @modelcontextprotocol/inspector
Then connect to https://mcp.jktjj.com/mcp.
Remote URL
https://mcp.jktjj.com/mcp
Tools
Free Tools (no auth required)
| Tool | Description |
|---|---|
list_cities | List supported cities, filterable by country |
get_city | Full city details by slug |
list_gyms | Filtered gym list (city, gi/nogi, open mat, affiliation, instructor) |
get_gym | Full gym profile by city + gym slug |
list_events | Filtered event list (city, date range, type) |
get_event | Full event details by slug |
Premium Tools (x402 USDC — $0.005–$0.02/call)
| Tool | Description | Price |
|---|---|---|
search_schedule | Search schedules by day, time, class type across a city | $0.02 |
find_open_mats | Open mat sessions by city and day | $0.005 |
search_jktjj | Cross-index text search (cities, gyms, coaches, events) | $0.005 |
list_coaches | Filtered coach list (city, affiliation) | $0.005 |
get_coach | Full coach profile by slug | $0.005 |
get_schedule | Weekly schedule for a gym or all gyms in a city | $0.005 |
bulk_export | City-level data export (gyms, events, coaches) | $0.005 |
Resources
| URI | Description |
|---|---|
jktjj://catalog | API catalog with endpoints, pricing, and optimization hints |
jktjj://agent-guide | Routing instructions, decision defaults, and query examples |
jktjj://llms.txt | JKTJJ llms.txt content |
jktjj://snapshot | Current snapshot version and counts |
Prompts
| Prompt | Description |
|---|---|
plan_training_trip | Build a training itinerary for a city and date range |
find_open_mat | Find open mat sessions in a city on a specific day |
summarize_week_in_bjj | Get a weekly summary of BJJ events |
Agent Discovery
External agents and bots can discover how to use the MCP server through these public surfaces:
| Surface | URL | Format |
|---|---|---|
| Well-known skill | https://jktjj.com/.well-known/jktjj/SKILL.md | Markdown |
| MCP resource | jktjj://agent-guide | Markdown (after connecting) |
| llms.txt | https://jktjj.com/llms.txt | Plain text |
| Catalog (HTTP) | https://jktjj.com/api/x402/v1/catalog | JSON |
| For Developers | https://jktjj.com/for-developers | HTML |
The well-known SKILL.md contains routing instructions, decision defaults, and query examples. Agents can fetch it via HTTP GET without connecting to the MCP server.
Registries
| Registry | Status | URL |
|---|---|---|
| MCP Registry | Pending | https://registry.modelcontextprotocol.io |
| Smithery | Published | https://smithery.ai/server/jktjj-com/jktjj-mcp |
| Cline Marketplace | Submitted | https://github.com/cline/mcp-marketplace/issues |
| MCP.Directory | Submitted | https://mcp.directory |
| MCP.so | Submitted | https://mcp.so |
Development
Prerequisites
- Node.js
- Cloudflare account with Workers enabled
- Domain
mcp.jktjj.comconfigured in Cloudflare DNS
Quick Start
npm install
npm run dev
The server starts on http://localhost:8787.
Deploy
npm run deploy
Tests
npm test
Architecture
The MCP server fetches a data snapshot from jktjj.com/api/x402/data-snapshot on boot and refreshes it every 5 minutes. All tools query from this in-memory snapshot — no direct data file access at runtime.
jktjj.com/data/* → /api/x402/data-snapshot → mcp Worker (in-memory cache) → MCP tools
License
MIT