Odel
agenttrust mcp

agenttrust mcp

Local
@bch1212PythonMITUpdated 3mo ago

Trust scores & reputation for the agent-to-agent economy. Verify A2A counterparties.

AgentTrust MCP

The trust layer for the A2A economy. A first-mover credit-bureau-style reputation infrastructure for AI agents.

As agent-to-agent commerce scales toward $450B by 2028, agents need a way to verify counterparties before transacting — payments, data brokerage, scraping, research, anything paid. AgentTrust gives every agent a portable identity, a 0–1000 trust score, an immutable transaction history, and peer endorsements. Other agents query it; humans verify it; disputes erode it.

Twelve MCP tools, one SQLite store, zero external dependencies. Drop-in compatible with the Anthropic MCP protocol.


Install

claude mcp add agenttrust-mcp --url https://mcp-agenttrust.up.railway.app/mcp

Or run locally:

git clone <this repo> && cd mcp-agenttrust
pip install -r requirements.txt
python -m uvicorn server:app --reload

Open http://localhost:8000/ for the service banner, /health for liveness, /docs for the OpenAPI explorer.


MCPize Listing Copy

AgentTrust — Reputation infrastructure for the A2A economy.

Before your agent wires money, hands over data, or accepts a job from another agent, ask AgentTrust who they're dealing with. Every counterparty gets a 0–1000 trust score that combines transaction history, success rate, account age, peer endorsements, and dispute record — recomputed live. Free for read calls; $9/mo unlimited writes.

First-mover infrastructure for a $450B market: as A2A commerce scales, every agent needs a counterparty-check tool. Twelve MCP tools cover the full lifecycle — register, transact, dispute, endorse, verify, search, and rank. SQLite-backed, async, deployable in one click on Railway. Built for agents that need to know before they trust.


Pricing

TierLimitPrice
Free100 write calls/day$0
ProUnlimited writes$9/mo
Pay-per-call$0.001 / write callmetered

All read tools (get_*, search_*, get_leaderboard) are public — no API key required.


Trust Tiers

TierScore rangePlain English
PLATINUM800–1000Long history, near-perfect success rate, verified, endorsed
GOLD550–799Established, mostly clean, decent volume
SILVER300–549Mid-pack, modest volume, no major disputes
BRONZE100–299Junior, small footprint, untested at scale
NEW0–99Fresh registration — transact at your own risk

Trust Score Algorithm (plain English)

Every score is recomputed live on read — no stale cache. Six independent signals combine into a number between 0 and 1000:

Volume (0–200, log scale). A first transaction is worth ~12 points; ten transactions ~40; a hundred ~80; a thousand caps at 200. We use a log curve so high-volume agents don't dwarf legitimate small ones — being active matters, but not exponentially.

Success rate (0–400, the heaviest signal). The percentage of transactions marked successful, multiplied by 400. A 99% success rate is worth 396 points; a 50% rate is only 200. This is the single most important factor — agents that ship reliably climb fastest.

Age (0–100, capped at one year). Each day since registration adds about a quarter of a point, maxing out at 365 days. Not a huge factor, but real: a one-day-old agent with five great transactions is still less trustworthy than a one-year-old agent with the same record.

Endorsements (0–200). Every peer endorsement (quality / reliability / speed / domain expertise) is worth 10 points, capped at 200. This is the social signal — other agents and operators vouching for this one.

Disputes (unbounded penalty). Each upheld dispute against the agent removes 30 points, with no floor below zero. A bad actor can score 1000 from the other categories and still bottom out at 0 from disputes alone.

Verification bonus (+100). A one-time bump when an operator verifies the agent (DNS proof, KYC, or platform-specific check). It's worth roughly the same as 10 endorsements — meaningful, not decisive.

The score then clamps to [0, 1000] and maps to a tier. Recompute happens on every transaction, endorsement, dispute resolution, and verification — so the score is never more than one event behind reality.


MCP Tools

ToolAuthWhat it does
register_agentAPI keyMints an agent_id + agent_token. NEW tier, score 0.
get_agent_profilepublicFull profile + live trust score, tier, stats.
get_trust_scorepublicScore, tier, and per-category breakdown.
record_transactionAPI keyLogs a transaction (success or failure); recomputes both sides.
dispute_transactionAPI keyFile a dispute. Reporter must be a counterparty.
resolve_disputeadmin keyResolve in favor of reporter / respondent / invalid.
endorse_agentAPI keyEndorse another agent (quality / reliability / speed / domain).
get_transaction_historypublicPaginated transaction list, most recent first.
search_agentspublicFilter by capability, min score, verified flag.
verify_agentadmin keyOperator verification → +100 score bonus.
get_leaderboardpublicTop-N agents, optionally filtered by capability.
report_agentAPI keyFile an out-of-band abuse report (separate from a tx dispute).

Demo Data

On startup, five seed agents land in the DB at different tiers — demo-platinum-001 (AlphaAgent), demo-gold-001 (BetaAgent), demo-silver-001 (GammaAgent), demo-bronze-001 (DeltaAgent), demo-new-001 (EpsilonAgent). Use them for quickstart demos.


Quickstart Calls

# Public read — no key needed
curl -s http://localhost:8000/tools/get_leaderboard \
  -H 'content-type: application/json' \
  -d '{"limit": 5}' | jq .

# Register a new agent
curl -s http://localhost:8000/tools/register_agent \
  -H 'content-type: application/json' \
  -H 'x-api-key: agenttrust-dev-key-001' \
  -d '{"agent_id":"my-agent","name":"My Agent","capabilities":["search","rag"]}' | jq .

# Record a successful transaction
curl -s http://localhost:8000/tools/record_transaction \
  -H 'content-type: application/json' \
  -H 'x-api-key: agenttrust-dev-key-001' \
  -d '{"from_agent":"my-agent","to_agent":"demo-platinum-001","amount_usd":42.0,"success":true,"description":"data lookup"}' | jq .

JSON-RPC MCP Transport

POST /mcp speaks the standard MCP JSON-RPC dialect:

{"jsonrpc":"2.0","id":1,"method":"tools/list"}
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_trust_score","arguments":{"agent_id":"demo-gold-001"}}}

tools/call results return as {"content":[{"type":"text","text":"<JSON>"}],"isError":<bool>}.


Tests

pytest -v

34 tests covering: HTTP surface (16), trust-score edge cases (18). Specific edge cases included: zero-transaction agents, 100% dispute rate, max-endorsement cap, failure rates that erode score, score-bounded between 0 and 1000.


Deploying to Railway

./deploy.sh

Reads the project's RAILWAY_TOKEN from ~/Projects/agentic-builds/Build Prompts from OpenClaw/.deploy-secrets.env, provisions the service via nixpacks, sets env vars, and prints the public URL.


License

MIT.