维基API服务

为AI助手提供Yandex Wiki API的集成服务,支持页面创建、编辑、文件管理和动态表格操作。

  • by in5pirer
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 in5pirer/yandex-wiki-mcp

使用说明

yandex维基mcp

MCP服务器 Yandex Wiki API允许人工智能助理(Cursor、Claude Desktop等)创建、阅读、编辑页面、管理注释、文件和动态表。

工具-30件

阅读页面

工具描述 |---|---| | wiki_navigate 检查slug页面是否存在,获取ID→ | wiki_get_page 页面元数据Slug | wiki_get_page_by_id –页面的数字ID元数据。 | wiki_get_page_content 页面内容通过 ?fields=content -为WYSIWYG和LEGACY工作。 | wiki_get_descendants –按页面ID列出所有子页面› | wiki_get_descendants_by_slug ÐÐÐÐÐÐÐÐÐÐÐÐ | wiki_search_pages –通过精确的slug搜索页面(不支持全文API搜索)。。 | wiki_get_page_history 页面编辑历史

页面编辑

工具描述 |---|---| | wiki_create_page 创建新页面(YFM/Markdown) | wiki_update_page 更换页面内容 | wiki_append_content 在页面的开头或结尾添加内容。 | wiki_move_page √移动/重命名一个没有后代的页面(实现为clone+delete,请参阅“已知限制”)。 | wiki_move_subtree ≫立即移动所有子页面(父幻灯片)。支持 dry_run | | wiki_copy_page –复制页面(真正的异步克隆,等待结果)→ | wiki_delete_page 删除页面(返回) recovery_token Wiki存储删除的页面可恢复。

文件(附件)

工具描述 |---|---| | wiki_get_attachments –附加到页面(带元数据)的文件列表。 | wiki_upload_file 将文件作为附件下载(通过upload sessions API)→ | wiki_download_file 通过ID下载附加文件。 | wiki_download_file_by_url 从slug页面和文件名下载文件。 | wiki_delete_file 删除附加文件。

评论

工具描述 |---|---| | wiki_get_comments –带有筛选和排序的评论列表› | wiki_add_comment 添加评论(支持三次回复)→ | wiki_get_comment_thread (三)评论(三)评论 | wiki_delete_comment 删除评论。

订户

工具描述 |---|---| | wiki_get_watchers 已订阅页面的用户列表

动态表(全球资源数据库)

工具描述 |---|---| | wiki_get_page_grids –页面上的动态表列表。 | wiki_get_grid_data 表的内容(列和行)→ | wiki_create_grid 创建新的动态表 | wiki_add_grid_row 将一行添加到表中。 | wiki_update_grid_row 更改表中的行。

安装

git clone https://github.com/in5pirer/yandex-wiki-mcp.git
cd yandex-wiki-mcp
pip install -r requirements.txt
cp .env.example .env
# Заполните .env своими данными

设置

复制 .env.example 在 .env 并填写:

YANDEX_WIKI_TOKEN=your_oauth_token_here
YANDEX_WIKI_ORG_ID=your_org_id_here
YANDEX_WIKI_ORG_TYPE=cloud   # cloud или 360

在哪里获取token: OAuth–Yandex应用程序 创建具有Wiki权限的应用程序。

组织ID 在您的组织的URL中查找 Yandex云控制台.

连接到Cursor

文件 ~/.cursor/mcp.json 添加:

{
  "mcpServers": {
    "yandex-wiki": {
      "command": "python3",
      "args": ["/path/to/yandex-wiki-mcp/src/server.py"],
      "env": {
        "YANDEX_WIKI_TOKEN": "your_token",
        "YANDEX_WIKI_ORG_ID": "your_org_id",
        "YANDEX_WIKI_ORG_TYPE": "cloud"
      }
    }
  }
}

变更后 server.py 必须重新启动cursor。

什么是新的(v0.4.0)

wikiu moveu page/wikiu copyu page-错误修复

以前 wiki_move_page 发送 {"slug": new_slug} 在 POST /pages/{id} 和 汇报 success: true虽然页面没有物理移动,因为 这个Endpoint 不接受田野 slug 总 (仅限 title, content, redirect页:1正式方案 pages__update_page_details). 任何 POST /pages/{id} 返回200和保险杠 modified_at,即使 没有一个重要的领域发生了变化,这就是所谓的成功。同样 wiki_copy_page 斯拉尔 {"slug": ...} 在 /clone虽然正确的领域 target,并且没有等待异步克隆操作完成。

官方结论:Yandex Wiki API没有真正的move/rename。 页面移动-仅Web界面功能(请参阅Release Notes) 第2508章“移动一页”唯一的API路径 POST /pages/{id}/clone (异步,带抛光) /operations/clone/{task_id}) + 删除原始

从这个版本开始:

  • wiki_copy_page 使用正确的字段 target等待 克隆操作完成(POLL之前) success/failed/超时)и 返回真实 id/slug 结果,或诚实的错误。
  • wiki_move_page 实现为 克隆→成功测试→删除 原件如果克隆失败,则不触摸原始文件。 如果页面有后代,则拒绝工作(见下文)。 wiki_move_subtree).页面ID更改,评论和编辑历史记录不可用 移植-这在docstring和工具响应中很明显。
  • 新的 wiki_move_subtree(old_prefix, new_prefix, dry_run=True) -转移 一个呼叫所有后代的页面。首先克隆 一切 子树页面;如果一个克隆失败-自动 滚动(删除)已创建的克隆,不触摸任何克隆 原文。只有在所有克隆确认后才能删除原始文件 成功的。 dry_run=True (默认情况下)计数和显示计划没有 一个记录。

什么是新的(v0.3.0)

阅读WYSIWYG页面的内容

  • wiki_get_page_content 现在使用 GET /pages/{id}?fields=content 代替 /pages/{id}/content
  • 适用于两种类型的页面:WYSIWYG和Legacy

wiki_search_pages-诚实的行为

  • 以前的功能失败了,错误为400(API需要) slug参数 search 不存在)
  • 现在明确记录:Yandex Wiki API不提供全文搜索
  • 该功能执行精确SLUG搜索;要查看本节,请使用 wiki_get_descendants_by_slug

子页面(子页面)

  • wiki_get_descendants -通过ID(官方API)检索所有子行 /pages/{id}/descendants)
  • wiki_get_descendants_by_slug 同样的,在SLUG(/pages/descendants?slug=...)
  • 自动烧结多达500个结果
  • 取代旧 wiki_list_subpages (使用绕道)

文件(附件)-完全控制

  • wiki_get_attachments -高级元数据(mimetype,preview,check_status,作者)
  • wiki_upload_file -通过upload sessions API下载(创建会话→Chank下载→最终化→附加)
  • wiki_download_file -下载文件u ID并保存到磁盘
  • wiki_download_file_by_url -通过slug+文件名下载(即使在页面移动后也能正常工作)
  • wiki_delete_file -删除附加文件

评论-高级管理

  • wiki_get_comments -排序,按状态过滤(resolved/unresolved),托盘信息
  • wiki_add_comment 支持答案(parent_id, thread_id)
  • wiki_get_comment_thread -获取响应分支
  • wiki_delete_comment -删除评论

已知限制

问题,解释。 |---|---| | wiki_search_pages 不支持全文搜索-Yandex Wiki API不提供全文搜索结束点。使用 wiki_get_descendants_by_slug +手动过滤 (评论编辑)–Yandex API wiki不提供评论编辑Endpoint› –更改代码后,需要重新启动Cursor›FastMCP STDIO Transport限制› –API中没有真正的move/rename页面。 wiki_move_page/wiki_move_subtree 通过clone+delete模拟迁移:pageu id更改,注释和修订历史记录不会迁移。对于带有ID/历史记录的迁移,仅使用Wiki web界面(“移动页面”)。

YFM(Yandex风味Markdown)

页面支持高级语法:

{% note info "Заголовок" %}
Информационный блок
{% endnote %}

{% cut "Скрытый раздел" %}
Содержимое
{% endcut %}

{% list tabs %}

- Вкладка 1

  Содержимое вкладки 1

- Вкладка 2

  Содержимое вкладки 2

{% endlist %}

许可证

麻省理工学院