projectx-mcp
projectx-mcp
Registra horas en ProjectX hablando con Claude Desktop.
"Registra 8 horas de Ontrac para hoy" "Rellena los días que faltan esta semana con Ontrac" "¿Para qué días me faltan horas este mes?"
Instalación
macOS (automatizada)
git clone git@github.com:agustindiezdb/projectx-mcp.git
cd projectx-mcp
bash scripts/install.shEl script hará lo siguiente:
Instalará las dependencias
Compilará el proyecto
Configurará Claude Desktop automáticamente
Creará una copia de seguridad de tu configuración existente
Luego reinicia Claude Desktop. Chrome se abrirá automáticamente para iniciar sesión con tu cuenta de Google de Dualboot.
¡Eso es todo! Ahora puedes pedirle a Claude que registre tus horas.
Windows
git clone git@github.com:agustindiezdb/projectx-mcp.git
cd projectx-mcp
npm install
npm run buildLuego edita manualmente la configuración de Claude Desktop:
Abre: %APPDATA%\Claude\claude_desktop_config.json
Añade:
{
"mcpServers": {
"projectx": {
"command": "node",
"args": ["C:\\full\\path\\to\\projectx-mcp\\dist\\src\\server.js"]
}
}
}Reemplaza C:\ruta\completa\a\ con tu ruta real (usa \ para rutas de Windows).
Luego reinicia Claude Desktop. Chrome se abrirá automáticamente para iniciar sesión.
Instalación manual
Si prefieres configurar manualmente:
Clona y compila:
git clone git@github.com:agustindiezdb/projectx-mcp.git cd projectx-mcp npm install npm run buildEdita la configuración de Claude Desktop:
Abre~/Library/Application Support/Claude/claude_desktop_config.jsony añade:{ "mcpServers": { "projectx": { "command": "node", "args": ["/ABSOLUTE/PATH/TO/projectx-mcp/dist/src/server.js"] } } }Reemplaza
/RUTA/ABSOLUTA/A/con la ruta completa a tu repositorio clonado.Reinicia Claude Desktop
Uso con Cursor
Cursor utiliza una configuración MCP por proyecto. Crea .cursor/mcp.json en la raíz de tu proyecto:
{
"$schema": "https://json.schemastore.org/mcp.json",
"mcpServers": {
"projectx": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/projectx-mcp/dist/src/server.js"]
}
}
}Reemplaza /RUTA/ABSOLUTA/A/ con la ruta completa a tu repositorio clonado.
Luego reinicia Cursor. La primera vez, Chrome se abrirá para iniciar sesión.
Uso
Simplemente habla con Claude de forma natural:
Log 8 hours of Ontrac for today with description "Sprint planning"Check my entries for this week and fill the missing days with 8h of OntracDelete yesterday's entry and log 4h of Internal — AdministrativeWhich days am I missing hours for April?Herramientas disponibles
Herramienta | Descripción |
| Ver entradas para un rango de fechas |
| Listar proyectos disponibles |
| Crear una entrada |
| Eliminar una entrada por ID |
Si el inicio de sesión falla o la sesión caduca
Simplemente reinicia Claude Desktop. Chrome se abrirá de nuevo para que inicies sesión.
Scripts útiles
Puedes usar la API directamente sin Claude Desktop:
# Test the API (creates and deletes a test entry)
npm run test:entry
# Check which days you're missing hours in April
npx ts-node scripts/check-april.ts
# Manually refresh your session (if expired)
npm run save-sessionPara desarrolladores
Arquitectura
Claude Desktop → MCP Server (stdio) → fetch() + _interslice_session cookie → ProjectX APILa cookie de sesión se almacena en ~/Library/Application Support/projectx-mcp/auth.json (ignorada por git).
Al iniciar, si no se encuentra una sesión válida, Chrome se abre automáticamente para iniciar sesión a través de Playwright.
Modo de desarrollo
npm run devEsto ejecuta el servidor con ts-node para un desarrollo rápido (no se necesita paso de compilación).
Cómo funciona
Autenticación: Utiliza Playwright para abrir Chrome y detectar automáticamente cuándo el inicio de sesión es exitoso mediante sondeo a
/api/v1/current_userPersistencia de sesión: Guarda cookies en
auth.jsonusandostorageState()de PlaywrightCliente API: Lee la cookie
_interslice_sessiony realiza solicitudes autenticadas a ProjectXProtocolo MCP: Expone 4 herramientas a Claude Desktop a través del transporte stdio
Configuración de Claude Desktop (manual)
Si prefieres editar manualmente:
{
"mcpServers": {
"projectx": {
"command": "node",
"args": ["/path/to/projectx-mcp/dist/src/server.js"]
}
}
}Solución de problemas
Sesión caducada → reinicia Claude Desktop, Chrome se abrirá automáticamente
Chrome no encontrado → instala Google Chrome (debe estar en el PATH del sistema)
Proyecto no encontrado → pídele a Claude que ejecute
get_projectspara ver los nombres exactosProblemas de ruta (macOS/Linux) → usa rutas absolutas, no
~ni rutas relativasProblemas de ruta (Windows) → usa
\(barra invertida doble) en las rutas JSON, p. ej.C:\Users\...Ubicación del archivo de autenticación:
macOS:
~/Library/Application Support/projectx-mcp/auth.jsonWindows:
%APPDATA%\projectx-mcp\auth.jsonLinux:
~/.config/projectx-mcp/auth.json
Requisitos
SO: macOS, Windows o Linux
Node.js: 20+
Navegador: Google Chrome (requerido para el inicio de sesión automático)
Claude Desktop
Cuenta de Google de Dualboot
Licencia
Herramienta interna para Dualboot Partners.
This server cannot be deployed
Maintenance
Related MCP Connectors
Manage projects, tasks, time tracking, and team collaboration through natural language.
Track time, log expenses, manage projects and draft or send Keito invoices from AI agents.
Manage Avaza projects, tasks, timesheets, expenses, invoices, and scheduling from AI assistants.
Track time on usetimebook.com - start/stop timers, log entries, list projects/clients.