Confirms an AI agent/service is who it claims to be (domain + agent-card + MCP handshake). MCP + x402 (Base Sepolia testnet).
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Documented (README)
- !No standard license detected
git clone https://github.com/nexus-mcp-infra/agent-verification-api && cp agent-verification-api/*.md ~/.claude/agents/Subagents overview
# 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_identity` at `/mcp` -- **currently free**, see "Known limitations".
- `GET /health`, `GET /.well-known/agent-card.json`, `GET /openapi.json` (has `x-payment-info`).
## What it actually checks
Fuses two independent lenses into one verdict:
1. **Domain existence** (the `live-entity-verification` engine, ported unchanged -- WHOIS + Certificate
Transparency + Wayback Machine + DNS operational maturity, fused with the same calibrated Bayesian priors).
2. **Agent liveness** (new, only runs if `agent_endpoint_url` is given): a real GET of
`{agent_endpoint_url}/.well-known/agent-card.json`, and a real MCP `initialize` handshake at
`{agent_endpoint_url}/mcp` -- not just an HTTP 200 check. Also verifies the agent-card's own declared `url`
is bound to `domain` (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.
## 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`.
```bash
# 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's `169.254.169.254`). The agent-card fetch uses
`follow_redirects=False`. The MCP handshake uses a custom `httpx_client_factory` that also disables
redirects (the MCP client library's own default factory hardcodes `follow_redirects=True` with no
opt-out via the public `streamablehttp_client` signature -- 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_card` is 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 `mcp` library's hardcoded
`follow_redirects=True` default -- fixed via a custom `httpx_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 as
`VERIFIED_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_mask` threading, a dropped explanatory comment -- all
cleaned up.
- **Buyer experience**: the REST response was undocumented in OpenAPI (`response_model` added), 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 to `agent-card.json`'s `protocol_note` and 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`).
What people ask about agent-verification-api
What is nexus-mcp-infra/agent-verification-api?
+
nexus-mcp-infra/agent-verification-api is subagents for the Claude AI ecosystem. Confirms an AI agent/service is who it claims to be (domain + agent-card + MCP handshake). MCP + x402 (Base Sepolia testnet). It has 0 GitHub stars and its last recorded update is dated 2026-08-22.
How do I install agent-verification-api?
+
You can install agent-verification-api by cloning the repository (https://github.com/nexus-mcp-infra/agent-verification-api) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is nexus-mcp-infra/agent-verification-api safe to use?
+
Our security agent has analyzed nexus-mcp-infra/agent-verification-api and assigned a Trust Score of 62/100 (tier: OK). See the full breakdown of passed checks and flags on this page.
Who maintains nexus-mcp-infra/agent-verification-api?
+
nexus-mcp-infra/agent-verification-api is maintained by nexus-mcp-infra. The last recorded GitHub activity is dated 2026-08-22, with 0 open issues.
Are there alternatives to agent-verification-api?
+
Yes. On ClaudeWave you can browse similar subagents at /categories/agents, sorted by popularity or recent activity.
Deploy agent-verification-api to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/nexus-mcp-infra-agent-verification-api)<a href="https://claudewave.com/repo/nexus-mcp-infra-agent-verification-api"><img src="https://claudewave.com/api/badge/nexus-mcp-infra-agent-verification-api" alt="Featured on ClaudeWave: nexus-mcp-infra/agent-verification-api" width="320" height="64" /></a>More Subagents
The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
The agent that grows with you
Java 面试 & 后端通用面试指南,覆盖计算机基础、数据库、分布式、高并发、系统设计与 AI 应用开发
Build Agentic workflows, RAG pipelines, with rich AI model and tool support on one collaborative workspace. Deploy on cloud, VPC, or self-hosted, so teams move from prototype to production without rebuilding the stack.
The agent engineering platform.
Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.