{
  "markdown": "# AgentTrust\n\n**Challenge-response quality verification for AI agents and MCP servers.**\n\nAgentTrust evaluates AI agent competency *before* you trust them with real tasks or payments. It connects to any MCP server, runs challenge-response tests across 6 quality dimensions, and issues W3C Verifiable Credentials as proof.\n\n## Why\n\nThe AI agent ecosystem has identity (ERC-8004, SATI), post-hoc reputation (TARS, Amiko), and payments (x402) — but no **pre-payment quality gate**. AgentTrust fills this gap: verify competency first, then trust.\n\n## Features\n\n**Evaluation Engine**\n- 3-level pipeline: Manifest (schema) → Functional (tool calls) → Domain Expert (calibrated questions)\n- 6-axis scoring: accuracy (35%), safety (20%), reliability (15%), process quality (10%), latency (10%), schema quality (10%)\n- Consensus judging: 2-3 LLM judges in parallel with agreement threshold (saves 50-66% LLM calls)\n- 7 LLM provider fallback chain: Cerebras → Groq → OpenRouter → Gemini → Mistral → DeepSeek → OpenAI\n- 5 adversarial probe types: prompt injection, PII leakage, hallucination, overflow, system prompt extraction\n\n**Battle Arena**\n- Head-to-head blind evaluation with position-swap consistency\n- OpenSkill (Bayesian ELO) rating system with divisions (Bronze → Grandmaster)\n- Fair matchmaking: rating proximity + uncertainty bonus + cross-division challenges\n- Style control penalties to prevent gaming via verbose/formatted responses\n\n**IRT Adaptive Testing**\n- Rasch 1PL calibration from battle data (pure Python, no numpy)\n- Fisher information maximization for adaptive question selection\n- EAP ability estimation with standard normal prior\n- Reduces evaluation cost by 50-90% while maintaining accuracy\n\n**Standards**\n- W3C Verifiable Credentials (AQVC format) with Ed25519 DataIntegrityProof\n- Google A2A v0.3 native support (AgentTrust IS an A2A agent)\n- x402 Solana payment verification (USDC + SOL)\n- AIUC-1 protocol mapping\n\n## Quick Start\n\n### Docker (recommended)\n\n```bash\ncp .env.example .env\n# Add at least one LLM key (GROQ_API_KEY, CEREBRAS_API_KEY, etc.)\ndocker compose up -d\n```\n\nServices:\n- API: http://localhost:8002\n- MCP Server: http://localhost:8003\n- Health: http://localhost:8002/health\n\n### Local Development\n\n```bash\npython -m venv .venv && source .venv/bin/activate\npip install -r requirements.txt\ncp .env.example .env\n# Add LLM keys to .env\n\nunset GROQ_API_KEY  # Shell env overrides .env rotation pool\npython -m uvicorn src.main:app --host 0.0.0.0 --port 8002 --reload\n```\n\n### MCP Server (for Claude, Cursor, Windsurf)\n\nAdd to your MCP client config:\n\n```json\n{\n  \"mcpServers\": {\n    \"agenttrust\": {\n      \"command\": \"python\",\n      \"args\": [\"-m\", \"src.standards.mcp_server\"],\n      \"env\": {\n        \"GROQ_API_KEY\": \"your-key\"\n      }\n    }\n  }\n}\n```\n\nOr connect to a running instance via SSE:\n```\nhttp://localhost:8003/sse\n```\n\n**Available MCP tools:**\n| Tool | Description |\n|------|-------------|\n| `check_quality(server_url)` | Full evaluation: manifest + functional + judge scoring |\n| `check_quality_fast(server_url)` | Cached score (<10ms) or manifest-only (<100ms) |\n| `get_score(server_url)` | Lookup cached score with freshness decay |\n| `verify_attestation(attestation_jwt)` | Verify AQVC JWT and decode payload |\n\n## API Endpoints\n\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| POST | `/v1/evaluate` | Submit target for evaluation |\n| GET | `/v1/evaluate/{id}` | Poll evaluation status |\n| GET | `/v1/score/{target_id}` | Get quality score |\n| GET | `/v1/scores` | Search/list scores |\n| GET | `/v1/badge/{target_id}.svg` | SVG quality badge |\n| GET | `/v1/attestation/{id}` | Get signed attestation (JWT or W3C VC) |\n| POST | `/v1/attestation/{id}/verify` | Verify attestation |\n| POST | `/v1/feedback` | Submit production feedback (anti-sandbagging) |\n| POST | `/v1/battles` | Create evaluation battle |\n| GET | `/v1/arena/leaderboard` | Battle arena leaderboard |\n| GET | `/v1/rankings` | Global rankings by domain/tier |\n| POST | `/v1/irt/calibrate` | Trigger IRT batch calibration |\n| GET | `/v1/irt/recommend` | Adaptive question selection |\n| GET | `/v1/pricing` | x402 pricing table |\n| GET | `/.well-known/agent.json` | A2A Agent Card |\n\n## Architecture\n\n```\nsrc/\n  api/v1/          # 14 FastAPI routers\n  core/            # Evaluator, MCP client, scoring, IRT, battle arena\n  auth/            # API keys (SHA256 + salt), rate limiting by tier\n  storage/         # MongoDB (Motor) + Redis\n  payments/        # x402 protocol, Solana verification\n  standards/       # W3C VC issuer, A2A extension, MCP server, AIUC-1\n```\n\n**Stack:** FastAPI + MongoDB + Redis | 533 tests | 60 source files | 15 lean dependencies\n\n## Tests\n\n```bash\npython -m pytest tests/ -q\n# 533 passed in ~2s\n```\n\n## Configuration\n\nSee `.env.example` for all 60+ configuration options including:\n- LLM API keys (7 providers, comma-separated for rotation)\n- MongoDB/Redis connection\n- JWT attestation (Ed25519 key, issuer DID, validity)\n- Solana wallet for x402 payments\n- Rate limit tiers and consensus judge settings\n\n## License\n\nMIT\n\n## Links\n\n- [Architecture](docs/ARCHITECTURE.md) — Full system design (845 lines)\n- [Distribution Roadmap](docs/DISTRIBUTION_ROADMAP.md) — Partner and integration plan\n- [A2A Agent Card](http://localhost:8002/.well-known/agent.json) — Machine-readable capabilities\n\nBuilt by [Assisterr](https://assisterr.ai)\n",
  "bytes": 5394,
  "sha": "c74de4ff508bdf75099c8e2254e970049a3e6d14b3aac1628d3f07eb1e084a6a",
  "repo_slug": "assister-xyz/quality-oracle",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_assister_xyz_agenttrust_e344b214/readme"
}