About trustscoreagent
trustscoreagent is a public reputation registry for AI agents to check services before calling them, submit ratings afterward, and find reliable options. It combines reputation scoring with verifiable Merkle audit records; its public dataset is still small and the project is in an early phase.
Key features
- 01Check service reputation scores
- 02Submit service ratings
- 03Browse rated services
- 04Inspect Merkle audit proofs
Use cases
- 01Check a service before a paid call
- 02Record service performance after use
- 03Verify the audit proof for a rating
MCP support
Its MCP server exposes reputation checks, rating submission, and service listings to clients such as Claude and Cursor.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @trustscoreagent/mcp-serverTRUSTSCORE_API_URLBase URL of the TrustScore registry. Defaults to the public production API; override only for a self-hosted or staging instance.TRUSTSCORE_AGENT_DIDLeave empty (recommended): the server generates an Ed25519 key in ~/.trustscoreagent and signs its ratings with the matching did:key. Setting a DID here overrides that key, so ratings are sent unsigned and count at half weight.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
3Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| service_did | string | Yes | The service to check. Accepts any format: URL (https://api.example.com), domain (api.example.com), or DID (did:web:api.example.com). All resolve to the same service. |
Details
From the project READMETrustScoreAgent
Free, open reputation registry for AI microservices. Agents check trust scores before calling any service.
Status: Phase 1 (early). The API, scoring (Beta + EigenTrust), receipt verification, Merkle audit trail and MCP server are implemented and tested, but the public dataset is still small (seeded by a transparent probe of public APIs and x402 endpoints), and parts of the design (x402 payments, mandatory agent signatures) are Phase 2. We publish early and openly on purpose: the trust layer for the agentic economy should exist, be auditable, and be adoptable before it becomes critical. See the trust model in SECURITY.md.
What is this?
AI agents increasingly rely on paid microservices. TrustScoreAgent lets any agent:
- Check the reputation of a service before calling it
- Rate a service after calling it
- Discover which services are reliable
No account needed. No API key. Identify services by URL, domain, or DID.
Quick start
# Check a service's trust score (any format works)
curl "https://api.trustscoreagent.com/v1/score?service=api.example.com"
curl "https://api.trustscoreagent.com/v1/score?service=https://api.example.com/v1/translate"
# Unknown services return a neutral score (0.5), no errors
curl "https://api.trustscoreagent.com/v1/score?service=never-seen-before.com"
# Rate a service after calling it
curl -X POST "https://api.trustscoreagent.com/v1/rate" \
-H "Content-Type: application/json" \
-H "X-Agent-DID: my-agent.example.com" \
-d '{
"service": "api.example.com",
"metrics": {
"status_code": 200,
"latency_ms": 143,
"schema_valid": true
}
}'
# List top-rated services
curl "https://api.trustscoreagent.com/v1/services?sort_by=score&min_ratings=10"
Local development
# Start PostgreSQL and Redis
docker compose up -d
# Run the API
dotnet run --project src/TrustScore.Api
# Run tests
dotnet test
# Swagger UI
open http://localhost:5000/swagger
Architecture
- C# / .NET 8: ASP.NET Core Minimal API
- PostgreSQL: Ratings and service scores
- Redis: Score caching, rate limiting, nonce tracking
- Beta Reputation System: Bayesian scoring (per-dimension: availability, latency, conformity)
- EigenTrust: Anti-Sybil agent trust scoring
- Merkle Tree: Audit log with inclusion and consistency proofs (RFC 6962 tree; each leaf commits to what the rating reported)
- Ed25519 Receipt Verification: Cryptographic proof of service interaction
- MCP Server: Integration with Claude, Cursor, and MCP-compatible agents
API Reference
Core (free, always)
| Endpoint | Description |
|---|---|
GET /v1/score?service= | Trust score for a service (0.5 neutral for unknown) |
POST /v1/rate | Submit a rating after calling a service |
GET /v1/services | List rated services (pagination, sorting, filtering) |
GET /v1/agent/trust?did= | Check your agent's trust score |
GET /v1/audit/root | Latest Merkle tree root |
GET /v1/audit/proof/{id} | Inclusion proof for a rating, with the fields it commits to |
GET /v1/audit/anchors | History of anchored roots |
GET /v1/audit/consistency?from=&to= | Proof that a later root extends an earlier one |
GET /v1/audit/anchors/{id}/ots | OpenTimestamps proof that the root is committed in Bitcoin |
GET /v1/stats?days= | How much the registry is used (aggregate counts) |
Premium (free for now, x402 micropayments later)
| Endpoint | Description |
|---|---|
GET /v1/score/history?service= | Daily aggregated score history |
GET /v1/score/detailed?service= | Latency percentiles, quality distribution |
POST /v1/scores/bulk | Up to 100 scores in one request |
Service identification
All endpoints accept services in any format (they are normalized internally):
api.example.com(domain)https://api.example.com/v1/translate(URL)did:web:api.example.com(DID)
All three resolve to the same service.
MCP Server
TrustScoreAgent is available as an MCP server for Claude, Cursor, and other agents.
# Add to Claude Code
claude mcp add trustscoreagent -- npx -y @trustscoreagent/mcp-server
Before paying an x402 endpoint, check_reputation with the pay_to of the 402 you received
says whether that payee is the one the registry has seen there. See docs/mcp.md
for full setup instructions. Also listed on the
official MCP Registry
(io.github.trustscoreagent/mcp-server), npm,
Smithery and
Glama; each GitHub release attaches an
.mcpb bundle for Claude Desktop.
x402 plugin
@trustscoreagent/x402 plugs into the x402 client SDK (@x402/core, used by
@x402/fetch and @x402/axios). Before each payment it checks the payee against the one the
registry saw on that endpoint and stops the payment on a mismatch, before anything is signed.
const guard = trustScoreGuard();
guard.attach(client, http);
const fetchWithPayment = wrapFetchWithPayment(guard.wrapFetch(fetch), http);
The score alone never blocks unless you set minScore, an unreachable registry never blocks
unless you set failClosed, and rating after payment is opt-in (rate: true). It runs in your
agent: requests never go through TrustScoreAgent. See x402-plugin/README.md.
Framework integrations
Drop-in tools for agent frameworks (no account or API key needed):
- LangChain:
from trustscoreagent_langchain import get_trustscoreagent_tools - CrewAI:
from trustscoreagent_crewai import get_trustscoreagent_tools
Each exposes trustscore_check_reputation, trustscore_submit_rating, and
trustscore_list_services. See integrations/.
Documentation
- API Reference
- Examples & Recipes
- Receipt Standard
- MCP Server Setup: Claude, Cursor, Windsurf
- x402 plugin: check the payee before paying
- Why Trust Matters for Agents
- Privacy & Data Handling
- Audit Log Specification, with an independent verifier in
tools/verify-proof
Contributing
Contributions are welcome: see CONTRIBUTING.md and our Code of Conduct. To report a vulnerability, follow SECURITY.md.
Project status & trust model
TrustScoreAgent is Phase 1 (early). What that means in practice:
- Baseline data is real and auditable. Initial scores come from a transparent operated
probe (
did:web:trustscoreagent.com:probe) that measures the availability, latency and conformity of a curated list of public, free APIs, and of the x402 endpoints agents pay the most (picked daily from the public Bazaar catalog and probed without paying, see docs/x402-probe.md): real, Merkle-audited measurements, not fabricated numbers. For those x402 endpoints the score also says which payee address and price they ask for, and when either last changed. Community and receipt-verified ratings accumulate on top. (The earlier fictitious*.example.comseeds have been removed.) - Single operator. Neutrality currently rests on open-source scoring code and a verifiable Merkle audit trail, not on decentralization. Federation is a later phase.
- Agent identity can be proven, but is not yet mandatory. Agents identified by a
did:keysign each rating with their Ed25519 key (X-Agent-Signature), which binds the rating to the holder of that key. Unsigned ratings still count at half weight so existing clients keep working, which means a rating is only as attributable as its signature. Verified service receipts remain the strongest signal.
See SECURITY.md for the full trust model and how to report vulnerabilities.
License
Apache-2.0. See LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.