一个连接到Teamwork API的MCP服务器,提供了一个简化接口,用于与Teamwork项目和任务进行交互。
以下工具通过MCP服务器提供:
getProjects - 获取所有Teamwork项目getCurrentProject - 获取当前项目的详细信息createProject - 在Teamwork中创建新项目getTasks - 获取所有Teamwork任务getTasksByProjectId - 获取特定项目中的所有任务getTaskListsByProjectId - 获取特定项目中的所有任务列表getTasksByTaskListId - 根据特定任务列表ID获取所有任务getTaskById - 根据ID获取特定任务createTask - 在Teamwork中创建新任务createSubTask - 在父任务下创建新子任务updateTask - 更新Teamwork中的现有任务deleteTask - 从Teamwork中删除任务getTasksMetricsComplete - 获取已完成任务的总数getTasksMetricsLate - 获取逾期任务的总数getTaskSubtasks - 获取特定任务的所有子任务getTaskComments - 获取特定任务的评论createComment - 创建与任务/消息/笔记本相关的评论getCompanies - 获取所有Teamwork公司,可选过滤getCompanyById - 根据ID获取特定公司createCompany - 在Teamwork中创建新公司updateCompany - 更新现有公司的信息deleteCompany - 从Teamwork中删除公司getPeople - 获取所有Teamwork人员getPersonById - 根据ID从Teamwork获取特定人员getProjectPeople - 获取分配给特定项目的所有人员addPeopleToProject - 将人员添加到特定项目deletePerson - 从Teamwork中删除人员updatePerson - 更新人员的信息(时区、姓名、电子邮件等)getProjectsPeopleMetricsPerformance - 获取人员绩效指标getProjectsPeopleUtilization - 获取人员利用率getProjectPerson - 获取项目上的特定人员getProjectsReportingUserTaskCompletion - 获取用户任务完成报告getProjectsReportingUtilization - 获取利用率报告,格式包括CSV和HTMLgetTime - 获取所有时间条目getProjectsAllocationsTime - 获取项目分配时间getTimezones - 获取Teamwork中所有可用时区(在更新用户时区时非常有用)使用npx是使用Teamwork MCP最简单的方法。此方法不需要克隆仓库或本地构建代码:
npx @vizioz/teamwork-mcp
您也可以直接传递配置选项:
npx @vizioz/teamwork-mcp --domain=your-company --user=your-email@example.com --pass=your-password
您可以使用以下三种方式提供您的Teamwork凭据:
环境变量:在环境中设置 TEAMWORK_DOMAIN、TEAMWORK_USERNAME 和 TEAMWORK_PASSWORD。
.env 文件:创建一个 .env 文件,包含所需的变量:
TEAMWORK_DOMAIN=your-company
TEAMWORK_USERNAME=your-email@example.com
TEAMWORK_PASSWORD=your-password
命令行参数:在运行应用程序时传递凭据:
npx @vizioz/teamwork-mcp --teamwork-domain=your-company --teamwork-username=your-email@example.com --teamwork-password=your-password
或使用短形式:
npx @vizioz/teamwork-mcp --domain=your-company --user=your-email@example.com --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服务器可用的工具。可用的组包括:
您可以在允许或拒绝列表中指定这些组,以包含或排除组内的所有工具。例如:
允许列表中的组:仅暴露特定组的工具:
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 文件,结构如下:
PROJECT_ID = YourTeamworkProjectID
这个简单的配置文件将您的解决方案与特定的Teamwork项目关联起来,未来我们可能会使用它来存储更多详细信息。
配置后,MCP将能够找到您的Teamwork项目,并将其与您正在工作的解决方案关联起来,减少获取项目和相关任务所需的API调用次数。
要将此MCP服务器添加到Cursor:
npx @vizioz/teamwork-mcp,并添加上述提到的凭据和域名命令行参数。
--allow=getProjects,getTasks 或 --deny=deleteTask"Teamwork": {
"command": "npx",
"args": [
"-y",
"@vizioz/teamwork-mcp",
"--domain",
"yourdomain",
"--user",
"youruser@yourdomain.com",
"--pass",
"yourPassword"
]
}
要在Cursor中禁用日志记录,添加 --disable-logging 参数:
"Teamwork": {
"command": "npx",
"args": [
"-y",
"@vizioz/teamwork-mcp",
"--domain",
"yourdomain",
"--user",
"youruser@yourdomain.com",
"--pass",
"yourPassword",
"--disable-logging"
]
}
如果您想添加上述提到的允许或拒绝参数,只需像这样添加它们,您可以添加任何给出的示例,也可以同时添加组和单个工具,如下所示:
"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代理可用。
要将此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",
"youruser@yourdomain.com",
"--pass",
"yourPassword"
]
}
}
}
要将此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
更新 .env 文件,填写您的Teamwork凭据:
PORT=3000
NODE_ENV=development
LOG_LEVEL=info
TEAMWORK_DOMAIN=your-company
TEAMWORK_USERNAME=your-email@example.com
TEAMWORK_PASSWORD=your-password
构建应用程序:
npm run build
这将编译TypeScript代码,准备好作为MCP服务器使用。
要作为MCP服务器运行,以便与Cursor和其他应用程序集成,如果您使用的是 .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检查器进行调试:
npm run inspector
本项目采用MIT许可证 - 详情请参阅 LICENSE 文件。
本项目与Teamwork.com无任何关联、背书或赞助关系。包名中使用 "Teamwork"(@vizioz/teamwork-mcp)仅用于描述目的,以表明与Teamwork.com API的兼容性。