返回市场
节奏填充MCP服务器

节奏填充MCP服务器

作者:TRANZACT4 星标更新:2025-10-25

项目介绍

⏰ Tempo Filler MCP 服务器

NPM 版本 在 VS Code 中安装 在 Claude Desktop 中安装

这是一个用于管理 JIRA 中 Tempo 工时记录的 Model Context Protocol (MCP) 服务器。该服务器使 AI 助手能够与 Tempo 的时间跟踪系统进行交互,支持工时记录的检索、创建、批量操作和管理。

🚀 快速开始

在 VS Code 中安装

在 VS Code 中安装

在 Claude Desktop 中安装

在 Claude Desktop 中安装

  1. 首先下载 MCP 包
  2. 然后进入设置 → 扩展,并将文件拖放到那里以进行安装。
  3. 在环境变量部分填写 Tempo 基础 URL 和 PAT。
  4. 不要忘记启用它

在您喜欢的 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"
      }
    }
  }
}

💬 实际使用示例

这里有一个实际对话示例,展示了交互的自然性和强大性:


👤 用户:

将我的十月工作时间填入与九月相同的项目

🤖 AI 助手:

我会帮助你在十月的工作时间中填入与九月相同的项目。让我先检查你的九月工时记录以了解模式,然后相应地填充十月。

🔧 mcp_tempo-filler-_get_worklogs({
  "startDate": "2025-09-01",
  "endDate": "2025-09-30"
})

完美!我可以看到你在九月为 PROJ-1234 (Tempo MCP 服务器) 工作了200小时。现在让我获取你的十月工作计划,看看哪些天需要被填充。

🔧 mcp_tempo-filler-_get_schedule({
  "startDate": "2025-10-01", 
  "endDate": "2025-10-31"
})

很好!我现在有了所需的所有信息。让我用每天8小时的工作时间,在十月的23个工作日内填充Tempo MCP 服务器项目。

🔧 mcp_tempo-filler-_bulk_post_worklogs({
  "billable": true,
  "worklogs": [
    {"issueKey": "PROJ-1234", "hours": 8, "date": "2025-10-01", "description": "Tempo MCP 服务器开发"},
    {"issueKey": "PROJ-1234", "hours": 8, "date": "2025-10-02", "description": "Tempo MCP 服务器开发"},
    // ... 其余21个条目对应所有工作日
  ]
})

十月工作时间成功填充

  • 项目:PROJ-1234 (Tempo MCP 服务器)
  • 总工时:23个工作日共184小时
  • 每日工时:8小时(符合标准工作时间)
  • 状态:所有条目创建成功,无失败

调用工具

  • get_worklogs - 检索九月模式(PROJ-1234,200小时)
  • get_schedule - 查找十月的23个工作日(184小时容量)
  • bulk_post_worklogs - 创建23个条目在一个操作中

你现在完成了十月的时间表,并且与你在九月使用的项目模式相同!


🎯 发生了什么:

  • 3次工具调用get_worklogsget_schedulebulk_post_worklogs
  • 智能模式识别:自动从九月数据中识别出PROJ-1234
  • 时间表意识:仅填充工作日,自动跳过周末
  • 批量操作:通过一次API调用创建23个工作日记录
  • 无错误执行:100%成功率,经过适当验证
  • 自然语言:无需记住问题键、日期或工具语法

⏱️ 节省时间:这个单一的自然语言请求触发了3次MCP工具调用,并替换了数小时的手动时间表录入!

🛠️ 如何构建

这个 MCP 服务器仅用了3个小时使用 AI 助力的开发工具构建,展示了现代 AI 辅助编程的强大之处:

开发时间线

  1. 规范阶段

    • 使用 GitHub CopilotClaude Sonnet 4 创建完整的技术规范
    • 定义所有 API 端点、数据结构和工具接口
    • 通过迭代对话细化需求
  2. 实现阶段

    • 使用 VS CodeClaude Code 一次性完成整个实现
    • 生成完整的 TypeScript 代码库、工具实现和客户端逻辑
    • 在一个 AI 辅助会话中实现所有核心功能
  3. 精炼阶段

    • Claude Code 达到使用限制后切换回 GitHub CopilotClaude Sonnet 4
    • 解决 API 负载格式化和身份验证问题
    • 调试并完善 Tempo API 集成

关键成功因素

  • 首先明确规范:详细的规范使得有效的一次性实现成为可能
  • AI 工具协同:不同的 AI 工具在开发的不同阶段表现出色
  • 迭代精炼:与 AI 助手快速反馈循环进行调试

这个项目展示了如何利用 AI 助力的开发可以极大地加速创建健壮、生产就绪的工具。

✨ 功能

  • 获取工时记录:根据日期范围和问题过滤检索用户工时记录
  • 创建工时记录:添加单个工时记录条目,自动解析问题
  • 批量操作:高效创建多个工时记录条目,使用并发处理
  • 删除工时记录:移除现有的工时记录条目
  • 资源访问:浏览工时记录数据和最近的问题
  • 提示模板:为工时记录数据生成分析提示

📦 安装

先决条件

  • Node.js(版本16或更高)
  • 安装了 Tempo Timesheets 插件的 JIRA 实例
  • 个人访问令牌用于您的 JIRA 账户

NPX(推荐)

最简单的方式是使用 npx - 不需要安装:

npx @tranzact/tempo-filler-mcp-server

只需配置您的 AI 助手,使其使用 npx @tranzact/tempo-filler-mcp-server 作为命令。

开发设置(源码)

对于开发或定制:

  1. 克隆仓库

    git clone https://github.com/TRANZACT/tempo-filler-mcp-server
    cd TempoFiller
    
  2. 安装依赖项并构建

    npm install && npm run build
    

⚙️ 配置

服务器需要环境变量来进行认证和配置:

必需的环境变量

  • TEMPO_BASE_URL:您的 JIRA 实例 URL(例如,https://jira.company.com
  • TEMPO_PAT:用于认证的个人访问令牌

可选的环境变量

  • TEMPO_DEFAULT_HOURS:每个工作日的默认工时(默认:8)

创建个人访问令牌(PAT)

  1. 登录到您的 JIRA 实例
  2. 进入 个人资料个人访问令牌
  3. 点击 创建令牌
  4. 给它命名(例如,“Tempo MCP 服务器”)
  5. 设置适当的权限(对问题和工时记录的读写访问)
  6. 复制令牌值以供 TEMPO_PAT 使用

🛠️ 可用工具

1. get_worklogs - 检索时间记录

根据日期范围检索工时记录,可选过滤。

参数:

  • startDate(字符串):YYYY-MM-DD 格式的起始日期
  • endDate(字符串,可选):结束日期,默认为起始日期
  • issueKey(字符串,可选):按特定问题键过滤

示例用法:

"获取我的七月工时"
→ 返回:总计:184小时(23条记录)
          • PROJ-1234:184.0小时(23条记录)

"显示我在七月的 PROJ-1234 工时记录"
→ 过滤结果到特定问题

2. post_worklog - 记录单条

为特定问题和日期创建新的工时记录条目。

参数:

  • issueKey(字符串):JIRA 问题键(例如,“PROJ-1234”)
  • hours(数字):工作小时数(小数,0.1-24)
  • startDate(字符串):YYYY-MM-DD 格式的日期
  • endDate(字符串,可选):多日条目的结束日期
  • billable(布尔值,可选):是否计费时间(默认:true)
  • description(字符串,可选):工作描述

示例用法:

"记录7月10日 PROJ-1234 的8小时"
→ 返回:✅ 工时记录创建成功
          问题:PROJ-1234 - 示例项目任务
          工时:8小时
          日期:2025-07-10
          工时记录ID:1211549

3. bulk_post_worklogs - 创建多条

高效创建多个工时记录条目,使用并发处理。

参数:

  • worklogs(数组):工时对象数组:
    • issueKey(字符串):JIRA 问题键
    • hours(数字):工作小时数
    • date(字符串):YYYY-MM-DD 格式的日期
    • description(字符串,可选):工作描述
  • billable(布尔值,可选):所有条目是否计费时间

示例用法:

"从7月11日至15日每天在 PROJ-1234 上记录8小时"
→ 返回:✅ 批量工时记录创建开始
          正在处理3个工时记录条目...
          ✅ 成功:3
          ❌ 失败:0
          📊 总工时:24

"在七月的所有工作日上每天记录8小时在 PROJ-1234 上"
→ 为该月的所有工作日创建23个条目

4. delete_worklog - 删除条目

通过ID删除现有工时记录条目。

参数:

  • worklogId(字符串):要删除的 Tempo 工时记录ID

示例用法:

"删除ID为1211547的工时记录"
→ 移除指定的工时记录条目

5. get_schedule - 检索工作时间表

检索工作时间表信息,显示工作日、非工作日以及每天预期的工时。

参数:

  • startDate(字符串):YYYY-MM-DD 格式的起始日期
  • endDate(字符串,可选):结束日期,默认为起始日期

示例用法:

"2025年10月的工作时间表是什么?"
→ 返回:## 工作时间表(2025-10-01 至 2025-10-31)

          **期间总结:**
          - 总天数:31
          - 工作日:23
          - 非工作日:8
          - 总需工时:184小时

"显示本周的工作日"
→ 返回当前周的时间表,包括工作日和非工作日的分解

💡 集成技巧:在批量工时记录操作之前使用此工具来识别工作日,避免在周末/假期记录时间。

🌎 实际使用示例

基于成功的实施,这里有一些实用场景:

日常时间记录

# 使用 VS Code 和 GitHub Copilot:
用户:"今天在 PROJ-1234 上记录8小时"
AI:✅ 工时记录创建成功
    问题:PROJ-1234 - 示例项目任务
    工时:8小时
    日期:2025-08-01
    工时记录ID:1211550
    花费时间:1天

时间表优先批量时间填充

# 推荐:先检查时间表,然后创建条目:
用户:"检查我的十月时间表,然后在所有工作日上每天记录8小时在 PROJ-1234 上"
AI:## 工作时间表(2025-10-01 至 2025-10-31)
    **期间总结:**
    - 工作日:23
    - 非工作日:8
    - 总需工时:184小时

    ✅ 批量工时记录创建开始
    正在处理23个工时记录条目(仅限工作日)...
    ✅ 成功:23
    ❌ 失败:0
    📊 总工时:184

每月时间填充(传统)

# 直接批量操作(可能包括非工作日):
用户:"在七月的所有工作日上每天记录8小时在 PROJ-1234 上"
AI:✅ 批量工时记录创建开始
    正在处理23个工时记录条目...
    ✅ 成功:23
    ❌ 失败:0
    📊 总工时:184

时间表感知规划

# 智能时间规划工作流程:
用户:"这个月我的容量是多少,我应该如何分配我的时间?"
AI:## 工作时间表(2025-10-01 至 2025-10-31)
    - 工作日:23
    - 总需工时:184小时
    - 平均每日工时:8