Ir al contenido

Conectar por MCP

El servidor MCP de D2B está en https://d2b.dev/mcp/ (Streamable HTTP). Hay dos formas de autenticarse: el inicio de sesión del host (OAuth 2.1: apruebas en el navegador y el host renueva solo un token de una hora) o un header Bearer con PAT. Las herramientas son la misma superficie que REST / CLI / SDK, cada una con esquema tipado para tool calling (la lista de herramientas de tu host siempre es la vigente).

Al conectar, la respuesta de inicialización lleva instructions: las normas de uso (qué herramienta y cuándo, traer archivos por referencia, derivar con transforms, releer ante 409, commit_snapshot en los hitos, delete_workbook para limpiar …). Si su host recorta instructions, el mismo texto se lee como recurso d2b://guide. En el repositorio basta con la conexión y la elección de vía (Usar D2B desde un agente de código).

La provisión de workspaces también funciona por MCP (provision_workspace / delete_workspace; requiere una clave de toda la cuenta con los scopes workspaces:create / workspaces:delete; una clave fijada a un workspace no puede crear hermanos).

Registra solo la URL: el host descubre el servidor de autorización a partir del 401 de https://d2b.dev/mcp/ y abre en el navegador la página de consentimiento de D2B. Muestra el nombre de la app, el host al que vuelve, los permisos que recibe (read / write / delete sobre workbooks más cloud-files:read) y con qué cuenta actúa (tu cuenta predeterminada o una de tus cuentas de desarrollador). El token de acceso dura una hora; el host lo renueva con un refresh token. Aparece en Configuración > Tokens de la consola como oauth:<nombre de la app>, así que cada conexión se revoca por separado.

El nombre de la app lo declara el host; D2B no lo verifica. Rechaza una página de consentimiento que no esperabas. Para hosts sin OAuth y para entornos desatendidos como CI, sigue usando el header Bearer con PAT.

Ventana de terminal
claude mcp add d2b --transport http https://d2b.dev/mcp/

Registrado sin header, el host pide iniciar sesión en el primer uso. Los entornos desatendidos pasan un PAT:

Ventana de terminal
claude mcp add d2b --transport http https://d2b.dev/mcp/ \
--header "Authorization: Bearer $D2B_PAT"

Si usas un PAT, que sea de mínimo privilegio — acotado a un workbook, con límite de tasa (Inicio rápido §1).

PropósitoHerramientas
Descubrirlist_my_data / get_schema(include_json_schema) / profile_table / get_lineage / get_downstream / search
Leerread_table / query_sql / validate_sql
Revisarreview_table / review_workbook (hallazgos con evidencia: las fórmulas del archivo de origen, las invariantes de la tabla, etiquetas frente a definiciones; mode="agent" devuelve un trabajo: síguelo con get_job)
Traer datos (referencia primero)ingest_url / request_upload → ingest_upload / list_cloud_files → import_cloud_file / track_onedrive_file / ingest_file
Inspeccionar estructura / revise fielanalyze_source / get_parse_spec / update_parse_spec / materialize_source / revise_source
Contenedores (workbooks, workspaces)list_my_workspaces / create_workbook / delete_workbook / provision_workspace / delete_workspace
Crear y corregircreate_table / add_transform / list_transforms / upsert_rows / delete_rows / write_a1 / put_sheet / get_sheet / list_sheets
Esquemaadd_column / rename_column / retype_column / drop_column / rename_table
Fórmulas y descripcionesset_formula_column / list_formula_columns / clear_formula_column / set_artifact_description / set_column_description / set_table_style / get_table_style
Historiallist_snapshots / commit_snapshot / restore_snapshot / diff_snapshots / recompute_stale / list_ops / undo_op
Conflictos, sincronización, entregalist_conflicts / resolve_conflict / export_tables / bind_external_sheet / list_sync_bindings / unbind_external_sheet / list_file_links / sync_file_link

Las entradas están estrictamente tipadas (enums / modelos estructurados; un harness puede rechazar valores inválidos al generar). La única entrada dependiente de los datos, upsert_rows.rows, se puede restringir en tiempo de ejecución con el JSON Schema por fila de get_schema(name, include_json_schema=true).

Los errores usan el mismo vocabulario problem+json que REST (con suggested_fix) — Leer errores.

El transporte es streamable HTTP sin estado: no se mantiene sesión en el servidor; cada petición es autocontenida (segura para reintentos y escalado horizontal).