Thin MCP wrapper exposing content-provenance and quality-scoring as 5 tools.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Gareth1953 MCP.
certify_provenancecontent` (string), `generator_metadata` (object, optional)
verify_provenancecontent` (string), `receipt` (object)
score_qualitycontent` (string), `rubric_version` (string, optional), `target_score` (number 0β100, optional)
verify_qualitycontent` (string), `receipt` (object)
get_quality_rubricnone
audit_actionaction` (string), `actor_metadata` (object), `context` (object, optional)
A single thin MCP (Model Context Protocol) server that exposes three existing services as discoverable tools, so AI agents and MCP-compatible clients can find and use them through one connection:
It is a thin wrapper. Every tool forwards an HTTP call to the underlying Worker and returns its response verbatim. It does not reimplement signing, scoring, or payment logic β those live in the underlying services. The honesty about what each service proves carries through to the tool descriptions.
examples/free-call.mjs runs an MCP client against this server (pointed at the live
deployments) and calls get_quality_rubric and verify_audit β both free, no
wallet needed. To wire the server into an MCP client (Claude Desktop / Claude Code
style), see Connecting an MCP client below.
Free vs paid at a glance: verify_provenance, verify_quality, verify_audit,
and get_quality_rubric are free. certify_provenance, score_quality, and
audit_action are paid (an x402 USDC micropayment on Base) β see Calling paid
tools for the two-step payment flow and a working example.
generator_metadata is caller-attested
β it proves you claimed it, not that a specific model ran. Not AI-detection,
not a truth guarantee.get_quality_rubric tool.action, actor_metadata,
and context are caller-attested β it proves you claimed this record, not
that the agent's claim is true. An accountability/audit tool, not a
lie-detector.| Tool | Forwards to | Paid? | Input |
|---|---|---|---|
certify_provenance | provenance-receipts POST /v1/certify | yes (x402) | content (string), generator_metadata (object, optional) |
verify_provenance | provenance-receipts POST /v1/verify | no | content (string), receipt (object) |
score_quality | quality-gate POST /v1/score | yes (x402) | content (string), rubric_version (string, optional), target_score (number 0β100, optional) |
verify_quality | quality-gate POST /v1/verify | no | content (string), receipt (object) |
get_quality_rubric | quality-gate GET /v1/rubric | no | none |
audit_action | agent-action-audit POST /v1/audit | yes (x402) | action (string), actor_metadata (object), context (object, optional) |
verify_audit | agent-action-audit POST /v1/verify | no | action (string), actor_metadata (object), context (object, optional), receipt (object) |
Full descriptions and Zod input/output schemas: src/tools.ts.
Each tool returns the service's raw JSON (or markdown, for the rubric) as text; the
verify_* and score_quality tools also declare an outputSchema and return
parsed structuredContent you can read directly (e.g. result.structuredContent.valid).
A non-2xx response (including a 402 Payment Required) is surfaced with
isError: true and the body preserved β for a 402 the wrapper prepends a short,
actionable note on how to pay. The three paid tools also accept an optional
x_payment input (the x402 X-PAYMENT token) to settle payment through the
wrapper β see Calling paid tools.
The three service URLs are environment-configurable (no secrets β just base URLs):
| Env var | Live (deployed) | Local dev fallback |
|---|---|---|
PROVENANCE_URL | https://provenance-receipts.gpmiddleton71.workers.dev | http://localhost:8787 |
QUALITY_GATE_URL | https://quality-gate.gpmiddleton71.workers.dev | http://localhost:8788 |
AUDIT_URL | https://agent-action-audit.gpmiddleton71.workers.dev | http://localhost:8789 |
.env.example and the client config below point at the live deployments. If
the vars are unset, the server falls back to localhost for local wrangler dev
(the Workers default to :8787, so run quality-gate on :8788 and
agent-action-audit on :8789 to avoid clashes).
Against the live services, the paid tools (
certify_provenance,score_quality,audit_action) require x402 β this wrapper forwards the request and holds no wallet, so without anX-PAYMENTthey return a402(the payment requirements) surfaced asisError. The free tools work as normal.
The three paid tools require an x402 micropayment (USDC on Base mainnet). The wrapper holds no wallet β it never spends on your behalf β so paying is a two-step flow:
x_payment. You get back a 402 whose body is the x402
payment requirements (network, asset, amount, payTo). The wrapper prepends a
one-line note explaining what to do next.X-PAYMENT token from those requirements with an x402 client +
a funded wallet, then call the tool again with that token in the x_payment
input. The wrapper forwards it as the X-PAYMENT header; the underlying service
verifies, settles, and returns the signed receipt.Easiest path to a working paid call β let an x402 client settle for you against the underlying service directly:
examples/paid-call.mjs uses x402-fetch + a throwaway Base-mainnet wallet
(holding a little real USDC) to pay for and call audit_action. ~$0.01 USDC moves
buyer β the service's payTo, gasless (the facilitator pays gas). Real money β use
a disposable key with a few cents only. The same applies to certify_provenance
and score_quality.
scripts/test-client.mjs exercises the free tools locally; scripts/test-score.mjs
makes one real Anthropic scoring call through score_quality;
scripts/test-live.mjs points the wrapper at the deployed workers.dev URLs and
asserts the free tools work and the paid tools forward the x402 402.
This server speaks MCP over stdio (stdin/stdout). Any MCP client launches it
as a subprocess. Example for a Claude Desktop / Claude Code style
mcpServers config:
npm run build first so dist/index.js exists.tools/list (it will see the 7 tools above), and
invokes them via tools/call.Programmatically, connect with the SDK's Client + StdioClientTransport
(command: "node", args: ["dist/index.js"]) β see scripts/test-client.mjs.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/agent-services-mcp)<a href="https://allmcps.com/mcp/agent-services-mcp"><img src="https://allmcps.com/api/badge/agent-services-mcp?style=directory" alt="Gareth1953 MCP on AllMCPs" /></a>