关于 Yandex 360 (ycli)
ycli 为需要通过命令行、Python 或 Agent 操作 Yandex 360 的用户提供 Tracker、Wiki、Forms 和 DataLens 接口。它将相同操作映射到 CLI、MCP 服务和类型化 Python SDK,并为 MCP 工具标注读写及破坏性行为。
主要功能
- 01覆盖 Tracker、Wiki、Forms 和 DataLens
- 02CLI 支持 JSON、YAML 等输出
- 03写操作支持 dry-run
- 04类型化 Python SDK
- 05MCP 工具标注读写与破坏性行为
适用场景
- 01通过脚本查询或更新 Tracker 工单
- 02在 MCP 客户端中读写 Wiki 页面
- 03以只读模式向 Agent 提供 Yandex 360 数据
MCP 相关
提供 MCP 服务,向客户端开放 Yandex 360 操作;可仅提供读取工具,也可按工具集限制开放范围。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx yandex-cliYANDEX_ID_OAUTH_TOKEN密钥Yandex OAuth token with Tracker, Wiki and Forms access.YANDEX_ID_ORGANIZATION_IDYandex 360 organization id (sent as X-Org-Id).本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
458收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
ycli
面向个人和 Agent 的 Yandex 360。
通过命令行、MCP 服务和 Python 使用 Tracker、Wiki 和 Forms:一款工具,每种操作在各处使用同一个名称。
English · Русский
- 适合编写脚本的命令行。 管道传输时输出 JSON,可直接用于
jq;每个写入操作都支持--dry-run;每种故障都有对应的退出代码。 - 值得 Agent 信赖的 MCP 服务。 每个工具都会说明自己是读取、写入还是销毁数据;可以仅提供读取功能,也可以提供一小组日常常用工具。
- 带类型的 Python SDK。 每种响应都有 Pydantic 模型,并附带由测试套件运行的示例。
- 谨慎处理你的数据。 删除操作会先询问确认,令牌只会发送到 Yandex 自有主机。
安装
uv tool install 'yandex-cli[mcp]' # the ycli command, with the MCP server
uvx yandex-cli --help # or run it once, without installing
pipx install 'yandex-cli[mcp]' # or with pipx
命令是 ycli(也可使用 yandex-cli)。然后登录:ycli auth login(操作指南)。
编写 Python 代码?将 SDK 添加到你的项目中:uv add yandex-cli。
| 附加组件 | 添加内容 | 安装 |
|---|---|---|
mcp | MCP 服务,ycli mcp start | uv tool install 'yandex-cli[mcp]' |
service-account | SDK 的 ServiceAccountAuth,用于 Yandex Cloud 服务账户密钥 | uv add 'yandex-cli[service-account]' |
连接 AI 客户端
所有客户端都使用同一个 MCP 服务:uvx --from 'yandex-cli[mcp]' ycli mcp start,并使用相同的两个变量。
| 客户端 | 最快捷的方式 |
|---|---|
| Claude Code | /plugin marketplace add bim-ba/ycli,然后运行 /plugin install yandex-360@ycli |
| Claude Desktop | 打开最新版本中的 .mcpb 捆绑包 |
| Cursor | 一键安装 |
| VS Code | 一键安装 |
| Windsurf (Devin Desktop) | 配置文件 |
| Zed | 配置文件 |
| Codex | 配置文件 |
| Gemini CLI | 配置文件 |
| opencode | 配置文件 |
| 其他 MCP 客户端 | 要复制的三个值 |
此外,还提供 Docker 镜像 ghcr.io/bim-ba/ycli(作为服务或纯命令行工具使用)、流水线,以及官方 MCP Registry条目 io.github.bim-ba/ycli。
遇到问题?请参阅无法正常工作时的处理方法。
使用方法
命令行
ycli tracker issues get TRACKER-1 # a table at a terminal
ycli tracker issues get TRACKER-1 | jq .summary # JSON when piped
ycli -o yaml wiki pages get onboarding # or pick: -o json | yaml | pretty | csv | markdown | ndjson | name
ycli tracker boards delete 7 --dry-run # print the request a write would send
ycli tracker boards delete 7 --yes # a delete asks first; --yes answers
ycli api issues/TRACKER-1 --service tracker # an endpoint ycli does not wrap
更多信息:编写 CLI 脚本、调用未封装的端点,以及 CLI 参考。
MCP 服务
ycli mcp start # every tool, reads and writes
ycli mcp start --read-only # reads only
ycli mcp start --toolsets core # about 40 everyday tools, for a client that caps the count
ycli mcp methods --toolsets core # list the tool names without starting the server
更多信息:运行 MCP 服务、面向团队的通过 HTTP 自托管,以及工具参考。
Python
from ycli.yandex.tracker.client import TrackerClient
tracker = TrackerClient(oauth_token="…", organization_id="…")
print(tracker.issues.get("TRACKER-1").summary)
更多信息:SDK 参考。
Claude Code 插件
/plugin marketplace add bim-ba/ycli
/plugin install yandex-360@ycli
它会添加 MCP 服务和五项技能(yandex-360、yandex-360-tracker、yandex-360-wiki、yandex-360-forms、yandex-360-datalens),帮助 Agent 了解命令和 API 的特性。源代码:plugins/yandex-360/。
配置
ycli auth login # gets a token through Yandex ID, finds your organization, saves both to .env
ycli auth status # whose token it is, and whether each service accepts it
ycli doctor # something not working? every check in order, with the fix
首次运行 ycli auth login 时,需要使用你自己的 Yandex OAuth 应用:身份验证将引导你完成设置。ycli 会从环境变量或 .env 文件中读取两个变量:
YANDEX_ID_OAUTH_TOKEN=... # a Yandex OAuth token with Tracker, Wiki and Forms access
YANDEX_ID_ORGANIZATION_ID=... # your Yandex 360 organization id
超时、重试、限制、日志记录和退出代码详见配置参考。
覆盖范围
ycli 封装了 Tracker、Wiki、Forms 和 DataLens API 中 88 个资源的 468 项操作。每项操作都可通过 Python SDK 和 CLI 调用,458 个 MCP 工具可将这些操作提供给 Agent(每项服务 456 个,另有 schema_get、status_get)。
图例。 CLI 或 MCP 中的 ✅ 表示可通过相应接口访问该资源;MCP 工具会提供准确的提示(读取操作使用
readOnlyHint,写入操作会说明其是否具有破坏性或幂等性),而ycli mcp start --read-only仅提供读取操作。资源和操作名称链接到官方 Yandex API 参考。每项操作相对于 Yandex 发布的内容有以下三种状态之一。已覆盖(无标记):ycli 会发送所有已发布参数并读取所有已发布字段。部分覆盖(◐):ycli 封装了该操作,但在某些方面存在差异;此标记链接到说明差异之处及原因的行。未覆盖(○):Yandex 已发布该操作,但 ycli 尚未封装;这些操作列在各服务下方。Wiki、Forms 和 DataLens 根据其 OpenAPI 文档进行评估;Tracker 未发布 OpenAPI 文档,因此其状态根据参考页面进行评估(包括操作,以及页面列出的查询参数)。DataLens 的封装工作正在进行中,按部分逐步完成:ycli 尚未开始处理的部分中的操作属于待处理,而非缺失。由代码通过scripts/gen_coverage.py生成;请勿手动编辑。
Tracker
34 个资源 · 190 项操作 · 187 个 MCP 工具
问题与工作项
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| issues | get · search · count · create · update · move · suggest · scroll_clear · update_bulk · move_bulk · transition_bulk · import_ | ✅ | ✅ |
| comments | list · get · create · update · delete · reactions_create · import_ | ✅ | ✅ |
| links | list · list_filtered · create · delete · import_ | ✅ | ✅ |
| transitions | list · execute | ✅ | ✅ |
| worklog | list · search · list_global · create · update · delete · import_ | ✅ | ✅ |
| changelog | list | ✅ | ✅ |
| checklists | list · create · update · delete · clear | ✅ | ✅ |
| attachments | list · download · thumbnails_download · get · delete · upload · upload_temp · import_ · import_for_comment | ✅ | ✅ |
| remotelinks | list · create · delete | ✅ | ✅ |
Agile boards
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| boards | list · get · create · update · delete | ✅ | ✅ |
| sprints | list · get · create · update · delete · start · archive | ✅ | ✅ |
| columns | list · get · create · update · delete | ✅ | ✅ |
Dictionaries
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| priorities | list · create · update | ✅ | ✅ |
| statuses | list · create · update | ✅ | ✅ |
| resolutions | list · create · update | ✅ | ✅ |
| issuetypes | list · create · update | ✅ | ✅ |
| linktypes | list | ✅ | ✅ |
Fields, queues & structure
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| fields | list · get · create · update · categories_create · categories_update | ✅ | ✅ |
| localfields | list · get · create · update | ✅ | ✅ |
| components | list · create · update · list_for_queue · get · delete · user_permissions_get · group_permissions_get | ✅ | ✅ |
| queues | list · get · tags_list · versions_list · fields_list · create · delete · restore · permissions_update · tags_delete · versions_create · versions_get · versions_update · versions_delete · user_permissions_get · group_permissions_get | ✅ | ✅ |
| workflows | list · get · list_for_queue · create · update · actions_update · delete | ✅ | ✅ |
| projects | list · get · queues_list · create · update · delete | ✅ | ✅ |
Automation & bulk
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| macros | list · get · create · update · delete | ✅ | ✅ |
| triggers | list · get · create · update · webhook_log_list | ✅ | ✅ |
| autoactions | get · create · logs_list · logs_get | ✅ | ✅ |
| dashboards | create · widgets_create_cycle_time | ✅ | ✅ |
| bulk | get · issues_list | ✅ | ✅ |
Entities, users & search
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| entities | create · get · update · delete · search · events_list · permissions_get · permissions_update · permissions_get_direct · permissions_update_direct · update_bulk · bulk_get · reports_create · comments_list · comments_list_relative · comments_get · comments_create · comments_update · comments_delete · checklists_create · checklists_update · checklists_items_update · checklists_delete · checklists_items_delete · checklists_move · links_list · links_create · links_delete · attachments_list · attachments_get · attachments_download · attachments_attach · attachments_delete | ✅ | ✅ |
| users | get · list | ✅ | ✅ |
| applications | list | ✅ | ✅ |
| filters | get · create · update · delete | ✅ | ✅ |
| gaps | create · search · delete | ✅ | ✅ |
| me | get | ✅ | ✅ |
未覆盖(2)
- ○
GET /boards:boards list会读取分页接口GET /boards/_paginate - ○
GET /users:users list会读取分页接口GET /users/_relative
Wiki
10 个资源 · 58 个操作 · 56 个 MCP 工具
页面
| 资源 | 操作 | CLI | MCP |
|---|---|---|---|
| 页面 | 按 ID 获取 · 获取 · 后代列表 · 按 ID 获取后代列表 · 网格列表 · 创建 · 更新 · 删除 · 追加 · 克隆 · 移动 · 修订版本列表 · 反向链接列表 · 搜索 | ✅ | ✅ |
| 资源 | 列表 | ✅ | ✅ |
| 恢复 | 恢复 | ✅ | ✅ |
协作
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| comments | list · thread_list · thread_get · create · delete | ✅ | ✅ |
| attachments | list · get · previews_download · download · download_by_url · delete · attach · upload | ✅ | ✅ |
| access | create · update · delete · clear | ✅ | ✅ |
Grids (dynamic tables)
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| grids | get · create · update · delete · rows_create · rows_delete · rows_move · columns_create · columns_delete · columns_move · cells_update · clone · columns_suggest · columns_update · rows_update | ✅ | ✅ |
Async & uploads
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| operations | clone_get · clone_inline_grid_get · move_get | ✅ | ✅ |
| uploadsessions | create · get · parts_upload · finish · abort · abort_all | ✅ | ✅ |
Identity
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| me | get | ✅ | ✅ |
Forms
16 resources · 86 operations · 79 MCP tools
Surveys & questions
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| surveys | list · get ◐ · create ◐ · update ◐ · delete · publish · unpublish | ✅ | ✅ |
| questions | get · list · create ◐ · update ◐ · delete ◐ · move | ✅ | ✅ |
| conditions | question_list · question_get · question_create · question_update · question_delete · question_update_operator · page_list · page_get · page_create · page_update · page_delete · page_update_operator · submit_list · submit_get · submit_create · submit_update · submit_delete · submit_update_operator · hook_list · hook_get · hook_create · hook_update · hook_delete · hook_update_operator | ✅ | ✅ |
| access | list · update · grant · revoke | ✅ | ✅ |
| history | list | ✅ | ✅ |
Responses & export
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| answers | get · list · columns_list · export · export_results_get · export_download · integrations_list · delete · restore | ✅ | ✅ |
| operations | get | ✅ | ✅ |
Integrations
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| hooks | list · get · create · update · delete | ✅ | ✅ |
| subscriptions | list · get · create ◐ · update ◐ · delete · attach | ✅ | ✅ |
| variables | list | ✅ | ✅ |
| notifications | list · get · status_get · restart · cancel · errors_list | ✅ | ✅ |
Distribution
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| keysets | list · get · create · update · delete · download | ✅ | ✅ |
| filling | get · submit · suggest | ✅ | ✅ |
Media
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| files | upload · verify · download · delete | ✅ | ✅ |
| images | upload · clone | ✅ | ✅ |
Identity
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| me | get | ✅ | ✅ |
DataLens
28 resources · 134 operations · 134 MCP tools
Organization
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| tenant | details_get | ✅ | ✅ |
| members | list | ✅ | ✅ |
| licensing | licenses_list · licenses_assign · limit_get · limit_set | ✅ | ✅ |
Collections & workbooks
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| collections | get · list_by_ids · content_list · breadcrumbs_list · permissions_get_root · access_bindings_list · create · update · move · move_bulk · delete · delete_bulk · access_bindings_update | ✅ | ✅ |
| workbooks | get · list · list_by_ids · access_bindings_list · entries_list · create · update · move · move_bulk · delete · delete_bulk · access_bindings_update | ✅ | ✅ |
| workbookexports | start · status_get · result_get · cancel | ✅ | ✅ |
| workbookimports | start · status_get | ✅ | ✅ |
Entries
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| entries | list · relations_list · permissions_get · revisions_list · rename | ✅ | ✅ |
| entrylocks | create · extend · delete | ✅ | ✅ |
| permissions | get_bulk | ✅ | ✅ |
| sharedentries | access_bindings_list · access_bindings_update | ✅ | ✅ |
| audit | entries_updates_list · entry_permissions_get | ✅ | ✅ |
Data
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| connections | get · create · update · delete | ✅ | ✅ |
| datasets | get · create · update · delete · validate · data_get | ✅ | ✅ |
Charts, dashboards, reports & pages
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| charts | data_get · wizard_get · wizard_create · wizard_update · wizard_delete · ql_get · ql_create · ql_update · ql_delete · editor_get · editor_create · editor_update · editor_delete | ✅ | ✅ |
| dashboards | get · create · update · delete | ✅ | ✅ |
| reports | get · create · update · delete | ✅ | ✅ |
| htmlpages | get · create · update · delete · preview_url_get | ✅ | ✅ |
SQL
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| sqlqueries | get · create · update · delete · run | ✅ | ✅ |
Cloud environments
| Resource | Operations | CLI | MCP |
|---|---|---|---|
| cloudenvironments | list · get · create · update · delete | ✅ | ✅ |
| cloudenvironmentstorage | bucket_objects_list · bucket_object_metadata_get · bucket_download_url_create · bucket_upload_url_create | ✅ | ✅ |
| restcatalogs | list · create | ✅ | ✅ |
| lakehouseoperations | get | ✅ | ✅ |
| trinoclusters | list · get · create · delete · start · stop · catalog_create · catalog_delete · resource_presets_list · resource_preset_get | ✅ | ✅ |
| sparkclusters | list · get · create · delete · start · stop · resource_presets_list · resource_presets_get | ✅ | ✅ |
| sparkapplications | list · get · create · cancel · log_list | ✅ | ✅ |
Embedding
| 资源 | 操作 | CLI | MCP |
|---|---|---|---|
| embeds | list · create · update · delete | ✅ | ✅ |
| embeddingsecrets | get · list · create · delete | ✅ | ✅ |
未涵盖(9 项)
- ○
POST /rpc/checkFavorites:2026-10 发布的新章节,尚未决定封装方式 - ○
POST /rpc/createFolder:旧版放置模型(文件夹);该组织中没有文件夹可供检查(#394) - ○
POST /rpc/deleteFolder:旧版放置模型(文件夹);该组织中没有文件夹可供检查(#394) - ○
POST /rpc/dlsSuggest:旧版放置模型(文件夹);该组织中没有文件夹可供检查(#394) - ○
POST /rpc/getPermissions:旧版放置模型(文件夹);该组织中没有文件夹可供检查(#394) - ○
POST /rpc/listDirectory:旧版放置模型(文件夹);该组织中没有文件夹可供检查(#394) - ○
POST /rpc/listFavorites:2026-10 发布的新章节,尚未决定封装方式 - ○
POST /rpc/modifyPermissions:旧版放置模型(文件夹);该组织中没有文件夹可供检查(#394) - ○
POST /rpc/moveFolderEntry:旧版放置模型(文件夹);该组织中没有文件夹可供检查(#394)
与已发布 API 对比
将 ycli 在契约测试中发送的请求重放,并与 Yandex 发布的内容进行比较:Wiki、Forms 和 DataLens 的 OpenAPI 文档,以及 Tracker 的 API 参考文档(内容为文字,因此仅比较操作和页面列出的查询参数)。只有当 ycli 为请求体定义了类型模型且该模型为封闭模型时,才会比较请求体;已比较的请求体列说明了比较数量,因此列表为空并不代表匹配。已发布内容使用 scripts/api_snapshot/ 中的快照;每周任务会重新获取快照,并在 Yandex 有所更改时创建议题。
| 服务 | 已发布 | 已封装 | 未封装 | 存在差异的操作 | 已比较的请求体 | 来源 |
|---|---|---|---|---|---|---|
| Tracker | 190 | 188 | 0(有意排除 2 项) | 0 | — | API 参考 |
| Wiki | 56 | 56 | 0 | 0 | 24 项,共 24 项 | OpenAPI |
| Forms | 84 | 84 | 0 | 8 | 30 项中的 26 项 | OpenAPI |
| DataLens | 143 | 134 | 0(有意排除 9 项) | 0 | 131 项,共 131 项 | OpenAPI |
Tracker:差异说明
有意不封装
| 操作 | 原因 |
|---|---|
GET /boards | boards list 读取分页接口 GET /boards/_paginate |
GET /users | users list 读取分页接口 GET /users/_relative |
由 ycli 发送,但未发布
| ycli | 对应请求 |
|---|---|
entities.attachments_download | GET /attachments/{file_id}/{filename} |
linktypes.list | GET /linktypes |
Wiki:差异项
Forms:差异项
参数和字段
DataLens:差异项
有意不封装的内容
| 操作 | 原因 |
|---|---|
POST /rpc/checkFavorites | 2026-10 发布的新章节,尚未决定如何封装 |
POST /rpc/createFolder | 旧的放置模型(文件夹);该组织没有文件夹可供验证(#394) |
POST /rpc/deleteFolder | 旧的放置模型(文件夹);该组织没有文件夹可供验证(#394) |
POST /rpc/dlsSuggest | 旧的放置模型(文件夹);该组织没有文件夹可供验证(#394) |
POST /rpc/getPermissions | 旧的放置模型(文件夹);该组织没有文件夹可供验证(#394) |
POST /rpc/listDirectory | 旧的放置模型(文件夹);该组织没有文件夹可供验证(#394) |
POST /rpc/listFavorites | 2026-10 发布的新章节,尚未决定如何封装 |
POST /rpc/modifyPermissions | 旧的放置模型(文件夹);该组织没有文件夹可供验证(#394) |
POST /rpc/moveFolderEntry | 旧的放置模型(文件夹);该组织没有文件夹可供验证(#394) |
开发
uv sync --all-extras # the tests use every extra
uv run pytest # 100% coverage gate; HTTP is stubbed, no live network
布局及其保持规整的不变量见 ARCHITECTURE.md;CONTRIBUTING.md 介绍了相关约定以及如何添加端点。欢迎贡献。
许可证
MIT © 2026 Sava Znatnov
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。