这是一个连接到 Teamwork API 的 MCP 服务器,提供了一个简化接口来与 Teamwork 项目和任务进行交互。
通过 MCP 服务器可以使用以下工具:
getProjects - 获取 Teamwork 中的所有项目getCurrentProject - 获取当前项目的详细信息createProject - 在 Teamwork 中创建新项目getTasks - 获取 Teamwork 中的所有任务getTasksByProjectId - 获取特定项目中的所有任务getTaskListsByProjectId - 获取特定项目中的所有任务列表getTasksByTaskListId - 获取特定任务列表 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 - 获取分配给特定项目的人员addPeopleToProject - 将人员添加到 Teamwork 中的特定项目deletePerson - 删除 Teamwork 中的人员updatePerson - 更新人员的信息(时区、姓名、电子邮件等)getProjectsPeopleMetricsPerformance - 获取人员绩效指标getProjectsPeopleUtilization - 获取人员利用率getProjectPerson - 获取项目中的特定人员getProjectsReportingUserTaskCompletion - 获取用户任务完成报告getProjectsReportingUtilization - 获取各种格式的利用率报告(CSV 和 HTML)getTime - 获取所有时间条目getProjectsAllocationsTime - 获取项目分配的时间getTimezones - 获取 Teamwork 中所有可用的时区(在更新用户时区时很有用)最简单的方法是使用 npx。这种方法不需要克隆仓库或本地构建代码:
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 类似的步骤添加 MCP 服务器配置,使用 npx 命令和您的凭证。
注意:只有计划为项目做出贡献或提交拉取请求时才需要遵循这些说明。对于常规使用,请使用上述 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
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 的兼容性。