Information
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 - 根据特定项目ID从Teamwork获取所有任务
getTaskListsByProjectId - 根据特定项目ID从Teamwork获取所有任务列表
getTaskById - 从Teamwork根据ID获取特定任务
createTask - 在Teamwork中创建新任务
createSubTask - 在Teamwork中的父任务下创建新子任务
updateTask - 更新Teamwork中的现有任务
deleteTask - 从Teamwork删除任务
getTasksMetricsComplete - 获取Teamwork中已完成任务的总数
getTasksMetricsLate - 获取Teamwork中逾期任务的总数
getTaskSubtasks - 获取Teamwork中特定任务的所有子任务
getTaskComments - 从Teamwork获取特定任务的评论
人员工具
getPeople - 从Teamwork获取所有人
getPersonById - 根据ID从Teamwork获取特定人
getProjectPeople - 从Teamwork获取分配给特定项目的所有人
addPeopleToProject - 向Teamwork中的特定项目添加人员
deletePerson - 从Teamwork删除人员
getProjectsPeopleMetricsPerformance - 获取人员指标表现
getProjectsPeopleUtilization - 获取人员利用率
getProjectPerson - 获取项目上的特定人员
报告工具
getProjectsReportingUserTaskCompletion - 获取用户任务完成报告
getProjectsReportingUtilization - 以各种格式(CSV & HTML)获取利用率报告
时间工具
getTime - 获取所有时间条目
getProjectsAllocationsTime - 获取项目分配时间
安装
克隆仓库:
git clone https://github.com/readingdancer/teamwork-mcp.git
cd teamwork-mcp
安装依赖项:
npm install
根据.env.example文件创建.env文件:
cp .env.example .env
使用您的Teamwork凭据更新.env文件。
配置
编辑.env文件以配置应用程序:
PORT: 服务器运行的端口(默认:3000)
NODE_ENV: 环境(开发、生产、测试)
LOG_LEVEL: 日志级别(信息、错误、调试)
TEAMWORK_DOMAIN: 您的Teamwork域名(例如,对于 https://your-company.teamwork.com,应设置为 "your-company")
TEAMWORK_USERNAME: 您的Teamwork用户名(电子邮件)
TEAMWORK_PASSWORD: 您的Teamwork密码
设置凭证
您可以使用以下三种方式提供您的Teamwork凭证:
环境变量:在您的环境中设置 TEAMWORK_DOMAIN、TEAMWORK_USERNAME 和 TEAMWORK_PASSWORD。
.env 文件:创建一个 .env 文件,并按上述要求填写必要的变量。
命令行参数:在运行应用程序时传递凭证:
node build/index.js --teamwork-domain=your-company --teamwork-username=your-email@example.com --teamwork-password=your-password
或者使用简写形式:
node build/index.js --domain=your-company --user=your-email@example.com --pass=your-password
工具过滤
您可以使用以下命令行参数控制MCP服务器可用的工具集:
允许列表:仅暴露特定工具:
node build/index.js --allow-tools=getProjects,getTasks,getTaskById
或者使用简写形式:
node build/index.js --allow=getProjects,getTasks,getTaskById
拒绝列表:除了指定的工具外,暴露所有其他工具:
node build/index.js --deny-tools=deleteTask,updateTask
或者使用简写形式:
node build/index.js --deny=deleteTask,updateTask
使用组进行工具过滤
现在您可以指定工具组来进行过滤,从而更灵活地控制MCP服务器可用的工具。可用的组包括:
项目:包含所有与项目相关的工具。
任务:包含所有与任务相关的工具。
人员:包含所有与人员相关的工具。
报告:包含所有与报告相关的工具。
时间:包含所有与时间相关的工具。
在工具过滤中使用组
您可以在允许或拒绝列表中指定这些组,以包含或排除组内的所有工具。例如:
带有组的允许列表:仅暴露特定组的工具:
node build/index.js --allow-tools=Tasks,People
或者使用简写形式:
node build/index.js --allow=Tasks,People
带有组的拒绝列表:除了指定组中的工具外,暴露所有其他工具:
node build/index.js --deny-tools=Reporting,Time
或者使用简写形式:
node build/index.js --deny=Reporting,Time
默认情况下,如果没有提供允许列表或拒绝列表,则会暴露所有工具。如果同时提供了两者,则允许列表优先。
为了增强安全性,工具过滤会在两个层级上强制执行:
当列出可用工具时(不在允许列表中或在拒绝列表中的工具将不可见)
当执行工具调用时(尝试调用被过滤的工具将会因错误而被拒绝)
设置您的Teamwork项目
要将您当前的解决方案与Teamwork项目关联,您可以使用以下方法:
使用配置文件
您可以在项目的根目录下创建一个.teamwork文件,其结构如下:
PROJECT_ID = YourTeamworkProjectID
这个简单的配置文件将您的解决方案与特定的Teamwork项目相关联,未来我们可能会用它来存储更多细节。
一旦配置完成,MCP就能够找到您的Teamwork项目,并将其与您当前的解决方案关联起来,从而减少获取与您正在处理的解决方案相关的项目和任务所需的API调用次数。
用法
使用NPX(推荐)
使用Teamwork MCP最简单的方法是通过npx:
npx teamwork-mcp
您还可以传递配置选项:
npx teamwork-mcp --domain=your-company --user=your-email@example.com --pass=your-password
构建应用程序
注意:如果您只是想使用MCP,请使用上面的NPX指令,不需要进行此步骤。
构建应用程序:
npm run build
这将会编译TypeScript代码以准备作为MCP服务器使用。
作为MCP服务器运行
为了与Cursor及其他应用集成而作为MCP服务器运行,如果您使用.env文件来保存用户名、密码及URL,或者已将它们保存在环境变量中:
注意:请根据您保存仓库的位置更改驱动器和路径详情。
node C:/your-full-path/build/index.js
或者,您可以使用行参数传递这些信息:
node C:/your-full-path/build/index.js --teamwork-domain=your-company --teamwork-username=your-email@example.com --teamwork-password=your-password
您也可以使用简写形式:
node C:/your-full-path/build/index.js --domain=your-company --user=your-email@example.com --pass=your-password
使用MCP检查器
为调试目的运行MCP检查器:
npm run inspector
添加到Cursor(及其他MCP客户端)
要将此MCP服务器添加到Cursor:
版本0.47之前
打开Cursor设置 > 功能 > MCP
点击“+ 添加新的MCP服务器”
输入服务器名称(例如:“Teamwork API”)
选择“stdio”作为传输类型
输入运行服务器的命令:npx @vizioz/teamwork-mcp 并按照上述说明添加凭证和域名命令行参数。
您可以包括工具过滤选项:--allow=getProjects,getTasks 或 --deny=deleteTask
点击“添加”
版本0.47之后(手动编辑配置)
"Teamwork": \{
"command": "npx",
"args": [
"-y",
"@vizioz/teamwork-mcp",
"--domain",
"yourdomain",
"--user",
"youruser@yourdomain.com",
"--pass",
"yourPassword"
]
\}
如果您想要添加上述提到的允许或拒绝参数,只需像这样添加即可,您可以添加以上给出的任何示例,同时也可以按如下所示添加组和个人工具:
"Teamwork": \{
"command": "npx",
"args": [
"-y",
"@vizioz/teamwork-mcp",
"--domain",
"yourdomain",
"--user",
"youruser@yourdomain.com",
"--pass",
"yourPassword",
"--allow",
"Tasks,Projects",
"--deny",
"getProjectsPeopleMetricsPerformance,getProjectsPeopleUtilization"
]
现在,Teamwork MCP工具将在Composer中的Cursor代理可用。
许可证
该项目采用MIT许可证发布 - 查看LICENSE文件了解详细信息。
免责声明
本项目与Teamwork.com无关联,也未得到Teamwork.com的认可或赞助。包名(@vizioz/teamwork-mcp)中使用“Teamwork”这一名称仅是为了描述目的,表明与Teamwork.com API兼容。