agent-verification-api
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., "@agent-verification-apiVerify the identity of the agent at https://agent.acme.com with domain acme.com"
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.
Agent Verification API
Confirms that an AI agent/service is who it claims to be. NEXUS candidate #3 -- manual build, not
FORGE-generated, extending the domain-verification engine already live in production on
live-entity-verification (Railway, free -- see below) with two new agent-specific signals.
POST /verify-agent-identity {"domain": "...", "entity_name": "...", "agent_endpoint_url": "..." (optional)}-- charged $0.35 via x402 (Base Sepolia testnet).MCP tool
verify_agent_identityat/mcp-- currently free, see "Known limitations".GET /health,GET /.well-known/agent-card.json,GET /openapi.json(hasx-payment-info).
What it actually checks
Fuses two independent lenses into one verdict:
Domain existence (the
live-entity-verificationengine, ported unchanged -- WHOIS + Certificate Transparency + Wayback Machine + DNS operational maturity, fused with the same calibrated Bayesian priors).Agent liveness (new, only runs if
agent_endpoint_urlis given): a real GET of{agent_endpoint_url}/.well-known/agent-card.json, and a real MCPinitializehandshake at{agent_endpoint_url}/mcp-- not just an HTTP 200 check. Also verifies the agent-card's own declaredurlis bound todomain(catches an agent card hosted somewhere unrelated to the entity it claims to represent).
Verdicts, most-trusted first: VERIFIED_LIVE_AGENT, VERIFIED_LIVE_DOMAIN_ONLY (no agent_endpoint_url
given), DOMAIN_VERIFIED_AGENT_UNREACHABLE, AGENT_DOMAIN_MISMATCH, LIKELY_HALLUCINATED_AGENT,
UNVERIFIED_AGENT. Full semantics in the endpoint's own docstring / OpenAPI description.
Related MCP server: AgentStamp
Why $0.35 (vs $0.01 for the sibling url-metadata-api)
Real cost per call is meaningfully higher: paid WHOIS lookup (~$0.002/call via Whoxy) plus 5-6 real outbound checks (WHOIS, CT, Wayback, DNS, agent-card fetch, MCP handshake) instead of one fetch. $0.35 is the midpoint of the $0.30-0.50 range for identity-verification-class services in the x402 ecosystem.
Relationship to live-entity-verification
live-entity-verification (Railway, live-entity-verification-production.up.railway.app, free, no x402,
asset_registry.status='active' since 2026-08-20) is a separate, still-live asset -- this candidate reuses
its domain-verification code (ported into main.py here, not imported cross-service) but does not replace or
modify it. Don't touch that Railway service as part of work on this one without checking both.
Deploy target: Cloud Run, not Railway
Same pipeline as candidate #4 (url-metadata-api) -- see skills/infra-deploy-ops.
# 1. First deploy -- PUBLIC_DOMAIN not known yet, every real request 421s until step 2.
./scripts/deploy_cloud_run.sh agent-verification-api manual_assets/agent-verification-api
# 2. Grab the printed *.run.app URL, then (only if it differs from env-vars.deploy.yaml's guess):
gcloud run services update agent-verification-api --region us-central1 --project nexus-505016 \
--update-env-vars PUBLIC_DOMAIN=<the-real-domain>No numpy/scipy dependency (removed after the first deploy attempt failed Cloud Buildpacks' Python-3.14
scipy source build, which needs a Fortran compiler not present in the build image -- _fuse_signals_naive_bayes/
_compute_evidence_quality use plain math.log/math.exp/a small _clip helper instead; the one expit
import from the original engine was actually unused dead code, dropped).
Known limitations (left unfixed on purpose -- CLAUDE.md SS3, no gate without evidence it's needed)
MCP tool calls are not charged. Same in-process-call pattern (and same reason) as
url-metadata-api: the MCP tool calls the shared verification function directly, not via HTTP re-entry into the ASGI app.No per-caller rate limiting. Fine for a 7-day disposable measurement; add if it survives.
SSRF guard on
agent_endpoint_url: IP-range based pre-connect check (rejects private/loopback/ link-local/reserved, including cloud metadata's169.254.169.254). The agent-card fetch usesfollow_redirects=False. The MCP handshake uses a customhttpx_client_factorythat also disables redirects (the MCP client library's own default factory hardcodesfollow_redirects=Truewith no opt-out via the publicstreamablehttp_clientsignature -- found in this candidate's pre-deploy security review: a malicious server could otherwise pass the pre-connect check, then 307-redirect the actual MCP request to an internal target). Neither guard defends against DNS rebinding between the check and the actual connect (accepted risk, same as candidate #4).name_matches_cardis informational only, not verdict-gating -- self-reported agent names vary in formatting often enough that a hard mismatch gate would produce false negatives on real agents.
Pre-deploy quality gate (2026-08-22, from design not retroactive)
4 parallel review lenses ran against main.py before the first deploy. Real findings, all fixed before
shipping:
Security (critical): the MCP-handshake SSRF guard was bypassed by the
mcplibrary's hardcodedfollow_redirects=Truedefault -- fixed via a customhttpx_client_factory.Functional (critical): the ported DNS-maturity engine silently dropped 2 of 6 scoring components (DKIM, cross-resolver propagation consistency) despite the module docstring claiming an unchanged port -- restored, and parallelized (was sequential, up to ~48s worst-case per call).
Functional:
_classify_agent_verdict's reachability check used OR between agent-card-present and MCP-handshake-reachable, letting a dead MCP server with a stale-but-present agent-card pass asVERIFIED_LIVE_AGENT-- the exact "vaporware" case this asset exists to catch. Fixed to require the handshake specifically for the top verdict.Code quality: dead function, unused
signal_maskthreading, a dropped explanatory comment -- all cleaned up.Buyer experience: the REST response was undocumented in OpenAPI (
response_modeladded), the 6-value verdict enum had no semantic explanation anywhere reachable pre-payment (added to the endpoint docstring), and the fact that a 400/422 is still charged (ASGI middleware settles before FastAPI validation runs) was underdisclosed (added toagent-card.json'sprotocol_noteand the endpoint docstring).
Measurement (candidate #3, 7-day window)
7-day window from first real deploy (2026-08-22 -> decision point 2026-08-29). Source of truth:
traffic_events/revenue_events/mcp_call_events tables (asset_name = 'agent-verification-api'), not
Cloud Run logs. First real call already confirmed same-session: real x402 payment settled on-chain, real
revenue_events row (amount_eur=0.35, pricing_model=x402), verified against the live url-metadata-api
Cloud Run service as the test agent (agent-card fetched, real MCP handshake succeeded, domain-binding
confirmed). Day 7: if zero real traffic (filtering crawlers), pause/delete the Cloud Run service
(gcloud run services delete agent-verification-api --region us-central1 --project nexus-505016).
This server cannot be deployed
Maintenance
Related MCP Connectors
Payment-backed trust scores for AI agents on Base (ERC-8004). $0.01 per check via x402.
Verify your agent's x402 payment flow for free on Base Sepolia testnet before real money moves.
Verify x402 payment endpoints before an AI agent pays: scam scan, on-chain checks, trust scores.
Reputation oracle for AI agents on Base: SAFE/CAUTION/BLOCK + 0-100 score before you pay. x402+MCP
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to autonomously request services from other specialized agents and compensate them via x402 micropayments. Demonstrates a Machine-to-Machine economy using A2A protocol for agent communication, MCP for context management, and blockchain-based payments on Base network.54 npm2MIT
- AlicenseAqualityDmaintenanceTrust intelligence MCP server for AI agents. 19 tools for identity stamps, reputation scoring (0-100), agent registry, forensic audit trails, ERC-8004 bridge, and A2A passports via x402 USDC micropayments.192Apache 2.0
- AlicenseAqualityDmaintenanceMCP server for AI agent trust verification, enabling agents to verify identities, check trust scores, and build reputation across multiple blockchain and web platforms.1210 npm1MIT
- FlicenseNot gradedqualityDmaintenanceEnables verifiable AI agent identity and reputation management on ICP via MCP, allowing agents to register, create handshake proofs, and verify credentials.-