verify-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@verify-mcpverify tx 0x1a2b3c… paid 0.10 USDC on Base to 0x5033036702CCeeE23b79022e938a41e0452F908a"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
verify-mcp
An MCP (Model Context Protocol) server that gives any agent a verification tool it can trust: SHA-256 artifact checks and Base USDC transfer decoding, answered by a live API that recomputes hashes server-side and returns PASS / PARTIAL / FAIL.
Built for agents that have to prove a deliverable instead of asserting it — bounty submissions, paid API calls, payout reconciliation, artifact handoffs.
Transport: stdio (JSON-RPC 2.0), Node.js 20+
Runtime deps:
@modelcontextprotocol/sdkonlyFree:
healthPaid:
verify_artifact,verify_base_tx— 0.10 USDC per call on Base via x402 (no account, no API key, no signup — the payment is the auth)
Verify API |
|
Health (free) |
|
OpenAPI |
|
Network | Base mainnet ( |
Price |
|
Asset |
|
payTo |
|
Scheme | x402 |
Tools
verify_artifact (paid)
Recompute a SHA-256 digest server-side and compare it with the claim.
{
"path": "dist/report.pdf",
"sha256": "9f2c…64 hex chars…",
"size_bytes": 1048576
}Optional content_b64 lets you send the bytes inline instead of a path.
Returns { verdict, items[], report } — verdict is PASS when every item matches, PARTIAL when some do, FAIL otherwise.
verify_base_tx (paid)
Decode the USDC Transfer log of a Base transaction and check it against what you expected.
{
"tx_hash": "0x…64 hex chars…",
"expect_to": "0x5033036702CCeeE23b79022e938a41e0452F908a",
"expect_usdc": "0.10"
}Use this to prove you actually paid — or that someone actually paid you.
health (free)
Liveness + current pricing probe. Useful as a preflight before spending 0.10 USDC.
Related MCP server: ArtifactGuard
Install
Claude Desktop
Add this to claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"verify": {
"command": "npx",
"args": ["-y", "github:ciperx/verify-mcp"],
"env": {
"VERIFY_API_BASE_URL": "https://agent.ggez.my.id"
}
}
}
}Restart Claude Desktop. health works immediately; verify_artifact and verify_base_tx return the x402 challenge until you add a payment header (below).
Claude Code / any generic MCP client (stdio)
{
"mcpServers": {
"verify": {
"command": "node",
"args": ["/absolute/path/to/verify-mcp/src/server.js"],
"env": {
"VERIFY_API_BASE_URL": "https://agent.ggez.my.id"
}
}
}
}From a checkout:
git clone https://github.com/ciperx/verify-mcp
cd verify-mcp
npm install # only @modelcontextprotocol/sdk
node src/server.js # speaks JSON-RPC on stdin/stdoutCursor / Windsurf / Cline
Same mcpServers block, in the editor's MCP settings file (~/.cursor/mcp.json for Cursor).
Paying for a call (x402)
The paid tools never invent a verdict. If X402_PAYMENT_HEADER is not set, they return a structured result like this instead:
{
"error": "payment_required",
"http_status": 402,
"price_usdc": "0.10",
"amount_atomic": "100000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"pay_to": "0x5033036702CCeeE23b79022e938a41e0452F908a",
"scheme": "exact",
"network": "base",
"message": "Payment required: this tool call costs 0.10 USDC on Base…",
"how_to_pay": { "env_var": "X402_PAYMENT_HEADER", "max_timeout_seconds": 300 },
"raw_402_body": { "x402Version": 1, "accepts": [ … ] }
}Flow:
Call the tool. Read
raw_402_body.accepts[0](or justpay_to/amount_atomic).Send exactly
100000atomic USDC on Base to0x5033036702CCeeE23b79022e938a41e0452F908a.Build the x402
X-PAYMENTpayload with your wallet/facilitator and base64-encode it.Export it and restart the server:
export X402_PAYMENT_HEADER="<base64 x402 payment payload>"Call the tool again — that call is served and you get the real verdict.
X402_PAYMENT_HEADER is read per request, so a long-running server picks up a refreshed header on the next call without a restart if you start it from a wrapper that re-reads the env. Each paid call consumes one payment.
A 402 returned after a payment was sent is reported honestly (payment_header_sent: true, "still answered 402") — the header was stale, underfunded, or addressed to the wrong recipient. It is never upgraded to a fake pass.
Configuration
Env var | Required | Default | Purpose |
| no | — | Base64 x402 |
| no |
| Point at a self-hosted instance of the verify API. |
Tests
npm test12 offline tests, no network required — fetch is injected:
healthhits/verify-api/healthand parses pricingverify_artifactwithout a payment header returns a structured 402 with price/asset/payTo/raw body and no verdictverify_artifactsendsX-PAYMENTand passes thePASSverdict throughdigests are lowercased,
size_bytesforwardedverify_base_tx402 path and 200 verdict pathinvalid
path/sha256/tx_hashrejected before any network callupstream 500 and
ECONNREFUSEDreported as errors, not verdicts402-after-payment explained, never faked
challenge parser handles v1
maxAmountRequiredand v2amounttool catalog is exactly the three documented tools
end-to-end stdio test:
initializehandshake,tools/list, unknown-tool error
Layout
src/core.js API client: fetch injection, 402 challenge parser, payload builders
src/server.js MCP server: tool schemas + handlers over stdio
test/ 12 offline tests (node:test)
mcp.json server manifest read by MCP directories
smithery.yaml Smithery deployment config
SHA256SUMS.txt checksums of the published filesLicense
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Paid agent work and paid verification, settled in USDC. Verified outcomes get signed receipts.
Pay-per-call MCP tools for agents, settled with x402 (USDC on Base mainnet). 17 tools — text/data utilities plus x402/EVM-native: decode an x402 challenge, verify a settlement receipt on-chain, EIP-712 typed-data hashing, ABI encode/decode, Merkle-proof verify, keccak256, and EIP-55 address checks. No API keys.
Pay-per-call agent tools, x402 v1+v2, USDC Base/Solana: audit, extract, enrich, URL safety, crypto
Pay-per-call (x402/USDC-Base) web + crypto data tools for AI agents: audit, extract, crypto, DeFi.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceEnables MCP hosts to verify agent spending mandates and receipts, providing stateless tools for authorization, chain verification, credential verification, and DID resolution.Apache 2.0- FlicenseNot gradedqualityBmaintenanceEnables AI agents to validate deliverables (JSON, ZIP, PDF, DOCX) against signed contracts, generating verifiable receipts with Ed25519 signatures.-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to perform pay-per-call security verification of wallets, tokens, contracts, dApps, agents, and more via a remote endpoint with no installation.2MIT
- AlicenseNot gradedqualityBmaintenanceEnables deterministic verification of AI agent decisions and actions, providing PASS/FAIL/ABSTAIN verdicts with replayable proofs and an optional signed receipt ledger.3 npmApache 2.0