verifier

MCP tool observatory: do registry servers answer, and are their answers true? No key.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
78%
命名品質
88%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~1,300Token(工具定義)
~651 B典型回應大小
中等的注意力影響(128k 上下文的 1.02%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "verifier": {
      "url": "https://robinsaige.com/mcp"
    }
  }
}

遠端端點

https://robinsaige.com/mcpstreamable-http

它能做什麼

工具清單

工具(8)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
⚪registry_pulse

Call this FIRST for the state of the MCP tool ecosystem in one shot: how many servers exist, how many actually answer a real handshake, how many are behind a login, the largest costume-farm concentration, AND the Tier-2 truth summary (how many server answers were re-derived against a public primary source and matched). Every number is re-derivable; grades observed/reported/derived. No arguments.

輸入結構描述

{
  "type": "object",
  "properties": {}
}
🟢should_i_use(name, names)

THE GATE — call this before your agent depends on a tool you don't already trust. Give an exact server registry name and get a one-word verdict — allow / warn / block — with the reason, plus the full rating underneath. 'block' = dead/unreachable/costume-farm-shaped, don't depend on it; 'warn' = usable but look first; 'allow' = safe to depend on. If you have a NEED not a name, use find_tools; if you have a fuzzy name, use resolve_server_name. Argument: name, e.g. 'com.trimtabist/us-tariff-ledger'.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "exact registry name, e.g. io.github.you/your-mcp"
    },
    "names": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "description": "batch form: vet a whole config at session start (max 20)"
    }
  }
}
🟢find_tools(need, verdict, free_only, open_only, max_latency_ms, ...)

Find and RANK the trustworthy tool for a NEED. Describe the task in plain words ('screen a company for sanctions', 'US tariff data', 'vessel tracking') — the search is full-text over tool names AND their stored descriptions (stemmed, BM25-ranked), so your words need not appear in any tool's name. Servers come best-rated first, and EACH ROW carries its verdict (allow/warn/block), cluster, distinctiveness and the matching tool names, so you can pick without a second call. Alive, non-costume, current-protocol servers rank on top; dead / costume-farm / walled ones sink. Argument: need.

輸入結構描述

{
  "type": "object",
  "properties": {
    "need": {
      "type": "string",
      "description": "what the tool should do, in plain words"
    },
    "verdict": {
      "type": "string",
      "enum": [
        "allow",
        "warn",
        "block"
      ],
      "description": "only servers with this verdict"
    },
    "free_only": {
      "type": "boolean",
      "description": "exclude servers that demand payment at the handshake"
    },
    "open_only": {
      "type": "boolean",
      "description": "exclude auth-walled servers"
    },
    "max_latency_ms": {
      "type": "integer",
      "description": "only servers at or under this probe latency"
    },
    "nature": {
      "type": "string",
      "enum": [
        "retrieval-public",
        "retrieval-private",
        "action",
        "generative",
        "predictive",
        "computational",
        "orchestration"
      ],
      "description": "only servers whose dominant tool nature is this (see robinsaige.com/verification)"
    }
  },
  "required": [
    "need"
  ]
}
🟢resolve_server_name(query)

Resolve a partial or misspelled server name to its EXACT registry id before calling should_i_use / check_server. Matches a fragment against registry NAMES only (not capabilities — for 'which tool does X' use find_tools). Returns candidate exact names with each one's latest liveness outcome. Empty query rejected.

輸入結構描述

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "a fragment of a registry name, e.g. 'tariff'"
    }
  },
  "required": [
    "query"
  ]
}
🟢check_server(name)

The FULL evidence behind the verdict for ONE server, by exact registry name — call should_i_use first for the one-word decision; call this when you want the whole record. Leads with the verdict (allow/warn/block), then the `rating` grouped as REACH (answers, latency vs population, protocol, auth), USE (tool count vs population, capability breadth, harness readiness) and TRUST (costume-farm?, duplicate inventory?, verifiability grade, drift / rug-pull, and where checkable whether its ANSWERS are true vs a public primary), a cluster tag, a distinctiveness score, and an explicit not_claimed block. Argument: name.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "exact registry name, e.g. io.github.you/your-mcp"
    }
  },
  "required": [
    "name"
  ]
}
🟡report_call(server, tool, ok, latency_ms, cost_tokens, ...)

AFTER your agent calls a tool, fire-and-forget how it went — success/failure, latency, cost — so the observatory accumulates realized reliability (the one thing outside-in probing can't see: did it actually work for a real call). Anchored against our own probe: a 'worked' report on a server we saw dead is discarded. Does NOT change the current rating yet (probing stays load-bearing) — this is accumulate-ahead-of-demand. Args: server (required), tool, ok, latency_ms, cost_tokens, call_hash (a hash binding the report to a real call).

輸入結構描述

{
  "type": "object",
  "properties": {
    "server": {
      "type": "string",
      "description": "exact registry name"
    },
    "tool": {
      "type": "string"
    },
    "ok": {
      "type": "boolean"
    },
    "latency_ms": {
      "type": "integer"
    },
    "cost_tokens": {
      "type": "integer"
    },
    "call_hash": {
      "type": "string"
    }
  },
  "required": [
    "server"
  ]
}
🟢changes_since(since)

What changed in the tool economy since a date: verdict flips, deaths, revivals, new servers, confirmed drift — the census diff as data. Poll this weekly to keep a local view current without re-crawling.

輸入結構描述

{
  "type": "object",
  "properties": {
    "since": {
      "type": "string",
      "description": "YYYY-MM-DD; omit for the whole latest diff"
    }
  }
}
🟢list_findings

The observatory's ruled findings — each with its claim and its falsification test — plus the public corrections log (what we published, then corrected, never deleted). Call this to cite what has been established, or to see where we were wrong. No arguments.

輸入結構描述

{
  "type": "object",
  "properties": {}
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本8 個工具
已驗證未記錄版本8 個工具
已驗證未記錄版本8 個工具