Token导航 LogoToken导航TokenDH.com
Yandex Tracker MCP logo
AI代理stdio官方级别未说明来源级核验

Yandex Tracker MCP

MCP Server

一个全面的模型上下文协议(MCP)服务器,使AI助手能够与Yandex Tracker API交互,提供安全的身份验证访问,包括队列管理、问题生命周期管理和搜索功能。

工具数

34

提示词数

0

GitHub Stars

73

资源数

0
API网关PythonClaude任务管理Claude DesktopClaudeCursorWindsurfVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

aikts

提供方

aikts

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uvx yandex-tracker-mcp@latest

详细介绍

Yandex跟踪器MCP服务器

Test Workflow Release Workflow

mcp名称:io.github.aikts/yandex-tracker-mcp

一个全面的模型上下文协议(MCP)服务器,使AI助手能够与Yandex Tracker API进行交互。此服务器通过可选的Redis缓存提供对Yandex Tracker问题、队列、评论、工作日志和搜索功能的安全、经过身份验证的访问,以提高性能。

俄文文件可用 这里 /提供俄语文档 这里.

特性

  • 完成队列管理:列出并访问所有可用的Yandex Tracker队列,支持分页、标签检索和详细的元数据
  • 用户管理:检索用户帐户信息,包括登录详细信息、电子邮件地址、许可证状态和组织数据
  • 完整问题生命周期:创建、读取、更新和管理问题,支持自定义字段、附件和工作流转换
  • 状态工作流管理:执行状态转换,解决问题,并导航复杂的工作流程
  • 田间管理:访问全局字段、队列特定的本地字段、状态、问题类型、优先级和解决方案
  • 高级查询语言:完全支持Yandex Tracker查询语言,具有复杂的过滤、排序和日期功能
  • 性能缓存:可选的Redis缓存层,可缩短响应时间
  • 安全控制:可配置的队列访问限制和安全令牌处理
  • 多种运输方式:支持stdio、SSE(已弃用)和HTTP传输,以实现灵活集成
  • OAuth 2.0身份验证:动态基于令牌的身份验证,支持自动刷新,可替代静态API令牌
  • 组织支持:兼容标准和云组织ID

组织ID配置

根据您的Yandex组织类型选择以下选项之一:

  • Yandex云组织:使用 TRACKER_CLOUD_ORG_ID env-var稍后适用于Yandex Cloud管理的组织
  • Yandex 360组织:使用 TRACKER_ORG_ID 稍后为Yandex 360组织提供env var

您可以在Yandex Tracker URL或组织设置中找到您的组织ID。

MCP客户端配置

在Claude Desktop中安装扩展

Yandex Tracker MCP服务器可以一键安装在Claude Desktop中 扩展.

安装

  1. 下载 *.mcpb 文件来自 .
  2. 双击下载的文件将其安装在Claude Desktop中。 img.png
  3. 在提示时提供您的Yandex Tracker OAuth令牌。 img.png
  4. 确保已启用扩展-现在您可以使用此MCP服务器。

手动安装

先决条件

  • 紫外线 全球安装
  • 具有适当权限的有效Yandex Tracker API令牌

以下部分展示了如何为不同的AI客户端配置MCP服务器。您可以使用 uvx yandex-tracker-mcp@latest 或者Docker镜像 ghcr.io/aikts/yandex-tracker-mcp:latest两者都需要这些环境变量:

  • 身份验证(以下之一):

- TRACKER_TOKEN -您的Yandex Tracker OAuth令牌 - TRACKER_IAM_TOKEN -您的IAM令牌 - TRACKER_SA_KEY_ID, TRACKER_SA_SERVICE_ACCOUNT_ID, TRACKER_SA_PRIVATE_KEY -服务帐户凭据

  • TRACKER_CLOUD_ORG_IDTRACKER_ORG_ID -您的Yandex Cloud(或Yandex 360)组织ID

Claude Desktop

配置文件路径:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json

使用uvx:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "uvx",
      "args": ["yandex-tracker-mcp@latest"],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

使用Docker:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "TRACKER_TOKEN",
        "-e", "TRACKER_CLOUD_ORG_ID",
        "-e", "TRACKER_ORG_ID",
        "ghcr.io/aikts/yandex-tracker-mcp:latest"
      ],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

Claude Code

使用uvx:

claude mcp add yandex-tracker uvx yandex-tracker-mcp@latest \
  -e TRACKER_TOKEN=your_tracker_token_here \
  -e TRACKER_CLOUD_ORG_ID=your_cloud_org_id_here \
  -e TRACKER_ORG_ID=your_org_id_here \
  -e TRANSPORT=stdio

使用Docker:

claude mcp add yandex-tracker docker "run --rm -i -e TRACKER_TOKEN=your_tracker_token_here -e TRACKER_CLOUD_ORG_ID=your_cloud_org_id_here -e TRACKER_ORG_ID=your_org_id_here -e TRANSPORT=stdio ghcr.io/aikts/yandex-tracker-mcp:latest"

Cursor

配置文件路径:

  • 项目具体: .cursor/mcp.json 在您的项目目录中
  • 全球的: ~/.cursor/mcp.json

使用uvx:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "uvx",
      "args": ["yandex-tracker-mcp@latest"],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

使用Docker:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "TRACKER_TOKEN",
        "-e", "TRACKER_CLOUD_ORG_ID",
        "-e", "TRACKER_ORG_ID",
        "ghcr.io/aikts/yandex-tracker-mcp:latest"
      ],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

Windsurf

配置文件路径:

  • ~/.codeium/windsurf/mcp_config.json

访问方式:Windsurf设置→ 级联选项卡→ 模型上下文协议(MCP)服务器→ “查看原始配置”

使用uvx:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "uvx",
      "args": ["yandex-tracker-mcp@latest"],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

使用Docker:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "TRACKER_TOKEN",
        "-e", "TRACKER_CLOUD_ORG_ID",
        "-e", "TRACKER_ORG_ID",
        "ghcr.io/aikts/yandex-tracker-mcp:latest"
      ],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

Zed

配置文件路径:

  • ~/.config/zed/settings.json

访问方式: Cmd+, (macOS)或 Ctrl+, (Linux/Windows)或命令面板:“zed:open settings”

注: 需要Zed Preview版本以支持MCP。

使用uvx:

{
  "context_servers": {
    "yandex-tracker": {
      "source": "custom",
      "command": {
        "path": "uvx",
        "args": ["yandex-tracker-mcp@latest"],
        "env": {
          "TRACKER_TOKEN": "your_tracker_token_here",
          "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
          "TRACKER_ORG_ID": "your_org_id_here"
        }
      }
    }
  }
}

使用Docker:

{
  "context_servers": {
    "yandex-tracker": {
      "source": "custom",
      "command": {
        "path": "docker",
        "args": [
          "run", "--rm", "-i",
          "-e", "TRACKER_TOKEN",
          "-e", "TRACKER_CLOUD_ORG_ID",
          "-e", "TRACKER_ORG_ID",
          "ghcr.io/aikts/yandex-tracker-mcp:latest"
        ],
        "env": {
          "TRACKER_TOKEN": "your_tracker_token_here",
          "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
          "TRACKER_ORG_ID": "your_org_id_here"
        }
      }
    }
  }
}

GitHub Copilot (VS Code)

配置文件路径:

  • 工作区: .vscode/mcp.json 在您的项目目录中
  • 全局:VS代码 settings.json

选项1:工作区配置(建议用于安全)

创建 .vscode/mcp.json:

使用uvx:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "tracker-token",
      "description": "Yandex Tracker Token",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cloud-org-id",
      "description": "Yandex Cloud Organization ID"
    },
    {
      "type": "promptString",
      "id": "org-id",
      "description": "Yandex Tracker Organization ID (optional)"
    }
  ],
  "servers": {
    "yandex-tracker": {
      "type": "stdio",
      "command": "uvx",
      "args": ["yandex-tracker-mcp@latest"],
      "env": {
        "TRACKER_TOKEN": "${input:tracker-token}",
        "TRACKER_CLOUD_ORG_ID": "${input:cloud-org-id}",
        "TRACKER_ORG_ID": "${input:org-id}",
        "TRANSPORT": "stdio"
      }
    }
  }
}

使用Docker:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "tracker-token",
      "description": "Yandex Tracker Token",
      "password": true
    },
    {
      "type": "promptString",
      "id": "cloud-org-id",
      "description": "Yandex Cloud Organization ID"
    },
    {
      "type": "promptString",
      "id": "org-id",
      "description": "Yandex Tracker Organization ID (optional)"
    }
  ],
  "servers": {
    "yandex-tracker": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "TRACKER_TOKEN",
        "-e", "TRACKER_CLOUD_ORG_ID",
        "-e", "TRACKER_ORG_ID",
        "ghcr.io/aikts/yandex-tracker-mcp:latest"
      ],
      "env": {
        "TRACKER_TOKEN": "${input:tracker-token}",
        "TRACKER_CLOUD_ORG_ID": "${input:cloud-org-id}",
        "TRACKER_ORG_ID": "${input:org-id}",
        "TRANSPORT": "stdio"
      }
    }
  }
}

选项2:全局配置

添加到VS代码 settings.json:

使用uvx:

{
  "github.copilot.chat.mcp.servers": {
    "yandex-tracker": {
      "type": "stdio",
      "command": "uvx",
      "args": ["yandex-tracker-mcp@latest"],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

使用Docker:

{
  "github.copilot.chat.mcp.servers": {
    "yandex-tracker": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "TRACKER_TOKEN",
        "-e", "TRACKER_CLOUD_ORG_ID",
        "-e", "TRACKER_ORG_ID",
        "ghcr.io/aikts/yandex-tracker-mcp:latest"
      ],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

Other MCP-Compatible Clients

对于其他MCP兼容客户端,请使用标准MCP服务器配置格式:

使用uvx:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "uvx",
      "args": ["yandex-tracker-mcp@latest"],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

使用Docker:

{
  "mcpServers": {
    "yandex-tracker": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "TRACKER_TOKEN",
        "-e", "TRACKER_CLOUD_ORG_ID",
        "-e", "TRACKER_ORG_ID",
        "ghcr.io/aikts/yandex-tracker-mcp:latest"
      ],
      "env": {
        "TRACKER_TOKEN": "your_tracker_token_here",
        "TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
        "TRACKER_ORG_ID": "your_org_id_here"
      }
    }
  }
}

重要提示:

  • 用您的实际凭据替换占位符值
  • 配置更改后重新启动AI客户端
  • 确保 uvx 已安装并在系统PATH中可用
  • 对于生产使用,考虑使用环境变量而不是硬编码令牌

可用的MCP工具

服务器通过MCP协议公开以下工具:

Queue Management

  • queues_get_all:列出所有可用的Yandex Tracker队列

- 参数: - fields (可选):要包含在响应中的字段(例如,\[“key”,“name”\])。通过仅选择所需字段来帮助优化上下文窗口的使用。如果未指定,则返回所有可用字段。 - page (可选):返回页码。如果未指定,则自动检索所有页面。 - per_page (可选):每页项目数(默认值:100) - 返回包含选择性字段的分页队列信息 - 尊重 TRACKER_LIMIT_QUEUES 限制

  • queue_get_tags:获取特定队列的所有标签

- 参数: queue_id (字符串,队列键,如“SOMEPROJECT”) - 返回指定队列中可用标记的列表 - 尊重 TRACKER_LIMIT_QUEUES 限制

  • queue_get_versions:获取特定队列的所有版本

- 参数: queue_id (字符串,队列键,如“SOMEPROJECT”) - 返回指定队列中可用版本的列表,包括名称、描述、日期和状态等详细信息 - 尊重 TRACKER_LIMIT_QUEUES 限制

  • queue_get_fields:获取特定队列的字段

- 参数: - queue_id (字符串,必填):队列键,如“SOMEPROJECT” - include_local_fields (boolean,可选,默认值:true):是否包含特定于队列的本地字段 - 返回全局字段和可选的本地(特定于队列)字段的列表 - 在以下情况下并行请求获取两种字段类型 include_local_fields 是真的 - 这 schema.required 属性指示字段是否为必填字段 - 在创建问题之前,使用此功能查找可用和必填字段 issue_create 工具 - 尊重 TRACKER_LIMIT_QUEUES 限制

  • queue_get_metadata:获取特定队列的详细元数据

- 参数: - queue_id (字符串,必填):队列键,如“SOMEPROJECT” - expand (字符串数组,可选):在响应中展开的字段。可用选项: all, projects, components, versions, types, team, workflows, fields, issueTypesConfig - 返回队列信息,包括名称、描述、默认类型/优先级以及可选的扩展数据 - 使用 expand: ["issueTypesConfig"] 获取每种问题类型的可用解决方案(需要 issue_close 工具) - 尊重 TRACKER_LIMIT_QUEUES 限制

User Management

  • users_get_all:获取在组织中注册的用户帐户的信息

- 参数: - per_page (可选):每页用户数(默认值:50) - page (可选):要返回的页码(默认值:1) - 返回带有登录名、电子邮件、许可证状态和组织详细信息的分页用户列表 - 包括用户元数据,如外部状态、解雇状态和通知首选项

  • user_get:通过登录名或UID获取特定用户的信息

- 参数: user_id (字符串,用户登录名如“john.doe”或UID如“12345”) - 返回详细的用户信息,包括登录、电子邮件、许可证状态和组织详细信息 - 支持用户登录名和数字用户ID,以便灵活识别

  • user_get_current:获取当前已验证用户的信息

- 无需参数 - 返回与当前身份验证令牌关联的用户的详细信息 - 包括经过身份验证的用户的登录名、电子邮件、显示名称和组织详细信息

  • users_search:根据登录名、电子邮件或真实姓名(名字或姓氏,或两者兼而有之)搜索用户

- 参数: login_or_email_or_name (要搜索的字符串、用户登录名、电子邮件或真实姓名) - 如果有多个用户与查询匹配,则返回单个用户或多个用户,如果没有匹配的用户,则返回空列表 - 对真实姓名使用模糊匹配,相似度阈值为80% - 优先考虑登录和电子邮件的精确匹配,而不是模糊的名称匹配

Field Management

  • get_global_fields:获取Yandex Tracker中所有可用的全局字段

- 返回可用于问题的全局字段的完整列表 - 包括字段架构、类型信息和配置

Status and Type Management

  • get_statuses:获取所有可用的问题状态

- 返回可分配的问题状态的完整列表 - 包括状态ID、名称和类型信息

  • get_issue_types:获取所有可用的问题类型

- 返回用于创建/更新问题的完整问题类型列表 - 包括类型ID、名称和配置详细信息

  • get_priorities:获取所有可用的问题优先级

- 返回可分配给问题的完整优先级列表 - 包括优先级键、名称和订单信息

  • get_resolutions:获取所有可用的问题解决方案

- 返回关闭问题时可以使用的完整解决方案列表 - 包括分辨率键、名称、描述和订单信息

Issue Operations

  • issue_get:按ID检索详细的问题信息

- 参数: - issue_id (字符串,格式:“QUEUE-123”) - include_description (布尔值,可选,默认值:true):是否在结果中包含问题描述。可以很大,所以只在需要时使用。 - 返回完整的问题数据,包括状态、受让人、描述等。

  • issue_get_url:为问题生成web URL

- 参数: issue_id (字符串) - 退货: https://tracker.yandex.ru/{issue_id}

  • issue_get_comments:获取某个问题的所有评论

- 参数: issue_id (字符串) - 按时间顺序返回带有元数据的评论列表

  • issue_add_comment:向问题添加评论

- 参数: - issue_id (字符串,必填,格式:“QUEUE-123”) - text (字符串,必填):注释文本(Tracker支持的markdown) - summonees (字符串数组,可选):要召唤的用户(登录名或ID)。 这是API提及/呼叫用户的方式 (通知由此字段触发,而不是由 @login 在文本中)。 - maillist_summonees (字符串数组,可选):要传唤的邮件列表(电子邮件) - markup_type (字符串,可选):使用 md YFM(降价) - is_add_to_followers (布尔值,可选,默认值:true):将评论作者添加到关注者中 - 返回已创建的注释对象

  • issue_update_comment:更新问题中的现有评论

- 参数: - issue_id (字符串,必填,格式:“QUEUE-123”) - comment_id (int,必填):评论ID - text (字符串,必填):新评论文本(Tracker支持markdown) - summonees (字符串数组,可选):要召唤的用户(登录名或ID) - maillist_summonees (字符串数组,可选):要传唤的邮件列表(电子邮件) - markup_type (字符串,可选):使用 md YFM(降价) - 返回更新的注释对象

  • issue_delete_comment:从问题中删除评论

- 参数: - issue_id (字符串,必填,格式:“QUEUE-123”) - comment_id (int,必填):评论ID - 退货: null (成功)

  • issue_get_links:获取相关问题链接

- 参数: issue_id (字符串) - 返回相关、阻止或重复问题的链接

  • issue_get_worklogs:检索工作日志条目

- 参数: issue_ids (字符串数组) - 返回指定问题的时间跟踪数据

  • issue_add_worklog:在问题中添加工作日志条目(记录花费的时间)

- 参数: - issue_id (字符串,必填,格式:“QUEUE-123”) - duration (字符串,必填):ISO-8601持续时间(例如。 PT1H30M) - comment (字符串,可选):工作日志注释 - start (日期时间,可选):工作开始日期时间(如果未提供时区,则假定为UTC) - 返回创建的工作日志条目

  • issue_update_worklog:更新问题中的工作日志条目(花费时间记录)

- 参数: - issue_id (字符串,必填,格式:“QUEUE-123”) - worklog_id (int,必填):工作日志条目ID - duration (字符串,可选):ISO-8601持续时间(例如。 PT1H30M) - comment (字符串,可选):工作日志注释 - start (日期时间,可选):工作开始日期时间(如果未提供时区,则假定为UTC) - 返回更新的工作日志条目

  • issue_delete_worklog:从问题中删除工作日志条目(花费时间记录)

- 参数: - issue_id (字符串,必填,格式:“QUEUE-123”) - worklog_id (int,必填):工作日志条目ID - 退货: null (成功)

  • issue_get_attachments:获取问题的附件

- 参数: issue_id (字符串,格式:“QUEUE-123”) - 返回包含指定问题元数据的附件列表

  • issue_get_checklist:获取问题的清单项目

- 参数: issue_id (字符串,格式:“QUEUE-123”) - 返回清单项目列表,包括文本、状态、受让人和截止日期信息

  • issue_get_transitions:获取问题的可能状态转换

- 参数: issue_id (字符串,格式:“QUEUE-123”) - 返回可对问题执行的可用转换列表 - 每个转换都包括一个ID、显示名称和目标状态信息

  • issue_execute_transition:对问题执行状态转换

- 参数: - issue_id (字符串,必填,格式:“QUEUE-123”):问题密钥 - transition_id (string,必填):要执行的转换ID。 重要:必须是返回的ID之一 issue_get_transitions 工具 - comment (string,可选):执行转换时添加的可选注释 - fields (object,可选):转换期间要设置的其他字段的字典。常见字段包括 resolution (例如,“固定”、“wontFix”)用于结算问题, assignee 用于重新分配等。 - 执行转换后,返回新状态的可用转换列表 - 使用说明:你必须先打电话 issue_get_transitions 以检索可用的转换,然后传递返回的转换ID之一。不要使用任意的转换ID。

  • issue_close:用解决方案(便利工具)解决问题

- 参数: - issue_id (字符串,必填,格式:“QUEUE-123”):问题密钥 - resolution_id (字符串,必填):关闭时要设置的分辨率ID(例如,“fixed”、“wontFix”、“duplicate”) - comment (string,可选):关闭问题时添加的可选注释 - 自动查找到“完成”状态的转换,并以指定的分辨率执行 - 返回新(关闭)状态的可用转换列表 - 使用说明:在结束之前,您必须: 1. 呼叫 issue_get 检索问题的 type 领域 1. 呼叫 get_queue_metadataexpand: ["issueTypesConfig"] 获取可用的分辨率 1. 从以下选项中选择一个分辨率 issueTypesConfig 与问题类型匹配的条目-每种问题类型都有自己的一组有效解决方案

  • issue_create:在队列中创建新问题

- 参数: - queue (字符串,必填):创建问题的队列键(例如,“MYQUEUE”) - summary (字符串,必填):问题标题/摘要 - type (int,可选):问题类型ID(来自 get_issue_types 工具) - description (字符串,可选):问题描述 - assignee (string或int,可选):受让人登录名或UID - priority (字符串,可选):优先级键(来自 get_priorities 工具) - fields (对象,可选):在创建问题时要设置的其他字段。 重要:在创建问题之前,您必须致电 queue_get_fields 获取可用字段(默认情况下,它同时返回全局和本地字段)。字段与 schema.required=true 是强制性的。使用字段的 id 属性作为该映射中的关键字(例如。, {"fieldId": "value"}) - 返回新创建的包含所有标准问题字段的问题对象 - 尊重 TRACKER_LIMIT_QUEUES 限制

  • issue_update:更新现有问题

- 参数: - issue_id (字符串,必填,格式:“QUEUE-123”):要更新的问题密钥 - summary (字符串,可选):新问题标题/摘要 - description (字符串,可选):新问题描述 - markup_type (字符串,可选):描述文本的标记类型(YFM标记使用“md”) - parent (IssueUpdateParent,可选):父问题参考 id (字符串)和/或 key (字符串,例如“QUEUE-123”) - sprint (IssueUpdateSprint数组,可选):Sprint分配-对象数组 id (int)字段 - type (IssueUpdateType,可选):问题类型为 id (字符串)和/或 key (字符串,例如“bug”、“任务”) - priority (IssueUpdatePriority,可选):优先级为 id (字符串)和/或 key (字符串,例如“严重”、“正常”) - followers (IssueUpdateFollower数组,可选):追随者-对象数组 id (字符串、用户ID或登录名) - project (IssueUpdateProject,可选):项目 primary (int,主项目shortId)和可选 secondary (整数数组) - attachment_ids (字符串数组,可选):要附加的临时文件的ID - description_attachment_ids (字符串数组,可选):要嵌入描述中的临时文件的ID - tags (字符串数组,可选):问题标签 - version (int,可选):发布乐观锁定版本-仅对当前版本进行更改 - fields (对象,可选):要更新的其他字段。使用 queue_get_fields 以发现可用字段。 - 返回包含所有标准问题字段的更新问题对象 - 仅更新提供的字段;省略的字段保持不变 - 尊重 TRACKER_LIMIT_QUEUES 限制

Search and Discovery

- 参数: - query (必填):使用Yandex Tracker查询语言语法查询字符串 - include_description (布尔值,可选,默认值:false):是否在问题结果中包含问题描述。可以很大,所以只在需要时使用。 - fields (字符串列表,可选):要包含在响应中的字段。通过仅选择所需字段来帮助优化上下文窗口的使用。如果未指定,则返回所有可用字段。 - page (可选):分页页码(默认值:1) - per_page (可选):每页项目数(默认值:100)。如果结果超出上下文窗口,则可能会减少。 - 每页最多返回指定数量的问题

- 参数: - query (必填):使用Yandex Tracker查询语言语法查询字符串 - 返回符合指定条件的问题总数 - 支持所有查询语言功能:字段过滤、日期函数、逻辑运算符和复杂表达式 - 可用于分析、报告和理解问题分布,而无需检索完整的问题数据

http传输

MCP服务器也可以在可流式http模式下运行,用于基于web的集成,或者在stdio传输不合适时运行。

可流式传输的http模式环境变量

# Required - Set transport to streamable-http mode
TRANSPORT=streamable-http

# Server Configuration
HOST=0.0.0.0  # Default: 0.0.0.0 (all interfaces)
PORT=8000     # Default: 8000

启动可流式传输的http服务器

# Basic streamable-http server startup
TRANSPORT=streamable-http uvx yandex-tracker-mcp@latest

# With custom host and port
TRANSPORT=streamable-http \
HOST=localhost \
PORT=9000 \
uvx yandex-tracker-mcp@latest

# With all environment variables
TRANSPORT=streamable-http \
HOST=0.0.0.0 \
PORT=8000 \
TRACKER_TOKEN=your_token \
TRACKER_CLOUD_ORG_ID=your_org_id \
uvx yandex-tracker-mcp@latest

您可以跳过配置 TRACKER_CLOUD_ORG_IDTRACKER_ORG_ID 如果您在连接到MCP服务器时使用以下格式(例如克劳德代码):

claude mcp add --transport http yandex-tracker "http://localhost:8000/mcp/?cloudOrgId=your_cloud_org_id&"

claude mcp add --transport http yandex-tracker "http://localhost:8000/mcp/?orgId=org_id&"

您也可以跳过配置全局 TRACKER_TOKEN 如果您选择使用OAuth 2.0身份验证,则使用环境变量(见下文)。

OAuth 2.0身份验证

Yandex Tracker MCP服务器支持OAuth 2.0身份验证,作为静态API令牌的安全替代方案。配置后,服务器充当OAuth提供者,促进MCP客户端和Yandex OAuth服务之间的身份验证。

OAuth的工作原理

MCP服务器实现了标准的OAuth 2.0授权代码流:

  1. 客户注册:您的MCP客户端向服务器注册以获取客户端凭据
  2. 授权:用户被重定向到Yandex OAuth进行身份验证
  3. 代币交换:服务器交换访问令牌的授权码
  4. API访问:客户端对所有API请求使用承载令牌
  5. 令牌刷新:过期的令牌可以刷新而无需重新身份验证
MCP Client → MCP Server → Yandex OAuth → User Authentication
    ↑                                           ↓
    └────────── Access Token ←─────────────────┘

OAuth配置

要启用OAuth身份验证,请设置以下环境变量:

# Enable OAuth mode
OAUTH_ENABLED=true

# Yandex OAuth Application Credentials (required for OAuth)
OAUTH_CLIENT_ID=your_yandex_oauth_app_id
OAUTH_CLIENT_SECRET=your_yandex_oauth_app_secret

# Public URL of your MCP server (required for OAuth callbacks)
MCP_SERVER_PUBLIC_URL=https://your-mcp-server.example.com

# Optional OAuth settings
OAUTH_SERVER_URL=https://oauth.yandex.ru  # Default Yandex OAuth server

# When OAuth is enabled, TRACKER_TOKEN becomes optional

设置Yandex OAuth应用程序

  1. 首选 Yandex OAuth 并创建新应用程序
  2. 将回调URL设置为: {MCP_SERVER_PUBLIC_URL}/oauth/yandex/callback
  3. 请求以下权限:

- tracker:read -Tracker的读取权限 - tracker:write -Tracker的写入权限

  1. 保存您的客户端ID和客户端密码

OAuth与静态令牌身份验证

特性OAuth静态令牌
安全性过期动态令牌长期静态令牌
用户体验交互式登录流程一次性配置
令牌管理自动刷新手动轮换
访问控制每用户身份验证共享令牌
设置复杂性需要OAuth应用程序设置简单的令牌配置

OAuth模式限制

  • 目前,OAuth模式要求MCP服务器可公开访问回调URL
  • OAuth模式最适合支持基于web的身份验证流的交互式客户端

在MCP客户端中使用OAuth

启用OAuth后,MCP客户端将需要:

  1. 支持OAuth 2.0授权码流
  2. 访问令牌过期时处理令牌刷新
  3. 安全地存储刷新令牌以进行持久身份验证

备注:并非所有MCP客户端当前都支持OAuth身份验证。检查客户的文档以了解OAuth兼容性。

Claude代码的示例配置:

claude mcp add --transport http yandex-tracker https://your-mcp-server.example.com/mcp/ -s user

OAuth数据存储

MCP服务器支持OAuth数据的两种不同存储后端(客户端注册、访问令牌、刷新令牌和授权状态):

InMemory存储(默认)

内存存储将所有OAuth数据保存在服务器内存中。这是默认选项,不需要额外配置。

特点:

  • 坚持:服务器重新启动时数据丢失
  • 演出:由于数据存储在内存中,因此访问速度非常快
  • 可扩展性:仅限于单个服务器实例
  • 设置:不需要额外的依赖关系
  • 最佳:开发、测试或单实例部署,重启时丢失OAuth会话是可以接受的

配置:

OAUTH_STORE=memory  # Default value, can be omitted

Redis商店

Redis存储使用Redis数据库为OAuth数据提供持久存储。这确保了OAuth会话在服务器重启后仍然有效,并支持多实例部署。

特点:

  • 坚持:数据在服务器重新启动后仍然存在
  • 演出:快速访问,网络开销大
  • 可扩展性:支持多个服务器实例共享同一Redis数据库
  • 设置:需要安装和配置Redis服务器
  • 最佳:生产部署、高可用性设置或OAuth会话必须持续时

配置:

# Enable Redis store for OAuth data
OAUTH_STORE=redis

# Redis connection settings (same as used for tools caching)
REDIS_ENDPOINT=localhost                  # Default: localhost
REDIS_PORT=6379                           # Default: 6379
REDIS_DB=0                                # Default: 0
REDIS_PASSWORD=your_redis_password        # Optional: Redis password
REDIS_POOL_MAX_SIZE=10                    # Default: 10

存储行为:

  • 客户信息:持久存储
  • OAuth状态:为安全起见,与TTL(生存时间)一起存储
  • 授权代码:与TTL一起存储,使用后自动清理
  • 访问令牌:根据令牌寿命自动过期存储
  • 刷新令牌:持久存储,直到撤销
  • 密钥名称间距:用途 oauth:* 前缀,以避免与其他Redis数据冲突

令牌加密(Redis商店需要)

使用Redis存储时,您必须配置加密以保护静止的OAuth令牌。令牌值使用Fernet(AES-128)加密,Redis密钥使用SHA-256哈希而不是原始令牌,防止Redis受到攻击时令牌暴露。

生成加密密钥:

python3 -c "import base64, os; print(base64.b64encode(os.urandom(32)).decode())"

配置:

# Single encryption key
OAUTH_ENCRYPTION_KEYS=

# Multiple keys for rotation (first encrypts, all decrypt)
OAUTH_ENCRYPTION_KEYS=,

密钥轮换允许无缝密钥更新:首先添加新密钥,等待旧令牌过期,然后删除旧密钥。

重要提示:

  • 这两家商店都使用与工具缓存系统相同的Redis连接设置
  • 使用Redis存储时,确保您的Redis实例得到适当的保护并且可以访问
  • OAUTH_STORE 设置仅影响OAuth数据存储;工具缓存使用 TOOLS_CACHE_ENABLED
  • Redis存储使用JSON序列化,以实现更好的跨语言兼容性和调试

认证

Yandex Tracker MCP Server支持多种具有明确优先级顺序的身份验证方法。服务器将使用基于此层次结构的第一种可用身份验证方法:

身份验证优先级顺序

  1. 动态OAuth令牌 (最高优先级)

- 当启用OAuth并且用户通过OAuth流进行身份验证时 - 每个用户会话都会动态获取和刷新令牌 - 支持标准Yandex OAuth和Yandex Cloud联合OAuth - 必需的环境变量: OAUTH_ENABLED=true, OAUTH_CLIENT_ID, OAUTH_CLIENT_SECRET, MCP_SERVER_PUBLIC_URL - 联邦OAuth的其他变量: OAUTH_SERVER_URL=https://auth.yandex.cloud/oauth, OAUTH_TOKEN_TYPE=Bearer, OAUTH_USE_SCOPES=false

  1. 直通承载OAuth令牌

- 当MCP OAuth中间件不提供令牌时,服务器可以从传入的令牌中读取Yandex OAuth令牌 Authorization: Bearer 头球 - 在可信任的反向代理或网关后面很有用,可以对用户进行身份验证,解析其存储的Yandex OAuth令牌,并根据请求注入它 - 启用并激活OAuth模式时,MCP OAuth的令牌仍具有优先级

  1. 静态OAuth令牌

- 通过环境变量提供的传统OAuth令牌 - 用于所有请求的单个令牌 - 必需的环境变量: TRACKER_TOKEN (您的OAuth令牌)

  1. 静态IAM令牌

- IAM(身份和访问管理)令牌,用于服务间身份验证 - 适用于自动化系统和CI/CD管道 - 必需的环境变量: TRACKER_IAM_TOKEN (您的IAM令牌)

  1. 动态IAM令牌 (最低优先级)

- 使用服务帐户凭据自动检索 - 令牌会自动提取和刷新 - 必需的环境变量: TRACKER_SA_KEY_ID, TRACKER_SA_SERVICE_ACCOUNT_ID, TRACKER_SA_PRIVATE_KEY

身份验证场景

场景1:带有动态令牌的OAuth(建议交互式使用)

# Enable OAuth mode
OAUTH_ENABLED=true
OAUTH_CLIENT_ID=your_oauth_app_id
OAUTH_CLIENT_SECRET=your_oauth_app_secret
MCP_SERVER_PUBLIC_URL=https://your-server.com

# Organization ID (choose one)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id  # or TRACKER_ORG_ID

场景2:静态OAuth令牌(简单设置)

# OAuth token
TRACKER_TOKEN=your_oauth_token

# Organization ID (choose one)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id  # or TRACKER_ORG_ID

场景3:反向代理后面的传递承载令牌

当受信任的网关处理用户身份验证、查找用户的Yandex OAuth令牌并将请求转发到MCP服务器时,请使用此模式,并在请求标头中包含该令牌:

Authorization: Bearer 
# Organization ID (choose one)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id  # or TRACKER_ORG_ID

此直通令牌仅在MCP OAuth中间件未为请求提供访问令牌时使用。在具有活动MCP OAuth会话的启用OAuth的部署中,MCP OAuth令牌具有优先权。

场景4:静态IAM令牌

# IAM token
TRACKER_IAM_TOKEN=your_iam_token

# Organization ID (choose one)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id  # or TRACKER_ORG_ID

场景5:带有服务帐户的动态IAM令牌

# Service account credentials
TRACKER_SA_KEY_ID=your_key_id
TRACKER_SA_SERVICE_ACCOUNT_ID=your_service_account_id
TRACKER_SA_PRIVATE_KEY=your_private_key

# Organization ID (choose one)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id  # or TRACKER_ORG_ID

场景6:OIDC应用程序的联合OAuth(高级)

# Enable OAuth with Yandex Cloud federation
OAUTH_ENABLED=true
OAUTH_SERVER_URL=https://auth.yandex.cloud/oauth
OAUTH_TOKEN_TYPE=Bearer
OAUTH_USE_SCOPES=false
OAUTH_CLIENT_ID=your_oidc_client_id
OAUTH_CLIENT_SECRET=your_oidc_client_secret
MCP_SERVER_PUBLIC_URL=https://your-server.com

# Organization ID (choose one)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id  # or TRACKER_ORG_ID

此配置通过以下方式启用身份验证 Yandex Cloud OIDC应用程序,这是必需的 联合账户 Yandex Cloud。联盟用户通过其组织的身份提供者(IdP)进行身份验证,并使用此OAuth流访问Yandex Tracker API。

重要说明

  • 服务器按照上面列出的顺序检查身份验证方法
  • 一次只能使用一种身份验证方法
  • 对于生产使用,建议使用动态令牌(OAuth或IAM)以获得更好的安全性
  • IAM令牌的生命周期比OAuth令牌短,可能需要更频繁的续订
  • 使用服务帐户时,请确保该帐户对Yandex Tracker具有适当的权限

配置

环境变量

# Authentication (use one of the following methods)
# Method 1: OAuth Token
TRACKER_TOKEN=your_yandex_tracker_oauth_token

# Method 2: IAM Token
TRACKER_IAM_TOKEN=your_iam_token

# Method 3: Service Account (for dynamic IAM token)
TRACKER_SA_KEY_ID=your_key_id                    # Service account key ID
TRACKER_SA_SERVICE_ACCOUNT_ID=your_sa_id        # Service account ID
TRACKER_SA_PRIVATE_KEY=your_private_key          # Service account private key

# Organization Configuration (choose one)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id    # For Yandex Cloud organizations
TRACKER_ORG_ID=your_org_id                # For Yandex 360 organizations

# API Configuration (optional)
TRACKER_API_BASE_URL=https://api.tracker.yandex.net  # Default: https://api.tracker.yandex.net

# Security - Restrict access to specific queues (optional)
TRACKER_LIMIT_QUEUES=PROJ1,PROJ2,DEV      # Comma-separated queue keys

# Server Configuration
HOST=0.0.0.0                              # Default: 0.0.0.0
PORT=8000                                 # Default: 8000
TRANSPORT=stdio                           # Options: stdio, streamable-http, sse

# Redis connection settings (used for caching and OAuth store)
REDIS_ENDPOINT=localhost                  # Default: localhost
REDIS_PORT=6379                           # Default: 6379
REDIS_DB=0                                # Default: 0
REDIS_PASSWORD=your_redis_password        # Optional: Redis password
REDIS_POOL_MAX_SIZE=10                    # Default: 10

# Tools caching configuration (optional)
TOOLS_CACHE_ENABLED=true                  # Default: false
TOOLS_CACHE_REDIS_TTL=3600                # Default: 3600 seconds (1 hour)

# OAuth 2.0 Authentication (optional)
OAUTH_ENABLED=true                        # Default: false
OAUTH_STORE=redis                         # Options: memory, redis (default: memory)
OAUTH_SERVER_URL=https://oauth.yandex.ru  # Default: https://oauth.yandex.ru (use https://auth.yandex.cloud/oauth for federation)
OAUTH_TOKEN_TYPE=>   # Default:  (required to be Bearer for Yandex Cloud federation)
OAUTH_USE_SCOPES=true                     # Default: true (set to false for Yandex Cloud federation)
OAUTH_CLIENT_ID=your_oauth_client_id      # Required when OAuth enabled
OAUTH_CLIENT_SECRET=your_oauth_secret     # Required when OAuth enabled
MCP_SERVER_PUBLIC_URL=https://your.server.com  # Required when OAuth enabled
TRACKER_READ_ONLY=true                    # Default: false - Limit OAuth to read-only permissions

Docker部署

使用预构建图像(推荐)

# Using environment file
docker run --env-file .env -p 8000:8000 ghcr.io/aikts/yandex-tracker-mcp:latest

# With inline environment variables
docker run -e TRACKER_TOKEN=your_token \
           -e TRACKER_CLOUD_ORG_ID=your_org_id \
           -p 8000:8000 \
           ghcr.io/aikts/yandex-tracker-mcp:latest

在当地建立形象

docker build -t yandex-tracker-mcp .

Docker Compose

使用预构建图像:

version: '3.8'
services:
  mcp-tracker:
    image: ghcr.io/aikts/yandex-tracker-mcp:latest
    ports:
      - "8000:8000"
    environment:
      - TRACKER_TOKEN=${TRACKER_TOKEN}
      - TRACKER_CLOUD_ORG_ID=${TRACKER_CLOUD_ORG_ID}

本地建筑:

version: '3.8'
services:
  mcp-tracker:
    build: .
    ports:
      - "8000:8000"
    environment:
      - TRACKER_TOKEN=${TRACKER_TOKEN}
      - TRACKER_CLOUD_ORG_ID=${TRACKER_CLOUD_ORG_ID}

开发设置

# Clone and setup
git clone https://github.com/aikts/yandex-tracker-mcp
cd yandex-tracker-mcp

# Install development dependencies
uv sync --dev

# Formatting and static checking
task

许可证

本项目根据 许可证 文件。

支持

对于问题和疑问:

  • 查看Yandex Tracker API文档
  • 提交问题至https://github.com/aikts/yandex-tracker-mcp/issues

目录标签

目录标签

API网关PythonClaude任务管理本地部署AI集成YandexTrackerMCP协议

支持客户端

Claude DesktopClaudeCursorWindsurfVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

34

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP