Servidores MCP (Model Context Protocol) para gestionar tareas de Jira e imputar horas en Tempo directamente desde Claude Code, Claude Desktop, Cursor u otros clientes compatibles con MCP.
Fork interno de ivelin-web/tempo-mcp-server adaptado para el equipo de Diverger.ai.
- Consultar horas imputadas: "Muestrame mis worklogs de esta semana"
- Imputar horas: "Registra 2 horas en LOCG-103 para hoy"
- Imputar en bulk: "Imputa 8h diarias de lunes a viernes en LOCG-34"
- Editar imputaciones: "Cambia el worklog de ayer a 4 horas"
- Borrar imputaciones: "Elimina el worklog de hoy en LOCG-103"
- Ver detalle de tareas: "Dame los detalles de LOCG-109"
- Buscar tareas: "Busca mis tareas abiertas del proyecto LOCG"
- Consultar estado: "Que tareas tengo asignadas esta semana?"
- Node.js 18+ (recomendado LTS) - Descargar
- Claude Code, Claude Desktop o Cursor instalado
- Cuenta en el Jira de Diverger (
divergerthinking.atlassian.net)
Necesitas 2 tokens: uno de Tempo y otro de Jira.
- Accede a Tempo en Jira: Tempo > Settings > API Integration
- Haz clic en "New Token"
- Copia el token generado y guardalo en un sitio seguro
- Ve a Atlassian API Tokens
- Haz clic en "Create API token"
- Dale un nombre descriptivo (ej: "MCP Server")
- Copia el token generado y guardalo en un sitio seguro
Importante: Los tokens son secretos. No los compartas ni los subas a ningun repositorio.
La configuracion se hace en un fichero JSON que depende del cliente que uses.
| Cliente | Fichero |
|---|---|
| Claude Code | ~/.mcp.json |
| Claude Desktop (macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Desktop (Windows) | %APPDATA%\Claude\claude_desktop_config.json |
| Cursor | .cursor/mcp.json en tu proyecto o global |
Copia esta configuracion y reemplaza los valores con tus datos:
{
"mcpServers": {
"Jira_Tempo": {
"command": "npx",
"args": ["-y", "@ivelin-web/tempo-mcp-server"],
"env": {
"TEMPO_API_TOKEN": "<tu_token_de_tempo>",
"JIRA_API_TOKEN": "<tu_token_de_jira>",
"JIRA_EMAIL": "<tu_email>@diverger.ai",
"JIRA_BASE_URL": "https://divergerthinking.atlassian.net"
}
},
"jira": {
"command": "npx",
"args": ["-y", "jira-mcp"],
"env": {
"JIRA_INSTANCE_URL": "https://divergerthinking.atlassian.net",
"JIRA_USER_EMAIL": "<tu_email>@diverger.ai",
"JIRA_API_KEY": "<tu_token_de_jira>"
}
}
}
}Puedes usar el mismo token de Jira en ambos servidores (
JIRA_API_TOKENyJIRA_API_KEY).
Despues de guardar la configuracion, reinicia tu cliente:
- Claude Code: Escribe
/exity vuelve a abrir - Claude Desktop: Cierra y abre la app
- Cursor: Reinicia el editor
Una vez reiniciado, prueba con estos comandos:
"Muestrame mis worklogs de hoy"
"Dame los detalles de LOCG-1"
Si ves resultados, todo esta configurado correctamente.
| Herramienta | Que hace | Ejemplo de uso |
|---|---|---|
retrieveWorklogs |
Consultar horas imputadas en un rango de fechas | "Que horas tengo imputadas esta semana?" |
createWorklog |
Imputar horas en una tarea | "Imputa 3h en LOCG-34 para hoy con descripcion 'Desarrollo PDF export'" |
bulkCreateWorklogs |
Imputar varias entradas de golpe | "Imputa 8h en LOCG-34 para cada dia de esta semana" |
editWorklog |
Modificar una imputacion existente | "Cambia el worklog 12345 a 4 horas" |
deleteWorklog |
Eliminar una imputacion | "Borra el worklog 12345" |
| Herramienta | Que hace | Ejemplo de uso |
|---|---|---|
get_issue |
Ver detalle de una tarea | "Dame los detalles de LOCG-109" |
jql_search |
Buscar tareas con JQL | "Busca mis tareas abiertas en LOCG" |
"Imputa 4h en LOCG-34 y 4h en LOCG-103 para hoy"
"Muestrame todas mis horas de esta semana"
"Imputa 8h diarias en LOCG-34 de lunes a viernes de esta semana"
"Que tareas tengo asignadas y pendientes en el proyecto LOCG?"
"Dame la descripcion y estado de LOCG-95"
- Verifica que tienes Node.js 18+:
node --version - Comprueba que el fichero de configuracion esta en la ruta correcta
- Reinicia el cliente despues de modificar la configuracion
- Verifica que los tokens no han expirado
- Regenera los tokens desde Atlassian API Tokens
- Comprueba que el email coincide con tu cuenta de Jira
Este es un problema conocido del paquete jira-mcp con el endpoint de busqueda deprecado por Atlassian. La consulta de tareas individuales (get_issue) funciona correctamente. Para busquedas, pide a Claude que use la API de Jira directamente.
| Variable | Requerida | Descripcion |
|---|---|---|
TEMPO_API_TOKEN |
Si | Token de la API de Tempo |
JIRA_API_TOKEN |
Si | Token de la API de Jira |
JIRA_EMAIL |
Si | Tu email de Jira (@diverger.ai) |
JIRA_BASE_URL |
Si | https://divergerthinking.atlassian.net |
JIRA_AUTH_TYPE |
No | basic (por defecto) o bearer |
| Variable | Requerida | Descripcion |
|---|---|---|
JIRA_INSTANCE_URL |
Si | https://divergerthinking.atlassian.net |
JIRA_USER_EMAIL |
Si | Tu email de Jira (@diverger.ai) |
JIRA_API_KEY |
Si | Token de la API de Jira |
- Nunca subas tus tokens a un repositorio, ni los compartas por Slack/email
- Los tokens se almacenan solo en tu fichero local de configuracion
- Si crees que un token ha sido comprometido, revocalo inmediatamente desde Atlassian API Tokens y Tempo Settings
- Rota los tokens periodicamente
- Servidor Tempo MCP: ivelin-web/tempo-mcp-server
- Servidor Jira MCP: jira-mcp
- Protocolo MCP: Model Context Protocol por Anthropic