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 分