项目简介

Teamwork MCP Server 是一个 MCP 服务器,旨在简化 LLM 客户端与 Teamwork 项目管理工具的集成。通过提供一系列预定义的工具,该服务器允许 LLM 客户端(如 Cursor 编辑器)安全地访问和操作 Teamwork 中的项目、任务、人员和报告等资源,从而实现更智能化的工作流程自动化和上下文感知功能。

主要功能点

  • 连接 Teamwork API: 安全连接到 Teamwork 项目管理平台,作为 LLM 客户端与 Teamwork 数据的桥梁。
  • 资源访问: 提供工具以检索 Teamwork 中的项目、任务、任务列表、人员和时间条目等信息。
  • 任务管理: 支持创建、更新和删除 Teamwork 中的任务和子任务。
  • 人员管理: 允许检索项目人员、添加人员到项目和删除人员等操作。
  • 报表生成: 提供多种报表工具,例如用户任务完成情况和资源利用率报告,支持 CSV, HTML, PDF, XLSX 等格式。
  • 工具过滤: 支持通过白名单 (allow list) 和黑名单 (deny list) 机制,灵活控制暴露给 LLM 客户端的工具,增强安全性。
  • 灵活配置: 支持通过环境变量、.env 文件或命令行参数配置 Teamwork API 凭据和工具过滤规则。
  • Stdio 传输: 通过 Stdio (标准输入输出) 协议与 MCP 客户端通信,易于集成到各种支持 MCP 协议的 LLM 应用中。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/readingdancer/Teamwork-MCP.git
    cd teamwork-mcp
  2. 安装依赖: 确保已安装 Node.js (推荐 v18 或更高版本) 和 npm 或 yarn。在项目根目录下运行:

    npm install
  3. 配置环境变量: 复制 '.env.example' 文件为 '.env',并根据您的 Teamwork 账户信息修改 '.env' 文件:

    cp .env.example .env

    编辑 '.env' 文件,填入您的 Teamwork 域名、用户名和密码:

    PORT=3000
    NODE_ENV=development
    LOG_LEVEL=info
    TEAMWORK_DOMAIN=your-company  # 您的 Teamwork 域名 (例如,your-company.teamwork.com 中的 "your-company")
    [email protected] # 您的 Teamwork 用户名 (邮箱)
    TEAMWORK_PASSWORD=your-password # 您的 Teamwork 密码
  4. 构建项目:

    npm run build

服务器配置

要将 Teamwork MCP Server 添加到 MCP 客户端(例如 Cursor),您需要配置服务器的启动命令。以下是 Cursor 编辑器配置 MCP Server 的 JSON 格式示例 (适用于 Cursor 0.47 及更高版本):

{
  "Teamwork-MCP": {  // 服务器名称,可自定义
    "command": "node",  // 启动服务器的命令
    "args": [
      "C:/your-full-path/build/index.js"  // MCP 服务器的入口文件路径,请替换为您的实际路径
    ],
    "transport": "stdio" // 使用 Stdio 传输协议
  }
}

参数说明:

  • '"Teamwork-MCP"': 服务器名称,在 Cursor 中显示,可以自定义。

  • '"command": "node"': 指定用于启动服务器的命令为 'node' (Node.js 运行时)。

  • '"args": [...]"': 启动命令的参数列表。

    • '"C:/your-full-path/build/index.js"': 请务必替换为 Teamwork-MCP 项目 'build/index.js' 文件的完整路径。 这是 MCP 服务器的入口文件。
    • 其他参数 (可选): 您还可以添加额外的命令行参数来配置服务器行为,例如:
      • '--allow=getProjects,getTasks': 只允许 'getProjects' 和 'getTasks' 这两个工具被 LLM 客户端调用。
      • '--deny=deleteTask,updateTask': 禁止 LLM 客户端调用 'deleteTask' 和 'updateTask' 这两个工具,允许其他所有工具。
      • '--domain=your-company [email protected] --pass=your-password': 如果您不想使用 '.env' 文件配置 Teamwork 凭据,可以在 'args' 中直接通过命令行参数传递 (不推荐,建议使用 '.env' 文件)。
  • '"transport": "stdio"': 指定 MCP 服务器使用标准输入输出流 (stdio) 与客户端通信。

Cursor 配置步骤 (版本 0.47 及更高版本):

  1. 打开 Cursor 编辑器的设置 (Settings)。
  2. 找到 "Features" -> "MCP Server" 设置项。
  3. 点击 "Edit in settings.json" (或类似的按钮) 打开 settings.json 配置文件。
  4. 在 settings.json 文件中,找到或创建 '"mcp.servers"' 部分。
  5. 将上面的 JSON 配置代码添加到 '"mcp.servers"' 中。
  6. 保存 settings.json 文件。

基本使用方法

配置完成后,在 Cursor 编辑器中,您就可以通过 '@Teamwork-MCP' 或在 Composer 中选择 "Teamwork-MCP" 服务器来使用集成的 Teamwork 工具了。例如,您可以让 Cursor Agent 帮助您:

  • 获取 Teamwork 中的项目列表:'@Teamwork-MCP getProjects'
  • 获取指定项目的任务列表:'@Teamwork-MCP getTasksByProjectId projectId=123' (将 '123' 替换为实际项目 ID)
  • 创建新的 Teamwork 任务:'@Teamwork-MCP createTask tasklistId=456 taskRequest={"task": {"name": "新任务标题"}}' (将 '456' 替换为实际任务列表 ID,并根据需要完善任务内容)

具体工具的使用方法和参数,请参考仓库 README.md 文件中 "Available Teamwork MCP Tools" 部分的详细描述和工具的 'inputSchema' 定义。

信息

分类

生产力应用