DokuTrak

Recopila documentos de tus clientes sin salir de tu agente: crea una solicitud de documento (el correo se envía solo después de que confirmes), consulta el estado archivo por archivo, persigue los archivos rechazados y descarga los archivos recopilados como un ZIP.

Documentación

dokutrak-mcp

El conector abierto MCP para DokuTrak: deja que tu agente persiga los documentos.

DokuTrak recopila documentos de tus clientes en tu nombre: envías una solicitud, el cliente los sube a través de un enlace seguro, los archivos se revisan y los clientes silenciosos reciben recordatorios. Este conector pone ese ciclo dentro del agente en el que ya trabajas, para que "¿en qué punto está el expediente de Dupont?" se responda sin salir de Claude.

El conector es un cliente ligero y sin estado de la API de DokuTrak. Contiene la Conexión de Agente que le proporcionas, no almacena nada en disco, no mantiene caché y no duplica ninguna regla: lo que tu agente puede y no puede hacer lo decide el servicio, y los rechazos vuelven como errores de herramienta con la explicación propia del servicio.

Instalación

Necesitas un espacio de trabajo de DokuTrak y una Conexión de Agente, emitida desde Configuración → Conectar un agente en la aplicación de DokuTrak. Esa pantalla te entrega una configuración lista para pegar con tu clave ya incluida; las instrucciones siguientes son lo mismo, pero a mano.

La clave se lee de la variable de entorno DOKUTRAK_API_KEY. Nunca se toma de la línea de comandos.

Claude Desktop

Abre el archivo de configuración:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Añade el servidor bajo mcpServers (crea el objeto si el archivo está vacío):

{
  "mcpServers": {
    "dokutrak": {
      "command": "npx",
      "args": ["-y", "dokutrak-mcp"],
      "env": { "DOKUTRAK_API_KEY": "dk_live_…" }
    }
  }
}

Reinicia Claude Desktop. Las herramientas de DokuTrak aparecen en el menú de herramientas de una nueva conversación.

Claude Code

claude mcp add dokutrak -e DOKUTRAK_API_KEY=dk_live_… -- npx -y dokutrak-mcp

Luego /mcp dentro de Claude Code lista dokutrak y sus herramientas.

claude.ai

No compatible en esta versión. claude.ai se conecta a servidores MCP remotos a través de HTTP con OAuth; este conector habla stdio con una clave de API, que es lo que necesita una instalación local en Claude Desktop o Claude Code. Una variante alojada es una decisión separada y posterior.

Desde un clon, antes del lanzamiento de npm

git clone https://github.com/Crackx17/dokutrak-mcp.git
cd dokutrak-mcp
npm ci && npm run build

Luego apunta el cliente al archivo compilado en lugar de npx:

{
  "mcpServers": {
    "dokutrak": {
      "command": "node",
      "args": ["/path/to/dokutrak-mcp/dist/cli.js"],
      "env": { "DOKUTRAK_API_KEY": "dk_live_…" }
    }
  }
}

o, para Claude Code: claude mcp add dokutrak -e DOKUTRAK_API_KEY=dk_live_… -- node /path/to/dokutrak-mcp/dist/cli.js.

La habilidad

skills/dokutrak/SKILL.md enseña al agente los tres usos cotidianos — pedir documentos a un cliente, saber en qué punto está una solicitud, perseguir archivos rechazados — y cómo conectarse. Es lo que un usuario de DokuTrak instala junto al conector:

npx skills add Crackx17/dokutrak-mcp        # the open agent-skills installer
# or by hand, for Claude Code / Claude Desktop:
cp -r skills/dokutrak ~/.claude/skills/dokutrak

Configuración

VariableObligatoriaPredeterminadoSignificado
DOKUTRAK_API_KEYsí—La Conexión de Agente, desde Configuración → Conectar un agente.
DOKUTRAK_API_URLnohttps://app.dokutrak.com/apiURL base de la API. Termina en /api; el conector añade /v1.

Herramientas

Cuatro herramientas, un solo viaje de ida y vuelta: pedir, perseguir, saber, recopilar.

create_request

Crea una Solicitud de Documentos y la envía, en una sola llamada, para que nada quede creado pero sin enviar. Toma el correo del cliente, una fecha límite (YYYY-MM-DD o una fecha hora ISO), la lista de verificación de documentos solicitados, y un título y mensaje opcionales. El correo va al destinatario indicado aquí y a nadie más; el cliente sube los archivos a través del enlace seguro que contiene. Bajo el capó, esto es el mismo proceso de dos pasos que realiza la aplicación de DokuTrak: crear con sendEmail: false, luego enviar. Si el envío falla, el error menciona la solicitud creada, que permanece visible en el panel de control.

Nada sale sin tu sí. El correo a un cliente real no se puede recuperar, así que la herramienta le indica al agente que te muestre el destinatario, la fecha límite, la lista de verificación y el mensaje, y que espere tu confirmación. La herramienta también está marcada para que el cliente te pregunte antes de cada llamada: Claude Code solicita confirmación cada vez, incluso en modo automático o de omisión, y Claude Desktop la trata como una herramienta que siempre necesita aprobación. Un cliente que ignore estas marcas se queda solo con la instrucción al agente.

request_replacement

Persigue al cliente por los archivos rechazados de una solicitud: los marca, devuelve la solicitud al estado de espera del cliente y la reincorpora a la cadencia automática de recordatorios. Esta llamada no envía ningún correo por sí misma; los recordatorios lo hacen, y DokuTrak no tiene forma de enviar un correo al cliente de inmediato, ni siquiera desde el panel de control. El mensaje opcional se registra en el rastro de auditoría de la solicitud y no se envía al cliente. Rechaza una solicitud sin archivos rechazados.

get_request

En qué punto está una Solicitud de Documentos, en una sola llamada: estado, lista de verificación, cada archivo recopilado con su veredicto (aprobado, rechazado con el motivo del revisor, o pendiente) y el estado de los recordatorios. Proporciona un request_id, o un término search que coincida con el título o con el nombre o correo del cliente. Cuando varias solicitudes coinciden, la herramienta devuelve los candidatos y pide el id.

download_documents

Cada archivo recopilado de una solicitud, como un solo archivo zip. El archivo vuelve incrustado en el resultado de la herramienta como contenido binario (un recurso MCP con un blob en base64 y application/zip), no como un enlace: la API no tiene un endpoint de enlace corto para un zip, y el conector no escribe nada en disco. Lo que el agente hace con los bytes se decide en el lado del profesional, exactamente igual que una descarga desde el navegador. Los archivos grandes producen resultados grandes; comprueba con get_request que los documentos han llegado antes de llamarla.

Lo que el conector no puede hacer

Aprobar o rechazar un documento es tu decisión, tomada en el panel de control de DokuTrak. Ninguna herramienta aquí puede tomarla, y el servicio se la niega a cualquier Conexión de Agente, independientemente de qué conector la solicite. Lo mismo ocurre con la facturación, la configuración del espacio de trabajo y la gestión de claves de API.

Revocar la Conexión de Agente en DokuTrak surte efecto en la siguiente llamada: el conector responde con el 401 del servicio y nada más.

Desarrollo

npm ci
npm run check   # typecheck, build, tests
npm test        # tests alone

Las pruebas son pruebas de contrato en la unión MCP: un cliente MCP real y el servidor real, conectados en memoria a través del transporte del SDK oficial, con HTTP simulado en fetch usando respuestas grabadas. Llaman a herramientas, nunca a funciones, y se ejecutan sin cuenta de DokuTrak y sin red.

La ejecución de prueba

Antes de un lanzamiento, el binario compilado se ejecuta una vez contra un espacio de trabajo real, mediante un cliente MCP real sobre stdio: crear → perseguir → leer → recopilar → revocar → 401. Es un registro pegado en el PR del lanzamiento, nunca una verificación de CI (una verificación bloqueante no llama a terceros). Se pausa dos veces para acciones que el servicio niega a cualquier Conexión de Agente: rechazar el archivo subido y revocar la clave.

npm run build
DOKUTRAK_API_KEY=dk_live_… STAGING_RECIPIENT_EMAIL=you@example.com npm run staging

Se crea una Solicitud de Documentos real y se envía un correo real a STAGING_RECIPIENT_EMAIL. La transcripción termina en staging-run-<timestamp>.md (ignorada por git); la clave nunca se escribe en ella.

Lanzamiento

Una etiqueta vX.Y.Z que coincida con package.json y SERVER_VERSION activa .github/workflows/release.yml: npm run check, npm publish (publicación de confianza a través del token OIDC de GitHub, con procedencia adjunta), luego el listado en el Registro MCP como io.github.Crackx17/dokutrak-mcp — el mcpName de package.json, que el registro verifica contra el tarball publicado. Ejecutar el flujo de trabajo manualmente hace un --dry-run y no publica nada.

Licencia

MIT.