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
| Variable | Obligatoria | Predeterminado | Significado |
|---|---|---|---|
DOKUTRAK_API_KEY | sí | — | La Conexión de Agente, desde Configuración → Conectar un agente. |
DOKUTRAK_API_URL | no | https://app.dokutrak.com/api | URL 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.