Servidor MCP

Trust Switchboard

io.github.paul-salviani/trust-switchboard
Infraestructura MCP y de agentes Seguridad Público y accesible MCP 2026-07-28

Qué hace este 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.
Esquema de entrada
{'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.
Esquema de entrada
{'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.
Esquema de entrada
{'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.
Esquema de entrada
{'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.
Esquema de entrada
{'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.
Esquema de entrada
{'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.
Esquema de entrada
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string'}}}
request_approve
HITL pause. Agent waits; human taps yes. Needs a write key.
Esquema de entrada
{'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.
Esquema de entrada
{'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.
Esquema de entrada
{'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.
Esquema de entrada
{'type': 'object', 'required': ['query'], 'properties': {'pond': {'type': 'string'}, 'limit': {'type': 'integer'}, 'query': {'type': 'string'}}}
Añadido
decide_approve
17 de September de 2026 a las 12:45
Añadido
request_approve
17 de September de 2026 a las 12:45
Añadido
nutrition_label
17 de September de 2026 a las 12:45
Añadido
spend_check
17 de September de 2026 a las 12:45
Añadido
log_click
17 de September de 2026 a las 12:45
Añadido
ingest_listing
17 de September de 2026 a las 12:45
Añadido
commit_recommend
17 de September de 2026 a las 12:45
Añadido
log_intent
17 de September de 2026 a las 12:45
Añadido
handshake
17 de September de 2026 a las 12:45
Añadido
trust_check
17 de September de 2026 a las 12:45
Añadido
whats_good_for
17 de September de 2026 a las 12:45