{"message":"Cortensor MCP Server","version":"1.0.0","description":"MCP server for Cortensor Router APIs (completions, delegate v1/v2, validate v1/v2, factcheck v1, trial tools).","transport":"Streamable HTTP","endpoints":{"mcp":"/mcp/messages","mcp_direct":"/messages","mcp_advertisement_get":"/mcp/messages","about":"/api/v1/about","status":"/api/v1/status","ping":"/api/v1/ping","a2a_well_known":"/.well-known/agent.json","a2a_api":"/api/v1/a2a/agent.json","a2a_discovery":"/api/v1/a2a/discovery"},"protocol":"Streamable HTTP (MCP 2024-11-05+)","router_proxy":{"base_url":"http://127.0.0.1:25010","notes":{"x402_routes":"Available when router x402 middleware is enabled.","trial_routes":"Intended for onboarding; may have lower SLA/rate limits.","mcp_payment_policy":"MCP clients should pass payment receipt as payment_proof; the proxy forwards it as X-PAYMENT header."},"rest_routes":{"completion_v1":"/api/v1/completions/{session_id}","completion_v1_trial":"/api/v1/trial/completions/{session_id}","completion_v1_x402":"/api/v1/x402/completions/{session_id}","delegate_v1":"/api/v1/delegate","delegate_v2":"/api/v2/delegate","delegate_v1_trial":"/api/v1/trial/delegate","delegate_v2_trial":"/api/v2/trial/delegate","delegate_v1_x402":"/api/v1/x402/delegate","delegate_v2_x402":"/api/v2/x402/delegate","validate_v1":"/api/v1/validate","validate_v2":"/api/v2/validate","validate_v1_trial":"/api/v1/trial/validate","validate_v2_trial":"/api/v2/trial/validate","validate_v1_x402":"/api/v1/x402/validate","validate_v2_x402":"/api/v2/x402/validate","factcheck_v1":"/api/v1/factcheck","factcheck_v1_trial":"/api/v1/trial/factcheck","factcheck_v1_x402":"/api/v1/x402/factcheck"}},"session_policy":{"mode":"fixed_configured_sessions","default_session_id":17,"tool_defaults":{"completion":16,"delegate":18,"validate":19,"tasks":17,"factcheck_single":20,"factcheck_consensus":25},"notes":"MCP does not create funded router sessions. Configure fixed session IDs per endpoint category."},"advertisement":{"enabled_by_env":true,"env_toggle":"MCP_ADVERTISE_ENABLED","env_override_payload":"MCP_ADVERTISE_JSON"},"tools":{"categories":["Completions","Delegation v1/v2","Validation v1/v2","Factcheck v1","Session Listing","Network Info"],"totalTools":19,"list":[{"name":"cortensor_completions","description":"Generate text completions using the Cortensor network. MCP payment policy: require x402 and pass receipt in payment_proof (forwarded as X-PAYMENT header).","inputSchema":{"type":"object","properties":{"session_id":{"type":"integer","description":"Session ID for completion. Optional when ROUTER_MCP_COMPLETION_SESSION_ID (or ROUTER_MCP_DEFAULT_SESSION_ID) is configured."},"prompt":{"type":"string","description":"The text prompt to complete"},"max_tokens":{"type":"integer","description":"Maximum number of tokens to generate","default":1024},"temperature":{"type":"number","description":"Sampling temperature (0.0 to 1.0)","default":1.0},"top_p":{"type":"number","description":"Top-p sampling parameter","default":1.0},"payment_proof":{"type":"string","description":"x402 payment receipt; forwarded as X-PAYMENT header."},"x402":{"type":"boolean","description":"Set true for MCP payment policy (x402 required).","default":true}},"required":["prompt"]}},{"name":"cortensor_completions_trial","description":"Trial completions via /api/v1/trial/completions. MCP payment policy: require x402 and pass receipt in payment_proof (forwarded as X-PAYMENT header). Default limit: 1 request every 15 minutes per client_id (fallback to IP) for this trial tool (configurable).","inputSchema":{"type":"object","properties":{"session_id":{"type":"integer","description":"Session ID for completion. Optional when ROUTER_MCP_COMPLETION_SESSION_ID (or ROUTER_MCP_DEFAULT_SESSION_ID) is configured."},"prompt":{"type":"string","description":"The text prompt to complete"},"max_tokens":{"type":"integer","description":"Maximum number of tokens to generate","default":1024},"temperature":{"type":"number","description":"Sampling temperature (0.0 to 1.0)","default":1.0},"top_p":{"type":"number","description":"Top-p sampling parameter","default":1.0},"stream":{"type":"boolean","description":"Whether to stream the response","default":false},"payment_proof":{"type":"string","description":"x402 payment receipt; forwarded as X-PAYMENT header."}},"required":["prompt"]}},{"name":"cortensor_delegate","description":"V2 delegation: offload a structured task to /api/v2/delegate (objective + input + execution + policy). MCP payment policy: require x402 and pass receipt in payment_proof (forwarded as X-PAYMENT header).","inputSchema":{"type":"object","properties":{"session_id":{"type":"integer","description":"Session ID. Optional when ROUTER_MCP_DELEGATE_SESSION_ID (or ROUTER_MCP_DEFAULT_SESSION_ID) is configured."},"objective":{"type":"string","description":"High-level goal for delegated execution."},"input":{"type":"object","description":"Task-specific input payload (prompt/tool args/data refs)."},"execution":{"type":"object","description":"Execution hints, e.g. mode/model/tooling strategy."},"policy":{"type":"object","description":"Reliability/cost/timeout policy, e.g. tier/redundancy/timeout. Timeout semantics: precommit_timeout is inference timeout, timeout is overall timeout (use timeout > precommit_timeout)."},"metadata":{"type":"object","description":"Tracing and labels (trace_id, tags, custom metadata)."},"workflow":{"type":"object","description":"Optional multi-step workflow graph/spec for iterative delegation."},"tools":{"type":"array","description":"Optional tool catalog or tool directives for delegated worker."},"payload":{"type":"object","description":"Raw full body pass-through for /api/v2/delegate; overrides piecemeal fields where keys overlap."},"x402":{"type":"boolean","description":"Set true for MCP payment policy (x402 required).","default":true},"payment_proof":{"type":"string","description":"x402 payment receipt; forwarded as X-PAYMENT header."}}}},{"name":"cortensor_delegate_v1","description":"V1 delegation: legacy template/prompt-based flow via /api/v1/delegate (task_request_input + domain/type + optional web context). MCP payment policy: require x402 and pass receipt in payment_proof (forwarded as X-PAYMENT header).","inputSchema":{"type":"object","properties":{"session_id":{"type":"integer","description":"Session ID. Optional when ROUTER_MCP_DELEGATE_SESSION_ID (or ROUTER_MCP_DEFAULT_SESSION_ID) is configured."},"task_request_input":{"type":"string","description":"Primary user/task instruction to delegate."},"task_domain":{"type":"string","description":"Task domain label (e.g. summary, analysis, coding)."},"task_type":{"type":"string","description":"Task subtype/category used by legacy templates."},"model_policy":{"type":"object","description":"Legacy model policy hints for routing/selection."},"evaluation_mode":{"type":"string","description":"Legacy evaluator/delegation mode."},"context":{"description":"Additional context object/string supplied to delegation template."},"delegation_template":{"type":"string","description":"Template selector for legacy delegation prompt construction."},"web_url":{"type":"string","description":"Optional URL to fetch and include as delegation context."},"payload":{"type":"object","description":"Raw full body pass-through for /api/v1/delegate; overrides piecemeal fields where keys overlap."},"x402":{"type":"boolean","description":"Set true for MCP payment policy (x402 required).","default":true},"payment_proof":{"type":"string","description":"x402 payment receipt; forwarded as X-PAYMENT header."}}}},{"name":"cortensor_delegate_trial","description":"V2 trial delegation via /api/v2/trial/delegate. MCP payment policy: require x402 and pass receipt in payment_proof (forwarded as X-PAYMENT header). Default limit: 1 request every 15 minutes per client_id (fallback to IP) for this trial tool (configurable).","inputSchema":{"type":"object","properties":{"session_id":{"type":"integer"},"objective":{"type":"string"},"input":{"type":"object"},"execution":{"type":"object"},"policy":{"type":"object"},"metadata":{"type":"object"},"workflow":{"type":"object"},"tools":{"type":"array"},"payload":{"type":"object"},"payment_proof":{"type":"string","description":"x402 payment receipt; forwarded as X-PAYMENT header."}}}},{"name":"cortensor_delegate_v1_trial","description":"V1 trial delegation via /api/v1/trial/delegate. MCP payment policy: require x402 and pass receipt in payment_proof (forwarded as X-PAYMENT header). Default limit: 1 request every 15 minutes per client_id (fallback to IP) for this trial tool (configurable).","inputSchema":{"type":"object","properties":{"session_id":{"type":"integer"},"task_request_input":{"type":"string"},"task_domain":{"type":"string"},"task_type":{"type":"string"},"model_policy":{"type":"object"},"evaluation_mode":{"type":"string"},"context":{},"delegation_template":{"type":"string"},"web_url":{"type":"string"},"payload":{"type":"object"},"payment_proof":{"type":"string","description":"x402 payment receipt; forwarded as X-PAYMENT header."}}}},{"name":"cortensor_validate","description":"V2 validation checkpoint via /api/v2/validate (claim + policy + optional actor/context/metadata). MCP payment policy: require x402 and pass receipt in payment_proof (forwarded as X-PAYMENT header).","inputSchema":{"type":"object","properties":{"session_id":{"type":"integer","description":"Session ID. Optional when ROUTER_MCP_VALIDATE_SESSION_ID (or ROUTER_MCP_DEFAULT_SESSION_ID) is configured."},"claim":{"type":"object","description":"Proposed action/output to validate (type/description/output/input_hash/model_info)."},"policy":{"type":"object","description":"Validation policy/tier/rules/redundancy constraints. Timeout semantics: precommit_timeout is inference timeout, timeout is overall timeout (use timeout > precommit_timeout)."},"actor":{"type":"object","description":"Actor identity metadata (agent_id/user_id/tenant context)."},"context":{"type":"object","description":"Execution context (chain, app, session references, environment)."},"metadata":{"type":"object","description":"Tracing tags and custom validation metadata."},"payload":{"type":"object","description":"Raw full body pass-through for /api/v2/validate; overrides piecemeal fields where keys overlap."},"task_id":{"type":"integer","description":"Legacy compatibility input. Auto-mapped into claim when claim is omitted."},"miner_address":{"type":"string","description":"Legacy compatibility input. Auto-mapped into claim/context when claim is omitted."},"result_data":{"type":"string","description":"Legacy compatibility input. Auto-mapped into claim.output when claim is omitted."},"x402":{"type":"boolean","description":"Set true for MCP payment policy (x402 required).","default":true},"payment_proof":{"type":"string","description":"x402 payment receipt; forwarded as X-PAYMENT header."}}}},{"name":"cortensor_validate_v1","description":"V1 validation: legacy template-based evaluator via /api/v1/validate (task_request_input + task_result_output + acceptance_criteria). MCP payment policy: require x402 and pass receipt in payment_proof (forwarded as X-PAYMENT header).","inputSchema":{"type":"object","properties":{"session_id":{"type":"integer","description":"Session ID. Optional when ROUTER_MCP_VALIDATE_SESSION_ID (or ROUTER_MCP_DEFAULT_SESSION_ID) is configured."},"task_request_input":{"type":"string","description":"Original task/input that produced the candidate result."},"task_result_output":{"description":"Candidate result content to evaluate (string/object)."},"task_domain":{"type":"string","description":"Task domain label for template routing."},"task_type":{"type":"string","description":"Task subtype/category for template routing."},"model_policy":{"type":"object","description":"Legacy model policy hints for evaluator routing."},"acceptance_criteria":{"description":"Required criteria list (comma-separated string or array), e.g. accuracy, safety, completeness."},"evaluation_mode":{"type":"string","description":"Legacy evaluation mode for template prompt strategy."},"context":{"description":"Additional context object/string supplied to validation template."},"validation_template":{"type":"string","description":"Template selector (e.g. cor, cor-safety, cor-consensus, cor-spec, cor-quality, cor-arbitration, cor-delegation)."},"payload":{"type":"object","description":"Raw full body pass-through for /api/v1/validate; overrides piecemeal fields where keys overlap."},"task_id":{"type":"integer","description":"Legacy compatibility field. Used to synthesize task_request_input if not provided."},"miner_address":{"type":"string","description":"Legacy compatibility field. Added into context if context is missing."},"result_data":{"type":"string","description":"Legacy compatibility field. Used as task_result_output if not provided."},"x402":{"type":"boolean","description":"Set true for MCP payment policy (x402 required).","default":true},"payment_proof":{"type":"string","description":"x402 payment receipt; forwarded as X-PAYMENT header."}}}},{"name":"cortensor_factcheck","description":"Factcheck v1 via /api/v1/factcheck (or /api/v1/x402/factcheck when x402=true). Uses MCP-configured fixed sessions for single-miner or consensus mode. MCP payment policy: require x402 and pass receipt in payment_proof (forwarded as X-PAYMENT header).","inputSchema":{"type":"object","properties":{"claim":{"description":"Claim object or plain string to verify."},"statement":{"type":"string","description":"Convenience shortcut for claim.statement."},"mode":{"type":"string","description":"Factcheck mode: standard or realtime.","default":"standard"},"consensus":{"type":"boolean","description":"true uses consensus session, false uses single-miner session.","default":true},"session_id":{"type":"integer","description":"Optional; ignored when x402=true."},"policy":{"type":"object","description":"Factcheck policy (tier/redundancy/task_redundancy/timeouts)."},"context":{"type":"object"},"metadata":{"type":"object"},"evidence":{"type":"object"},"payload":{"type":"object","description":"Raw full body pass-through for /api/v1/factcheck."},"request_id":{"type":"string"},"x402":{"type":"boolean","description":"Set true for MCP payment policy (x402 required).","default":true},"payment_proof":{"type":"string","description":"x402 payment receipt; forwarded as X-PAYMENT header."}}}},{"name":"cortensor_factcheck_trial","description":"Factcheck v1 trial via /api/v1/trial/factcheck. Single-miner mode is enforced on trial. MCP payment policy: require x402 and pass receipt in payment_proof (forwarded as X-PAYMENT header). Default limit: 1 request every 15 minutes per client_id (fallback to IP) for this trial tool (configurable).","inputSchema":{"type":"object","properties":{"claim":{"description":"Claim object or plain string to verify."},"statement":{"type":"string","description":"Convenience shortcut for claim.statement."},"mode":{"type":"string","description":"Factcheck mode: standard or realtime.","default":"standard"},"consensus":{"type":"boolean","description":"Ignored on trial: single-miner mode is always used.","default":true},"session_id":{"type":"integer","description":"Optional; ignored when trial fixed session env is configured."},"policy":{"type":"object"},"context":{"type":"object"},"metadata":{"type":"object"},"evidence":{"type":"object"},"payload":{"type":"object","description":"Raw full body pass-through for /api/v1/trial/factcheck."},"request_id":{"type":"string"},"payment_proof":{"type":"string","description":"x402 payment receipt; forwarded as X-PAYMENT header."}}}},{"name":"cortensor_validate_trial","description":"V2 trial validation via /api/v2/trial/validate. MCP payment policy: require x402 and pass receipt in payment_proof (forwarded as X-PAYMENT header). Default limit: 1 request every 15 minutes per client_id (fallback to IP) for this trial tool (configurable).","inputSchema":{"type":"object","properties":{"session_id":{"type":"integer"},"claim":{"type":"object"},"policy":{"type":"object"},"actor":{"type":"object"},"context":{"type":"object"},"metadata":{"type":"object"},"payload":{"type":"object"},"task_id":{"type":"integer"},"miner_address":{"type":"string"},"result_data":{"type":"string"},"payment_proof":{"type":"string","description":"x402 payment receipt; forwarded as X-PAYMENT header."}}}},{"name":"cortensor_validate_v1_trial","description":"V1 trial validation via /api/v1/trial/validate. MCP payment policy: require x402 and pass receipt in payment_proof (forwarded as X-PAYMENT header). Default limit: 1 request every 15 minutes per client_id (fallback to IP) for this trial tool (configurable).","inputSchema":{"type":"object","properties":{"session_id":{"type":"integer"},"task_request_input":{"type":"string"},"task_result_output":{},"task_domain":{"type":"string"},"task_type":{"type":"string"},"model_policy":{"type":"object"},"acceptance_criteria":{},"evaluation_mode":{"type":"string"},"context":{},"validation_template":{"type":"string"},"payload":{"type":"object"},"task_id":{"type":"integer"},"miner_address":{"type":"string"},"result_data":{"type":"string"},"payment_proof":{"type":"string","description":"x402 payment receipt; forwarded as X-PAYMENT header."}}}},{"name":"cortensor_info","description":"Get router information","inputSchema":{"type":"object","properties":{}}},{"name":"cortensor_about","description":"Get router about/metadata (public info and endpoints)","inputSchema":{"type":"object","properties":{}}},{"name":"cortensor_status","description":"Get router status","inputSchema":{"type":"object","properties":{}}},{"name":"cortensor_sessions","description":"List active sessions","inputSchema":{"type":"object","properties":{}}},{"name":"cortensor_tasks","description":"Get tasks for a session","inputSchema":{"type":"object","properties":{"session_id":{"type":"integer","description":"Session ID. Optional when ROUTER_MCP_TASKS_SESSION_ID (or ROUTER_MCP_DEFAULT_SESSION_ID) is configured."}}}},{"name":"cortensor_ping","description":"Health check ping. MCP payment policy: require x402 and pass receipt in payment_proof (forwarded as X-PAYMENT header).","inputSchema":{"type":"object","properties":{"x402":{"type":"boolean","description":"Set true for MCP payment policy (x402 required).","default":true},"payment_proof":{"type":"string","description":"x402 payment receipt; forwarded as X-PAYMENT header."}}}},{"name":"cortensor_miners","description":"List miners/nodes","inputSchema":{"type":"object","properties":{}}}]}}