时间日志MCP服务器
一 主控程序 暴露的服务器 时间表 时间注册API作为Claude的工具。它允许您通过自然语言查看、创建和管理时间登记、缺勤和时间表审批。
能力
- 查看时间注册 --按周或任意日期范围,包括财务/计费数据
- 创建、更新和删除 您有权访问的任何任务的时间注册
- 缺勤管理 --搜索缺勤代码并登记假期、病假等。
- 时间表审批 --检查提交状态并提交时间表,按员工、部门、审批人或法人实体进行筛选
- 组织 --查找法人实体和当前用户资料
- 任务搜索 --按名称或编号查找要注册时间的任务
工具
用户和组织
get_current_user
获取经过身份验证的用户的个人资料(姓名、电子邮件、部门)。没有参数。
get_legal_entities
获取组织中的所有法人实体。返回每个实体的ID、名称、活动状态、货币和国家。没有参数。
时间登记
get_weekly_registrations
获取特定周的时间登记,按天和标准小时分组。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
startDate | string | 是 | 星期一(YYYY-MM-DD) |
get_registrations_by_date_range
获取两个日期之间的时间登记。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
startDate | string | 是 | 开始日期(YYYY-MM-DD) |
endDate | string | 是 | 结束日期(YYYY-MM-DD) |
get_financial_data
获取日期范围内时间登记的财务数据(计费/发票状态)。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
startDate | string | 是 | 开始日期(YYYY-MM-DD) |
endDate | string | 是 | 结束日期(YYYY-MM-DD) |
search_tasks
搜索用户可以注册时间的任务。返回创建时间注册所需的任务ID。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
searchText | string | 否 | 要搜索的任务名称或任务编号 |
searchAll | boolean | 否 | 搜索所有任务,而不仅仅是最近的任务(默认值:false) |
create_time_registration
为任务创建新的时间登记。使用 search_tasks 首先找到TaskID。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
TaskID | integer | 是 | 任务标识符(来自 search_tasks) |
Date | string | 是 | 注册日期(YYYY-MM-DD) |
Hours | number | 是 | 注册小时数 |
Comment | string | 否 | 注册备注 |
JiraId | string | 否 | JIRA票证ID(例如XXX-1234) |
Billable | boolean | 否 | 此时间是否计费(默认为任务设置) |
update_time_registration
更新现有的时间登记。只提供要更改的字段。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
TimeRegistrationID | integer | 是 | 要更新的时间注册ID |
TaskID | integer | 是 | 任务标识符 |
Date | string | 否 | 新日期(YYYY-MM-DD) |
Hours | number | 否 | 新小时值 |
Comment | string | 否 | 新评论 |
JiraId | string | 否 | JIRA票证ID(例如SGI-82108) |
Billable | boolean | 否 | 此时间是否计费 |
delete_time_registration
按GUID删除时间注册。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | string(UUID) | 是 | 要删除的时间注册的GUID |
缺席
search_absence_codes
搜索缺勤代码(例如Ferie、Sygdom)。返回所需的缺勤代码ID create_absence_registration.
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
searchText | string | 否 | 按缺勤代码名称或编号筛选 |
create_absence_registration
创建缺勤登记(休假、病假等)。使用 search_absence_codes 查找缺席代码ID。默认情况下注册一个完整的工作日。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
AbsenceCodeID | integer | 是 | 缺勤代码标识符(来自 search_absence_codes) |
Date | string | 是 | 缺席日期(YYYY-MM-DD) |
Hours | number | 否 | 注册时间(整个工作日省略) |
Comment | string | 否 | 注册备注 |
时间表审批
get_timesheet_status
获取每周时间表审批/提交状态。默认为经过身份验证的用户。省略 userId 获取所有员工(经理视图)。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
startDate | string | 是 | 开始日期(YYYY-MM-DD) |
endDate | string | 是 | 结束日期(YYYY-MM-DD) |
userId | integer | 否 | 按员工用户ID筛选(对所有员工省略) |
departmentId | integer | 否 | 按部门ID筛选 |
approverId | integer | 否 | 按审批人UserID筛选 |
legalEntityId | integer | 否 | 按法人实体ID筛选 |
submit_timesheet
提交一份日期范围(例如一整周)的时间表以供审批。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
startDate | string | 是 | 开始日期(YYYY-MM-DD) |
endDate | string | 是 | 结束日期(YYYY-MM-DD) |
comment | string | 否 | 提交的评论 |
employeeUserId | integer | 否 | 要提交的员工的用户ID(默认为经过身份验证的用户) |
经理工作流
查找并关闭开放时间表
使用 get_timesheet_status 没有a userId 获取一段时间内所有员工的提交状态。筛选依据 departmentId, approverId,或 legalEntityId 缩小范围。
一旦您确定了有开放时间表的员工,请使用 submit_timesheet 随着 employeeUserId 代表他们提交。
示例提示:
“显示本周未提交时间表的所有人” “提交用户1234的本周时间表” “本周提交第5部门的所有开放时间表”
设置
通过npx(推荐)
添加到您的克劳德代码 .mcp.json 或Claude桌面配置:
{
"mcpServers": {
"timelog": {
"command": "npx",
"args": ["-y", "timelog-mcp"],
"env": {
"TIMELOG_PAT": "",
"TIMELOG_BASE_URL": "https://app[X].timelog.com//api"
}
}
}
}来源
git clone git@github.com:Amoeslund/Timelog-MCP-server.git
cd Timelog-MCP-server
npm install
npm run build然后将MCP配置指向构建文件:
{
"mcpServers": {
"timelog": {
"command": "node",
"args": ["/path/to/Timelog-MCP-server/dist/index.js"],
"env": {
"TIMELOG_PAT": "",
"TIMELOG_BASE_URL": "https://app[X].timelog.com//api"
}
}
}
}配置
个人访问令牌
生成PAThttps://login.timelog.com/personaltoken.
基础URL
您的URL遵循以下模式 https://app[X].timelog.com//api 哪里 [X] 是一个服务器号(1-10),以及 `` 是您的Timelog帐户名。看 API时间日志文档 了解详情。
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
TIMELOG_PAT | 是 | 个人访问令牌(见上文) |
TIMELOG_BASE_URL | 是 | API基本URL(见上文) |
许可证
ISC
