⏰ Tempo填充MCP服务器
](https://www.npmjs.com/package/@tranzact/tempo-filler-mcp-server)  ](https://github.com/TRANZACT/tempo-filler-mcp-server/releases/download/v2.0.2/bundle.dxt)
用于管理JIRA中Tempo工作日志的模型上下文协议(MCP)服务器。该服务器使AI助手能够与Tempo的时间跟踪系统进行交互,允许工作日志检索、创建、批量操作和管理。
🖼️ MCP应用程序的可视化用户界面
TempoFiler现在支持 MCP应用程序 -直接在兼容的AI聊天客户端(如Claude Desktop)中渲染丰富的视觉界面。您将获得交互式日历和时间表视图,而不仅仅是文本回复!
时间表网格视图
询问您记录的小时数,并在熟悉的Tempo风格的数据透视表中查看:
特征:
- 问题以行表示,时间段以列表示
- 覆盖感知着色(绿色=满,黄色=下,红色=间隙)
- 缩放切换:天/周/月
- 记录/所需小时数比较的总行数
日程日历视图
用可视化日历检查你的工作日程:
特征:
- 带工作日(绿色)和非工作日(灰色)的月份网格
- 显示每天所需的小时数
- 假日和周末意识
- 总工作日和所需小时数汇总
注: 可视化UI在兼容MCP Apps的主机(Claude Desktop、VS Code)中呈现。CLI主机接收相同的结构化数据,AI以对话方式格式化这些数据。
🚀 快速开始
在VS代码中安装

在Claude桌面中安装
](https://github.com/TRANZACT/tempo-filler-mcp-server/releases/download/v2.0.2/bundle.dxt)
- 单击上面的按钮下载桌面扩展(
.dxt文件) - 打开克劳德桌面并转到 设置 → 扩展
- 拖动下载的
.dxt将文件放入扩展面板进行安装
- *如果拖动不起作用:* 点击 高级设置 → 安装扩展 并选择下载的文件
- 填写 Tempo基本URL 和 专利审查高速路 在环境变量部分
- 别忘了 启用它!
在您最喜欢的AI助手上手动安装
{
"mcpServers": {
"tempo-filler": {
"command": "npx",
"args": ["@tranzact/tempo-filler-mcp-server"],
"env": {
"TEMPO_BASE_URL": "https://your-jira-instance.com",
"TEMPO_PAT": "your-personal-access-token"
}
}
}
}💬 实际使用示例
以下是一段真实的对话,展示了互动是多么自然和强大:
______________________________________________________________________
👤 用户:
用9月份的同一个项目来填满我10月份的工作时间
🤖 AI助理:
我会帮你用9月份的同一个项目来填补10月份的时间。让我先查看您9月份的工作日志以了解模式,然后相应地填写10月份的工作。
🔧 mcp_tempo-filler-_get_worklogs({
"startDate": "2025-09-01",
"endDate": "2025-09-30"
})太好了!我看得出来你在努力 PROJ-1234 (Tempo MCP服务器)在9月份运行了200小时。现在让我看看你10月份的工作日程,看看哪些日子需要安排。
🔧 mcp_tempo-filler-_get_schedule({
"startDate": "2025-10-01",
"endDate": "2025-10-31"
})杰出的!我现在有了所有需要的信息。让我用Tempo MCP Server项目填满10月份的所有23个工作日,每个工作日使用8小时。
🔧 mcp_tempo-filler-_bulk_post_worklogs({
"billable": true,
"worklogs": [
{"issueKey": "PROJ-1234", "hours": 8, "date": "2025-10-01", "description": "Tempo MCP Server development"},
{"issueKey": "PROJ-1234", "hours": 8, "date": "2025-10-02", "description": "Tempo MCP Server development"},
// ... 21 more entries for all working days
]
})✅ 10月工时已成功填写 - 项目:PROJ-1234(Tempo MCP服务器) - 总时长:23个工作日184小时 - 小时数:8小时(符合您的标准工作时间表) - 状态:所有条目创建成功,没有失败 工具调用: -get_worklogs-检索到的九月模式(PROJ-1234,200h) -get_schedule-在十月找到23个工作日(184小时容量) -bulk_post_worklogs-在一次操作中创建了23个条目 您的10月份时间表现已完成,与9月份使用的项目模式相同!
______________________________________________________________________
🎯 这里发生了什么:
- 3工具调用:
get_worklogs→get_schedule→bulk_post_worklogs - 智能模式识别:根据9月数据自动识别PROJ-1234
- 进度意识:只填充工作日,自动跳过周末
- 批量操作:在单个API调用中创建了23个工作日志条目
- 无错误执行:通过适当的验证,成功率为100%
- 自然语言:无需记住问题密钥、日期或工具语法
⏱️ 节省的时间:这个单一的自然语言请求触发了3个MCP工具调用,并取代了手动时间表输入的小时数!
🛠️ 这是如何建造的
这个MCP服务器是内置的 3小时 使用人工智能驱动的开发工具,展示现代人工智能辅助编码的力量:
开发时间表
- 规范阶段
- 使用创建了完整的技术规范 GitHub Copilot 和 克劳德·十四行诗4 - 定义了所有API端点、数据结构和工具接口 - 通过迭代对话细化需求
- 实施阶段
- 用过的 VS Code 和 克劳德代码 一次性完成整个实施过程 - 生成完整的TypeScript代码库、工具实现和客户端逻辑 - 在一次人工智能辅助会话中实现了所有核心功能
- 精炼阶段
- 切换回 GitHub Copilot 和 克劳德·十四行诗4 在达到使用限制后 克劳德代码 - 修复了API负载格式化和身份验证问题 - 对Tempo API集成进行了调试和抛光
关键成功因素
- 首先明确规格:制定详细的规范,实现有效的一次性实施
- AI工具协同:不同的AI工具在不同的发展阶段表现出色
- 迭代优化:使用AI助手进行调试的快速反馈循环
该项目展示了人工智能驱动的开发如何显著加速创建强大的、可用于生产的工具。
✨ 特性
- 获取工作日志:检索具有日期范围和问题筛选的用户的工作日志
- 创建工作日志:添加具有自动问题解决功能的单个工作日志条目
- 批量操作:使用并发处理高效地创建多个工作日志条目
- 删除工作日志:删除现有工作日志条目
- 获取日程表:检索包含工作日/非工作日信息的工作时间表
- 可视化用户界面:通过MCP应用程序查看丰富的日历和时间表网格视图
- 资源访问:浏览工作日志数据和最新问题
- 提示模板:为工作日志数据生成分析提示
📦 安装
先决条件
- Node.js (版本18或更高)
- A. JIRA实例 和 Tempo时间表 插件已安装
- 个人访问令牌 对于您的JIRA帐户
NPX(推荐)
使用服务器最简单的方法是使用npx,无需安装:
npx @tranzact/tempo-filler-mcp-server只需配置您的AI助手即可使用 npx @tranzact/tempo-filler-mcp-server 作为命令。
开发设置(来源)
对于开发或定制:
- 克隆仓库:
git clone https://github.com/TRANZACT/tempo-filler-mcp-server
cd TempoFiller- 安装依赖项并构建:
npm install && npm run build⚙️ 配置
服务器需要环境变量进行身份验证和配置:
所需的环境变量
TEMPO_BASE_URL:您的JIRA实例URL(例如。,https://jira.company.com)TEMPO_PAT:用于身份验证的个人访问令牌
可选环境变量
TEMPO_DEFAULT_HOURS:每个工作日的默认小时数(默认值:8)
创建个人访问令牌(PAT)
- 登录您的JIRA实例
- 首选 个人资料 → 个人访问令牌
- 点击 创建令牌
- 为其命名(例如,“Tempo MCP服务器”)
- 设置适当的权限(对问题和工作日志的读/写访问权限)
- 复制令牌值以在中使用
TEMPO_PAT
🛠️ 可用工具
1. get_worklogs -检索时间日志
使用可选筛选检索日期范围的工作日志。在兼容MCP Apps的主机中,显示交互式时间表网格。
参数:
startDate(字符串):YYYY-MM-DD格式的开始日期endDate(字符串,可选):结束日期,默认为startDateissueKey(字符串,可选):按特定问题密钥筛选
视觉输出(MCP应用程序):
示例用法:
"Get my July hours"
→ Returns: Total: 184h (23 entries)
• PROJ-1234: 184.0h (23 entries)
"Show me my worklogs for PROJ-1234 in July"
→ Filters results to specific issue2. post_worklog -记录单个条目
为特定问题和日期创建新的工作日志条目。
参数:
issueKey(字符串):JIRA问题密钥(例如“PROJ-1234”)hours(数字):工作小时数(十进制,0.1-24)startDate(字符串):YYYY-MM-DD格式的日期endDate(字符串,可选):多日条目的结束日期billable(布尔值,可选):时间是否计费(默认值:true)description(字符串,可选):工作描述
示例用法:
"Log 8 hours to PROJ-1234 for July 10th"
→ Returns: ✅ Worklog Created Successfully
Issue: PROJ-1234 - Example Project Task
Hours: 8h
Date: 2025-07-10
Worklog ID: 12115493. bulk_post_worklogs -创建多个条目
通过并发处理高效地创建多个工作日志条目。
参数:
worklogs(array):工作日志对象数组:
- issueKey (string):JIRA问题密钥 - hours (数字):工作小时数 - date (字符串):YYYY-MM-DD格式的日期 - description (字符串,可选):工作描述
billable(布尔值,可选):是否所有条目都可以计费
示例用法:
"Post 8 hours a day every weekday from July 11 to 15 on PROJ-1234"
→ Returns: ✅ Bulk Worklog Creation Started
Processing 3 worklog entries...
✅ Successful: 3
❌ Failed: 0
📊 Total Hours: 24
"Fill all weekdays in July with 8 hours on PROJ-1234"
→ Creates 23 entries for all weekdays in the month4. delete_worklog -删除条目
按ID删除现有工作日志条目。
参数:
worklogId(string):要删除的Tempo工作日志ID
示例用法:
"Delete worklog with ID 1211547"
→ Removes the specified worklog entry5. get_schedule -检索工作计划
检索显示工作日、非工作日和每天预期小时数的工作计划信息。在MCP Apps兼容的主机中,显示交互式日历视图。
参数:
startDate(字符串):YYYY-MM-DD格式的开始日期endDate(字符串,可选):结束日期,默认为startDate
视觉输出(MCP应用程序):
示例用法:
"What's my work schedule for October 2025?"
→ Returns: ## Work Schedule (2025-10-01 to 2025-10-31)
**Period Summary:**
- Total Days: 31
- Working Days: 23
- Non-Working Days: 8
- Total Required Hours: 184h
"Show me working days this week"
→ Returns schedule for current week with working/non-working day breakdown💡 集成提示: 在批量工作日志操作之前使用此工具来确定工作日,避免在周末/节假日记录时间。
🌎 实际使用示例
基于成功实施,以下是实际场景:
每日时间记录
# Using VS Code with GitHub Copilot:
User: "Log 8 hours on PROJ-1234 for today"
AI: ✅ Worklog Created Successfully
Issue: PROJ-1234 - Example Project Task
Hours: 8h
Date: 2025-08-01
Worklog ID: 1211550
Time Spent: 1d计划第一批批量灌装
# RECOMMENDED: Check schedule first, then create entries:
User: "Check my October schedule, then fill all working days with 8 hours on PROJ-1234"
AI: ## Work Schedule (2025-10-01 to 2025-10-31)
**Period Summary:**
- Working Days: 23
- Non-Working Days: 8
- Total Required Hours: 184h
✅ Bulk Worklog Creation Started
Processing 23 worklog entries (working days only)...
✅ Successful: 23
❌ Failed: 0
📊 Total Hours: 184月度时间填充(传统)
# Direct bulk operation (may include non-working days):
User: "Fill all weekdays in July with 8 hours on PROJ-1234"
AI: ✅ Bulk Worklog Creation Started
Processing 23 worklog entries...
✅ Successful: 23
❌ Failed: 0
📊 Total Hours: 184进度意识规划
# Smart time planning workflow:
User: "What's my capacity this month and how should I distribute my time?"
AI: ## Work Schedule (2025-10-01 to 2025-10-31)
- Working Days: 23
- Total Required Hours: 184h
- Average Daily Hours: 8h
**💡 Next Steps - Schedule-Aware Time Logging:**
- Total capacity is 184h across 23 working days
- Example: "Fill all working days shown above with 8 hours on PROJ-1234"时间跟踪分析
# Monthly summary:
User: "Get my July hours"
AI: 📊 Total Hours: 184 hours (23 entries)
Breakdown by issue:
• PROJ-1234: 184.0h (23 entries)
Daily pattern: 8 hours per weekday
Completion: 100% (all weekdays filled)🤖 发展
项目结构
src/
├── index.ts # Main MCP server entry point (stdio transport)
├── http-server.ts # HTTP transport server (development/testing)
├── tempo-client.ts # Tempo API client with PAT auth
├── tools/ # Tool implementations
│ ├── get-worklogs.ts
│ ├── post-worklog.ts
│ ├── bulk-post.ts
│ ├── delete-worklog.ts
│ └── get-schedule.ts
├── types/ # TypeScript type definitions
│ ├── tempo.ts # Tempo API types
│ ├── mcp.ts # MCP validation schemas
│ ├── responses.ts # JSON response types
│ └── index.ts
└── ui/ # MCP Apps visual components
├── get-schedule/ # Calendar view
│ ├── index.html
│ ├── index.ts
│ └── styles.css
└── get-worklogs/ # Timesheet grid view
├── index.html
├── index.ts
└── styles.css构建命令
npm run build:编译TypeScript+构建UI包+创建MCP包npm run build:ui:仅构建UI组件(Vite)npm run dev:构建并运行服务器(stdio)npm run dev:http:构建并运行HTTP服务器(用于MCP应用程序测试)npm run typecheck:不编译的类型检查
许可证
ISC许可证-详见package.json
贡献
欢迎投稿!请遵循现有的代码风格,并确保所有工具与真正的Tempo API端点正确工作。
