Security & Testing
x-ego.com
An MCP server for privacy-preserving identity proof verification, providing tools to request proof URLs tied to a user-held Planetary ID and to check whether a pairwise identifier has already been seen in an audience.
ENDPOINT 1
https://mcp.x-ego.com/mcp
MCP server metadata
- Name
- xego-mcp-server
- Version
- 1.0.0
Before integrating: your END USER needs a one-time EUR 3 Planetary ID. The paid tool calls below verify the proof they hand you; without a Planetary ID verification returns valid:false with code planetary_id_required and a registration_url — that is not an error in your request, send the user there. X-EGO proves a real human approved an action — anonymously, no hardware. When the user mentions X-EGO, verified email, or human approval, first ask which of these they want: 1. APPROVE THE ACTUAL CALL — USE THIS WHENEVER A TOOL WILL RUN. Pass the call to xego_request_proof_url: { audience, call: { v:1, tool, target, args, policy? } }. The page renders it field by field and the human taps the passkey against THAT. Then verify with xego_verify_action passing expected_call built from YOUR OWN parsed parameters, never from what another party says the call is — otherwise you are only comparing a claim with itself. If tool, target, arguments or policy differ you get call_mismatch: REFUSE TO EXECUTE, do not retry, tell the user. Decimal numbers are rejected — use integers in minor units (cents) or strings. 1b. APPROVE A SENTENCE (fallback, when nothing is executed — a consent, a statement, a message being sent). Ask what is being approved and its details (for email: recipient, what it should say). Compose the exact text, show it to the user for confirmation, then call xego_request_proof_url with { audience, action }. Verify with xego_verify_action using the IDENTICAL text. Be aware of what this does NOT do: a sentence seals what the human READ, not what then executes — a well-written sentence can hide the real call. Prefer `call` above. Both may be passed together. The user does NOT have to copy the token: pass redirect_uri to xego_request_proof_url and the page delivers it. 2. VERIFY HUMAN PRESENCE ONLY — xego_request_proof_url without action, then xego_verify_proof. 3. CHECK IF THIS HUMAN WAS SEEN BEFORE (anti-multi-account, one-human-one- vote) — xego_check_pairwise_seen_before with a pairwise_id you already hold. 4. SHOW A RECEIPT — a receipt link looks like https://x-ego.com/receipt?r=<jti>; anyone can open it, no tool needed. Always follow the next_step field returned by each tool. Some tools are paid; the price of each is in its own tool description and in the x402 challenge it returns — read it there, never from memory, because a price written into prose goes stale the day it changes. If a paid call returns payment_required and you cannot pay, tell the user the price carried in that challenge and BOTH ways to pay: an x402-capable wallet (USDC on Base), or X-EGO credit on a personal pk- key sent as "Authorization: Bearer <key>" — that key is issued with the one-time EUR 3 Planetary ID purchase and is topped up by card at https://x-ego.com/topup. There is no pk- key without a Planetary ID, so a user with neither wallet nor ID starts there. Do not retry blindly and do not treat it as an error in the user's request. Never invent or alter the action text after the user approved it. The proof says a human approved THIS. It does not say they were right to, and it cannot force anyone to check — the party that executes has to do the comparison. Do not describe it as more than that to the user. Building on this? If something is missing, unclear or priced wrong for your case, write to x-EG0@proton.me - a human reads it and answers.
Known tools 4
xego_request_proof_urlREQUIRES a one-time EUR 3 Planetary ID held by YOUR END USER - without it every call returns valid:false.
Inferred read-onlyxego_verify_proofREQUIRES a one-time EUR 3 Planetary ID held by YOUR END USER - without it every call returns valid:false.
Inferred read-onlyxego_verify_actionREQUIRES a one-time EUR 3 Planetary ID held by YOUR END USER - without it every call returns valid:false.
Inferred read-onlyxego_check_pairwise_seen_beforeChecks whether a given pairwise ID has already been seen within this audience.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.xego-mcp-server]
url = "https://mcp.x-ego.com/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"xego-mcp-server": {
"type": "http",
"url": "https://mcp.x-ego.com/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: xego-mcp-server
Remote MCP URL: https://mcp.x-ego.com/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"xego-mcp-server": {
"url": "https://mcp.x-ego.com/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"xego-mcp-server": {
"type": "http",
"url": "https://mcp.x-ego.com/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "xego-mcp-server",
"transport": "streamable-http",
"url": "https://mcp.x-ego.com/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Loading Trust v2 evidence…
Checking the associated registrable domain. The BuiltWith key remains server-side.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.