Dureach expone 14 herramientas MCP denominadas dureach.<action>. Cada herramienta valida estrictamente los campos desconocidos: los campos adicionales devuelven un error de validación. Respete los límites exactos siguientes; los valores fuera de rango devuelven invalid_arguments.
¿Qué herramientas están disponibles?
| Herramienta | Riesgo | Ámbito requerido | Propósito |
|---|---|---|---|
dureach.workspace.context | R0 | workspace:read | Devuelve ID del espacio de trabajo, nombre, rol del llamante y ámbitos concedidos. |
dureach.workspace.capabilities | R0 | workspace:read | Lista las acciones disponibles para esta conexión. |
dureach.companies.search | R1 | companies:read | Busca registros de empresas por palabra clave. |
dureach.companies.read | R1 | companies:read | Lee una empresa por UUID. |
dureach.trade.search | R1 | trade:read | Busca registros de actividad comercial. |
dureach.trade.query | R1 | trade:read | Ejecuta una consulta SQL de solo lectura en la vista de envíos. |
dureach.contacts.search | R1 | contacts:read | Busca registros de contactos por palabra clave. |
dureach.contacts.query | R1 | contacts:read | Ejecuta una consulta SQL de solo lectura en la vista de contactos. |
dureach.leads.list | R1 | leads:read | Lista leads del espacio de trabajo con paginación. |
dureach.leads.create | R2 | leads:create | Crea un lead; admite simulación (dry_run) y clave de idempotencia (idempotency_key). |
dureach.campaigns.list | R1 | campaigns:read | Lista campañas con paginación. |
dureach.campaigns.draft | R2 | campaigns:create | Redacta una campaña; admite simulación (dry_run) y clave de idempotencia (idempotency_key). |
dureach.email.send | R3 | emails:send | Envía mediante una política permanente revisada por el propietario; requiere un policy_id activo y admite simulaciones (dry_run) y claves de idempotencia. |
dureach.sms.send | R3 | sms:send | Envía mediante una política permanente revisada por el propietario; mismas reglas que el envío de correo. |
Use tools/list para descubrir las herramientas disponibles para su conexión. La disponibilidad depende de los permisos concedidos y del acceso del espacio de trabajo. Empiece con permisos de lectura; pida a un administrador que revise el acceso que falta en lugar de solicitar permisos amplios.
¿Qué argumentos acepta cada herramienta?
workspace.context y workspace.capabilities
Sin argumentos. Envíe {}.
{"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {"name": "dureach.workspace.capabilities", "arguments": {}}}companies.search
| Campo | Tipo | Límites | Predeterminado |
|---|---|---|---|
query | string | 1–200 caracteres, no en blanco | obligatorio |
page | integer | 1–20 | 1 |
limit | integer | 1–50 | 25 |
{"query": "industrial valves", "page": 1, "limit": 10}companies.read
| Campo | Tipo | Detalles |
|---|---|---|
company_id | UUID | obligatorio |
Los ID desconocidos devuelven company_not_found.
trade.search
| Campo | Tipo | Límites | Predeterminado |
|---|---|---|---|
query | string | 3–100 caracteres | obligatorio |
dataset | enum | all, imports, exports, shipments | all |
page | integer | 1–20 | 1 |
limit | integer | 1–50 | 25 |
contacts.search
| Campo | Tipo | Límites | Predeterminado |
|---|---|---|---|
query | string | 3–100 caracteres | obligatorio |
page | integer | 1–40 | 1 |
limit | integer | 1–25 | 25 |
Las consultas cortas de menos de 3 caracteres devuelven un error de validación. Utilice contacts.query cuando la búsqueda por palabra clave no sea lo bastante selectiva.
contacts.query y trade.query
| Campo | Tipo | Límites | Predeterminado |
|---|---|---|---|
sql | string | como máximo 16 KiB UTF-8, gramática de solo lectura | obligatorio |
page | integer | 1–20 | 1 |
limit | integer | 1–50 | 25 |
No incluya LIMIT/OFFSET de SQL; utilice page/limit en su lugar. La página 2 y superiores requieren ORDER BY. Consulte los detalles gramaticales en el Lector SQL de MCP.
leads.list y campaigns.list
| Campo | Tipo | Límites | Predeterminado |
|---|---|---|---|
page | integer | 1–20 | 1 |
limit | integer | 1–50 | 25 |
leads.create
| Campo | Tipo | Detalles |
|---|---|---|
email | obligatorio, como máximo 254 caracteres | |
first_name | string | opcional, como máximo 255 caracteres |
last_name | string | opcional, como máximo 255 caracteres |
company_name | string | opcional, como máximo 255 caracteres |
idempotency_key | UUID | Obligatorio para escribir o enviar realmente; reutilice el mismo UUID al reintentar la misma acción sin cambiar los argumentos. |
dry_run | boolean | opcional, valor predeterminado false; true genera una vista previa sin escribir |
campaigns.draft
| Campo | Tipo | Detalles |
|---|---|---|
name | string | obligatorio, como máximo 255 caracteres |
idempotency_key | UUID | Obligatorio para escribir o enviar realmente; reutilice el mismo UUID al reintentar la misma acción sin cambiar los argumentos. |
dry_run | boolean | opcional, predeterminado false |
email.send y sms.send
| Campo | Tipo | Detalles |
|---|---|---|
policy_id | UUID | obligatorio; política de envío permanente que autoriza el envío |
recipient | string | obligatorio, como máximo 255 caracteres |
idempotency_key | UUID | Obligatorio para escribir o enviar realmente; reutilice el mismo UUID al reintentar la misma acción sin cambiar los argumentos. |
dry_run | boolean | opcional, predeterminado false |
Los envíos sin una política activa devuelven policy_not_found o policy_not_authorized. Los errores de presupuesto, supresión y cuota devuelven policy_budget_exceeded, policy_daily_cap_exceeded, recipient_suppressed, recipient_already_attempted o send_quota_exceeded. Nunca reintente un envío con una clave de idempotencia nueva; reutilice la clave original.
¿Cómo se estructuran los resultados y los errores?
El éxito devuelve un elemento de texto con JSON más un objeto structuredContent correspondiente, validado según el contrato de salida de la herramienta. Los resultados mayores de 1 MiB devuelven result_too_large en lugar de datos parciales.
Los errores devuelven isError: true:
{"error": {"code": "invalid_arguments", "details": {"field": "limit"}},
"request_id": "REQ_ID"}Códigos habituales: unknown_action (utilice un nombre de la tabla con el prefijo dureach.), invalid_arguments, scope_required, plan_capability_required, quota_exceeded (con limit_type, reset_at, retry_after), company_not_found, policy_not_found, policy_not_authorized, result_too_large, action_internal_error.