{"capabilities":{"pushNotifications":false,"stateTransitionHistory":false,"streaming":false},"defaultInputModes":["text/plain","application/json"],"defaultOutputModes":["application/json"],"description":"Tells you whether a public MCP server's tools have changed since anyone last looked. We continuously crawl the public MCP ecosystem — the official registry, Smithery and our own fleet — fetch each server's tools/list, and hash the FULL declaration byte-exactly: names, descriptions, JSON schemas and every annotation. When a declaration changes we record what changed, down to the field, seal it to VDA Witness and commit it to a public git archive that anyone can clone and verify without trusting us. This matters because an MCP server is remote code you have already granted tool access: it can alter what it asks your model to do after you approved it, and nothing in the protocol tells you. A silent edit to a tool description or a hidden annotation is the rug pull, and it is invisible to a client that only reads the current list. Coverage is published with its denominator: of ~1,555 servers discovered, only 234 are observable — roughly 74% sit behind authentication and cannot be checked by anyone without credentials. LIMIT, stated plainly: we observe DECLARATIONS, not behaviour. A server whose tools stay byte-identical while its implementation changes is invisible to us, exactly as it is to every client-side defence. If you need behavioural assurance this is not it.","documentationUrl":"https://drift.getvda.ai/governance.md","name":"MCP Drift Observatory","preferredTransport":"JSONRPC","proof":{"canonicalization":"JSON, `proof` removed, sorted keys, separators (',',':'), UTF-8, non-ASCII characters emitted LITERALLY and never escaped as \\uXXXX (Python: ensure_ascii=False)","created":null,"jwks":"https://agents.getvda.ai/.well-known/jwks.json","jws":"eyJhbGciOiJFZERTQSIsImI2NCI6dHJ1ZSwiY3JpdCI6WyJiNjQiXSwia2lkIjoiWTZkUGYyWTJiUVBGUTZjODFkZ2g2ODRfR002VDNjYjNuVEtubGNiN0UyTSIsInR5cCI6IkpPU0UifQ..f7IUawDamS8MdZl3Br4kDYRibJBSLmGMr-G8b_pGWdtBZwZhtjgpGYvXBDDUw-OLNpQlODSIgpCx_PgB-oufBA","type":"JsonWebSignature2020","verificationMethod":"https://agents.getvda.ai/.well-known/jwks.json#Y6dPf2Y2bQPFQ6c81dgh684_GM6T3cb3nTKnlcb7E2M"},"protocolVersion":"0.3.0","provider":{"organization":"VDA / GOSCE","url":"https://getvda.ai"},"skills":[{"description":"FREE. Coverage of the MCP Drift Observatory: how many public MCP servers we have discovered, how many we can actually observe, and how many are auth-walled. Reports the denominator, not just the flattering numerator.","examples":["Call drift_status."],"id":"drift_status","inputModes":["text/plain","application/json"],"name":"Drift Status","outputModes":["application/json"],"tags":["drift_status","status"]},{"description":"FREE. Canonically hash a tool list you supply, so you can confirm your implementation reproduces our bytes before trusting any hash we publish. ensure_ascii=False is the flag people miss.","examples":["Call drift_hash."],"id":"drift_hash","inputModes":["text/plain","application/json"],"name":"Drift Hash","outputModes":["application/json"],"tags":["drift_hash","hash"]},{"description":"FREE. Has this MCP server's declared tool surface changed since we first saw it? Returns the current hash, when it last changed, how many times, and the Witness seal for the latest change.","examples":["Call drift_check."],"id":"drift_check","inputModes":["text/plain","application/json"],"name":"Drift Check","outputModes":["application/json"],"tags":["drift_check","check"]},{"description":"What actually changed: field-level detail for this server's observed changes, including which tool moved and whether the change touched a description, a schema or an annotation.","examples":["Call drift_diff."],"id":"drift_diff","inputModes":["text/plain","application/json"],"name":"Drift Diff","outputModes":["application/json"],"tags":["drift_diff","diff"]},{"description":"Fetch this server RIGHT NOW and compare it to our stored baseline. Use when you need a fresh answer rather than the last scheduled observation.","examples":["Call drift_probe."],"id":"drift_probe","inputModes":["text/plain","application/json"],"name":"Drift Probe","outputModes":["application/json"],"tags":["drift_probe","probe"]},{"description":"FREE — no payment, no API key, no signup. Runs this agent's REAL capability on fixed canned input and returns the genuine result, an honest assertion grade (`asserted_correct` = a property of the output was checked; `ran_without_error` = it ran but nothing was asserted, which is NOT a pass), a trust manifest with a proof link for every claim, and a tamper-evident Ed25519-signed VDA Witness record of the run that anyone can verify with no credential.","examples":["Run your self-test and show me the result.","Prove you do what your card claims.","Give me the signed Witness record for your last self-test."],"id":"selftest","inputModes":["text/plain","application/json"],"name":"Self-test (free verification)","outputModes":["application/json"],"tags":["verification","free","trust","attestation","witness"]}],"url":"https://drift.getvda.ai/a2a/","version":"0.1.2"}