Server data from the Official MCP Registry
AI agents get on-chain identity, credentials, reputation, escrow, and persistent memory on XRPL.
AI agents get on-chain identity, credentials, reputation, escrow, and persistent memory on XRPL.
Valid MCP server (4 strong, 7 medium validity signals). 3 known CVEs in dependencies (0 critical, 3 high severity) ⚠️ Package registry links to a different repository than scanned source. Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.
13 files analyzed · 4 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-xkumakichi-xaip-mcp-server": {
"args": [
"-y",
"xaip-mcp-server"
],
"command": "npx"
}
}
}From the project's GitHub README.
Not another agent framework. A portable signed receipt layer underneath them.
XAIP is a provider-neutral signed execution evidence layer for AI agent tool calls. It records signed receipts across MCP, LangChain.js, OpenAI-compatible tool-call loops, and other runtimes, then exposes historical execution evidence that agents, developers, or policy layers can inspect before delegation.
Receipts are the primary artifact. Trust scores are one derived view over those receipts — not a claim of absolute safety or correctness.
Live demo: three candidate servers, side-by-side comparison without and with XAIP. Open in browser →
Provider-agnostic by design. XAIP is a trust layer for any tool-using agent. The reference implementation and live data start with MCP (Model Context Protocol) — because that's where the broadest fleet of public tool servers exists today — but the receipt format, signing, and scoring apply equally to LangChain tools, OpenAI function calling, A2A, and proprietary agent stacks. MCP is the first integration, not the only one.
Live dashboard: https://xkumakichi.github.io/xaip-protocol/ — current public trust scores, auto-refreshed, no auth. The current public dataset is MCP-heavy because MCP was the first integration target.
POST /v1/select against three contrasting candidates.The API is live. No signup, no API key.
# Check trust score for a scored tool server
curl https://xaip-trust-api.kuma-github.workers.dev/v1/trust/context7
# Batch query
curl "https://xaip-trust-api.kuma-github.workers.dev/v1/trust?slugs=context7,sequential-thinking,filesystem"
# Decision engine: rank candidates by available execution evidence
curl -X POST https://xaip-trust-api.kuma-github.workers.dev/v1/select \
-H "Content-Type: application/json" \
-d '{"task":"Fetch React docs","candidates":["context7","sequential-thinking","unknown-server"]}'
The /v1/select response tells you which server to use, why, and what would happen without XAIP:
{
"selected": "context7",
"reason": "Highest trust among scored candidates based on current verified receipts",
"rejected": [{ "slug": "unknown-server", "reason": "unscored — no execution evidence available" }],
"withoutXAIP": "Random selection would pick an unscored server 33% of the time — no execution evidence available"
}
Without trust scores, your agent is gambling:
┌────────────────┬────────────────┬───────────┬──────────────┐
│ Strategy │ Server Hit │ Success │ Latency │
├────────────────┼────────────────┼───────────┼──────────────┤
│ With XAIP │ context7 │ ✓ │ ~3s │
│ Random │ unknown-mcp │ ✗ error │ ~8s (wasted) │
│ Try all (seq) │ 3 servers │ 1/3 │ ~11s total │
└────────────────┴────────────────┴───────────┴──────────────┘
XAIP helps agents prefer candidates with stronger available execution evidence, skip unscored candidates when appropriate, and reduce avoidable failed calls.
1. Select POST /v1/select → ranks candidates by available execution evidence
2. Execute Your agent calls the selected tool server
3. Report POST /receipts → signed execution receipt feeds back into trust scores
Every execution receipt is Ed25519-signed and verified. Trust scores are computed using a Bayesian model with caller diversity weighting — not self-reported metrics.
git clone https://github.com/xkumakichi/xaip-protocol.git
cd xaip-protocol/demo
npm install
npx tsx dogfood.ts
This demo:
Compare blind selection strategies against XAIP-guided selection using a static trust snapshot and fixed candidate sets:
cd demo
npm run blind-vs-xaip
This is a deterministic local replay. It does not perform live tool execution, post receipts, or call any external API. See docs/blind-vs-xaip-demo.md for scope, metrics, and limitations.
In the included snapshot replay:
| Strategy | Risky pick rate | Eligible pick rate |
|---|---|---|
| Random | 71.4% | 28.6% |
| Fixed-order | 85.7% | 14.3% |
| XAIP | 14.3% | 85.7% |
risky_pick = selected candidate was low_trust or unscored in the snapshot. fixed-order models an agent that accepts the upstream planner's candidate order without runtime trust data. The claim is limited to this fixed candidate set and static trust snapshot — not a guarantee of real-world execution improvement.
Want the trust graph to depend on more than one operator? Run a caller yourself. No account, no approval, no API key — the aggregator verifies signatures from any valid keypair.
Fastest — zero-install, 30 seconds:
npx xaip-caller
Signs receipts for a handful of real HTTP tool calls and POSTs them. Demonstrates that XAIP works beyond MCP — any HTTP tool can participate. See clients/caller. See Run xaip-caller for Windows notes and external receipt contribution details.
Full path — MCP servers, 5 minutes:
Clone the repo and run the auto-collector against real MCP servers. Your caller DID contributes to the diversity of every scored MCP tool. See docs/contributor/run-a-caller.md.
npm install xaip-sdk
import { XAIPClient } from "xaip-sdk";
const client = new XAIPClient();
// Rank candidates by available execution evidence
const decision = await client.select({
task: "Fetch React documentation",
candidates: ["context7", "sequential-thinking", "unknown-server"],
});
console.log(decision.selected); // "context7"
console.log(decision.withoutXAIP); // "Random selection would pick an unscored server 33% of the time..."
Use XAIP directly from Claude, Cursor, or any MCP-compatible AI agent:
npx xaip-mcp-trust
4 tools: xaip_list_servers, xaip_check_trust, xaip_select, xaip_report
Add to Claude Code (~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"xaip-trust": {
"command": "npx",
"args": ["-y", "xaip-mcp-trust"]
}
}
}
npm: xaip-mcp-trust
| Method | Endpoint | Description |
|---|---|---|
GET | /v1/servers | List all scored servers with trust data |
GET | /v1/trust/:slug | Trust score for a single scored server |
GET | /v1/trust?slugs=a,b,c | Batch trust scores (max 50) |
POST | /v1/select | Decision engine — rank candidates by available execution evidence |
GET | /health | Liveness probe |
Base URL: https://xaip-trust-api.kuma-github.workers.dev
| Field | Type | Description |
|---|---|---|
trust | number | null | 0.0–1.0 score, null if unscored |
verdict | string | trusted ≥0.7 · caution 0.4–0.7 · low_trust <0.4 · unscored |
receipts | number | Total verified execution receipts |
confidence | number | null | Statistical confidence: min(1, receipts/100) |
riskFlags | string[] | Detected risk indicators |
computedFrom | string | Data provenance description |
POST /v1/select)Request:
{
"task": "description of what your agent needs to do",
"candidates": ["server-a", "server-b", "server-c"],
"mode": "relative"
}
mode: "relative" (default) — always selects the best available, even if below thresholdmode: "strict" — rejects all candidates below caution threshold┌──────────────────────────────────────────────────────────┐
│ Your AI Agent │
│ ┌──────────┐ ┌───────────┐ ┌─────────────────────┐ │
│ │ Select │──▶│ Execute │──▶│ Report Receipt │ │
│ │ (Trust │ │ (MCP call)│ │ (Ed25519 signed) │ │
│ │ API) │ └───────────┘ └──────────┬──────────┘ │
│ └────┬─────┘ │ │
└───────┼────────────────────────────────────┼────────────┘
│ │
▼ ▼
┌───────────────┐ ┌──────────────────────┐
│ Trust API │◀────────────────│ Aggregator (BFT) │
│ + Decision │ Service │ Cloudflare D1 │
│ Engine │ Binding │ Ed25519 verification│
└───────────────┘ │ Bayesian scoring │
└──────────────────────┘
Trust Model:
quorum:1)Infrastructure:
XAIP is not a blockchain protocol and not a payment rail.
The current identity model supports multiple DID methods, including did:key, did:web, and ledger-backed identifiers such as did:xrpl. Trust scores are derived from signed execution receipts — not token holdings, payments, or chain affiliation.
The default priors below are deployment policy, not a universal claim about trust:
| DID Method | Default Prior | Use Case |
|---|---|---|
did:xrpl | [5, 1] | Ledger-backed agents (one externally anchored option) |
did:web | [2, 1] | Domain-verified servers |
did:key | [1, 1] | Anonymous / new agents |
Ledger-backed identities may be useful when an agent needs an externally anchored identity. XAIP itself does not require any ledger.
Trust scores are computed from real execution data, not synthetic benchmarks:
# See all scored servers
curl https://xaip-trust-api.kuma-github.workers.dev/v1/servers
| Runtime / integration | Status | How |
|---|---|---|
| MCP (Model Context Protocol) | Live public dataset (10 servers, ~3,100 signed receipts as of 2026-05-08) | xaip-claude-hook, xaip-sdk, xaip-mcp-trust |
| LangChain.js | Tested preview + live receipts landed | xaip-langchain callback handler |
| OpenAI-compatible tool-call loops | Tested preview + live receipts landed | xaip-openai wrapper |
| HTTP tools / A2A / proprietary runtimes | Supported receipt flow | xaip-sdk or direct signed receipt emission |
The receipt schema is intentionally tool-system-agnostic: agentDid, callerDid, taskHash, resultHash, success, latencyMs, failureType, timestamp. Any agent framework that can hash inputs/outputs and sign with Ed25519 can contribute receipts.
See Emit XAIP receipts from anything for the provider-neutral receipt flow.
v0.4.0 live; v0.5 draft in development (tool class taxonomy + observation/display plumbing).
v0.5 class metadata plumbing is live for observation/display.
Class-aware scoring remains a design note and is not used by current trust scores or /v1/select selection behavior.
Trust Score API (Cloudflare Worker, live)
Decision Engine (POST /v1/select)
Aggregator with BFT-capable federation support (public deployment currently single aggregator / quorum:1)
Ed25519 receipt signing + verification
Bayesian trust model with caller diversity
~3,100 signed receipts across 10 scored MCP servers as of 2026-05-08
Automated daily data collection (GitHub Actions)
Published preview receipt producers: xaip-langchain, xaip-openai
MCP Server: xaip-mcp-trust
npm: xaip-sdk@0.4.0
v0.5 specification draft (tool class taxonomy; class-aware scoring is a design note only)
Multi-caller diversity mechanism verified (2+ caller identities, metric responds across 8 servers)
v0.5 class metadata plumbing (observation/display only — does not affect scoring or /v1/select)
Class-aware scoring (design note only — not live behavior)
Zero-install caller path: npx xaip-caller (30-second first contribution, demonstrates XAIP beyond MCP)
External operator callers (mechanism live, external adoption pending — run npx xaip-caller or the full guide)
npx xaip-caller to contribute to the trust graphMIT
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally
by mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.