GAIP Witness Agent

io.github.tjcgraham-rgb由 GitHub 账号 tjcgraham-rgb 发布v1.5.0更新于 Oct 24, 2026

Witness: agreed terms, delivery checks, signed receipts, dispute bundles and evidence packs.

已验证Streamable HTTP可网页运行网页搜索与抓取开发者工具安全与监控

概览

AI 生成的概览

GAIP Witness 为智能体、MCP 服务器和在线服务发布与交付的内容留存带日期的签名证据,供助手核验。

可以做什么
  • 为公开 HTTPS 服务登记约定条款并核查交付情况,逐项返回 PASS/FAIL/UNKNOWN 与回执
  • 核验、导出并检查 GAIP 回执、哈希链与 Merkle 证明,并生成争议包与事件包
  • 监控智能体或服务的变化与宕机,列出监控项、查看变更事件并移除监控
  • 对照已抓取页面核验引文与引语,并将供应商声明与观测或上报的证据比对
  • 查看交易对手的证据覆盖情况、生成证据包,并记录角色签署与结果价值档案
适用场景
当助手需要证明第三方服务、智能体或 MCP 服务器是否按约定交付、是否发生变化,或某条引文是否属实,并需要可用于争议、审计或保险的带日期签名记录时适用。
运行要求
远程 streamable HTTP 端点 www.gaipagents.com/mcp;无需登录、API 密钥或环境变量。输入须为公开、非个人的网址与标识;回答中返回的 continuity handle 需回传以绑定历史记录。
安装前请注意
输入会发送给第三方,且必须公开、非个人,请勿提交私有网址或个人数据。监控可调用你提供的 webhook,移除监控会删除其已存事件。结果仅为证据,不构成认证、信任评分或法律、财务建议。

安装

在 SourceWeft 中

  1. 打开 控制台中的 GAIP Witness Agent,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.tjcgraham-rgb%2Fgaip-witness/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "gaip-witness-agent": {
      "type": "http",
      "url": "https://www.gaipagents.com/mcp/agents/witness"
    }
  }
}

README

GAIP

[GAIP logo]

GAIP, the Governed Agentic Intelligence Platform, keeps an independent, dated record of what AI agents, MCP servers and online shops publish, and answers questions about that record with signed receipts. Free, read-only, no key; facts at a stated time, never an assessment.

First call: gaip_check with a url on https://www.gaipagents.com/mcp. This one runs as-is; then use the URL of the agent, MCP server or API you care about:

bash
curl -s https://www.gaipagents.com/mcp \  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"gaip_check","arguments":{"url":"https://mcp.deepwiki.com/mcp"}}}'

Without MCP: GET https://www.gaipagents.com/v1/free/conformance/check?url=<url>.

The map: every question GAIP answers, grouped by who asks, with its tool and HTTP route: https://www.gaipagents.com/v1/free/map. Every completed answer carries a continuity handle; send it back and the answer is bound to your own history with GAIP.

One line to connect

WhereOne line
Any MCP clienthttps://www.gaipagents.com/mcp (streamable HTTP, no sign-in)
Claude Codeclaude mcp add --transport http gaip https://www.gaipagents.com/mcp, or the plugin (MCP server and skill): /plugin install gaip --marketplace tjcgraham-rgb/gaip-agents
Claude Desktop / claude.aiCustomize > Connectors > Add custom connector, URL https://www.gaipagents.com/mcp, no sign-in
Agent Skills (Claude Code, Cursor, Codex and others)npx skills add tjcgraham-rgb/gaip-agents (installs skills/gaip/SKILL.md)
Cursor, VS Codethe buttons below, or { "mcpServers": { "gaip": { "url": "https://www.gaipagents.com/mcp" } } }
Gemini CLIgemini extensions install https://github.com/tjcgraham-rgb/gaip-agents
OpenAI Agents SDKHostedMCPTool(tool_config={"type": "mcp", "server_label": "gaip", "server_url": "https://www.gaipagents.com/mcp", "require_approval": "never"})
Vercel AI SDKawait createMCPClient({ transport: { type: 'http', url: 'https://www.gaipagents.com/mcp' } }) (from @ai-sdk/mcp)
LangChainpip install langchain-gaip, then from langchain_gaip import get_tools
CrewAIAgent(..., mcps=["https://www.gaipagents.com/mcp"])
A2A (1.0 and 0.3.0)agent card https://www.gaipagents.com/.well-known/agent-card.json; plain text works
x402nothing to set up: GAIP is free and never answers with HTTP 402 (https://www.gaipagents.com/.well-known/x402)
Windsurf~/.codeium/windsurf/mcp_config.json: { "mcpServers": { "gaip": { "serverUrl": "https://www.gaipagents.com/mcp" } } }
Cline{ "mcpServers": { "gaip": { "type": "streamableHttp", "url": "https://www.gaipagents.com/mcp" } } } (see llms-install.md)
Everything else, with copy-paste codehttps://www.gaipagents.com/docs/quickstart

[Add to Cursor] [Install in VS Code]

In CI: two GitHub Actions

GAIP Watch fails your build when an MCP server or agent your agent depends on changed its tools, schemas, sign-in or prices, with dated receipts (watch/):

yaml
- uses: tjcgraham-rgb/gaip-agents/watch@main  with:    urls: https://mcp.example.com/mcp

GAIP Agents check runs gaip_check on your own agent card, MCP server or OpenAPI document on every push:

yaml
- uses: tjcgraham-rgb/gaip-agents@v1  with:    agent-url: https://your-agent.example/.well-known/agent-card.json    fail-on-error: "true"

Outputs: verdict (READY, FIXES_NEEDED, UNREACHABLE or NOT_CHECKED), receipt-id, error-count, warning-count. Providers can show their own dated record with the badge https://www.gaipagents.com/v1/free/watch/badge.svg?url=<your endpoint>.

In this repository

PathWhat it is
registry/The Official MCP Registry records: gaip-broker.json (GAIP itself) and one record per specialist agent
listing-kit.jsonThe sentence, the first call, the map's rows, endpoints and example calls for directories (also served at /v1/free/discovery/listing-kit)
skills/gaip/SKILL.mdGAIP as an Agent Skill (agentskills.io format; also served at /.well-known/agent-skills/gaip/SKILL.md)
.claude-plugin/Claude Code plugin and marketplace manifests: the skill plus the remote MCP server
.cursor-plugin/plugin.json, mcp.jsonCursor plugin manifest and its MCP server
gemini-extension.json, GEMINI.mdGemini CLI extension: installs GAIP's MCP server and tells the model when to use each tool
packages/gaip-check/Python client: check_agent("https://other-agent.example")
action.yml, packages/gaip-check-action/The check Action (uses: tjcgraham-rgb/gaip-agents@v1)
watch/The GAIP Watch Action
packages/aipref-signals/Dependency-free parser and test vectors for AI-preference signals (IETF AI Preferences Content-Usage, RSL licence links, W3C TDMRep, Content Signals)
assets/GAIP logo (SVG, and a 400×400 PNG) and the specialist icons (SVG)
llms-install.mdInstall steps for AI assistants that set up MCP servers themselves (Cline)

The registry records, listing kit, packages, Watch Action, skill and Gemini extension are copies of what GAIP's service generates; a check in the service's repository warns when a copy here falls out of step. The service itself runs at www.gaipagents.com.

What an answer means

Every answer states what was observed and when. It is not a certification, endorsement, ranking or universal score, and not legal, financial or insurance advice. Receipts are signed with GAIP's Ed25519 key, published at https://www.gaipagents.com/.well-known/gaip-receipt-keys.json.

Licence

MIT (see LICENSE) for everything in this repository.

来源:README.md,提交 0bfeca4

工具

23

witness_register_terms

Register what a service should deliver

Use this when about to depend on a public HTTPS service and you want neutral evidence of what it delivers. Pass `service_url`; `checks` default to HTTP 200 and a non-empty body (also JSON keys, latency, size, regex). Returns a `terms_id`; then call witness_delivery. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.

输入参数checksseller_refservice_url必填research_consentdata_classification

witness_delivery

Did the service deliver?

Use this when asked whether a service delivered what was agreed ("did the supplier deliver?"). Pass the `terms_id` from witness_register_terms and mode PUBLIC_REPLAY (GAIP fetches it) or BUYER_SUBMITTED. Returns PASS / FAIL / UNKNOWN per check, what changed since last time, and a receipt. Free, read-only, no account; inputs must be public and non-personal.

输入参数bodymode必填terms_id必填syntheticepisode_idbody_sha256http_statuscontent_typeresearch_consentcontinuity_handledata_classificationindependent_operator_id

gaip_receipt_export

Export a GAIP receipt

Use this when you need a GAIP receipt in another format. Pass `receipt_id` and `format`: x402 (attestation style), erc8004 (validation-response shape) or vc (W3C-VC-like JSON-LD). Ed25519-signed when the runtime key is available; hash chain and Merkle proof; no on-chain write. Free, read-only, no account; inputs must be public and non-personal.

输入参数format必填receipt_id必填

verify_gaip_receipt

Verify a GAIP receipt

Use this when you hold a GAIP receipt_id and want to confirm it ("is this receipt genuine?"). Returns the retained record, hash chain and Merkle inclusion proof. Integrity only: it does not make the underlying claim true. Free, read-only, no account; inputs must be public and non-personal.

输入参数syntheticepisode_idreceipt_id必填continuity_handledata_classificationindependent_operator_id

witness_dispute_bundle

Export a delivery evidence bundle

Use this when a witnessed delivery failed and you must hand the facts to the other party or a resolver. Pass `terms_id` or a delivery `receipt_id`. Returns one hash-stamped bundle: terms, every check, receipts, timeline, summary. No judgement of who is right. Free, read-only, no account; inputs must be public and non-personal.

输入参数terms_idreceipt_idreceipt_formatcontinuity_handle

gaip_watch_register

Watch an agent or MCP server for changes

Use this when asked to keep an eye on an agent or MCP server ("tell me if it changes or goes down"). Pass the `continuity_handle` from any GAIP result, `kind` and `target_url`. GAIP re-checks every 24 hours (3 free watches), receipts each change and can call your webhook. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.

输入参数slakind必填terms_idtarget_urlwebhook_urlinterval_hourscontinuity_handle必填data_classification

gaip_watch_list

List my watches

Use this when asked which agents or services you are watching. Pass your `continuity_handle`. Returns each watch's kind, target, last verdict, last and next check and webhook endpoint (never the secret). Free, read-only, no account; inputs must be public and non-personal.

输入参数continuity_handle必填

gaip_watch_remove

Remove a watch

Use this when asked to stop watching an agent or service. Pass your `continuity_handle` and the `watch_id`. Its stored events are deleted; retained receipts stay verifiable. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.

输入参数watch_id必填continuity_handle必填

gaip_watch_events

Read watch change events

Use this when asked what changed on a watched agent or service. Pass your `continuity_handle` and optionally a `watch_id`. Returns recent change events: verdict before and after, a change summary, the receipt and webhook delivery status. Free, read-only, no account; inputs must be public and non-personal.

输入参数limitwatch_idcontinuity_handle必填

gaip_citation_witness

Verify citations and quotes

Use this when asked to verify citations or quotes ("do these sources really say this?"). Pass `citations` (1-20 {url, quote}). GAIP fetches each page once (robots.txt respected); returns QUOTE_FOUND / QUOTE_NOT_FOUND_IN_FETCHED_VERSION / SOURCE_UNREACHABLE..., an excerpt and a receipt. Free, read-only, no account; inputs must be public and non-personal.

输入参数citations必填data_classification

gaip_check_sar_receipt

Check an x402 SAR receipt

Use this when handed an x402 SAR-shaped receipt (draft proposal shape; may change). Pass `sar_receipt`, optionally the issuer's `public_key`. Returns missing fields, whether receipt_id matches the core and whether the signature checks out against that key. Free, read-only, no account; inputs must be public and non-personal.

输入参数public_keysar_receipt必填

gaip_record_extract

Extract of GAIP's record about a URL

Use this when you need proof of what an agent or shop page declared on a date. Pass its `url` (optional `since`, `until`). Returns an extract of GAIP's record as kept: entries with chain positions, hashes, daily anchors and a signature. Free preview. Free, read-only, no account; inputs must be public and non-personal.

输入参数url必填limitsinceuntil

witness_accept_terms

Accept registered terms (the other party)

Use this when you are the other party to terms a buyer registered. Pass the `terms_id`, your own `continuity_handle` and `business_purpose_statement` true (businesses only); the buyer confirms it with the `agreement_id`. Returns an `agreement_id` naming both parties. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.

输入参数terms_id必填agreement_idfinding_modeacceptance_ruleseller_key_proofconsumer_contractcontinuity_handleagreement_cancelleddata_classificationmandate_check_receiptbusiness_purpose_statement

witness_finding

Was the agreed rule met? (signed finding)

Use this when deliveries exist for an agreement and you want GAIP's signed finding. Pass the `agreement_id` and your `continuity_handle`. Returns MET, NOT_MET or INDETERMINATE on the agreed rule with the records relied on. Evidence only; no sum of money. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.

输入参数agreement_id必填continuity_handledata_classification

witness_signoff

Record a role's decision on a proposal (sign-off)

Use this when a role (APPROVER, REVIEWER, OWNER, OPERATOR or a hashed role_id) decided on an agent's proposal. Pass `proposal_sha256`, `decision` (APPROVED, REFUSED, CHANGED), optionally `agreement_id`. Returns a chained, signed entry of the role's decision, never GAIP's. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.

输入参数rolerole_iddecision必填agent_urlagreement_idreason_sha256proposal_sha256必填continuity_handledata_classification

assurance_prepare

Prepare a buyer-side delivery check

Use this when you, the buyer, chose a public service and want its delivery checked end to end. Pass `service_url`, `checks` and explicit_read_only_consent=true. GAIP preflights it and records your checks; returns a `terms_id` for assurance_complete. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.

输入参数checks必填episode_idtask_classservice_url必填counterparty_iddata_classificationexplicit_read_only_consent必填

assurance_complete

Complete a buyer-side delivery check

Use this when finishing a Buyer Assurance check. Pass the `terms_id` from assurance_prepare and mode PUBLIC_REPLAY (GAIP replays the service) or BUYER_SUBMITTED. Returns PASS / FAIL / UNKNOWN per check and a delivery receipt. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.

输入参数bodymode必填terms_id必填body_sha256http_statuscontent_typedata_classification

assurance_verify

Verify a Buyer Assurance receipt

Use this when you hold a Buyer Assurance terms or delivery receipt_id and want to confirm it. Returns the retained record and its integrity proof (integrity only). Free, read-only, no account; inputs must be public and non-personal.

输入参数receipt_id必填

gaip_verify_supplier_claims

Verify an agent's or supplier's claims

Use this to check what an agent, API or supplier claims. Pass `claims` (each with an `id`; add `check_url` and GAIP tests it now), your `observations` and `metadata`. Returns per claim what GAIP saw, what you reported and whether they agree. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.

输入参数claims必填metadata必填protocolsyntheticepisode_idtask_classobservationscounterparty_idcontinuity_handledata_classificationindependent_operator_id

inspect_counterparty_evidence

What evidence exists about this agent?

Use this when asked what evidence exists about an agent before delegating to it. Pass its `counterparty_id` and any `observations`. Returns task-specific evidence coverage, conflicts, gaps and GAIP's own earlier checks of it, with a receipt. Never a trust score or recommendation. Free, read-only, no account; inputs must be public and non-personal.

输入参数syntheticepisode_idtask_classmax_age_daysobservationscounterparty_idcontinuity_handledata_classificationindependent_operator_id

gaip_evidence_pack

Build an evidence pack

Use this when an insurer, auditor or buyer asks what evidence exists about an agent or supplier. Pass its `subject` (public id or https URL). Returns conformance, watch, witness, repair and incident records with Merkle proofs, plus gaps. A compilation, not certification or advice. Free, read-only, no account; inputs must be public and non-personal.

输入参数scopesubject必填requester

gaip_incident_bundle

Build an incident evidence bundle

Use this when something went wrong with an agent and you need the facts in order. Pass the `receipt_ids` you hold and attributed `observations`. Returns a verified, source-attributed timeline with an EU AI Act Art. 73 reference aid. No fault, cause or liability finding. Free, read-only, no account; inputs must be public and non-personal.

输入参数titlereceipt_idsobservationsai_system_refdata_classification

gaip_measure_outcome_value

Did the task deliver, and at what cost?

Use this when asked whether an outcome-priced task delivered and what it cost. Pass `episode_id`, `task` (acceptance_criteria), `delivery`, `costs`; `delivery_check` {url, checks} has GAIP test delivery now. Returns a dossier, running totals and a receipt. No ROI claim. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.

输入参数task必填costs必填currencydelivery必填fx_to_gbpsyntheticepisode_id必填task_classevidence_refsdelivery_checkdownstream_usecounterparty_id另有 4 个

版本历史

6
  1. v1.5.0最新Oct 10, 2026
  2. v1.4.0Oct 2, 2026
  3. v1.2.0Sep 30, 2026
  4. v1.1.1Sep 29, 2026
  5. v1.1.0Sep 28, 2026
  6. v1.0.0Sep 27, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分