Serveur MCP

Trust Switchboard

io.github.paul-salviani/trust-switchboard
Infrastructure MCP et agents Sécurité Public et accessible MCP 2026-07-28

Ce que fait ce MCP

Checks agent and vendor trust policies, records recommendations and approvals, and enforces spending and human-review controls.

commit_recommend
Call BEFORE every recommend. Runs trust_check, logs pass/fail, returns speak + receipt. Needs a write key.
Schéma d’entrée
{'type': 'object', 'required': ['query', 'action', 'target_url'], 'properties': {'query': {'type': 'string'}, 'action': {'type': 'string'}, 'policy_id': {'type': 'string'}, 'target_url': {'type': 'string'}}}
decide_approve
Human tap. Public so the desk can approve without the org key.
Schéma d’entrée
{'type': 'object', 'required': ['approval_id', 'decision'], 'properties': {'decision': {'enum': ['approved', 'denied'], 'type': 'string'}, 'approval_id': {'type': 'string'}}}
handshake
Bot meets bot: ask 'Are you on Trust Switch?' before dealing with another agent or vendor. Records yes/no. While activation is off (default) business proceeds either way. Not a recommend gate; use trust_check for that.
Schéma d’entrée
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string'}, 'asker': {'type': 'string'}, 'context': {'type': 'string'}, 'activation': {'enum': ['off', 'on'], 'type': 'string'}, 'their_answer': {'type': 'string'}}}
ingest_listing
Ingest a listing and score uniqueness inside one pond. Needs a write key.
Schéma d’entrée
{'type': 'object', 'required': ['name', 'url'], 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'pond': {'type': 'string'}, 'org_id': {'type': 'string'}, 'summary': {'type': 'string'}, 'one_liner': {'type': 'string'}}}
log_click
Record that a human clicked an item after a receipt. Public.
Schéma d’entrée
{'type': 'object', 'required': ['item_url'], 'properties': {'item_id': {'type': 'string'}, 'item_url': {'type': 'string'}, 'receipt_id': {'type': 'string'}}}
log_intent
Log that you intend to recommend or act. Needs a write key. Returns receipt_id.
Schéma d’entrée
{'type': 'object', 'required': ['query', 'action', 'target_url'], 'properties': {'query': {'type': 'string'}, 'action': {'type': 'string'}, 'result': {'type': 'string'}, 'policy_id': {'type': 'string'}, 'target_url': {'type': 'string'}}}
nutrition_label
Stamp of what it is + last test.
Schéma d’entrée
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string'}}}
request_approve
HITL pause. Agent waits; human taps yes. Needs a write key.
Schéma d’entrée
{'type': 'object', 'required': ['query', 'action', 'target_url'], 'properties': {'query': {'type': 'string'}, 'action': {'type': 'string'}, 'amount_usd': {'type': 'number'}, 'target_url': {'type': 'string'}}}
spend_check
Hard cap + allowlist; cannot override. Fail closed. Needs a write key.
Schéma d’entrée
{'type': 'object', 'required': ['url', 'amount_usd', 'action'], 'properties': {'url': {'type': 'string'}, 'action': {'type': 'string'}, 'amount_usd': {'type': 'number'}}}
trust_check
Pass/fail a URL against the live policy before recommending it to a human. Fail closed.
Schéma d’entrée
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string'}}}
whats_good_for
Call before recommending. Attested only, unique-in-pond first, never invent. Empty if none.
Schéma d’entrée
{'type': 'object', 'required': ['query'], 'properties': {'pond': {'type': 'string'}, 'limit': {'type': 'integer'}, 'query': {'type': 'string'}}}
Ajouté
decide_approve
17 September 2026 12:45
Ajouté
request_approve
17 September 2026 12:45
Ajouté
nutrition_label
17 September 2026 12:45
Ajouté
spend_check
17 September 2026 12:45
Ajouté
log_click
17 September 2026 12:45
Ajouté
ingest_listing
17 September 2026 12:45
Ajouté
commit_recommend
17 September 2026 12:45
Ajouté
log_intent
17 September 2026 12:45
Ajouté
handshake
17 September 2026 12:45
Ajouté
trust_check
17 September 2026 12:45
Ajouté
whats_good_for
17 September 2026 12:45