An MCP server for managing Tempo worklogs in Jira
Tempo MCP Server
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.
Features
- Retrieve Worklogs: Get all worklogs for a specific date range
- Create Worklog: Log time against Jira issues
- Bulk Create: Create multiple worklogs in a single operation
- Edit Worklog: Modify time spent, dates, and descriptions
- Delete Worklog: Remove existing worklogs
System Requirements
- Node.js 18+ (LTS recommended)
- Jira Cloud instance
- Tempo API token
- Jira API token
Usage Options
There are two main ways to use this MCP server:
- NPX (Recommended for most users): Run directly without installation
- Local Clone: Clone the repository for development or customization
Option 1: NPX Usage
The easiest way to use this server is via npx without installation:
Connecting to Claude Desktop (NPX Method)
Open your MCP client configuration file:
- Claude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.json - Claude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.json
- Claude Desktop (macOS):
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": "your_email@example.com",
"JIRA_BASE_URL": "https://your-org.atlassian.net"
}
}
}
}
- Restart your Claude Desktop client
One-Click Install for Cursor
Option 2: Local Repository Clone
Installation
# 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
Running Locally
There are two ways to run the server locally:
1. Using the MCP Inspector (for development and debugging)
npm run inspect
2. Using Node directly
You can run the server directly with Node by pointing to the built JavaScript file:
Connecting to Claude Desktop (Local Method)
- Open your MCP client configuration file
- Add the following configuration:
{
"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": "your_email@example.com",
"JIRA_BASE_URL": "https://your-org.atlassian.net"
}
}
}
}
- Restart your Claude Desktop client
Getting API Tokens
Tempo API Token:
- Go to Tempo > Settings > API Integration
- Create a new API token with appropriate permissions
Jira API Token:
- Go to Atlassian API tokens
- Create a new API token for your account
Environment Variables
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 (required for basic auth)
JIRA_BASE_URL # Your Jira instance URL (e.g., https://your-org.atlassian.net)
JIRA_AUTH_TYPE # Optional: 'basic' (default) or 'bearer' for OAuth 2.0 tokens
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.
Authentication Types
The server supports two authentication methods for the Jira API:
Basic Authentication (default)
Uses email and API token. This is the traditional method:
{
"env": {
"JIRA_API_TOKEN": "your_api_token",
"JIRA_EMAIL": "your_email@example.com",
"JIRA_AUTH_TYPE": "basic"
}
}
Bearer Token Authentication (OAuth 2.0)
For users who want to use
Tools (5)
retrieve_worklogsGet all worklogs for a specific date rangecreate_worklogLog time against Jira issuesbulk_create_worklogsCreate multiple worklogs in a single operationedit_worklogModify time spent, dates, and descriptionsdelete_worklogRemove existing worklogsEnvironment Variables
TEMPO_API_TOKENrequiredYour Tempo API tokenJIRA_API_TOKENrequiredYour Jira API tokenJIRA_EMAILrequiredYour Jira account emailJIRA_BASE_URLrequiredYour Jira instance URLJIRA_AUTH_TYPEAuthentication method: 'basic' or 'bearer'JIRA_TEMPO_ACCOUNT_CUSTOM_FIELD_IDCustom field ID for Tempo accountsConfiguration
{"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": "your_email@example.com", "JIRA_BASE_URL": "https://your-org.atlassian.net"}}}}