返回市场
团队协作-MCP

团队协作-MCP

作者:Vizioz12 星标更新:2025-09-13

项目介绍

Teamwork MCP

npm 版本 在 MseeP 上验证

这是一个连接到 Teamwork API 的 MCP 服务器,提供了一个简化接口来与 Teamwork 项目和任务进行交互。

功能

  • 连接到 Teamwork API
  • 获取项目和任务
  • 创建、更新和删除任务
  • RESTful API 端点
  • 错误处理和日志记录
  • 用于与 Cursor 和其他应用程序集成的 MCP 服务器

预备条件

  • Node.js(版本 14.17 或更高,推荐使用 18+ 或最新的 LTS 版本)
  • npm 或 yarn
  • 具有 API 访问权限的 Teamwork 账户

可用的 Teamwork MCP 工具

通过 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。这种方法不需要克隆仓库或本地构建代码:

npx @vizioz/teamwork-mcp

您也可以直接传递配置选项:

npx @vizioz/teamwork-mcp --domain=your-company --user=your-email@example.com --pass=your-password

配置

设置凭证

您可以以三种方式提供 Teamwork 凭证:

  1. 环境变量:设置 TEAMWORK_DOMAINTEAMWORK_USERNAMETEAMWORK_PASSWORD 在您的环境中。

  2. .env 文件:创建一个包含所需变量的 .env 文件:

    TEAMWORK_DOMAIN=your-company
    TEAMWORK_USERNAME=your-email@example.com
    TEAMWORK_PASSWORD=your-password
    
  3. 命令行参数:运行应用程序时传递凭证:

    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 目录中创建日志文件,以帮助调试和监控。您可以使用以下方法完全禁用日志记录:

  1. 命令行参数

    npx @vizioz/teamwork-mcp --disable-logging
    

    或者使用替代形式:

    npx @vizioz/teamwork-mcp --no-logging
    
  2. 环境变量

    DISABLE_LOGGING=true npx @vizioz/teamwork-mcp
    

当启用日志记录时,服务器会在 logs 目录中创建两个日志文件:

  • error.log - 包含仅错误级别的消息
  • combined.log - 包含所有日志消息(信息、警告、错误)

每个日志文件都包括一个头部,说明如何禁用日志记录(如果需要)。

工具筛选

您可以使用以下命令行参数控制哪些工具对 MCP 服务器可用:

  1. 允许列表:仅暴露特定工具:

    npx @vizioz/teamwork-mcp --allow-tools=getProjects,getTasks,getTaskById
    

    或者使用简写形式:

    npx @vizioz/teamwork-mcp --allow=getProjects,getTasks,getTaskById
    
  2. 拒绝列表:暴露除指定工具外的所有工具:

    npx @vizioz/teamwork-mcp --deny-tools=deleteTask,updateTask
    

    或者使用简写形式:

    npx @vizioz/teamwork-mcp --deny=deleteTask,updateTask
    

使用组进行工具筛选

现在您可以指定工具组来进行筛选,从而更灵活地控制哪些工具对 MCP 服务器可用。可用的组包括:

  • 项目:包括所有与项目相关的工具。
  • 任务:包括所有与任务相关的工具。
  • 人员:包括所有与人员相关的工具。
  • 报告:包括所有与报告相关的工具。
  • 时间:包括所有与时间相关的工具。
  • 评论:包括特定的评论工具。

在工具筛选中使用组

您可以在允许或拒绝列表中指定这些组,以包括或排除组内的所有工具。例如:

  1. 允许列表中的组:仅暴露特定组的工具:

    npx @vizioz/teamwork-mcp --allow-tools=Tasks,People
    

    或者使用简写形式:

    npx @vizioz/teamwork-mcp --allow=Tasks,People
    
  2. 拒绝列表中的组:暴露除指定组外的所有工具:

    npx @vizioz/teamwork-mcp --deny-tools=Reporting,Time
    

    或者使用简写形式:

    npx @vizioz/teamwork-mcp --deny=Reporting,Time
    

默认情况下,如果没有提供允许或拒绝列表,则会暴露所有工具。如果同时提供了两者,则允许列表优先。

工具筛选在两个级别上强制执行,以增强安全性:

  1. 列出可用工具时(不在允许列表或拒绝列表中的工具不可见)
  2. 执行工具调用时(尝试调用被筛选的工具将被拒绝并返回错误)

设置您的 Teamwork 项目

要将当前解决方案关联到 Teamwork 项目,可以使用以下方法:

使用配置文件

您可以在项目根目录中创建一个名为 .teamwork 的文件,其结构如下:

PROJECT_ID = YourTeamworkProjectID

这个简单的配置文件将您的解决方案与特定的 Teamwork 项目关联起来,未来我们可能会在此存储更多细节。

配置完成后,MCP 将能够找到您的 Teamwork 项目,并将其与您当前的解决方案关联起来,减少获取与您正在处理的解决方案相关的项目和任务所需的 API 调用次数。

添加到 MCP 客户端

Cursor

要将此 MCP 服务器添加到 Cursor:

版本 0.47 之前

  1. 打开 Cursor 设置 > 功能 > MCP
  2. 点击 "+ 添加新 MCP 服务器"
  3. 输入服务器名称(例如,“Teamwork API”)
  4. 选择“stdio”作为传输类型
  5. 输入运行服务器的命令:npx @vizioz/teamwork-mcp 并添加凭证和域名命令行参数,如上所述。
    • 您可以包含工具筛选选项:--allow=getProjects,getTasks--deny=deleteTask
  6. 点击“添加”

版本 0.47 之后(手动编辑配置)

"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 代理可用。

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",
        "youruser@yourdomain.com",
        "--pass",
        "yourPassword"
      ]
    }
  }
}

Windsurf

要将此 MCP 服务器添加到 Windsurf,请按照与 Cursor 类似的步骤添加 MCP 服务器配置,使用 npx 命令和您的凭证。

从源码构建

注意:只有计划为项目做出贡献或提交拉取请求时才需要遵循这些说明。对于常规使用,请使用上述 NPX 安装方法。

本地开发设置

  1. 克隆仓库:

    git clone https://github.com/readingdancer/teamwork-mcp.git
    cd teamwork-mcp
    
  2. 安装依赖项:

    npm install
    
  3. 根据 .env.example 文件创建 .env 文件:

    cp .env.example .env
    
  4. 使用您的 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 服务器运行(本地构建)

要作为 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 检查器

要运行 MCP 检查器以进行调试:

npm run inspector

许可证

该项目根据 MIT 许可证发布 - 查看 LICENSE 文件了解详细信息。

免责声明

本项目未得到 Teamwork.com 的认可、赞助或支持。包名中的“Teamwork”(@vizioz/teamwork-mcp) 仅用于描述目的,表明与 Teamwork.com API 的兼容性。