From claude-commands
Documents MCP server endpoints, JSON-RPC tools for campaign management, authentication, and common operations for local and GCP deployments.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-commands:worldai-mcp-server-usageThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The Your Project MCP server uses **JSON-RPC 2.0** protocol over HTTP POST.
The Your Project MCP server uses JSON-RPC 2.0 protocol over HTTP POST.
POST http://localhost:8081/mcp
Content-Type: application/json
POST https://<deployment-url>.run.app/mcp
Content-Type: application/json
Note: GCP preview URLs are provided in PR comments. The MCP endpoint is always /mcp appended to the base URL.
Example GCP Preview:
https://mvp-site-app-s1-i6xf2p72ka-uc.a.run.apphttps://mvp-site-app-s1-i6xf2p72ka-uc.a.run.app/mcphttps://mvp-site-app-s1-i6xf2p72ka-uc.a.run.app/healthFinding GCP Preview URL:
gh pr view <PR_NUMBER> --comments | grep "MCP Endpoint" | grep -E 'https://.*\.run\.app'
Use the X-Test-User-ID header for local testing without Firebase auth:
-H "X-Test-User-ID: <firebase_uid>"
Finding the user ID: Check server logs for user=<uid> entries:
grep "user=" /tmp/your-project.com/*/flask-server.log | tail -10
# List all tools
curl -s -X POST http://localhost:8081/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "tools/list", "params": {}, "id": 1}' | jq '.result.tools[].name'
Tools:
create_campaign - Create a new campaignget_campaign_state - Get current campaign stateprocess_action - Send player action and get responseupdate_campaign - Update campaign settingsexport_campaign - Export campaign dataget_campaigns_list - List user's campaignsget_user_settings - Get user preferencesupdate_user_settings - Update user preferences{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "<tool_name>",
"arguments": {
"<arg1>": "<value1>",
"user_id": "<firebase_uid>"
}
},
"id": 1
}
cat > /tmp/req.json << 'EOF'
{"jsonrpc": "2.0", "method": "tools/call", "params": {"name": "get_campaign_state", "arguments": {"campaign_id": "<campaign_id>", "user_id": "<uid>"}}, "id": 1}
EOF
curl -s -X POST http://localhost:8081/mcp \
-H "Content-Type: application/json" \
-H "X-Test-User-ID: <uid>" \
-d @/tmp/req.json | jq '.result'
cat > /tmp/req.json << 'EOF'
{"jsonrpc": "2.0", "method": "tools/call", "params": {"name": "process_action", "arguments": {"campaign_id": "<campaign_id>", "user_id": "<uid>", "user_input": "I attack the goblin", "mode": "character"}}, "id": 1}
EOF
curl -s -X POST http://localhost:8081/mcp \
-H "Content-Type: application/json" \
-H "X-Test-User-ID: <uid>" \
-d @/tmp/req.json | jq '.result | {dice_rolls, narrative: .narrative[0:200]}'
cat > /tmp/req.json << 'EOF'
{"jsonrpc": "2.0", "method": "tools/call", "params": {"name": "get_campaigns_list", "arguments": {"user_id": "<uid>"}}, "id": 1}
EOF
curl -s -X POST http://localhost:8081/mcp \
-H "Content-Type: application/json" \
-H "X-Test-User-ID: <uid>" \
-d @/tmp/req.json | jq '.result.campaigns'
# Real-time log monitoring
tail -f /tmp/your-project.com/*/flask-server.log
# Check for dice roll processing
grep -E "NATIVE|Phase|tool_call|dice" /tmp/your-project.com/*/flask-server.log | tail -20
# Find user IDs for campaigns
grep "user=" /tmp/your-project.com/*/flask-server.log | tail -10
# Get latest GCP preview URL for a PR
gh pr view <PR_NUMBER> --comments | grep "MCP Endpoint" | grep -E 'https://.*\.run\.app' | head -1 | sed -E 's/.*(https:\/\/[^)]+).*/\1/'
https://<deployment-id>.run.apphttps://<deployment-id>.run.app/mcp (always /mcp appended)https://<deployment-id>.run.app/health# Base URL
https://mvp-site-app-s1-i6xf2p72ka-uc.a.run.app
# MCP Endpoint
https://mvp-site-app-s1-i6xf2p72ka-uc.a.run.app/mcp
# Health Check
https://mvp-site-app-s1-i6xf2p72ka-uc.a.run.app/health
# Test MCP endpoint is working
curl -s -X POST https://mvp-site-app-s1-i6xf2p72ka-uc.a.run.app/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq '.result.tools[].name'
# Test create_campaign tool
curl -s -X POST https://mvp-site-app-s1-i6xf2p72ka-uc.a.run.app/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"create_campaign","arguments":{"user_id":"test_user","title":"Test"}}}'
Note: GCP preview servers may have transient issues. If you get HTTP 404, verify the endpoint URL is correct and try again.
test_agent_selection_classifier.py: Comprehensive integration test that exercises all 7 agents with real LLMs. This test can take 15-20 minutes to complete due to multiple LLM calls per test case. Use a longer timeout (1200 seconds / 20 minutes) when running this test.test_classifier_model_loading_failure.py, test_json_parsing_failure.py) complete faster (~1-2 minutes each)./mcp endpoint/mcp). May be transient - retry./mcp pathnpx claudepluginhub jleechanorg/claude-commands --plugin claude-commandsRuns and tests the WorldAI Tools MCP HTTP proxy locally, with instructions for starting upstream and proxy servers, calling tools via curl, and a warning about a dry_run stub that returns fake data.
MCPize Builder — takes a brief/PRD (from /mcpize:idea or custom) and builds a production-ready MCP server, end to end. Part of the MCPize suite (mcpize.com). Parses brief to extract tools, data strategy, secrets, and technical stack. Scaffolds project via mcpize CLI with the right template, implements all MCP tools with proper input validation and error handling, configures mcpize.yaml with secrets/credentials and HTTP transport, writes tests that verify MCP protocol compliance, and generates README + CLAUDE.md. Use this skill whenever someone wants to build an MCP server from a brief or PRD, has a spec they want to turn into a working server, says 'build this MCP', wants to implement tools from a brief, or references mcpize-build. Also trigger on: build mcp, implement mcp server, code mcp from brief, scaffold mcp project, create mcp server from spec, mcpize build, turn brief into server, implement brief, build from prd, mcp server from scratch.
Exercises MCP tools, resources, and prompts against a live HTTP server via JSON-RPC over curl. Starts server, runs real and adversarial inputs, produces a report with findings and follow-ups. Use after modifying definitions or to verify surface.