使用说明
Toggl MCP服务器
允许MCP客户端与Toggl Track交互,通过自然语言实现时间跟踪、项目管理和工作区操作。
特性
工具
项目管理
-
创建项目
- 描述:在指定的Toggl工作区中创建新项目。
- 输入:
name(str):要创建的项目的名称。这是必填字段。workspace_name(str,可选):将创建项目的工作区的名称。如果未提供,则默认为用户的默认工作区。active(bool,可选):指定项目是否处于活动状态。默认为True.billable(bool,可选):指定项目是否可计费。默认为False.client_id(int,可选):与项目关联的客户端的ID。color(str,可选):分配给项目的十六进制颜色代码(例如“#FF0000”)。is_private(bool,可选):指定项目是否为私有。默认为True.start_date(str,可选):ISO 8601格式的项目开始日期(例如“YYYY-MM-DD”)。end_date(str,可选):ISO 8601格式的项目结束日期(例如“YYYY-MM-DD”)。estimated_hours(int,可选):项目的估计小时数。template(bool,可选):指定项目是否为模板。默认为False.template_id(int,可选):用于创建项目的模板的ID。
- 输出:包含新创建项目数据的JSON响应。
-
删除项目
- 描述:删除指定工作区中由其名称标识的项目。
- 输入:
project_name(str):要删除的项目的确切名称。这是必填字段。workspace_name(str,可选):包含项目的工作区的名称。如果未提供,则默认为用户的默认工作区。
- 输出:表示项目删除成功的确认消息(str)。
-
update_项目
- 描述:使用补丁操作对指定工作区内的多个项目执行批量更新。
- 输入:
project_names(List[str]):包含要更新的项目名称的列表。这是必填字段。operations(List[dict]):应用于所选项目的补丁操作列表。每个操作都是一个指定操作类型的字典(op),字段路径(path),以及新值(value)(例如。,{"op": "replace", "path": "/active", "value": false}).这是必填字段。workspace_name(str,可选):包含项目的工作区的名称。如果未提供,则默认为用户的默认工作区。
- 输出:包含更新项目数据的JSON响应。
-
get_all_项目
- 描述:检索指定工作区内所有项目的列表。
- 输入:
workspace_name(str,可选):从中检索项目的工作区的名称。如果未提供,则默认为用户的默认工作区。
- 输出:JSON响应,其中包含在指定工作区中找到的项目数据对象列表。
时间录入管理
-
new_time_entry
- 描述:创建新的时间条目。可用于启动计时器(如果只有
start提供或两者都不提供start也不duration提供)或记录完成的时间条目(如果start和stop,或start和duration提供)。 - 输入:
description(str):时间条目的描述。workspace_name(str,可选):工作区的名称。默认为用户的默认工作区。project_name(str,可选):要与时间条目关联的项目的名称。tags(List[str],可选):应用于时间条目的标签名称列表。start(str,可选):ISO 8601格式的条目的开始时间(例如,“2023-10-26T10:00:00Z”)。如果创建正在运行的条目,则默认为当前时间。stop(str,可选):ISO 8601格式的条目的停止时间。如果提供,则创建一个完整的条目。duration(int,可选):输入的持续时间(秒)。如果start提供,但stop不是,duration确定停止时间。如果start如果不提供,负持续时间将启动运行计时器。billable(bool,可选):时间条目是否应标记为可计费。默认为False。created_with(str,可选):创建条目的应用程序的名称。默认为“MCP”。
- 输出:JSON响应,包含创建的时间条目的数据。
- 描述:创建新的时间条目。可用于启动计时器(如果只有
-
stop_time_entry
- 描述:停止当前运行的时间条目。
- 输入:
workspace_name(str,可选):运行条目的工作区的名称。默认为用户的默认工作区。
- 输出:包含停止时间条目的JSON响应。
-
delete_time_entry
- 描述:按描述和开始时间删除特定时间条目。
- 输入:
time_entry_description(str):要删除的时间条目的确切描述。start_time(str):用于识别的ISO 8601格式条目的确切开始时间。workspace_name(str,可选):包含条目的工作区的名称。默认为用户的默认工作区。
- 输出:成功删除后的成功确认消息(str)。
-
get_current_time_entry
- 描述:获取当前运行时间条目的详细信息。
- 输入:None(隐式使用用户的上下文)。
- 输出:JSON响应包含当前运行的时间条目的数据,如果当前没有运行时间条目,则为None。
-
update_time_entry
- 描述:更新由其描述和开始时间标识的现有时间条目的属性。
- 输入:
time_entry_description(str):要更新的时间条目的当前描述。start_time(str):用于识别的ISO 8601格式条目的确切开始时间。workspace_name(str,可选):包含条目的工作区的名称。默认为用户的默认工作区。new_description(str,可选):时间条目的新描述。project_name(str,可选):与条目关联的新项目名称。设置为空字符串“”以删除项目关联。tags(List[str],可选):一个新的标签名称列表。这将替换所有现有标签。提供一个空列表[]删除所有标签。new_start(str,可选):ISO 8601格式的新开始时间。new_stop(str,可选):ISO 8601格式的新停止时间。billable(bool,可选):新的计费状态。
- 输出:包含更新时间条目的JSON响应。
-
get_time_entries_for_range
- 描述:检索指定日期范围内的时间条目,该日期范围由与当前日期的偏移量定义。
- 输入:
from_day_offset(int):起始日与今天的偏移量(例如,今天为0,昨天为-1,一周前为-7)。to_day_offset(int):从今天开始的结束日偏移量(例如,今天为0,明天为1)。该范围包括开始日期和结束日期。workspace_name(str,可选):要从中获取条目的工作区的名称。默认为用户的默认工作区。
- 输出:JSON响应,其中包含在指定日期范围内找到的时间条目列表。
入门指南
先决条件
- Python 3.11+
- Toggl跟踪帐户
- 安装uv用于依赖关系管理
环境变量
创建一个 .env 文件内部 mcp_toggl_server 文件夹包含:
EMAIL=your_toggl_email
PASSWORD=your_toggl_password
如果您正在使用Toggl API令牌:
EMAIL=xxxx
PASSWORD="api_token"
哪里 xxxx 表示您的个人令牌
安装
首先安装uv:
-对于MacOS/Linux:
bash curl -LsSf https://astral.sh/uv/install.sh | sh
-对于Windows:
bash powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
确保之后重新启动终端,以确保收到uv命令。
现在,让我们克隆存储库并设置项目:
git clone [repository-url]
cd mcp_toggl_server
uv venv
uv pip install --all
与开发工具集成
VS代码+GitHub副本设置
- 在中配置MCP服务器
.vscode/mcp.json:
"servers": {
"toggl": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/mcp_toggl_server",
"run",
"toggl_mcp_server.py"],
"envFile": "${workspaceFolder}/mcp_toggl_server/.env"
}
}
-
更新配置:
- 替换
/ABSOLUTE/PATH/TO/PARENT/FOLDER/mcp_toggl_server具有到服务器的绝对路径 - 您可能需要在命令字段中输入uv可执行文件的完整路径。您可以通过在MacOS/Linux上运行which uv或在Windows上运行where uv来获得此信息
- 替换
-
启用服务器:
- 将鼠标悬停在服务器配置上时,查找开始按钮
/.vscode/mcp.json - 点击开始,让Copilot发现可用工具
- 在Copilot中切换到代理模式
- 将鼠标悬停在服务器配置上时,查找开始按钮
有关详细的设置说明,请参阅:
附加MCP客户端集成
Toggl MCP服务器可与任何兼容MCP的客户端配合使用。对于集成步骤:
- 对于Claude Desktop,请访问 MCP快速入门指南
- 对于其他MCP客户端,请参阅其各自的文档以了解服务器配置
注意:配置通常涉及指定服务器路径和环境变量,类似于上面的VS代码设置。
MCP检验员测试
要在开发中运行:
EMAIL=your_toggl_email PASSWORD=your_toggl_password mcp dev toggl_mcp_server.py
许可证
此MCP服务器根据MIT许可证获得许可。
