关于 Teamwork MCP
Teamwork MCP 连接 Teamwork API,供应用管理项目、任务、人员、工时和报告数据。工具涵盖查询与修改,并可限制对外提供的工具范围。
主要功能
- 01查询和管理项目及任务
- 02创建和更新任务评论
- 03管理公司和人员
- 04访问工时与报告数据
- 05按名称或分组筛选工具
适用场景
- 01查看任务和项目详情
- 02创建或更新 Teamwork 任务
- 03获取利用率和完成情况报告
- 04将可用工具限制为指定分组
MCP 相关
它将 Teamwork API 操作作为工具提供给 MCP 客户端,涵盖项目、任务、评论、公司、人员、工时和报告。可通过允许或拒绝列表限制可用工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Teamwork MCP
一个连接 Teamwork API 的 MCP 服务,提供简化的接口,用于与 Teamwork 项目和任务交互。
功能
- 连接 Teamwork API
- 获取项目和任务
- 创建、更新和删除任务
- RESTful API 端点
- 错误处理和日志记录
- 用于与 Cursor 和其他应用程序集成的 MCP 服务
前提条件
- Node.js(v14.17 或更高版本,建议使用 18+,或更好的最新 LTS 版本)
- npm 或 yarn
- 拥有 API 访问权限的 Teamwork 账户
可用的 Teamwork MCP 工具
可通过 MCP 服务使用以下工具:
项目工具
getProjects- 获取 Teamwork 中的所有项目getCurrentProject- 获取当前项目的详细信息createProject- 在 Teamwork 中创建新项目
任务工具
getTasks- 获取 Teamwork 中的所有任务getTasksByProjectId- 获取 Teamwork 中指定项目的所有任务getTaskListsByProjectId- 获取 Teamwork 中指定项目的所有任务列表getTasksByTaskListId- 获取 Teamwork 中指定任务列表 ID 下的所有任务getTaskById- 根据 ID 从 Teamwork 获取指定任务createTask- 在 Teamwork 中创建新任务createSubTask- 在 Teamwork 中为父任务创建新子任务updateTask- 更新 Teamwork 中的现有任务deleteTask- 删除 Teamwork 中的任务getTasksMetricsComplete- 获取 Teamwork 中已完成任务的总数getTasksMetricsLate- 获取 Teamwork 中逾期任务的总数getTaskSubtasks- 获取 Teamwork 中指定任务的所有子任务getTaskComments- 获取 Teamwork 中指定任务的评论
评论工具
createComment- 创建与任务/消息/笔记本相关的评论
公司工具
getCompanies- 获取 Teamwork 中的所有公司,可选筛选getCompanyById- 根据 ID 获取指定公司createCompany- 在 Teamwork 中创建新公司updateCompany- 更新现有公司的信息deleteCompany- 删除 Teamwork 中的公司
人员工具
getPeople- 获取 Teamwork 中的所有人员getPersonById- 根据 ID 从 Teamwork 获取指定人员getProjectPeople- 获取 Teamwork 中分配到指定项目的所有人员addPeopleToProject- 将人员添加到 Teamwork 中的指定项目deletePerson- 删除 Teamwork 中的人员updatePerson- 更新人员信息(时区、姓名、电子邮件等)getProjectsPeopleMetricsPerformance- 获取人员绩效指标getProjectsPeopleUtilization- 获取人员利用率getProjectPerson- 获取项目中的指定人员
报告工具
getProjectsReportingUserTaskCompletion- 获取用户任务完成情况报告getProjectsReportingUtilization- 获取多种格式的利用率报告,包括 CSV 和 HTML
时间工具
getTime- 获取所有时间记录getProjectsAllocationsTime- 获取项目分配时间getTimezones- 获取 Teamwork 中所有可用的时区(更新用户时区时很有用)
安装
使用 NPX(推荐)
使用 Teamwork MCP 最简单的方法是通过 npx。此方法无需克隆仓库或在本地构建代码:
npx @vizioz/teamwork-mcp
你也可以直接传入配置选项:
npx @vizioz/teamwork-mcp --domain=your-company [email protected] --pass=your-password
配置
设置凭据
你可以通过三种方式提供 Teamwork 凭据:
-
环境变量:在环境中设置
TEAMWORK_DOMAIN、TEAMWORK_USERNAME和TEAMWORK_PASSWORD。 -
.env 文件:创建包含所需变量的
.env文件:TEAMWORK_DOMAIN=your-company [email protected] TEAMWORK_PASSWORD=your-password -
命令行参数:运行应用程序时传入凭据:
npx @vizioz/teamwork-mcp --teamwork-domain=your-company [email protected] --teamwork-password=your-password或使用简写形式:
npx @vizioz/teamwork-mcp --domain=your-company [email protected] --pass=your-password
日志配置
默认情况下,Teamwork MCP 服务会在 logs 目录中创建日志文件,以便调试和监控。你可以通过以下方法完全禁用日志记录:
-
命令行参数:
npx @vizioz/teamwork-mcp --disable-logging或使用替代形式:
npx @vizioz/teamwork-mcp --no-logging -
环境变量:
DISABLE_LOGGING=true npx @vizioz/teamwork-mcp
启用日志记录后,服务会在 logs 目录中创建两个日志文件:
error.log- 仅包含错误级别的消息combined.log- 包含所有日志消息(信息、警告、错误)
每个日志文件都包含一个标题,其中说明了如何在需要时禁用日志记录。
工具筛选
你可以使用以下命令行参数控制 MCP 服务可用的工具:
-
允许列表:仅公开指定的工具:
npx @vizioz/teamwork-mcp --allow-tools=getProjects,getTasks,getTaskById或使用简写形式:
npx @vizioz/teamwork-mcp --allow=getProjects,getTasks,getTaskById -
拒绝列表:公开除指定工具之外的所有工具:
npx @vizioz/teamwork-mcp --deny-tools=deleteTask,updateTask或使用简写形式:
npx @vizioz/teamwork-mcp --deny=deleteTask,updateTask
使用分组筛选工具
现在,你可以指定工具组进行筛选,从而更灵活地控制 MCP 服务可用的工具。可用的分组如下:
- Projects:包含所有与项目相关的工具。
- Tasks:包含所有与任务相关的工具。
- People:包含所有与人员相关的工具。
- Reporting:包含所有与报告相关的工具。
- Time:包含所有与时间相关的工具。
- Comments:包含特定的评论工具。
在工具筛选中使用分组
你可以在允许列表或拒绝列表中指定这些分组,以包含或排除组内的所有工具。例如:
-
使用分组的允许列表:仅公开指定分组中的工具:
npx @vizioz/teamwork-mcp --allow-tools=Tasks,People或使用简写形式:
npx @vizioz/teamwork-mcp --allow=Tasks,People -
使用分组的拒绝列表:公开除指定分组中的工具之外的所有工具:
npx @vizioz/teamwork-mcp --deny-tools=Reporting,Time或使用简写形式:
npx @vizioz/teamwork-mcp --deny=Reporting,Time
默认情况下,如果未提供允许列表或拒绝列表,则会公开所有工具。如果同时提供两者,则以允许列表为准。
为增强安全性,工具筛选会在两个层面强制执行:
- 列出可用工具时(不在允许列表中或位于拒绝列表中的工具不会显示)
- 执行工具调用时(尝试调用经过筛选的工具会被拒绝并返回错误)
设置 Teamwork 项目
若要将当前解决方案关联到 Teamwork 项目,可以使用以下方法:
使用配置文件
你可以在项目根目录中创建一个 .teamwork 文件,内容结构如下:
PROJECT_ID = YourTeamworkProjectID
这个简单的配置文件会将你的解决方案关联到特定的 Teamwork 项目;我们可能会在未来用它存储更多详细信息。
配置完成后,MCP 就能找到你的 Teamwork 项目,并将其关联到当前解决方案,从而减少获取项目以及与你正在处理的解决方案相关任务所需的 API 调用次数。
添加到 MCP 客户端
Cursor
将此 MCP 服务添加到 Cursor:
0.47 之前的版本
- 打开 Cursor Settings > Features > MCP
- 点击“+ Add New MCP Server”
- 输入服务名称(例如,“Teamwork API”)
- 选择“stdio”作为传输类型
- 输入运行服务的命令:
npx @vizioz/teamwork-mcp,并添加上文提到的凭据和域名命令行参数。- 你可以添加工具筛选选项:
--allow=getProjects,getTasks或--deny=deleteTask
- 你可以添加工具筛选选项:
- 点击“Add”
0.47 之后的版本(手动编辑配置)
"Teamwork": {
"command": "npx",
"args": [
"-y",
"@vizioz/teamwork-mcp",
"--domain",
"yourdomain",
"--user",
"[email protected]",
"--pass",
"yourPassword"
]
}
要在 Cursor 中禁用日志记录,请添加 --disable-logging 参数:
"Teamwork": {
"command": "npx",
"args": [
"-y",
"@vizioz/teamwork-mcp",
"--domain",
"yourdomain",
"--user",
"[email protected]",
"--pass",
"yourPassword",
"--disable-logging"
]
}
如果你想添加上文提到的允许或拒绝参数,只需按以下方式添加即可。你可以添加上文中的任一示例,也可以像下面这样同时添加分组和单个工具:
"Teamwork": {
"command": "npx",
"args": [
"-y",
"@vizioz/teamwork-mcp",
"--domain",
"yourdomain",
"--user",
"[email protected]",
"--pass",
"yourPassword",
"--allow",
"Tasks,Projects",
"--deny",
"getProjectsPeopleMetricsPerformance,getProjectsPeopleUtilization"
]
}
现在,Cursor Composer 中的 Agent 就可以使用 Teamwork MCP 工具了。
Claude Desktop
要将此 MCP 服务添加到 Claude Desktop,请编辑 Claude Desktop 配置文件:
Windows:%APPDATA%\Claude\claude_desktop_config.json
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
添加以下配置:
{
"mcpServers": {
"teamwork": {
"command": "npx",
"args": [
"-y",
"@vizioz/teamwork-mcp",
"--domain",
"yourdomain",
"--user",
"[email protected]",
"--pass",
"yourPassword"
]
}
}
}
Windsurf
要将此 MCP 服务添加到 Windsurf,请按照与 Cursor 类似的步骤,通过 npx 命令和凭据添加 MCP 服务配置。
从源代码构建
注意:只有在计划为项目做贡献或提交拉取请求时,才需要按照这些说明操作。常规使用请使用上文所述的 NPX 安装方法。
本地开发环境设置
-
克隆仓库:
git clone https://github.com/readingdancer/teamwork-mcp.git cd teamwork-mcp -
安装依赖:
npm install -
根据
.env.example文件创建.env文件:cp .env.example .env -
使用你的 Teamwork 凭据更新
.env文件:PORT=3000 NODE_ENV=development LOG_LEVEL=info TEAMWORK_DOMAIN=your-company [email protected] TEAMWORK_PASSWORD=your-password
构建应用程序
构建应用程序:
npm run build
此操作将编译 TypeScript 代码,使其可用作 MCP 服务。
作为 MCP 服务运行(本地构建)
如果你使用 .env 文件配置用户名、密码和 url,或已将它们保存为环境变量,要将其作为 MCP 服务运行以集成到 Cursor 和其他应用程序中:
注意:请务必根据仓库的保存位置更改驱动器和路径信息。
node C:/your-full-path/build/index.js
或者,你也可以通过行参数传递它们:
node C:/your-full-path/build/index.js --teamwork-domain=your-company [email protected] --teamwork-password=your-password
你也可以使用简写形式:
node C:/your-full-path/build/index.js --domain=your-company [email protected] --pass=your-password
使用 MCP Inspector
运行 MCP inspector 以进行调试:
npm run inspector
许可证
本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
免责声明
本项目与 Teamwork.com 无关,也未获得其认可或赞助。软件包名称(@vizioz/teamwork-mcp)中使用“Teamwork”一词仅用于描述,以表明本项目与 Teamwork.com API 兼容。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。