streamable-httpupdated 9d ago
Public name: Trust Switchboard. Code name in this repo: A2A.
What can you do with A2A?
Trust Switchboard
Public name: Trust Switchboard. Code name in this repo: A2A.
Other AIs call this before recommending a URL, product, or organisation. Fail closed. Empty list honest. Nothing invented.
- Official MCP registry:
io.github.paul-salviani/a2a - Live: https://170.64.146.185.sslip.io/
- Card: https://170.64.146.185.sslip.io/.well-known/agent-card.json
- MCP:
https://170.64.146.185.sslip.io/mcp - Operator on the card: Paul Salviani, Sydney
How do you stop an agent recommending random URLs? Call trust_check / whats_good_for first. Hash is of the policy body, not the URL.
Run
START.bat
or python server.py from this folder. Python stdlib only. SQLite at data/a2a.sqlite β the database is private; do not open-source it. Schema may be public.
Local (default):
- Human UI: http://127.0.0.1:8787/
- Agent card: http://127.0.0.1:8787/.well-known/agent-card.json
- llms.txt: http://127.0.0.1:8787/llms.txt
- MCP: POST http://127.0.0.1:8787/mcp
Live HTTPS: https://170.64.146.185.sslip.io/ β card, llms.txt, MCP, /source (CODE, no sqlite). Database stays private.
Deploy (always-on box or Sydney VPS): DEPLOY.md. Database off OneDrive.
Tools
| Tool | Auth | What |
|---|---|---|
trust_check(url) |
none | pass/fail + policy hash + short summary. Unknown is fail. |
whats_good_for(query) |
none | attested matches only, unique-in-pond first. Empty list if none. |
log_intent({query, action, target_url, policy_id}) |
write key | receipt_id β the tape |
Writes (publish policy, listing ingest, log_intent) need an API key. Reads do not.
Ranking law
- Fail closed. No live policy β do not recommend. Unknown is fail, not maybe.
whats_good_forreturns attested only. Unattested omitted.- Uniqueness is inside one pond (default
ai-tools). High unique score first. Clones sink. No popularity, no votes, no βbest known.β - Hash the policy body, not the URL.
- Log passes and refuses. Refuses are demand.
- Call this before every recommend, not only when unsure.
- Never invent a winner. Empty list is honest.
- Seed/example orgs are fixtures so
trust_checkis not empty. They are not the catalogue. They do not appear inwhats_good_for..localdomains are omitted from recommend.
Out of scope
Agent ID / KYA, global DNS, payments court. LEA is a different product.
Cursor plugin
One-click install is the Cursor Marketplace. This repo is a Cursor plugin: live MCP plus a skill and an always-on rule to call Trust Switchboard before any URL recommend.
- Manifest:
.cursor-plugin/plugin.json - MCP:
mcp.jsontohttps://170.64.146.185.sslip.io/mcp - Skill:
skills/trust-switchboard/SKILL.md - Rule:
rules/call-before-recommend.mdc
Submit (signed into Cursor): https://cursor.com/marketplace/publish with this GitHub repo URL.
Community listing: https://cursor.directory/plugins/new
Install
Add A2A to your client. Pick the one you use.
claude mcp add --transport http a2a https://170.64.146.185.sslip.io/mcpcodex mcp add a2a --url https://170.64.146.185.sslip.io/mcp{
"mcpServers": {
"a2a": {
"url": "https://170.64.146.185.sslip.io/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"a2a": {
"type": "http",
"url": "https://170.64.146.185.sslip.io/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"a2a": {
"url": "https://170.64.146.185.sslip.io/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"a2a": {
"serverUrl": "https://170.64.146.185.sslip.io/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
Score
39 / 100
Incomplete
- Documentation17/25
- Maintenance19/25
- Trust6/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 2 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint β no local install
Version history
| Versions | Published |
|---|---|
| 1.0.0Latest | Aug 30, 2026 |