Saltar al contenido principal
Una sola tool cubre los sistemas externos por MCP: driftless_broker. Opera una Connection que ya existe, y nunca conecta ni desconecta una (el setup es un flujo liderado por humanos en el dashboard o la CLI, no en la superficie de MCP). Si un agente necesita una operación que la tool no lista, tiene que reportar la capability faltante, nunca escribir un script.
El Broker está gated: apagado por defecto en producción (DRIFTLESS_BROKER_ENABLED), con una lane externa aparte (DRIFTLESS_BROKER_ROLLOUT) y grants por principal. Una acción listada no es una utilizable: un caller OAuth/MCP sin rostro y sin grant obtiene un resultado vacío incluso contra una connection saludable.

La tool broker

driftless_broker es basada en action: pasa action para elegir la operación. Las credenciales se resuelven del lado del servidor y cada llamada queda auditada. El setup (connect / disconnect) y escribir scripts de Nango son carriles separados, solo para humanos, no alcanzables aquí.

Acciones

AcciónPropósitoEfecto
connectionsLista las Connections del workspace con salud y criterionread
operationsLista las operaciones de un provider, o busca entre providersread
capabilitiesEl capability directory (kinds, efectos, estados, gates)read
inspectSpec completa de una operación (schema, efecto, riesgo, idempotencia)read
invokeEjecuta una operación con nombre inline (lectura o escritura)read / write
modelsRecord models importables (syncs habilitados)read
recordsLee los records de un modelo sincronizado desde el mirrorread
page-contentLee el texto acotado y citable de una página, en vivoread
index-previewIndex en seco: conteos y muestras candidatasread
indexMaterializa connector documents (propios de Driftless)write (interno)
eventsEl feed de eventos entrantes del providerread
attach-criterion / detach-criterionAdjunta o quita un slug de criterion de Knowledge en una Connectionadmin
driftless_broker action:'connections'
driftless_broker action:'capabilities' provider:'notion'   → solo una capability `ready` es utilizable

Gates y permisos

Tres gates independientes y fail-closed aplican a un caller externo, en orden: el interruptor maestro (DRIFTLESS_BROKER_ENABLED), la lane externa (DRIFTLESS_BROKER_ROLLOUT) y un grant por principal. Una operación además debe estar permitida por la política; en producción el registry de política va vacío, así que ninguna escritura es invocable.
ScopeCubre
broker:readconnections, operations, capabilities, inspect, models, records, page-content, events
broker:invokeinvoke (una operación de lectura o escritura)
broker:adminattach-criterion / detach-criterion; los grants son owner/admin
Los scopes broker:* se aplican solo cuando el Broker está habilitado, y gobiernan la lane encima del rollout y los grants. Un caller interno (una API key propia o una sesión de dashboard) se salta el gate de grant pero igual necesita el resto.

Lecturas y materialización

Las lecturas difieren en si tocan al provider en vivo y en qué crean. records lee el mirror/cache; page-content lee en vivo; index materializa connector documents propios de Driftless; import (una ruta REST, no una acción MCP) mapea records del mirror a Records de Collection. El retrieve de contexto normal nunca consulta un provider.
driftless_broker action:'records' provider:'notion' model:'ContentMetadata' limit:5   → desde el mirror
driftless_broker action:'page-content' page_id:'<pageId>'                              → en vivo, acotado, citado

Disponibilidad

CapacidadEstado
Tool driftless_broker listadaSolo cuando DRIFTLESS_BROKER_ENABLED está encendido
Lecturas de Notion (records, page-content, index)Beta, read-only
Escrituras del Broker (invoke de una op de escritura) en producciónNot available (el registry de política va vacío)
Tools de lectura sintetizadas por workspace (driftless_<provider>_records)Available solo cuando la síntesis está habilitada y una capability está ready
Síntesis de capabilities de escrituraNot available (nunca se sintetizan)

Relacionado