Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": false,
"confirmation_signals": [],
"safeguard_count": 0,
"summary": {
"bulk_access_tools": 3,
"capability_distribution": {
"admin": 4,
"exec": 1,
"export": 3,
"filesystem": 6,
"network": 2,
"other": 2,
"read": 8
},
"destructive_tools": 0,
"egress_tools": 1,
"exec_tools": 1,
"high_risk_tools": 1,
"risk_distribution": {
"critical": 0,
"high": 1,
"low": 7,
"medium": 5
},
"secret_tools": 0,
"tool_count": 13
}
},
"latency_ms": null,
"status": "error"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": true,
"resource_links": true,
"resources": true,
"roots": false,
"sampling": false,
"structured_outputs": false
},
"enabled": [
"prompts",
"resource_links",
"resources"
],
"enabled_count": 3,
"initialize_capability_keys": [
"prompts",
"resources",
"tools"
]
},
"latency_ms": null,
"status": "warning"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"transport_compliance",
"action_safety",
"server_card"
],
"criteria": {
"action_safety": false,
"auth_flow": true,
"connector_replay": true,
"initialize": true,
"protocol_version": true,
"remote_transport": true,
"request_association": true,
"server_card": false,
"session_resume": true,
"step_up_auth": true,
"tool_surface": true,
"tools_list": true,
"transport_compliance": false
},
"high_risk_tools": 1,
"tool_count": 13,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"connector_replay_probe": {
"details": {
"reason": "no_historical_snapshot"
},
"latency_ms": null,
"status": "missing"
},
"determinism_probe": {
"details": {
"attempts": 2,
"baseline_signature": "73dd9c8626a0051e0ab5c91ee42ba2a2c2e8668b24da92fb9f76ed0744013bb3",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 102.0,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"prompts": {},
"resources": {},
"tools": {}
},
"instructions": "Use tools/list and tools/call to retrieve Tandem documentation guidance.",
"protocolVersion": "2025-06-18",
"serverInfo": {
"name": "ac.tandem/docs-mcp",
"title": "Tandem Docs MCP",
"version": "0.3.2"
}
}
},
"url": "https://tandem.ac/mcp"
},
"latency_ms": 370.78,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": false,
"prompt_available": true,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "missing"
},
"oauth_authorization_server": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"oauth_protected_resource": {
"details": {
"error": "Client error '404 Not Found' for url 'https://tandem.ac/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://tandem.ac/.well-known/oauth-protected-resource"
},
"latency_ms": 179.53,
"status": "error"
},
"official_registry_probe": {
"details": {
"direct_match": true,
"official_peer_count": 1,
"registry_identifier": "ac.tandem/docs-mcp",
"registry_source": "official_registry"
},
"latency_ms": null,
"status": "ok"
},
"openid_configuration": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"probe_noise_resilience": {
"details": {
"headers": {
"content-type": "text/plain; charset=utf-8"
},
"http_status": 200,
"url": "https://tandem.ac/robots.txt"
},
"latency_ms": 373.02,
"status": "ok"
},
"prompt_get": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"id": 4,
"jsonrpc": "2.0",
"result": {
"description": "Guide an agent through installing Tandem Engine using the official Tandem docs and return the most relevant pages first.",
"messages": [
{
"content": {
"text": "Guide an agent through installing Tandem Engine using the official Tandem docs and return the most relevant pages first.",
"type": "text"
},
"role": "user"
}
]
}
},
"prompt_name": "install_tandem_engine",
"url": "https://tandem.ac/mcp"
},
"latency_ms": 112.46,
"status": "ok"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"id": 3,
"jsonrpc": "2.0",
"result": {
"prompts": [
{
"description": "Prompt template for teaching an agent how to install Tandem Engine safely from the docs.",
"name": "install_tandem_engine",
"title": "Install Tandem Engine"
},
{
"description": "Prompt template for helping an agent learn the Tandem Python SDK and prerequisites.",
"name": "use_python_sdk",
"title": "Use the Python SDK"
},
{
"description": "Prompt template for helping an agent learn workflow building and orchestration patterns in Tandem.",
"name": "build_workflows",
"title": "Build Tandem workflows"
}
]
}
},
"url": "https://tandem.ac/mcp"
},
"latency_ms": 100.51,
"status": "ok"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2025-06-18",
"lag_days": 160,
"latest_known_version": "2025-11-25",
"releases_behind": 1,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"direct_official_match": true,
"drift_fields": [],
"metadata_document_count": 2,
"registry_homepage": null,
"registry_repository": null,
"registry_title": null,
"registry_version": null,
"server_card_homepage": null,
"server_card_repository": null,
"server_card_title": null,
"server_card_version": null
},
"latency_ms": null,
"status": "ok"
},
"request_association_probe": {
"details": {
"reason": "no_request_association_capabilities_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resource_read": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"id": 6,
"jsonrpc": "2.0",
"result": {
"contents": [
{
"mimeType": "text/plain",
"text": "Agent Team API Endpoints Section titled \u201cEndpoints\u201d GET /agent-team/templates Section titled \u201cGET /agent-team/templates\u201d Returns loaded agent templates. GET /agent-team/instances Section titled \u201cGET /agent-team/instances\u201d Query params: missionID (optional) parentInstanceID (optional) status (optional: queued|running|completed|failed|cancelled ) GET /agent-team/missions Section titled \u201cGET /agent-team/missions\u201d Returns mission-level rollups across instances: instanceCount runningCount completedCount failedCount cancelledCount queuedCount tokenUsedTotal toolCallsUsedTotal stepsUsedTotal costUsedUsdTotal GET /agent-team/approvals Section titled \u201cGET /agent-team/approvals\u201d Returns: spawnApprovals : queued spawn approvals (request-only edges / approval-required paths) toolApprovals : pending permission requests scoped to agent-team sessions POST /agent-team/spawn Section titled \u201cPOST /agent-team/spawn\u201d Request body: { \"missionID\" : \" m1 \" , \"parentInstanceID\" : \" ins_parent \" , \"templateID\" : \" worker-default \" , \"role\" : \" worker \" , \"source\" : \" ui_action \" , \"justification\" : \" Implement focused task \" , \"budget_override\" : { \"max_tokens\" : 8000 , \"max_steps\" : 4 , \"max_tool_calls\" : 10 , \"max_duration_ms\" : 240000 , \"max_cost_usd\" : 1.25 } } Success response: { \"ok\" : true , \"missionID\" : \" m1 \" , \"instanceID\" : \" ins_... \" , \"sessionID\" : \" ses_... \" , \"runID\" : null , \"status\" : \" running \" , \"skillHash\" : \" sha256:... \" } Error response: { \"ok\" : false , \"code\" : \" spawn_policy_missing \" , \"error\" : \" spawn policy file missing \" , \"requiresUserApproval\" : false } If policy requires user approval, response shape is still 200 with: { \"ok\" : false , \"code\" : \" spawn_requires_approval \" , \"requiresUserApproval\" : true } Tool-driven spawn ( spawn_agent ) Section titled \u201cTool-driven spawn (spawn_agent)\u201d spawn_agent uses the same server-side policy/runtime gate as POST /agent-team/spawn . Invoke it through a session prompt: /tool spawn_agent {\"missionID\":\"m1\",\"role\":\"worker\",\"templateID\":\"worker-default\",\"source\":\"tool_call\",\"justification\":\"parallelize implementation\"} Tool response metadata shape: { \"ok\" : true , \"missionID\" : \" m1 \" , \"instanceID\" : \" ins_... \" , \"sessionID\" : \" ses_... \" , \"runID\" : null , \"status\" : \" running \" , \"skillHash\" : \" sha256:... \" } POST /agent-team/instance/{id}/cancel Section titled \u201cPOST /agent-team/instance/{id}/cancel\u201d Request body: { \"reason\" : \" manual stop \" } POST /agent-team/approvals/spawn/{id}/approve Section titled \u201cPOST /agent-team/approvals/spawn/{id}/approve\u201d Request body: { \"reason\" : \" approved from command center \" } Response: { \"ok\" : true , \"approvalID\" : \" appr_... \" , \"decision\" : \" approved \" , \"instanceID\" : \" ins_... \" , \"missionID\" : \" m1 \" , \"status\" : \" running \" } POST /agent-team/approvals/spawn/{id}/deny Section titled \u201cPOST /agent-team/approvals/spawn/{id}/deny\u201d Request body: { \"reason\" : \" not aligned with mission scope \" } Response: { \"ok\" : true , \"approvalID\" : \" appr_... \" , \"decision\" : \" denied \" , \"reason\" : \" not aligned with mission scope \" } Response: { \"ok\" : true , \"instanceID\" : \" ins_... \" , \"sessionID\" : \" ses_... \" , \"status\" : \" cancelled \" } POST /agent-team/mission/{id}/cancel Section titled \u201cPOST /agent-team/mission/{id}/cancel\u201d Request body: { \"reason\" : \" stop all mission agents \" } Response: { \"ok\" : true , \"missionID\" : \" m1 \" , \"cancelledInstances\" : 3 } POST /mission/{id}/event (orchestrator bridge fields) Section titled \u201cPOST /mission/{id}/event (orchestrator bridge fields)\u201d When mission runtime bridge is active, mission event responses include additive fields: orchestratorSpawns : spawn results triggered by mission_started orchestratorCancellations : cancellation summary triggered by mission_canceled Edit page Previous Spawn Policy Reference Next Agent Team Events",
"uri": "tandem-docs://stable/reference/agent-team-api/"
}
]
}
},
"resource_uri": "tandem-docs://stable/reference/agent-team-api/",
"url": "https://tandem.ac/mcp"
},
"latency_ms": 280.68,
"status": "ok"
},
"resources_list": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"id": 5,
"jsonrpc": "2.0",
"result": {
"resources": [
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Agent-team HTTP API.",
"mimeType": "text/plain",
"name": "Agent Team Api",
"title": "Agent Team Api",
"uri": "tandem-docs://stable/reference/agent-team-api/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Agent-team event stream contract.",
"mimeType": "text/plain",
"name": "Agent Team Events",
"title": "Agent Team Events",
"uri": "tandem-docs://stable/reference/agent-team-events/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "System architecture overview.",
"mimeType": "text/plain",
"name": "Architecture",
"title": "Architecture",
"uri": "tandem-docs://stable/architecture/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Engine CLI commands.",
"mimeType": "text/plain",
"name": "Engine Commands",
"title": "Engine Commands",
"uri": "tandem-docs://stable/reference/engine-commands/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Engine testing guidance.",
"mimeType": "text/plain",
"name": "Engine Testing",
"title": "Engine Testing",
"uri": "tandem-docs://stable/engine-testing/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Eval Runner CLI reference for AI quality datasets and regression checks.",
"mimeType": "text/plain",
"name": "Eval Runner",
"title": "Eval Runner",
"uri": "tandem-docs://stable/eval-runner/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Canonical runtime reference for sessions, runs, context, memory, and channels.",
"mimeType": "text/plain",
"name": "How Tandem Works",
"title": "How Tandem Works",
"uri": "tandem-docs://stable/how-tandem-works/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Protocol and compatibility matrix.",
"mimeType": "text/plain",
"name": "Protocol Matrix",
"title": "Protocol Matrix",
"uri": "tandem-docs://stable/protocol-matrix/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Spawn policy and safety rules.",
"mimeType": "text/plain",
"name": "Spawn Policy",
"title": "Spawn Policy",
"uri": "tandem-docs://stable/reference/spawn-policy/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Tool API reference.",
"mimeType": "text/plain",
"name": "Tools",
"title": "Tools",
"uri": "tandem-docs://stable/reference/tools/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "TUI commands.",
"mimeType": "text/plain",
"name": "Tui Commands",
"title": "Tui Commands",
"uri": "tandem-docs://stable/reference/tui-commands/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Agent team architecture and behavior.",
"mimeType": "text/plain",
"name": "Agent Teams",
"title": "Agent Teams",
"uri": "tandem-docs://stable/agent-teams/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Sessions, context, and execution model.",
"mimeType": "text/plain",
"name": "Agents And Sessions",
"title": "Agents And Sessions",
"uri": "tandem-docs://stable/agents-and-sessions/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Slack, Discord, Telegram, and related integrations.",
"mimeType": "text/plain",
"name": "Channel Integrations",
"title": "Channel Integrations",
"uri": "tandem-docs://stable/channel-integrations/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Providers, keys, and system instructions.",
"mimeType": "text/plain",
"name": "Configuration",
"title": "Configuration",
"uri": "tandem-docs://stable/configuration/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Browser control panel and scaffolded app guidance.",
"mimeType": "text/plain",
"name": "Control Panel",
"title": "Control Panel",
"uri": "tandem-docs://stable/control-panel/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "First 10 minutes with Tandem Desktop.",
"mimeType": "text/plain",
"name": "First 10 Minutes",
"title": "First 10 Minutes",
"uri": "tandem-docs://stable/desktop/first-10-minutes/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Headless deployment from desktop workflows.",
"mimeType": "text/plain",
"name": "Headless Deployment",
"title": "Headless Deployment",
"uri": "tandem-docs://stable/desktop/headless-deployment/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Headless engine service mode.",
"mimeType": "text/plain",
"name": "Headless Service",
"title": "Headless Service",
"uri": "tandem-docs://stable/headless-service/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Interactive Learn walkthroughs.",
"mimeType": "text/plain",
"name": "Learn Walkthroughs",
"title": "Learn Walkthroughs",
"uri": "tandem-docs://stable/desktop/learn-walkthroughs/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Desktop overview.",
"mimeType": "text/plain",
"name": "Overview",
"title": "Overview",
"uri": "tandem-docs://stable/desktop/overview/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Settings and safety.",
"mimeType": "text/plain",
"name": "Settings And Safety",
"title": "Settings And Safety",
"uri": "tandem-docs://stable/desktop/settings-and-safety/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Desktop troubleshooting.",
"mimeType": "text/plain",
"name": "Troubleshooting",
"title": "Troubleshooting",
"uri": "tandem-docs://stable/desktop/troubleshooting/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Terminal UI guide.",
"mimeType": "text/plain",
"name": "Tui Guide",
"title": "Tui Guide",
"uri": "tandem-docs://stable/tui-guide/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Desktop workflows.",
"mimeType": "text/plain",
"name": "Workflows",
"title": "Workflows",
"uri": "tandem-docs://stable/desktop/workflows/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Safe Incident Monitor operating sequence for MCP-connected agents, SDK clients, and HTTP callers.",
"mimeType": "text/plain",
"name": "Agent Runtime Guide",
"title": "Agent Runtime Guide",
"uri": "tandem-docs://stable/incident-monitor/agent-runtime-guide/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Short checklist for agents creating, running, and maintaining Tandem workflows or missions.",
"mimeType": "text/plain",
"name": "Agent Workflow Mission Quickstart",
"title": "Agent Workflow Mission Quickstart",
"uri": "tandem-docs://stable/agent-workflow-mission-quickstart/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "End-to-end workflow examples, including the Linear repair-loop guard template for ACA-triggering issue webhooks.",
"mimeType": "text/plain",
"name": "Automation Examples For Teams",
"title": "Automation Examples For Teams",
"uri": "tandem-docs://stable/automation-examples-for-teams/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Direct webhook trigger setup for Automation V2, including Notion verification tokens and Linear issue webhook setup.",
"mimeType": "text/plain",
"name": "Automation V2 Webhooks",
"title": "Automation V2 Webhooks",
"uri": "tandem-docs://stable/automation-v2-webhooks/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "GitHub Projects coding-agent workflows.",
"mimeType": "text/plain",
"name": "Autonomous Coding Agents Github Projects",
"title": "Autonomous Coding Agents Github Projects",
"uri": "tandem-docs://stable/autonomous-coding-agents-github-projects/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Browser setup, install, and validation.",
"mimeType": "text/plain",
"name": "Browser Setup And Testing",
"title": "Browser Setup And Testing",
"uri": "tandem-docs://stable/browser-setup-and-testing/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "How agents should choose providers, defaults, and per-stage model overrides.",
"mimeType": "text/plain",
"name": "Choosing Providers And Models For Agents",
"title": "Choosing Providers And Models For Agents",
"uri": "tandem-docs://stable/choosing-providers-and-models-for-agents/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Which Tandem path to use and how to create, apply, schedule, and run it.",
"mimeType": "text/plain",
"name": "Creating And Running Workflows And Missions",
"title": "Creating And Running Workflows And Missions",
"uri": "tandem-docs://stable/creating-and-running-workflows-and-missions/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Destination router model for GitHub, Linear, webhooks, telemetry, MCP tools, and memory.",
"mimeType": "text/plain",
"name": "Destination Router",
"title": "Destination Router",
"uri": "tandem-docs://stable/incident-monitor/destination-router/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Destination adapter coverage and readiness requirements for governed Incident Monitor publishing.",
"mimeType": "text/plain",
"name": "Destinations",
"title": "Destinations",
"uri": "tandem-docs://stable/incident-monitor/destinations/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "How to obtain an engine token and authenticate SDK or HTTP calls.",
"mimeType": "text/plain",
"name": "Engine Authentication For Agents",
"title": "Engine Authentication For Agents",
"uri": "tandem-docs://stable/engine-authentication-for-agents/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Agent-facing onboarding order for client pilots, go-live smoke tests, and enterprise hardening.",
"mimeType": "text/plain",
"name": "Enterprise Client Onboarding Runbook",
"title": "Enterprise Client Onboarding Runbook",
"uri": "tandem-docs://stable/enterprise-client-onboarding-runbook/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Agent-facing enterprise setup guide for tenant-scoped memory, governed MCP setup, source bindings, connector credentials, and quarantine review.",
"mimeType": "text/plain",
"name": "Enterprise Data Governance",
"title": "Enterprise Data Governance",
"uri": "tandem-docs://stable/enterprise-data-governance/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "External source identity, monitored source bindings, and destination routing context.",
"mimeType": "text/plain",
"name": "External Sources",
"title": "External Sources",
"uri": "tandem-docs://stable/incident-monitor/external-sources/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Incident Monitor API and behavior reference for governed failure intake, drafts, approvals, routing, receipts, and destination publishes.",
"mimeType": "text/plain",
"name": "Incident Monitor",
"title": "Incident Monitor",
"uri": "tandem-docs://stable/reference/incident-monitor/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Configure external project log intake, scoped report keys, reset/replay debug actions, and monitored project setup.",
"mimeType": "text/plain",
"name": "Incident Monitor External Log Intake",
"title": "Incident Monitor External Log Intake",
"uri": "tandem-docs://stable/incident-monitor-external-log-intake/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Author, publish, operate, replay, and recover version-pinned goals spanning multiple Automation V2 workflow runs.",
"mimeType": "text/plain",
"name": "Long Running Multi Workflow Goals",
"title": "Long Running Multi Workflow Goals",
"uri": "tandem-docs://stable/long-running-multi-workflow-goals/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Automated agent workflows and MCP patterns.",
"mimeType": "text/plain",
"name": "Mcp Automated Agents",
"title": "Mcp Automated Agents",
"uri": "tandem-docs://stable/mcp-automated-agents/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Incident Monitor overview for governed intake, triage, routing, evidence, destination readiness, and receipts.",
"mimeType": "text/plain",
"name": "Overview",
"title": "Overview",
"uri": "tandem-docs://stable/incident-monitor/overview/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Production governance guidance for deployment cards, posture checks, assessment reports, protected evidence, and receipts.",
"mimeType": "text/plain",
"name": "Production Governance",
"title": "Production Governance",
"uri": "tandem-docs://stable/incident-monitor/production-governance/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "How to prompt Tandem workflows, missions, and staged recurring operations.",
"mimeType": "text/plain",
"name": "Prompting Workflows And Missions",
"title": "Prompting Workflows And Missions",
"uri": "tandem-docs://stable/prompting-workflows-and-missions/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Python SDK.",
"mimeType": "text/plain",
"name": "Python",
"title": "Python",
"uri": "tandem-docs://stable/sdk/python/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "SDK automation scheduling.",
"mimeType": "text/plain",
"name": "Scheduling Automations",
"title": "Scheduling Automations",
"uri": "tandem-docs://stable/sdk/scheduling-automations/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "SDK landing page.",
"mimeType": "text/plain",
"name": "Sdk",
"title": "Sdk",
"uri": "tandem-docs://stable/sdk/"
},
{
"annotations": {
"audience": [
"assistant"
],
"priority": 100
},
"description": "Read-only authority inventory, posture assessment, scenario packs, and remediation routing.",
"mimeType": "text/plain",
"name": "Security Posture",
"title": "Security Posture",
"uri": "tandem-docs://stable/incident-monitor/security-posture/"
}
]
}
},
"url": "https://tandem.ac/mcp"
},
"latency_ms": 107.81,
"status": "ok"
},
"server_card": {
"details": {
"error": "Client error '404 Not Found' for url 'https://tandem.ac/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://tandem.ac/.well-known/mcp/server-card.json"
},
"latency_ms": 499.64,
"status": "error"
},
"session_resume_probe": {
"details": {
"protocol_version": "2025-06-18",
"reason": "no_session_id",
"resume_expected": true,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [],
"broad_scopes": [],
"challenge_headers": [],
"minimal_scope_documented": false,
"oauth_present": false,
"scope_specificity_ratio": 0.0,
"step_up_signals": [],
"supported_scopes": []
},
"latency_ms": null,
"status": "missing"
},
"tool_snapshot_probe": {
"details": {
"current_tool_count": 13,
"reason": "no_historical_snapshot"
},
"latency_ms": null,
"status": "missing"
},
"tools_list": {
"details": {
"headers": {
"content-type": "application/json"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search Tandem docs"
},
"description": "Search the published Tandem docs index for relevant pages.",
"inputSchema": {
"properties": {
"audience": {
"description": "Optional audience filter such as developer, desktop user, or operator.",
"type": "string"
},
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable. Use next, refs/<sha>, or releases/<version> only when explicitly needed.",
"type": "string"
},
"engine_version": {
"description": "Optional Tandem engine version hint. If supplied without docs_ref, the MCP still defaults to stable unless a matching versioned docs ref is configured.",
"type": "string"
},
"limit": {
"description": "Maximum number of matching docs pages to return.",
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "The Tandem question, task, or keyword query to search for.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_docs"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Fetch a docs page"
},
"description": "Fetch and normalize a published Tandem docs page by path or URL.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"engine_version": {
"description": "Optional Tandem engine version hint for compatibility checks.",
"type": "string"
},
"path": {
"description": "Docs path like /sdk/python/ or a full Tandem docs URL.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"name": "get_doc"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get a starting docs path"
},
"description": "Recommend the best Tandem docs starting path for a desktop user, server admin, or developer.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"role": {
"description": "The user role to optimize the docs starting point for.",
"enum": [
"desktop",
"server_admin",
"developer"
],
"type": "string"
}
},
"required": [
"role"
],
"type": "object"
},
"name": "get_start_path"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Recommend next docs"
},
"description": "Recommend the next Tandem docs to read after a current page, optionally biased toward a goal.",
"inputSchema": {
"properties": {
"current_path": {
"description": "Current Tandem docs path the user has already read.",
"type": "string"
},
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"goal": {
"description": "Optional goal such as install Tandem, use the Python SDK, or build workflows.",
"type": "string"
},
"limit": {
"description": "Maximum number of next-doc recommendations to return.",
"maximum": 10,
"minimum": 1,
"type": "integer"
}
},
"required": [
"current_path"
],
"type": "object"
},
"name": "recommend_next_docs"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Answer a Tandem how-to question"
},
"description": "Answer how to install or use Tandem, build workflows, or use the SDKs by synthesizing relevant published docs.",
"inputSchema": {
"properties": {
"audience": {
"description": "Optional audience hint such as developer, desktop user, or operator.",
"type": "string"
},
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"engine_version": {
"description": "Optional Tandem engine version hint. Prefer stable docs for installed engines.",
"type": "string"
},
"limit": {
"description": "Maximum number of supporting docs recommendations to include.",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"task": {
"description": "The Tandem task or question that needs a docs-grounded answer.",
"type": "string"
}
},
"required": [
"task"
],
"type": "object"
},
"name": "answer_how_to"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get a Tandem guide"
},
"description": "Return a structured Tandem learning guide for install-engine, python-sdk, typescript-sdk, build-workflows, or headless-deploy.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"topic": {
"description": "Named Tandem learning guide to return.",
"enum": [
"install-engine",
"python-sdk",
"typescript-sdk",
"build-workflows",
"headless-deploy"
],
"type": "string"
}
},
"required": [
"topic"
],
"type": "object"
},
"name": "get_tandem_guide"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"title": "Warm docs cache"
},
"description": "Refresh the docs index and preload the most important Tandem docs pages into cache.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"force_refresh": {
"description": "Whether to bypass cache and force fresh upstream fetches first.",
"type": "boolean"
}
},
"type": "object"
},
"name": "warmup_docs_cache"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Inspect docs cache status"
},
"description": "Inspect the current docs cache state for index sources and warmed pages.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_docs_cache_status"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"title": "Refresh docs index"
},
"description": "Force-refresh docs indexes and report whether data came from the network, cache, or stale fallback.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"force_refresh": {
"description": "Whether to bypass cache and force a network refresh attempt.",
"type": "boolean"
}
},
"type": "object"
},
"name": "refresh_docs_index"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"title": "Refresh one docs page"
},
"description": "Force-refresh a docs page and report whether content came from the network, cache, or stale fallback.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"force_refresh": {
"description": "Whether to bypass cache and force a network refresh attempt.",
"type": "boolean"
},
"path": {
"description": "Docs path like /start-here/ or /sdk/python/ to refresh.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"name": "refresh_doc_page"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"title": "Invalidate docs cache"
},
"description": "Invalidate docs cache entries for index data, all pages, or a specific page path.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Optional docs ref to scope page/index cache invalidation.",
"type": "string"
},
"path": {
"description": "Required when target is page; identifies the specific docs path to invalidate.",
"type": "string"
},
"target": {
"description": "Which cache area to invalidate.",
"enum": [
"all",
"index",
"pages",
"page"
],
"type": "string"
}
},
"type": "object"
},
"name": "invalidate_docs_cache"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"title": "Compare docs index refresh"
},
"description": "Force-refresh the docs indexes and return before/after hashes so content changes can be proven.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
}
},
"type": "object"
},
"name": "compare_docs_index_refresh"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"title": "Compare page refresh"
},
"description": "Force-refresh a docs page and return before/after hashes so page content changes can be proven.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"path": {
"description": "Docs path like /start-here/ or /sdk/python/ to compare before and after refresh.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"name": "compare_doc_page_refresh"
}
]
}
},
"url": "https://tandem.ac/mcp"
},
"latency_ms": 363.45,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search Tandem docs"
},
"description": "Search the published Tandem docs index for relevant pages.",
"inputSchema": {
"properties": {
"audience": {
"description": "Optional audience filter such as developer, desktop user, or operator.",
"type": "string"
},
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable. Use next, refs/<sha>, or releases/<version> only when explicitly needed.",
"type": "string"
},
"engine_version": {
"description": "Optional Tandem engine version hint. If supplied without docs_ref, the MCP still defaults to stable unless a matching versioned docs ref is configured.",
"type": "string"
},
"limit": {
"description": "Maximum number of matching docs pages to return.",
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "The Tandem question, task, or keyword query to search for.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_docs"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Fetch a docs page"
},
"description": "Fetch and normalize a published Tandem docs page by path or URL.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"engine_version": {
"description": "Optional Tandem engine version hint for compatibility checks.",
"type": "string"
},
"path": {
"description": "Docs path like /sdk/python/ or a full Tandem docs URL.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"name": "get_doc"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get a starting docs path"
},
"description": "Recommend the best Tandem docs starting path for a desktop user, server admin, or developer.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"role": {
"description": "The user role to optimize the docs starting point for.",
"enum": [
"desktop",
"server_admin",
"developer"
],
"type": "string"
}
},
"required": [
"role"
],
"type": "object"
},
"name": "get_start_path"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Recommend next docs"
},
"description": "Recommend the next Tandem docs to read after a current page, optionally biased toward a goal.",
"inputSchema": {
"properties": {
"current_path": {
"description": "Current Tandem docs path the user has already read.",
"type": "string"
},
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"goal": {
"description": "Optional goal such as install Tandem, use the Python SDK, or build workflows.",
"type": "string"
},
"limit": {
"description": "Maximum number of next-doc recommendations to return.",
"maximum": 10,
"minimum": 1,
"type": "integer"
}
},
"required": [
"current_path"
],
"type": "object"
},
"name": "recommend_next_docs"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Answer a Tandem how-to question"
},
"description": "Answer how to install or use Tandem, build workflows, or use the SDKs by synthesizing relevant published docs.",
"inputSchema": {
"properties": {
"audience": {
"description": "Optional audience hint such as developer, desktop user, or operator.",
"type": "string"
},
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"engine_version": {
"description": "Optional Tandem engine version hint. Prefer stable docs for installed engines.",
"type": "string"
},
"limit": {
"description": "Maximum number of supporting docs recommendations to include.",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"task": {
"description": "The Tandem task or question that needs a docs-grounded answer.",
"type": "string"
}
},
"required": [
"task"
],
"type": "object"
},
"name": "answer_how_to"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get a Tandem guide"
},
"description": "Return a structured Tandem learning guide for install-engine, python-sdk, typescript-sdk, build-workflows, or headless-deploy.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"topic": {
"description": "Named Tandem learning guide to return.",
"enum": [
"install-engine",
"python-sdk",
"typescript-sdk",
"build-workflows",
"headless-deploy"
],
"type": "string"
}
},
"required": [
"topic"
],
"type": "object"
},
"name": "get_tandem_guide"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"title": "Warm docs cache"
},
"description": "Refresh the docs index and preload the most important Tandem docs pages into cache.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"force_refresh": {
"description": "Whether to bypass cache and force fresh upstream fetches first.",
"type": "boolean"
}
},
"type": "object"
},
"name": "warmup_docs_cache"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Inspect docs cache status"
},
"description": "Inspect the current docs cache state for index sources and warmed pages.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_docs_cache_status"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"title": "Refresh docs index"
},
"description": "Force-refresh docs indexes and report whether data came from the network, cache, or stale fallback.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"force_refresh": {
"description": "Whether to bypass cache and force a network refresh attempt.",
"type": "boolean"
}
},
"type": "object"
},
"name": "refresh_docs_index"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"title": "Refresh one docs page"
},
"description": "Force-refresh a docs page and report whether content came from the network, cache, or stale fallback.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"force_refresh": {
"description": "Whether to bypass cache and force a network refresh attempt.",
"type": "boolean"
},
"path": {
"description": "Docs path like /start-here/ or /sdk/python/ to refresh.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"name": "refresh_doc_page"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"title": "Invalidate docs cache"
},
"description": "Invalidate docs cache entries for index data, all pages, or a specific page path.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Optional docs ref to scope page/index cache invalidation.",
"type": "string"
},
"path": {
"description": "Required when target is page; identifies the specific docs path to invalidate.",
"type": "string"
},
"target": {
"description": "Which cache area to invalidate.",
"enum": [
"all",
"index",
"pages",
"page"
],
"type": "string"
}
},
"type": "object"
},
"name": "invalidate_docs_cache"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"title": "Compare docs index refresh"
},
"description": "Force-refresh the docs indexes and return before/after hashes so content changes can be proven.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
}
},
"type": "object"
},
"name": "compare_docs_index_refresh"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"title": "Compare page refresh"
},
"description": "Force-refresh a docs page and return before/after hashes so page content changes can be proven.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"path": {
"description": "Docs path like /start-here/ or /sdk/python/ to compare before and after refresh.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"name": "compare_doc_page_refresh"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-06-18",
"session_id_present": false,
"transport": "streamable-http"
},
"latency_ms": 101.8,
"status": "error"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": false,
"live_probe": "not_executed",
"sample_target": {
"type": "resource",
"uri": "tandem-docs://stable/reference/agent-team-api/"
}
},
"initialize_capability_keys": [
"prompts",
"resources",
"tools"
],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 404,
"probe_status": "missing"
}
},
"latency_ms": 104.48,
"status": "missing"
}
},
"failures": {
"oauth_authorization_server": {
"reason": "no_authorization_server"
},
"oauth_protected_resource": {
"error": "Client error '404 Not Found' for url 'https://tandem.ac/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://tandem.ac/.well-known/oauth-protected-resource"
},
"openid_configuration": {
"reason": "no_authorization_server"
},
"server_card": {
"error": "Client error '404 Not Found' for url 'https://tandem.ac/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://tandem.ac/.well-known/mcp/server-card.json"
},
"transport_compliance_probe": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Search Tandem docs"
},
"description": "Search the published Tandem docs index for relevant pages.",
"inputSchema": {
"properties": {
"audience": {
"description": "Optional audience filter such as developer, desktop user, or operator.",
"type": "string"
},
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable. Use next, refs/<sha>, or releases/<version> only when explicitly needed.",
"type": "string"
},
"engine_version": {
"description": "Optional Tandem engine version hint. If supplied without docs_ref, the MCP still defaults to stable unless a matching versioned docs ref is configured.",
"type": "string"
},
"limit": {
"description": "Maximum number of matching docs pages to return.",
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "The Tandem question, task, or keyword query to search for.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_docs"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Fetch a docs page"
},
"description": "Fetch and normalize a published Tandem docs page by path or URL.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"engine_version": {
"description": "Optional Tandem engine version hint for compatibility checks.",
"type": "string"
},
"path": {
"description": "Docs path like /sdk/python/ or a full Tandem docs URL.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"name": "get_doc"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get a starting docs path"
},
"description": "Recommend the best Tandem docs starting path for a desktop user, server admin, or developer.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"role": {
"description": "The user role to optimize the docs starting point for.",
"enum": [
"desktop",
"server_admin",
"developer"
],
"type": "string"
}
},
"required": [
"role"
],
"type": "object"
},
"name": "get_start_path"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Recommend next docs"
},
"description": "Recommend the next Tandem docs to read after a current page, optionally biased toward a goal.",
"inputSchema": {
"properties": {
"current_path": {
"description": "Current Tandem docs path the user has already read.",
"type": "string"
},
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"goal": {
"description": "Optional goal such as install Tandem, use the Python SDK, or build workflows.",
"type": "string"
},
"limit": {
"description": "Maximum number of next-doc recommendations to return.",
"maximum": 10,
"minimum": 1,
"type": "integer"
}
},
"required": [
"current_path"
],
"type": "object"
},
"name": "recommend_next_docs"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true,
"title": "Answer a Tandem how-to question"
},
"description": "Answer how to install or use Tandem, build workflows, or use the SDKs by synthesizing relevant published docs.",
"inputSchema": {
"properties": {
"audience": {
"description": "Optional audience hint such as developer, desktop user, or operator.",
"type": "string"
},
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"engine_version": {
"description": "Optional Tandem engine version hint. Prefer stable docs for installed engines.",
"type": "string"
},
"limit": {
"description": "Maximum number of supporting docs recommendations to include.",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"task": {
"description": "The Tandem task or question that needs a docs-grounded answer.",
"type": "string"
}
},
"required": [
"task"
],
"type": "object"
},
"name": "answer_how_to"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Get a Tandem guide"
},
"description": "Return a structured Tandem learning guide for install-engine, python-sdk, typescript-sdk, build-workflows, or headless-deploy.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"topic": {
"description": "Named Tandem learning guide to return.",
"enum": [
"install-engine",
"python-sdk",
"typescript-sdk",
"build-workflows",
"headless-deploy"
],
"type": "string"
}
},
"required": [
"topic"
],
"type": "object"
},
"name": "get_tandem_guide"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"title": "Warm docs cache"
},
"description": "Refresh the docs index and preload the most important Tandem docs pages into cache.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"force_refresh": {
"description": "Whether to bypass cache and force fresh upstream fetches first.",
"type": "boolean"
}
},
"type": "object"
},
"name": "warmup_docs_cache"
},
{
"annotations": {
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Inspect docs cache status"
},
"description": "Inspect the current docs cache state for index sources and warmed pages.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_docs_cache_status"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"title": "Refresh docs index"
},
"description": "Force-refresh docs indexes and report whether data came from the network, cache, or stale fallback.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"force_refresh": {
"description": "Whether to bypass cache and force a network refresh attempt.",
"type": "boolean"
}
},
"type": "object"
},
"name": "refresh_docs_index"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"title": "Refresh one docs page"
},
"description": "Force-refresh a docs page and report whether content came from the network, cache, or stale fallback.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"force_refresh": {
"description": "Whether to bypass cache and force a network refresh attempt.",
"type": "boolean"
},
"path": {
"description": "Docs path like /start-here/ or /sdk/python/ to refresh.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"name": "refresh_doc_page"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"title": "Invalidate docs cache"
},
"description": "Invalidate docs cache entries for index data, all pages, or a specific page path.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Optional docs ref to scope page/index cache invalidation.",
"type": "string"
},
"path": {
"description": "Required when target is page; identifies the specific docs path to invalidate.",
"type": "string"
},
"target": {
"description": "Which cache area to invalidate.",
"enum": [
"all",
"index",
"pages",
"page"
],
"type": "string"
}
},
"type": "object"
},
"name": "invalidate_docs_cache"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"title": "Compare docs index refresh"
},
"description": "Force-refresh the docs indexes and return before/after hashes so content changes can be proven.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
}
},
"type": "object"
},
"name": "compare_docs_index_refresh"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"title": "Compare page refresh"
},
"description": "Force-refresh a docs page and return before/after hashes so page content changes can be proven.",
"inputSchema": {
"properties": {
"docs_ref": {
"description": "Docs channel or immutable ref. Defaults to stable.",
"type": "string"
},
"path": {
"description": "Docs path like /start-here/ or /sdk/python/ to compare before and after refresh.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"name": "compare_doc_page_refresh"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-06-18",
"session_id_present": false,
"transport": "streamable-http"
}
},
"remote_url": "https://tandem.ac/mcp",
"server_card_payload": null,
"server_identifier": "ac.tandem/docs-mcp"
}