MCP Tools
JSON-RPC tool reference for the MCP Worker.
POST JSON-RPC 2.0 requests to:
https://mcp.aiworkflowmcp.com/mcpInitialize
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {},
"clientInfo": {
"name": "example-client",
"version": "1.0.0"
}
}
}The server returns serverInfo.name: "aiworkflowmcp-cloudflare-v2" and a tools capability object.
List Tools
curl -fsS https://mcp.aiworkflowmcp.com/mcp \
-H "content-type: application/json" \
--data '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'Call A Tool
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_ai_model",
"arguments": {
"model_id": "gpt-5"
}
}
}Tools
get_ai_model(model_id): model pricing, context, modalities, limits, provenance, and evidence.get_coding_tool(tool_id): install, command surface, supported models, environment variables, and source evidence.search_official_docs(query, tool_id?, include_markdown?, fresh_only?): official docs with optional R2 Markdown.search_skills(task, harness?, fresh_only?): official and major-vendor agent Skills.search_cli(task, tool_id?, include_docs?, fresh_only?): CLI command-surface facts.search_mcp(task, official_only?, include_docs?, fresh_only?): official and major-vendor MCP servers.search_frameworks(query, domain?, include_candidates?, limit?): thinking framework search.route_framework(task, domain?, include_candidates?): route a user task to an operating framework.get_framework(framework_id): retrieve a published framework card.
Tool Selection
Use get_ai_model when the user names a specific model id such as gpt-5 or claude-opus-4-7.
Use get_coding_tool when the user names a tool id such as claude-code, openai-codex-cli, cursor, or windsurf.
Use search tools when the user describes a task and the agent needs discovery. Keep the query concise and English-first.
Use framework tools when the user asks for a decision path, operating checklist, risk review, product strategy, or agent workflow routing.
Response Contract
Successful tools/call responses use this shape:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{ ... }"
}
],
"structuredContent": {
"id": "gpt-5",
"evidence": {
"source_url": "https://example.com",
"key": "evidence/model/gpt-5/hash.json",
"content_hash": "hash",
"stale": false
}
}
}
}Agents should read structuredContent for deterministic behavior and reserve content for user-facing summaries.
Freshness
Use fresh_only=true for commercial paths that must reject stale facts. Health degrades when stale public facts, source errors, or quality gate failures are visible.
Limits
tools/call is rate-limited. Public calls use IP-minute scope. Authenticated calls use API-key-minute scope.
Current production limits are exposed by /health:
public: 120 requests/minute
authenticated: 600 requests/minuteUnsupported JSON-RPC Behavior
Batch requests are not supported. Notifications and accepted MCP signal payloads return 202 with an empty body. Unknown methods return JSON-RPC -32601.