yandex-wiki-search-mcp
English | Русский
Yandex Wiki Search MCP

Claude、Cursor、Windsurf、または任意のMCPクライアントを Yandex Wiki に接続できます: 全文検索、 ページ、コメント、添付ファイル、動的テーブル("grids")— 型付きスキーマを持つ 33のツール。
非公式プロジェクトです。Yandex とは提携しておらず、Yandex の承認も受けていません。
🔍 全文検索 — Wiki全体を検索対象。Wiki の Web 検索バーを支えているのと同じバックエンドを使用し、クエリあたり最大50件の結果を返します。
📄 ページライフサイクル全体 — 作成、更新、追記(先頭 / 末尾 / アンカー)、複製、リカバリートークン付き削除、コメント、ファイルのアップロード
📊 動的テーブル(grids) — 書き込みツール11件: 行、列、セル、コピー、並べ替え
🔒 サーバーサイドの読み取り専用モード —
WIKI_READ_ONLY=trueに設定すれば書き込みツールを登録すらしないため、エージェントに回避されません。🧩 型付きツールサーフェス — すべてのツールに、入力と出力のJSONスキーマと安全性の注釈(読み取り専用 / 破壊的 / 冪等のヒント)が付属します。
🐳 どこでも実行可能 — デスクトップクライアントにはstdio、チームには(オプションのマルチユーザーOAuth付き)streamable-http + Docker
クイックスタート
Wiki アクセス権限りを持つ Yandex O OAuthトークン(公式ガイd)と、自分の組織IDを取得します。
使用中のクライアントにインストールします:
Claude Desktop のバッジからは最新リリースの .mcpb バンドルがダウンロードされます。
ダブルクリックするとClaude Captainが方式stable がンデルインストールされ、トークンと
組織IDの入力を求めます(uv がインストールされている必要があります)。
{
"mcpServers": {
"yandex-wiki-search": {
"command": "uvx",
"args": ["yandex-wiki-search-mcp"],
"env": {
"WIKI_TOKEN": "YOUR_TOKEN",
"WIKI_ORG_ID": "YOUR_ORG_ID",
"WIKI_READ_ONLY": "true"
}
}
}
}claude mcp add yandex-wiki-search \
-e WIKI_TOKEN=YOUR_TOKEN -e WIKI_ORG_ID=YOUR_ORG_ID -e WIKI_READ_ONLY=true \
-- uvx yandex-wiki-search-mcp{
"mcpServers": {
"yandex-wiki-search": {
"command": "docker",
"args": ["run","--rm","-i",
"-e","WIKI_TOKEN","-e","WIKI_ORG_ID","-e","WIKI_READ_ONLY=true",
"ghcr.io/dlbolshov/yandex-wiki-search-mcp:latest"],
"env": {"WIKI_TOKEN":"YOUR_TOKEN","WIKI_ORG_ID":"YOUR_ORG_ID"}
}
}
}[!TIP] 最初は
WIKI_READ_ONLY=trueで試してみましょう — サーバーは書き込みツールを登録すらしません。 エージェントが編集を行っても信頼できるようになったらfalseに切り替えます。
次は、エージェントに何か依頼してみましょう — 以下の例をどうぞ。
サーバーはMCP Python SDK v2 で動作しています。これはクライアントから見えません — v2 の
1サーバーで、2024-11-05 まで遡るすべてのプロトコルリビジョンと現在のリビジョンの両方に
応答できるため、あなた側で変更する必要も再インストールする必要もありません。
古いSDKに留まる理由があるとすれば、他の何かのために mcp<2 を固定している共存環境がある場合だけです。
1.0.1 は1.x SDK でビルドされた最後のリリースで、PyPI に残っています:
pip install "yandex-wiki-search-mcp<1.1"Related MCP server: mediawiki-mcp-server
できること
「オンボーディングのドキュメントを見つけて、主要な手順を要約してください。」
「インシデント対応について何かありますか? 最も関連するページを開いてください。」
「
team/weekly-notesというページを作成して、今日のスタンドアップ要約を追記してください。」「オンコール当番表(grid)に行を1つ追加してください: alice、来週。」
「このPDFをプロジェクトページにアップロードして、末尾にリンクしてください。」
「下書きのページを削除してください。ただし、後で設定を変えと思う場合のためにリカバリートークンは残してください。」
ツール
33 のツール。WIKI_READ_ONLY=true にすると、書き込みツールはすべて使えなくなります。
検索と読み取り (10)
ツール | 説明 |
| Wiki 全体(ページとファイル)を対象とした全文検索。順位付けされた結果と各結果のテキスト抜のテキスト抜粋を返します。サーバーサイドのフィルターに対応し、 |
|
|
| ページのサブツリーを走査します。すべてのネストレベルから |
| ページのコメントを一覧表示します( |
| ページのリソース(添付ファイルとグリッド)を一覧表示します。サーバー側のタイトル検索に対応しています( |
| ページの添付ファイルを一覧表示します( |
| 添付ファイルの内容をそのまま会話に読み込みます(どこにも保存されません)。PNG/JPEG/GIF/WebP はビジョン対応クライアントが描画できるネイティブ画像ブロックとして、テキストはテキストとして返されます(SVG も同様です。SVG は XML であり、ビジョン API がデコードできない画像ブロックは、ホストの次の呼び出しを失敗させるためです)。その他のバイナリは base64 ブロブとして返されます。形式は、ワイヤー上の宣言ではなく、ファイルのマジックバイトによって決定されます。モデルのコンテキストウィンドウを保護するために上限があります: テキスト/バイナリは 128 KiB、画像は 2 MiB。これを超えるものは拒否され、 |
| ページに添付されたグリッドを一覧表示します( |
|
|
| 自分が誰かを返します— |
ページ: 書き込み (12)
ツール | 機能 |
| ページを作成する。 |
| ページのタイトルやコンテンツ全体を更新する。別のページへのリダイレクトを設定または解除する。 |
| ページ全体を送り直さずに、完全一致テキストの置換でコンテンツを編集する。一致しない、またはあいまいな一致があった場合は、何も書き込まれる前に呼び出しが失敗する。 |
| コンテンツを先頭、末尾、または名前付きアンカーに追加する。 |
| ページを新しい slug にコピーする — コピーには新しい ID が付く。子ページ・コメント・履歴は元のページに残る。使用中の slug は拒否される。API には本来の移動やリネームは存在しない(詳細)。 |
| スレッドにコメントまたは返信を追加する。 |
| コメントを削除し、更新後のページのコメント数を返す。 |
| ページから添付ファイルを削除する。 |
| ページを削除し、復元トークンを受け取る。 |
| 復元トークンで削除されたページを復元する。 |
| ローカルファイルをチャンクに分割してアップロードし、ページに添付する — |
| 添付ファイルをローカルファイルにダウンロードする — サイズ上限なしでディスクにストリームされ、会話に何も取り込まれない。アトミックに書き込む( |
グリッド: 書き込み(11)
ツール | 機能 |
| ページにグリッドを作成する。 |
| グリッドのタイトルや既定の並び順を更新する。 |
| グリッドを既存のターゲットページへコピーする(非同期操作)。 |
| グリッドを削除する。 |
| 指定位置または指定した行の後に行を追加する。 |
| 行+列で個々のセルを更新する。 |
| 行を削除する。 |
| 行を移動する。 |
| 型付き列を追加する。 |
| スラグで列を削除する。 |
| 列を移動する。 |
グリッドの仕様:
変更操作は楽観ロックを使用する — まずグリッドを取得し、最新の
revisionを渡す。grid_update.default_sortは[{"column": "status", "direction": "asc"}]のエントリを受け取る。サーバーが API の想定するワイヤフォーマットに変換してくれる。grid_add_columnsは各列にrequiredが必須である。実 API が必須として検証するため。grid_copyはコピー済みの完成したグリッドオブジェクトではなく、操作メタデータを返す。
代替実装との比較
事実は、2026 年7〜8月の時点で、代替実装のドキュメントと公開コードで検証した。
公式のホスト型サーバーのツール一覧は、mcp.wiki.yandex.net
(wiki-mcp-server 1.28.1、2026-08-11)からライブで取得した。
yandex-wiki-search-mcp | Yandex公式のMCP(ホスト型) | ||||
全文検索 | ✅ 最大50件、サーバー側フィルター+ハイライト | ❌ 検索ツールなし | ❌ | ✅ 最大10件 | ❌ |
ページ: 作成 / 更新 / 追記 / 削除+復元 | ✅ すべて対応。さらにテキスト置換による部分編集( | 部分対応 — 追記 / 復元なし。テキスト置換による部分編集はあり | ✅ すべて対応 | 部分対応 — 追記 / 復元なし | 部分対応 — 復元なし |
ページ: 新しい slug へのクローン | ✅ | ❌ | ❌ | ❌ | ✅ |
グリッド: 書き込みツール | ✅ 11 | ✅ 12(列更新・行の固定/色を含む) | ✅ 11 | ❌ 読み取り専用 | ✅ 11(クローンを含む) |
コメント、添付ファイルのアップロード | ✅ 削除・インライン画像プレビュー・ディスクへのダウンロードを含む | コメント ✅ / アップロード ❌(代わりにダウンロード+プレビュー) | ✅ | ❌ | ❌ |
サーバー側読み取り専用モード | ✅ | ❌ | ✅ | ❌ | ❌ |
型付き出力スキーマ+ツール注釈 | ✅ | ❌ | ❌ | ❌ | ❌ ツールはプレーンな文字列を返す(実際は「❌」) |
YFM ヘルパー | ✅ 構文チートシート・リファレンス +書き込みツールに | ❌ | ❌ | ❌ | ✅ Markdown→YFM 変換器+ページツリーのキャッシュ、プロンプトテンプレート |
Docker / PyPI / MCP Registry | ✅ / ✅ / ✅ | — ホスト型サービス・クローズドソーシ、イストール不要 | ✅ / ✅ / ✅ | ❌ 手動インストール | ❌ / ✅ / ❌ |
マルチューザー OAuth(HTTPデプロイ) | ✅ | ❌ユーザー単位のトークンを静的ヘッダーに貼る方式。OAuthフローなし | ✅ユーザ | ❌ | ❌ |
参考までに、他にも次の実装があります。
best-doctor/mcp-yandex-wiki (Python) — ページの作成/更新と読み取りが可能で、別途
-ro読み取り専用エントリポイントもあります。削除/復元・グリッド・検索は未対応。PyPI のみ。brekhov-ilya/yandex-wiki-mcp (npm) — ページの読み取り/書き込み/移動、グリッドは読み取り専用。自動更新付きの対話的な PKCE トークンフロー。全文検索はありません。
n-r-w/yandex-mcp (Go) — Yandex Tracker と Wiki を1つのサーバーに統合し、設計上読み取り専用(Wiki 読み取りツール5つ)。検索なし。認証は
ycCLI の IAM トークン限定で、Yandex OAuth トークンは対象外です。bim-ba/ycli (Python) — Tracker・Wiki・Forms をまとめたキットです。CLI、Python SDK、Claude Code プラグインを備え、MCP サーバーの Wiki 側は42個の
wiki_*ツール群(読み取り15 / 書き込み27、注釈付き、--read-onlyフラグあり)。全文検索ツールはなく、添付ファイルのダウンロードは CLI/SDK のみです。
2026年8月現在、全文検索を実現するのは本プロジェクト(最大50件)と slartus(最大10件)だけで、Yandex 公式のホスト型サーバーには検索ツールがありません。加えて、検索・グリッド書き込み・サーバー側読み取り専用モード・型付き出力スキーマの4つをすべて備えるのは本プロジェクトだけです。
このプロジェクトは ya-yandex-wiki-mcp のフォークであり、slartus/mcp-yandex-wiki の知見をもとに作られています。謝辞 を参照してください。
全文検索
page_search は POST /v1/search エンドポイントのラッパーです。Wiki の検索バーが使う同じバックエンドで、Yandex が 2026年8月の API リファレンス を公開するまで非公開でした。まず検索し、その結果を page_get に slug を渡して開きます。
2つの通信モードがあります。デフォルトでは: 1回の呼び出しで最大 50 件(
limitは1〜50にクランプされ、それ以外の値はAPIが拒否)、ページです。レスポンスのカーソルは常にnull。highlight=trueのときは、ページ結果がlimitに関係なく10件までですし、一致箇所は<em>で囲まれます。cursor(next_cursorに戻るページ番号)で約100件まで戻ります。resultsが空になるか、空でないページでnext_cursorがnullになるまで続きます。末尾を過ぎてもnext_cursorは空ページを数えるため、それ自体が「まだある」ことにはなりません。フィルターはサーバー側で limit の前に実行されます。条件付き検索でも、limit によって該当結果が失われません。
slug_prefix(セクションフィルター。tech-doc/mlのような深いプレフィックスも可)、result_type(page/file)、authors(uid/cloud_uidによるページ所有者。user_get_currentが自己の情報を返すため、「自分のXに関するページ」が呼び出し2回で済みます)、created_between/modified_betweenの日付範囲(両端必須。APIは開いた範囲を拒否します)。引用符
"exact phrase" のクエリが動作します。pageの結果には絶対 URL のhttps://wiki.yandex.ru/...` リンク、fileの結果には 直接ダウンロードリンクが返ります。 *contentは 約510文字の抜粿 で、ページ本文でも要約でもありません。一致箇所を起点に切り取られるため、内容にクエリー語が含されているとも限りません。改行・タブは 断片の区切りではなく、ページ元のレイアウトです(表セルはタブ区切りで届きます)。一致を<em>で囲むにはhighlight=trueを指定します。その内容を答に使む前に、page_getで本ペー지를読んでください。fileの結果ではこの項目は空です。
ツーリーの走査
page_get_descendants は、サブツリーを1つのフニートな {id, slug} リストとして返します。 page_id / slug の代わりに from_root=true を渡すと Wiki 全体 を走査できます。た、検索だけがエントリではなく、開始 slug} が不明な場合に利用できます。セクション slug を指定できる場合はそちらをしてください。Wikiにま数多くのページが存在し、fetch_all は約500項目の上限に達すると truncated: true を返し停止します。
検証済みのAPI動作(スコープ、403の意味、エラーエンベロープ、制限)については、docs/api-notes.md を参照してください。
設定
変数 | 必須 | デフォルト | 説明 |
| いずれか一方 | — | Yandex OAuth トークン(両方が設定されている場合はこちらが優先されます) |
| — | IAM トークン(Yandex Cloud オーガニゼーション用) | |
| 2つのうち正確に1つ | — | Yandex 360 オーガニゼーション ID( |
| — | Yandex Cloud オーガニゼーション ID( | |
| 不要 |
|
|
| 不要 |
|
|
| 不要 |
| HTTP トランスポートのみ |
| 不要 |
|
|
| 不要 |
| ログは stderr に出力されます。 |
| 不要 |
| Wiki API エンドポイント |
| 不要 |
|
|
| 不要 |
|
|
| 不要 |
| 切断された接続と読み取りリクエストでの |
| 不要 |
| 構造化ツール結果のテキスト複製: |
OAUTH_ENABLED=true の場合、サーバーは OAuth プロバイダーになります。各 MCP ユーザーは自分の Yandex アカウントで認証し、Wiki API へのリクエストは個人のトークンで行われます。このモードでは page_upload_attachment と page_download_attachment は登録されません。これらはサーバーが稼働しているマシン上のファイルを読み書きするものであり、共有デプロイメントではそのマシンは呼び出し元のマシンではありません。
変数 | デフォルト | 説明 |
|
| OAuth プロバイダーを有効にします |
|
|
|
|
| Yandex OAuth サーバー |
|
| 認可時に Wiki のスコープを要求します |
| — | お使いの Yandex OAuth アプリの認証情報 |
|
| 動的に登録される MCP クライアントの有効期間。登録はプロトコル設計上認証なしで行われるため、有効期限がなければすべての登録が無期限に保持されます。クライアントは登録時に期限を通知され、期限が過ぎると再登録します。空にすると無効になります |
| — | このサーバーの公開 URL(OAuth コールバック) |
| — | カンマ区切りの base64 32 バイト鍵( |
|
| Redis 接続 |
ユーザーごとのオーガニゼーションの選択。 OAuth では WIKI_ORG_ID / WIKI_CLOUD_ORG_ID はオプションです。各リクエストでオーガニゼーションを指定できるためです。クライアントが接続する MCP サーバー URL に ?orgId=...(または ?cloudOrgId=...)を追加してください。クエリパラメーターはサーバー全体の設定よりも優先されるため、1つのデプロイメントで複数のオーガニゼーションを利用できます。リクエストがどちらも指定しない場合、ツール呼び出しは両方のオプションを示すメッセージで失敗します。すべてのユーザーが共通のオーガニゼーションを持つ場合は、環境変数を既定値として設定してください。
完全な注釈付きリストは .env.example を、Redis のベースラインは compose.yaml を参照してください。
デプロイメント
flowchart LR
C["MCP client<br/>Claude / Cursor / Windsurf / VS Code"]
S["yandex-wiki-search-mcp"]
W["Yandex Wiki API"]
R[("Redis<br/>optional OAuth token store")]
C -- "stdio (local, single user)" --> S
C -- "streamable-http (+ OAuth, multi-user)" --> S
S --> W
S -.-> RDocker 経由の HTTP サーバー(MCP エンドポイントは http://localhost:8000/mcp):
docker run --env-file .env -e TRANSPORT=streamable-http -p 8000:8000 \
--log-opt max-size=10m --log-opt max-file=3 \
ghcr.io/dlbolshov/yandex-wiki-search-mcp:latest[!NOTE] このサーバーは独自のログファイルを書きません。すべては stderr に出力され、Docker の既定の
json-fileドライバーは サイズ制限を設けずに保存します。上記の--log-optフラグで上限を設定します。デーモンがすでに既定値を設定している場合のみ、それらフラグを省略してください。
services:
mcp-wiki:
image: ghcr.io/dlbolshov/yandex-wiki-search-mcp:latest # or: build: .
ports:
- "8000:8000"
environment:
- WIKI_TOKEN=${WIKI_TOKEN}
- WIKI_ORG_ID=${WIKI_ORG_ID}
- TRANSPORT=streamable-http
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"Redis バックエンドの OAuth ストレージには、既存の compose.yaml をベースラインとして使用してください。
セキュリティ
読み取り専用はサーバーサイドで実施:
WIKI_READ_ONLY=trueの場合、書き込みツールは決して登録されません。混乱したエージェントが呼び出せるものは何もありません。Wiki API は OAuth スコープを強制しないこと(Yandex がスコープを文書化した後、2026-08-11 に再検証済み — docs/api-notes.md を参照):
wiki:readトークンでも書き込みはできるため、トークンのスコープに頼らず読み取り専用モードを使用してください。シークレットはすべて
SecretStrです — ログとreprではマスクされます。DEBUGHTTP ログにヘッダーや本文が含まれることはありません。削除は復元可能です:
page_deleteはpage_recoverのための復元トークンを返します。共有
.env内の無関係なキーは無視されますが、タイプミスの設定(WIKI_READ_ONL)は、選択していない既定値に黙ってフォールバックする代わりに、サーバーを停止させます。
開発
uv sync --dev
uv run yandex-wiki-search-mcp # run locally
uv run pytest # testsコミットする前に、CONTRIBUTING.md の完全な検証セットを実行してください。 サーバーがどのように構成されているか(レイヤー、コードマップ、テストの結合点、CI、リリースプロセス)は docs/architecture.md に説明されています。 検証済みの API 動作とプローブスクリプトは docs/api-notes.md に文書化されています。
Wiki API は仕様が漂移(ドリフト)します(検索エンドポイントは、ドキュメント化される前の時期に一度、静かに契約を変更しています) — scripts/contract_sweep.py は、すべてのクライアントメソッドを実環境の組織に対して再検証し、検証不一致や未宣言キーを報告します。
uv run python scripts/contract_sweep.py users/YOU/contract-sweep # ~30 live checks
uv run python scripts/contract_sweep.py users/YOU/contract-sweep --cleanup # remove fixturesAPI ドリフトチェック ワークフローは、DRIFT_* リポジトリシークレットが設定されている場合に、同じスイープを毎週実行します(手順はワークフローのヘッダーにあります)。シークレットがなければ、静かにスキップします。
クレジット
このプロジェクトは、APonkratov/yandex-wiki-mcp(ya-yandex-wiki-mcp)のフォークから始まりました。作者は Aleksandr Ponkratov 氏で、Yandex Wiki API 向けの優れたテスト済み Python MCP サーバーであり、Apache-2.0 でライセンスされています。それ以来、このプロジェクトは独自のサーフェスを拡大してきました。全文検索、33 ツールすべてにわたる型付き入力 および 出力スキーマ、YFM ヘルパー、カーソルドレイン、マルチユーザー OAuth、API に対するライブ契約スイープを備えています。一方、元の著作権とライセンスは保持されています(LICENSE と NOTICE を参照)。
全文検索の背後にあるアイデアと主要な API の発見は、slartus/mcp-yandex-wiki(JavaScript、MIT)に由来します。そこは、当時ドキュメント未整備だった POST /v1/search エンドポイントを初めて発見し(Yandex がそのリファレンスを公開したのは 2026 年 8 月になってからです)、OAuth スコープが強制されていないことも報告しました。このプロジェクトはそこからコードを一切取っておらず、発見とアイデアだけを取り入れて、実環境の組織に対して独立に再検証し、ここで拡張しています。
商標
「Yandex」および「Yandex Wiki」は YANDEX LLC の商標です。本プロジェクトは非公式のコミュニティ制作物であり、Yandex との提携・協賛・承諾は一切ありません。これらの名称は、サーバーが通信するサービスを指すために用名的に使用されています。ロゴはオリジナルのマークであり、Yandex Wiki や MCP のブランドを再現したものではありません(デザインノート)。
mcp-name: io.github.dlbolshov/yandex-wiki-search-mcp
Maintenance
Related MCP Servers
- AlicenseBqualityBmaintenanceA secure MCP server for interacting with MediaWiki instances, allowing users to search, read, create, and manage wiki content like pages, categories, and files. It supports both public and private wikis with comprehensive authentication for full read and write operations.19AGPL 3.0
- AlicenseAqualityAmaintenanceMCP server for MediaWiki wikis. Search, read, edit, and manage wiki content from AI assistants. Includes formatting, link checking, revision history, and markdown conversion.4320MIT
- AlicenseAqualityBmaintenanceEnables reading, creating, updating, and appending content to Yandex Wiki pages via MCP. Supports both read-write and read-only modes.79MIT
- AlicenseNot gradedqualityCmaintenanceMinimal MCP server for Yandex Wiki that enables reading, writing, searching, and managing wiki pages and attachments.1MIT
Related MCP Connectors
MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.
Self-hostable team wiki; agents read & write it via MCP; Atlas turns your repo into a cited wiki.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dlbolshov/yandex-wiki-search-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server