{
  "ok": true,
  "resource": {
    "id": "RES_03EE50D1161F",
    "resource_type": "mcp_server",
    "canonical_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ac.tandem%2Fdocs-mcp/versions/0.3.2",
    "name": "docs-mcp",
    "summary_en": "Remote MCP server for Tandem docs, install guides, SDKs, workflows, and agent setup help.",
    "summary_zh": "远程 MCP 服务器，提供 Tandem 文档搜索、获取、推荐及操作指南解答，支持缓存管理。",
    "description_en": "docs-mcp is a remote MCP server that provides access to Tandem documentation, including install guides, SDK references, workflow guides, and agent setup help. It exposes 13 tools for searching, fetching, and recommending documentation, as well as answering how-to questions and managing a docs cache. The server is reachable at https://tandem.ac/mcp and was verified as healthy via MCP discovery.",
    "description_zh": "docs-mcp 是一个远程 MCP 服务器，提供对 Tandem 文档的访问，包括安装指南、SDK 参考、工作流指南和代理设置帮助。它公开了 13 个工具，用于搜索、获取和推荐文档，以及回答操作指南问题和管理文档缓存。该服务器可通过 https://tandem.ac/mcp 访问，并已通过 MCP 发现验证为健康。",
    "provider_name": "ac.tandem",
    "homepage_url": "https://tandem.ac/docs-mcp",
    "endpoint_url": "https://tandem.ac/mcp",
    "source_url": "https://github.com/frumu-ai/tandem",
    "icon_url": null,
    "cover_image_url": null,
    "capabilities": [
      "documentation.search",
      "documentation.retrieve",
      "documentation.recommend",
      "documentation.answer-question",
      "cache.manage"
    ],
    "categories": [
      "software-development"
    ],
    "industries": [],
    "protocols": [
      "mcp"
    ],
    "auth": {
      "type": "unknown"
    },
    "pricing": {
      "model": "unknown"
    },
    "input_schema": {},
    "output_schema": {},
    "metadata": {
      "content_language": "en",
      "translation_status": "original-only",
      "official_registry": {
        "version": "0.3.2",
        "packages": [],
        "remotes": []
      },
      "review_gate": {
        "passed": true,
        "reasons": [],
        "policy_version": "review-gate-v1",
        "evaluated_at": "2026-09-04T04:31:00.661Z"
      },
      "catalog_profile": {
        "version": "catalog-profile-v1",
        "primary_category": "software-development",
        "integrations": [
          "GitHub"
        ],
        "use_cases": {
          "en": [
            "Search Tandem documentation for relevant pages",
            "Fetch and normalize published Tandem docs pages",
            "Answer how-to questions about Tandem installation, SDKs, and workflows"
          ],
          "zh": [
            "搜索 Tandem 文档中的相关页面",
            "获取并规范化已发布的 Tandem 文档页面",
            "回答关于 Tandem 安装、SDK 和工作流的操作指南问题"
          ]
        },
        "categories": [
          "software-development"
        ],
        "industries": [],
        "copy": {
          "source_language": "en",
          "summary_zh_state": "present",
          "description_zh_state": "present",
          "description_en_state": "present"
        }
      }
    },
    "latest_version": "0.3.2",
    "status": "listed",
    "health_status": "healthy",
    "source_kind": "imported",
    "source_agent": "registry.modelcontextprotocol.io",
    "trust": {
      "signal": "none",
      "reason": null,
      "signals": {
        "yellow": 0,
        "red": 0
      }
    },
    "review_summary": {
      "method_version": "capability-evidence-v3",
      "capability_definition": "strong",
      "contract_completeness": "strong",
      "access_friction": "low",
      "operational_transparency": "strong",
      "evidence_strength": "protocol_inspected",
      "use_readiness": "ready_for_guidance",
      "reviewed_at": "2026-09-04T04:31:01.650Z"
    },
    "experience_count": 0,
    "verified_experience_count": 0,
    "usage_count": 0,
    "success_rate": null,
    "first_seen_at": "2026-09-03T02:49:20.703Z",
    "last_seen_at": "2026-09-04T04:31:00.915Z",
    "published_at": "2026-09-03T06:25:14.813Z",
    "created_at": "2026-09-03T02:49:20.703Z",
    "updated_at": "2026-09-04T04:31:01.650Z",
    "api_url": "https://aiworkshub.io/api/v1/resources/RES_03EE50D1161F",
    "reviews_url": "https://aiworkshub.io/api/v1/resources/RES_03EE50D1161F/reviews",
    "public_url": "https://aiworkshub.io/resources/RES_03EE50D1161F",
    "distribution": {
      "canonical_identity": "https://registry.modelcontextprotocol.io/v0.1/servers/ac.tandem%2Fdocs-mcp/versions/0.3.2",
      "syndicatable": true,
      "origins": [
        {
          "registry_url": "https://registry.modelcontextprotocol.io/",
          "upstream_resource_id": "ac.tandem/docs-mcp@0.3.2",
          "upstream_record_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ac.tandem%2Fdocs-mcp/versions/0.3.2",
          "relation": "syndicated",
          "metadata": {
            "source": "official-mcp-registry"
          },
          "first_seen_at": "2026-09-03T02:49:20.703Z",
          "last_seen_at": "2026-09-04T04:31:00.915Z"
        }
      ]
    },
    "tools": [
      {
        "name": "answer_how_to",
        "title_en": "Answer a Tandem how-to question",
        "title_zh": "回答 Tandem 操作指南问题",
        "description_en": "Answer how to install or use Tandem, build workflows, or use the SDKs by synthesizing relevant published docs.",
        "description_zh": "通过综合相关的已发布文档，回答如何安装或使用 Tandem、构建工作流或使用 SDK。",
        "input_schema": {
          "type": "object",
          "properties": {
            "task": {
              "type": "string",
              "description": "The Tandem task or question that needs a docs-grounded answer."
            },
            "docs_ref": {
              "type": "string",
              "description": "Docs channel or immutable ref. Defaults to stable."
            },
            "engine_version": {
              "type": "string",
              "description": "Optional Tandem engine version hint. Prefer stable docs for installed engines."
            },
            "audience": {
              "type": "string",
              "description": "Optional audience hint such as developer, desktop user, or operator."
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10,
              "description": "Maximum number of supporting docs recommendations to include."
            }
          },
          "required": [
            "task"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": true,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "compare_doc_page_refresh",
        "title_en": "Compare page refresh",
        "title_zh": "比较页面刷新",
        "description_en": "Force-refresh a docs page and return before/after hashes so page content changes can be proven.",
        "description_zh": "强制刷新文档页面并返回前后哈希值，以便证明页面内容变化。",
        "input_schema": {
          "type": "object",
          "properties": {
            "path": {
              "type": "string",
              "description": "Docs path like /start-here/ or /sdk/python/ to compare before and after refresh."
            },
            "docs_ref": {
              "type": "string",
              "description": "Docs channel or immutable ref. Defaults to stable."
            }
          },
          "required": [
            "path"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "write",
        "open_world": true,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "compare_docs_index_refresh",
        "title_en": "Compare docs index refresh",
        "title_zh": "比较文档索引刷新",
        "description_en": "Force-refresh the docs indexes and return before/after hashes so content changes can be proven.",
        "description_zh": "强制刷新文档索引并返回前后哈希值，以便证明内容变化。",
        "input_schema": {
          "type": "object",
          "properties": {
            "docs_ref": {
              "type": "string",
              "description": "Docs channel or immutable ref. Defaults to stable."
            }
          }
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "write",
        "open_world": true,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "get_doc",
        "title_en": "Fetch a docs page",
        "title_zh": "获取文档页面",
        "description_en": "Fetch and normalize a published Tandem docs page by path or URL.",
        "description_zh": "通过路径或 URL 获取并规范化已发布的 Tandem 文档页面。",
        "input_schema": {
          "type": "object",
          "properties": {
            "path": {
              "type": "string",
              "description": "Docs path like /sdk/python/ or a full Tandem docs URL."
            },
            "docs_ref": {
              "type": "string",
              "description": "Docs channel or immutable ref. Defaults to stable."
            },
            "engine_version": {
              "type": "string",
              "description": "Optional Tandem engine version hint for compatibility checks."
            }
          },
          "required": [
            "path"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": true,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "get_docs_cache_status",
        "title_en": "Inspect docs cache status",
        "title_zh": "检查文档缓存状态",
        "description_en": "Inspect the current docs cache state for index sources and warmed pages.",
        "description_zh": "检查当前文档缓存状态，包括索引源和已预热的页面。",
        "input_schema": {
          "type": "object",
          "properties": {}
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "get_start_path",
        "title_en": "Get a starting docs path",
        "title_zh": "获取起始文档路径",
        "description_en": "Recommend the best Tandem docs starting path for a desktop user, server admin, or developer.",
        "description_zh": "为桌面用户、服务器管理员或开发者推荐最佳的 Tandem 文档起始路径。",
        "input_schema": {
          "type": "object",
          "properties": {
            "role": {
              "type": "string",
              "enum": [
                "desktop",
                "server_admin",
                "developer"
              ],
              "description": "The user role to optimize the docs starting point for."
            },
            "docs_ref": {
              "type": "string",
              "description": "Docs channel or immutable ref. Defaults to stable."
            }
          },
          "required": [
            "role"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "get_tandem_guide",
        "title_en": "Get a Tandem guide",
        "title_zh": "获取 Tandem 指南",
        "description_en": "Return a structured Tandem learning guide for install-engine, python-sdk, typescript-sdk, build-workflows, or headless-deploy.",
        "description_zh": "返回针对 install-engine、python-sdk、typescript-sdk、build-workflows 或 headless-deploy 的结构化 Tandem 学习指南。",
        "input_schema": {
          "type": "object",
          "properties": {
            "topic": {
              "type": "string",
              "enum": [
                "install-engine",
                "python-sdk",
                "typescript-sdk",
                "build-workflows",
                "headless-deploy"
              ],
              "description": "Named Tandem learning guide to return."
            },
            "docs_ref": {
              "type": "string",
              "description": "Docs channel or immutable ref. Defaults to stable."
            }
          },
          "required": [
            "topic"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "invalidate_docs_cache",
        "title_en": "Invalidate docs cache",
        "title_zh": "使文档缓存失效",
        "description_en": "Invalidate docs cache entries for index data, all pages, or a specific page path.",
        "description_zh": "使索引数据、所有页面或特定页面路径的文档缓存条目失效。",
        "input_schema": {
          "type": "object",
          "properties": {
            "target": {
              "type": "string",
              "enum": [
                "all",
                "index",
                "pages",
                "page"
              ],
              "description": "Which cache area to invalidate."
            },
            "path": {
              "type": "string",
              "description": "Required when target is page; identifies the specific docs path to invalidate."
            },
            "docs_ref": {
              "type": "string",
              "description": "Optional docs ref to scope page/index cache invalidation."
            }
          }
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "write",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "recommend_next_docs",
        "title_en": "Recommend next docs",
        "title_zh": "推荐后续文档",
        "description_en": "Recommend the next Tandem docs to read after a current page, optionally biased toward a goal.",
        "description_zh": "在当前页面之后推荐接下来要阅读的 Tandem 文档，可选地偏向某个目标。",
        "input_schema": {
          "type": "object",
          "properties": {
            "current_path": {
              "type": "string",
              "description": "Current Tandem docs path the user has already read."
            },
            "docs_ref": {
              "type": "string",
              "description": "Docs channel or immutable ref. Defaults to stable."
            },
            "goal": {
              "type": "string",
              "description": "Optional goal such as install Tandem, use the Python SDK, or build workflows."
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10,
              "description": "Maximum number of next-doc recommendations to return."
            }
          },
          "required": [
            "current_path"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": true,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "refresh_doc_page",
        "title_en": "Refresh one docs page",
        "title_zh": "刷新单个文档页面",
        "description_en": "Force-refresh a docs page and report whether content came from the network, cache, or stale fallback.",
        "description_zh": "强制刷新文档页面，并报告内容来自网络、缓存还是过期回退。",
        "input_schema": {
          "type": "object",
          "properties": {
            "path": {
              "type": "string",
              "description": "Docs path like /start-here/ or /sdk/python/ to refresh."
            },
            "docs_ref": {
              "type": "string",
              "description": "Docs channel or immutable ref. Defaults to stable."
            },
            "force_refresh": {
              "type": "boolean",
              "description": "Whether to bypass cache and force a network refresh attempt."
            }
          },
          "required": [
            "path"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "write",
        "open_world": true,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "refresh_docs_index",
        "title_en": "Refresh docs index",
        "title_zh": "刷新文档索引",
        "description_en": "Force-refresh docs indexes and report whether data came from the network, cache, or stale fallback.",
        "description_zh": "强制刷新文档索引，并报告数据来自网络、缓存还是过期回退。",
        "input_schema": {
          "type": "object",
          "properties": {
            "force_refresh": {
              "type": "boolean",
              "description": "Whether to bypass cache and force a network refresh attempt."
            },
            "docs_ref": {
              "type": "string",
              "description": "Docs channel or immutable ref. Defaults to stable."
            }
          }
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "write",
        "open_world": true,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "search_docs",
        "title_en": "Search Tandem docs",
        "title_zh": "搜索 Tandem 文档",
        "description_en": "Search the published Tandem docs index for relevant pages.",
        "description_zh": "在已发布的 Tandem 文档索引中搜索相关页面。",
        "input_schema": {
          "type": "object",
          "properties": {
            "query": {
              "type": "string",
              "description": "The Tandem question, task, or keyword query to search for."
            },
            "docs_ref": {
              "type": "string",
              "description": "Docs channel or immutable ref. Defaults to stable. Use next, refs/<sha>, or releases/<version> only when explicitly needed."
            },
            "engine_version": {
              "type": "string",
              "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."
            },
            "limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "description": "Maximum number of matching docs pages to return."
            },
            "audience": {
              "type": "string",
              "description": "Optional audience filter such as developer, desktop user, or operator."
            }
          },
          "required": [
            "query"
          ]
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": true,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "warmup_docs_cache",
        "title_en": "Warm docs cache",
        "title_zh": "预热文档缓存",
        "description_en": "Refresh the docs index and preload the most important Tandem docs pages into cache.",
        "description_zh": "刷新文档索引并将最重要的 Tandem 文档页面预加载到缓存中。",
        "input_schema": {
          "type": "object",
          "properties": {
            "force_refresh": {
              "type": "boolean",
              "description": "Whether to bypass cache and force fresh upstream fetches first."
            },
            "docs_ref": {
              "type": "string",
              "description": "Docs channel or immutable ref. Defaults to stable."
            }
          }
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "write",
        "open_world": true,
        "idempotency": "idempotent",
        "confirmation": "none",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      }
    ],
    "review_profile": {
      "schema_version": "aiworkshub.resource-review/0.2",
      "method_version": "capability-evidence-v3",
      "review_state": {
        "identity": "verified",
        "source": "verified",
        "connectivity": "verified",
        "contract": "strong",
        "safe_use": "tested",
        "real_use": "unobserved"
      },
      "assessment": {
        "capability_definition": "strong",
        "contract_completeness": "strong",
        "access_friction": "low",
        "operational_transparency": "strong",
        "evidence_strength": "protocol_inspected",
        "use_readiness": "ready_for_guidance"
      },
      "profile": {
        "capabilities": [
          {
            "id": "documentation.search",
            "weight": 90,
            "confidence": 95,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "documentation.retrieve",
            "weight": 90,
            "confidence": 95,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "documentation.recommend",
            "weight": 70,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "documentation.answer-question",
            "weight": 80,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "cache.manage",
            "weight": 60,
            "confidence": 85,
            "evidence_ids": [
              "protocol-tools"
            ]
          }
        ],
        "domains": [
          {
            "id": "software-development",
            "weight": 100,
            "confidence": 95,
            "evidence_ids": [
              "source-record"
            ]
          }
        ],
        "workflow_roles": [
          "discover",
          "retrieve",
          "analyze",
          "instruct"
        ]
      },
      "catalog_profile": {
        "version": "catalog-profile-v1",
        "primary_category": "software-development",
        "integrations": [
          "GitHub"
        ],
        "use_cases": {
          "en": [
            "Search Tandem documentation for relevant pages",
            "Fetch and normalize published Tandem docs pages",
            "Answer how-to questions about Tandem installation, SDKs, and workflows"
          ],
          "zh": [
            "搜索 Tandem 文档中的相关页面",
            "获取并规范化已发布的 Tandem 文档页面",
            "回答关于 Tandem 安装、SDK 和工作流的操作指南问题"
          ]
        }
      },
      "capability_units": [
        {
          "id": "tool:search_docs",
          "kind": "mcp_tool",
          "capability_id": "documentation.search",
          "effect": "read",
          "open_world": true,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "text"
          ],
          "produces": [
            "document"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:get_doc",
          "kind": "mcp_tool",
          "capability_id": "documentation.retrieve",
          "effect": "read",
          "open_world": true,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "text"
          ],
          "produces": [
            "document"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:get_start_path",
          "kind": "mcp_tool",
          "capability_id": "documentation.recommend",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "text"
          ],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:recommend_next_docs",
          "kind": "mcp_tool",
          "capability_id": "documentation.recommend",
          "effect": "read",
          "open_world": true,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "text"
          ],
          "produces": [
            "document"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:answer_how_to",
          "kind": "mcp_tool",
          "capability_id": "documentation.answer-question",
          "effect": "read",
          "open_world": true,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "text"
          ],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:get_tandem_guide",
          "kind": "mcp_tool",
          "capability_id": "documentation.retrieve",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "text"
          ],
          "produces": [
            "document"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:warmup_docs_cache",
          "kind": "mcp_tool",
          "capability_id": "cache.manage",
          "effect": "write",
          "open_world": true,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:get_docs_cache_status",
          "kind": "mcp_tool",
          "capability_id": "cache.manage",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "untyped",
          "output_contract": "untyped",
          "accepts": [],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:refresh_docs_index",
          "kind": "mcp_tool",
          "capability_id": "cache.manage",
          "effect": "write",
          "open_world": true,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:refresh_doc_page",
          "kind": "mcp_tool",
          "capability_id": "cache.manage",
          "effect": "write",
          "open_world": true,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "text"
          ],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:invalidate_docs_cache",
          "kind": "mcp_tool",
          "capability_id": "cache.manage",
          "effect": "write",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:compare_docs_index_refresh",
          "kind": "mcp_tool",
          "capability_id": "cache.manage",
          "effect": "write",
          "open_world": true,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:compare_doc_page_refresh",
          "kind": "mcp_tool",
          "capability_id": "cache.manage",
          "effect": "write",
          "open_world": true,
          "idempotency": "idempotent",
          "confirmation": "none",
          "input_contract": "typed",
          "output_contract": "untyped",
          "accepts": [
            "text"
          ],
          "produces": [
            "text"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        }
      ],
      "access": {},
      "operational_flags": [],
      "trust": {
        "signal": "none",
        "evidence_ids": [],
        "reason": null
      },
      "fit": {
        "good_for": [
          "Searching and retrieving Tandem documentation",
          "Answering how-to questions about Tandem installation, SDKs, and workflows",
          "Recommending relevant docs and learning paths"
        ],
        "not_for": [
          "General web search or non-Tandem documentation"
        ]
      },
      "evidence": [
        {
          "id": "source-record",
          "type": "registry_record",
          "source": "https://github.com/frumu-ai/tandem",
          "observation": "MCP source record for docs-mcp; version 0.3.2.",
          "observed_at": null,
          "payload": {}
        },
        {
          "id": "protocol-tools",
          "type": "protocol_observation",
          "source": "https://tandem.ac/mcp#tools/list",
          "observation": "13 tools were returned by MCP discovery; 13 were retained for review.",
          "observed_at": "2026-09-04T04:30:43.481Z",
          "payload": {}
        }
      ],
      "unknowns": [
        "Authentication requirements are unknown",
        "Pricing model is unknown",
        "Real-world usage has not been observed"
      ],
      "id": "REV_A80DEF2D4FB9",
      "resource_id": "RES_03EE50D1161F",
      "evaluator_type": "platform_ai",
      "provider": "deepseek",
      "model": "deepseek-v4-flash",
      "review_scope": "protocol-inspected-mcp",
      "created_at": "2026-09-04T04:31:01.650Z"
    }
  }
}