Allows interaction with JIRA's Tempo Timesheets plugin, enabling worklog retrieval, creation, deletion, and bulk operations for time tracking management.
Tempo Filler MCP Server
A Model Context Protocol (MCP) server for managing Tempo worklogs in JIRA. This server enables AI assistants to interact with Tempo's time tracking system, allowing for worklog retrieval, creation, bulk operations, and management.
Table of Contents
- Quick Start
- How This Was Built
- Features
- Installation
- Configuration
- Usage with AI Assistants
- Available Tools
- Example Interactions
- Real-World Usage Examples
- Development
- Security
- API Compatibility
- Troubleshooting
- License
- Contributing
Quick Start
- Get the code:
- Build the server:
- Configure your AI assistant with:
- Test it: Ask your AI assistant "Get my worklogs for this week"
How This Was Built
This MCP server was built in just 3 hours using AI-powered development tools, demonstrating the power of modern AI-assisted coding:
Development Timeline
- Specification Phase
- Created the complete technical specification using GitHub Copilot with Claude Sonnet 4
- Defined all API endpoints, data structures, and tool interfaces
- Refined requirements through iterative conversation
- Implementation Phase
- Used VS Code with Claude Code to one-shot the entire implementation
- Generated complete TypeScript codebase, tool implementations, and client logic
- Implemented all core functionality in a single AI-assisted session
- Refinement Phase
- Switched back to GitHub Copilot with Claude Sonnet 4 after hitting usage limits in Claude Code
- Fixed API payload formatting and authentication issues
- Debugged and polished the Tempo API integration
Key Success Factors
- Clear specification first: Having a detailed spec enabled effective one-shot implementation
- AI tool synergy: Different AI tools excelled at different phases of development
- Iterative refinement: Quick feedback loops with AI assistants for debugging
This project showcases how AI-powered development can dramatically accelerate the creation of robust, production-ready tools.
Features
- Get Worklogs: Retrieve worklogs for users with date range and issue filtering
- Create Worklogs: Add single worklog entries with automatic issue resolution
- Bulk Operations: Create multiple worklog entries efficiently using concurrent processing
- Delete Worklogs: Remove existing worklog entries
- Resource Access: Browse worklog data and recent issues
- Prompt Templates: Generate analysis prompts for worklog data
Installation
Prerequisites
- Node.js (version 16 or higher)
- npm (comes with Node.js)
- A JIRA instance with Tempo Timesheets plugin installed
- Personal Access Token for your JIRA account
Step-by-Step Setup
- Get the source code:
- Install dependencies:
- Build the server:
- Get your JIRA credentials (see Authentication Setup below)
Configuration
The server requires environment variables for authentication and configuration:
Required Environment Variables
TEMPO_BASE_URL
: Your JIRA instance URL (e.g.,https://jira.company.com
)TEMPO_PAT
: Personal Access Token for authentication
Optional Environment Variables
TEMPO_DEFAULT_HOURS
: Default hours per workday (default: 8)
Creating a Personal Access Token (PAT)
- Log into your JIRA instance
- Go to Profile → Personal Access Tokens
- Click Create token
- Give it a name (e.g., "Tempo MCP Server")
- Set appropriate permissions (read/write access to issues and worklogs)
- Copy the token value for use in
TEMPO_PAT
Usage with AI Assistants
GitHub Copilot Configuration (VS Code)
Add to your MCP servers configuration file (e.g., mcp.json
):
Claude Desktop Configuration
Add to your Claude Desktop config file:
Setup Steps
- Build the server:
npm run build
- Find the full path to your
dist/index.js
file: - Add configuration to your AI assistant (use the full path +
/dist/index.js
) - Restart your AI assistant to load the MCP server
- Test the connection: Ask "Get my worklogs for this week"
Authentication Setup
The server uses Personal Access Tokens (PAT) for secure authentication:
- Generate a PAT in your JIRA instance:
- Go to Profile → Personal Access Tokens
- Create token with read/write permissions for issues and worklogs
- Copy the token value (you won't see it again)
- Set environment variables:
TEMPO_BASE_URL
: Your JIRA URL (e.g.,https://jira.company.com
)TEMPO_PAT
: Your personal access token
Available Tools
1. get_worklogs
- Retrieve Time Logs
Retrieve worklogs for a date range with optional filtering.
Parameters:
startDate
(string): Start date in YYYY-MM-DD formatendDate
(string, optional): End date, defaults to startDateissueKey
(string, optional): Filter by specific issue key
Example Usage:
2. post_worklog
- Log Single Entry
Create a new worklog entry for a specific issue and date.
Parameters:
issueKey
(string): JIRA issue key (e.g., "PROJ-1234")hours
(number): Hours worked (decimal, 0.1-24)startDate
(string): Date in YYYY-MM-DD formatendDate
(string, optional): End date for multi-day entriesbillable
(boolean, optional): Whether time is billable (default: true)description
(string, optional): Work description
Example Usage:
3. bulk_post_worklogs
- Create Multiple Entries
Create multiple worklog entries efficiently with concurrent processing.
Parameters:
worklogs
(array): Array of worklog objects:issueKey
(string): JIRA issue keyhours
(number): Hours workeddate
(string): Date in YYYY-MM-DD formatdescription
(string, optional): Work description
billable
(boolean, optional): Whether time is billable for all entries
Example Usage:
4. delete_worklog
- Remove Entry
Delete an existing worklog entry by ID.
Parameters:
worklogId
(string): Tempo worklog ID to delete
Example Usage:
Example Interactions
Viewing Your Time Logs
Creating Single Worklog Entries
Bulk Worklog Creation
Advanced Bulk Operations
Worklog Management
Real-World Usage Examples
Based on successful implementation, here are practical scenarios:
Daily Time Logging
Monthly Time Filling
Time Tracking Analysis
Development
Project Structure
Build Commands
npm run build
: Compile TypeScript to JavaScriptnpm run dev
: Build and run the servernpm run typecheck
: Type checking without compilation
Testing
The server can be tested using the MCP Inspector or by integrating with compatible AI assistants.
Security
- Personal Access Tokens are used for secure authentication
- No credentials are logged or exposed
- Input validation is performed on all parameters
- Rate limiting and error handling protect against API abuse
API Compatibility
This server is compatible with:
- JIRA Core/Software 8.14+
- Tempo Timesheets 4.x
- Model Context Protocol specification
Troubleshooting
Setup Issues
Server not found / Path issues:
- Ensure you're using the full absolute path to
dist/index.js
- On Windows:
C:\Users\YourName\tempo-filler-mcp-server\dist\index.js
- On macOS/Linux:
/Users/YourName/tempo-filler-mcp-server/dist/index.js
- Verify the file exists:
ls dist/index.js
(should show the file)
Build failures:
- Check Node.js version:
node --version
(should be 16+) - Clear cache and retry:
npm cache clean --force && npm install && npm run build
- Check for error messages in the build output
AI Assistant not loading the server:
- Restart your AI assistant completely after adding the configuration
- Check the configuration file syntax (valid JSON)
- Verify environment variables are set correctly
Authentication Issues
- Verify your Personal Access Token is valid and has proper permissions
- Check that your JIRA instance URL is correct
- Ensure Tempo is properly installed and configured in your JIRA instance
Connection Issues
- Verify network connectivity to your JIRA instance
- Check firewall and proxy settings
- Confirm the JIRA instance is accessible from your environment
Permission Issues
- Ensure your user account has permission to log time to the specified issues
- Verify Tempo is configured to allow time logging for your user
- Check project permissions in JIRA
License
ISC License - see package.json for details
Contributing
Contributions are welcome! Please follow the existing code style and ensure all tools work correctly with real Tempo API endpoints.
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
A Model Context Protocol server enabling AI assistants to interact with Tempo's time tracking system in JIRA for worklog retrieval, creation, and management.
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that enables AI assistants like Claude to interact with Jira, allowing for project management tasks such as listing projects, searching issues, creating tickets, and managing sprints through natural language queries.Last updated -7241TypeScriptMIT License
- -securityAlicense-qualityA Simple Model Context Protocol server that enables AI assistants to interact with Jira, allowing operations like fetching tickets, adding comments, and updating ticket status.Last updated -1PythonApache 2.0
- -securityFlicense-qualityModel Context Protocol server that allows AI assistants to interact with Jira, supporting operations like creating tickets and fetching project information directly from the cursor.Last updated -Python
- AsecurityFlicenseAqualityA Model Context Protocol server that enables AI assistants to create and manage JIRA issues with rich markdown formatting and automatic conversion to Atlassian Document Format.Last updated -4Python