
Tempo
STDIOMCP server for managing Tempo worklogs in Jira through API integration.
MCP server for managing Tempo worklogs in Jira through API integration.
A Model Context Protocol (MCP) server for managing Tempo worklogs in Jira. This server provides tools for tracking time and managing worklogs through Tempo's API, making it accessible through Claude, Cursor and other MCP-compatible clients.
There are two main ways to use this MCP server:
The easiest way to use this server is via npx without installation:
Open your MCP client configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
Add the following configuration:
{ "mcpServers": { "Jira_Tempo": { "command": "npx", "args": [ "-y", "@ivelin-web/tempo-mcp-server" ], "env": { "TEMPO_API_TOKEN": "your_tempo_api_token_here", "JIRA_API_TOKEN": "your_jira_api_token_here", "JIRA_EMAIL": "[email protected]", "JIRA_BASE_URL": "https://your-org.atlassian.net" } } } }
# Clone the repository git clone https://github.com/ivelin-web/tempo-mcp-server.git cd tempo-mcp-server # Install dependencies npm install # Build TypeScript files npm run build
There are two ways to run the server locally:
npm run inspect
You can run the server directly with Node by pointing to the built JavaScript file:
{ "mcpServers": { "Jira_Tempo": { "command": "node", "args": [ "/ABSOLUTE/PATH/TO/tempo-mcp-server/build/index.js" ], "env": { "TEMPO_API_TOKEN": "your_tempo_api_token_here", "JIRA_API_TOKEN": "your_jira_api_token_here", "JIRA_EMAIL": "[email protected]", "JIRA_BASE_URL": "https://your-org.atlassian.net" } } } }
Tempo API Token:
Jira API Token:
The server requires the following environment variables:
TEMPO_API_TOKEN # Your Tempo API token
JIRA_API_TOKEN # Your Jira API token
JIRA_EMAIL # Your Jira account email
JIRA_BASE_URL # Your Jira instance URL (e.g., https://your-org.atlassian.net)
JIRA_TEMPO_ACCOUNT_CUSTOM_FIELD_ID # Optional: Custom field ID for Tempo accounts
You can set these in your environment or provide them in the MCP client configuration.
If your Tempo instance requires worklogs to be linked to accounts, set the custom field ID that contains the account information:
JIRA_TEMPO_ACCOUNT_CUSTOM_FIELD_ID=10234
To find your custom field ID:
Fetches worklogs for the configured user between start and end dates.
Parameters:
- startDate: String (YYYY-MM-DD)
- endDate: String (YYYY-MM-DD)
Creates a new worklog for a specific Jira issue.
Parameters:
- issueKey: String (e.g., "PROJECT-123")
- timeSpentHours: Number (positive)
- date: String (YYYY-MM-DD)
- description: String (optional)
- startTime: String (HH:MM format, optional)
Creates multiple worklogs in a single operation.
Parameters:
- worklogEntries: Array of {
issueKey: String
timeSpentHours: Number
date: String (YYYY-MM-DD)
description: String (optional)
startTime: String (HH:MM format, optional)
}
Modifies an existing worklog.
Parameters:
- worklogId: String
- timeSpentHours: Number (positive)
- description: String (optional)
- date: String (YYYY-MM-DD, optional)
- startTime: String (HH:MM format, optional)
Removes an existing worklog.
Parameters:
- worklogId: String
tempo-mcp-server/
├── src/ # Source code
│ ├── config.ts # Configuration management
│ ├── index.ts # MCP server implementation
│ ├── jira.ts # Jira API integration
│ ├── tools.ts # Tool implementations
│ ├── types.ts # TypeScript types and schemas
│ └── utils.ts # Utility functions
├── build/ # Compiled JavaScript (generated)
├── tsconfig.json # TypeScript configuration
└── package.json # Project metadata and scripts
If you encounter issues:
npm run inspect
This server implements the Model Context Protocol specification created by Anthropic.