The Tempo Filler MCP Server enables AI assistants to manage time tracking and worklogs in JIRA via the Tempo Timesheets plugin.
Retrieve worklogs: Get time entries for specific date ranges with optional filtering by issue key
Create single worklogs: Add individual time entries with customizable hours, dates, billable status, and descriptions
Bulk operations: Efficiently create multiple worklog entries simultaneously with concurrent processing
Delete worklogs: Remove existing time entries by their worklog ID
Time analysis: Generate summaries and breakdowns of logged hours by issue and date patterns
Resource browsing: Access worklog data and recent issues for comprehensive time tracking management
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.
š Quick Start
Install in VS Code
Install in Claude Desktop
Download the MCP bundle first
Then go to settings ā extensions and drag the file there to install.
Fill up the Tempo Base URL and PAT in the environment variables section.
Don't forget to enable it.
Install Manually on your favorite AI Assistant
Related MCP server: Jira MCP Server
š¬ Real Usage Example
Here's an actual conversation showing how natural and powerful the interaction can be:
š¤ User:
fill my october hours with the same project from september
š¤ AI Assistant:
I'll help you fill your October hours with the same project from September. Let me first check your September worklogs to understand the pattern, then fill October accordingly.
Perfect! I can see you worked on PROJ-1234 (Tempo MCP Server) for 200 hours in September. Now let me get your October work schedule to see which days need to be filled.
Excellent! I now have all the information needed. Let me fill all 23 working days in October with the Tempo MCP Server project using 8 hours per working day.
ā October Hours Filled Successfully
Project: PROJ-1234 (Tempo MCP Server)
Total Hours: 184 hours across 23 working days
Hours per Day: 8 hours (matching your standard work schedule)
Status: All entries created successfully with no failures
Tool Calls Made:
get_worklogs- Retrieved September pattern (PROJ-1234, 200h)
get_schedule- Found 23 working days in October (184h capacity)
bulk_post_worklogs- Created 23 entries in one operationYour October timesheet is now complete and matches the same project pattern you used in September!
šÆ What Happened Here:
3 Tool Calls:
get_worklogsāget_scheduleābulk_post_worklogsSmart Pattern Recognition: Automatically identified PROJ-1234 from September data
Schedule Awareness: Only filled working days, skipped weekends automatically
Bulk Operations: Created 23 worklog entries in a single API call
Error-Free Execution: 100% success rate with proper validation
Natural Language: No need to remember issue keys, dates, or tool syntax
ā±ļø Time Saved: This single natural language request triggered 3 MCP tool calls and replaced hours of manual timesheet entry!
š ļø 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)
A JIRA instance with Tempo Timesheets plugin installed
Personal Access Token for your JIRA account
NPX (Recommended)
The easiest way to use the server is with npx - no installation required:
Just configure your AI assistant to use npx @tranzact/tempo-filler-mcp-server as the command.
Development Setup (Source)
For development or customization:
Clone the repository:
git clone https://github.com/TRANZACT/tempo-filler-mcp-server cd TempoFillerInstall dependencies and build:
npm install && npm run build
āļø 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
š ļø 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:
5. get_schedule - Retrieve Work Schedule
Retrieve work schedule information showing working days, non-working days, and expected hours per day.
Parameters:
startDate(string): Start date in YYYY-MM-DD formatendDate(string, optional): End date, defaults to startDate
Example Usage:
š” Integration Tip: Use this tool before bulk worklog operations to identify working days and avoid logging time on weekends/holidays.
š Real-World Usage Examples
Based on successful implementation, here are practical scenarios:
Daily Time Logging
Schedule-First Bulk Time Filling
Monthly Time Filling (Legacy)
Schedule-Aware Planning
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
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.