使用说明

项目简介

Taiga MCP Bridge 是一个强大的集成层,它连接了 Taiga 项目管理平台与 Model Context Protocol (MCP),使得 AI 工具和工作流能够无缝地与 Taiga 的资源进行交互。该桥梁为 AI 代理提供了一套全面的工具和资源,使其能够以编程方式维护关于项目状态的上下文感知,并执行复杂的项目管理任务。

主要功能点

  • 全面的资源支持:支持 Taiga 的 Projects, Epics, User Stories, Tasks, Issues, Sprints (Milestones) 等资源的完整 CRUD 操作。
  • 项目管理能力:允许 AI 代理创建和管理 Taiga 中的项目、史诗、用户故事、任务和问题。
  • 进度跟踪:支持跟踪 Sprint 和里程碑。
  • 工作项管理:支持分配和更新工作项。
  • 信息查询:支持查询项目工件的详细信息。
  • 成员和权限管理:支持管理项目成员和权限。
  • 会话管理:使用会话 ID 进行身份验证,确保安全访问。
  • 多种传输模式:支持 stdio 和 SSE 两种传输模式。

安装步骤

  1. 前提条件

    • Python 3.10 或更高版本
    • uv 包管理器 (推荐,用于快速安装依赖)
    • Git (用于克隆仓库)
  2. 克隆仓库

    git clone https://github.com/talhaorak/pytaiga-mcp.git
    cd pytaiga-mcp
  3. 安装依赖

    • 运行安装脚本 (推荐,自动处理依赖安装):
      ./install.sh
    • 或者手动安装 (使用 uv,生产环境依赖):
      uv pip install -e .
    • 或者手动安装 (使用 uv,开发环境依赖,包含测试和代码质量工具):
      uv pip install -e ".[dev]"

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令及其参数,以便建立连接。以下是连接 'Taiga MCP Bridge' 服务器的 JSON 配置示例,请根据实际情况修改 '<path to local pyTaigaMCP folder>'、'<stdio|sse>'、'<Taiga API Url>'、'<taiga username>' 和 '<taiga password>' 等参数。

{
    "mcpServers": {
        "taigaApi": {
            "command": "uv",
            "args": [
                "--directory",
                "<path to local pyTaigaMCP folder>",  //  请替换为 pyTaigaMCP 文件夹的本地路径
                "run",
                "src/server.py"
            ],
            "env": {
                "TAIGA_TRANSPORT": "<stdio|sse>",         //  传输模式,可选 stdio 或 sse
                "TAIGA_API_URL": "<Taiga API Url>",       //  Taiga API URL,例如 http://localhost:9000 或 https://api.taiga.io/api/v1/
                "TAIGA_USERNAME": "<taiga username>",    //  您的 Taiga 用户名
                "TAIGA_PASSWORD": "<taiga password>"     //  您的 Taiga 密码
            }
        }
    }
}

配置说明

  • 'server name': 'taigaApi' (服务器名称,可自定义)
  • 'command': 'uv' (启动命令,这里使用 uv 运行 Python)
  • 'args': 启动参数,包括:
    • '--directory': '<path to local pyTaigaMCP folder>',指向本地 pyTaigaMCP 文件夹的路径。请务必替换为实际路径
    • 'run': uv 的子命令,用于运行 Python 脚本。
    • 'src/server.py': MCP 服务器的入口 Python 脚本。
  • 'env': 环境变量配置,用于配置 Taiga MCP Bridge 服务器:
    • 'TAIGA_TRANSPORT': 传输模式,可选 'stdio' 或 'sse'。默认为 'stdio'。
    • 'TAIGA_API_URL': Taiga API 的基础 URL。如果使用 Taiga SaaS 服务,通常为 'https://api.taiga.io/api/v1/'。如果使用自托管 Taiga,请设置为您的 Taiga 实例的 API URL。
    • 'TAIGA_USERNAME': 用于连接 Taiga API 的用户名。
    • 'TAIGA_PASSWORD': 用于连接 Taiga API 的密码。

其他配置: 您还可以通过 '.env' 文件或环境变量配置服务器,例如设置日志级别、超时时间等。详细配置项请参考仓库 README 的 "Configuration" 章节。

基本使用方法

  1. 启动服务器: 根据您选择的传输模式,使用 'run.sh' 脚本或手动命令启动服务器。

    • 默认 'stdio' 模式: './run.sh' 或 'uv run python src/server.py'
    • 'sse' 模式: './run.sh --sse' 或 'uv run python src/server.py --sse'
  2. 客户端连接: 将上述 JSON 配置粘贴到您的 MCP 客户端(如 Claude App 或 Cursor)的 MCP 设置中。

  3. 身份验证: 客户端需要首先调用 'login' 工具进行身份验证,获取 'session_id'。后续所有工具和资源调用都需要携带 'session_id'。

    示例 (Python 代码)

    from mcp.client import Client
    
    client = Client()
    
    # 身份验证并获取 session_id
    auth_result = client.call_tool("login", {
        "username": "your_taiga_username",
        "password": "your_taiga_password",
        "host": "https://api.taiga.io"  # 可选,默认为 http://localhost:9000
    })
    session_id = auth_result["session_id"]
    
    # 使用 session_id 调用其他工具或资源
    projects = client.call_tool("list_projects", {"session_id": session_id})
    print(projects)
    
    # ... 其他操作 ...
    
    # 登出
    client.call_tool("logout", {"session_id": session_id})
  4. 资源和工具调用

    • 资源 (Resources):目前仓库中未明确定义 Resource,但根据 MCP 定义,可以理解为通过工具获取的 Taiga 项目数据,例如项目列表、用户故事列表等。
    • 工具 (Tools):通过 'client.call_tool()' 方法调用,例如 'login', 'list_projects', 'create_user_story' 等。工具列表及其参数和描述请参考 'src/server.py' 文件。

    示例 (获取项目列表)

    projects = client.call_tool("list_projects", {"session_id": session_id})
    print(projects)

    示例 (创建用户故事)

    new_story = client.call_tool("create_user_story", {
        "session_id": session_id,
        "project_id": 123,  # 替换为您的项目 ID
        "subject": "My New User Story",
        "description": "This is a test user story created via MCP."
    })
    print(new_story)
  5. 会话管理

    • 使用 'session_status' 工具检查会话状态。
    • 使用 'logout' 工具登出并终止会话。

请参考仓库 README 和 'src/server.py' 中的工具定义,了解更多功能和使用细节。

信息

分类

开发者工具