MCPサーバー
OAuthで接続し、ドキュメント検索とコンテンツ管理を行う方法。
https://genko.me/mcpで、ドキュメント検索とワークスペースのコンテンツ管理ができるMCPサーバーを提供しています。接続方式はStreamable HTTPです。AIクライアントからOAuthでgenko.meにログインして利用します。
アカウントなしで公開ドキュメントをAIに読ませる場合は、llms.txtとMarkdownを使ってください。旧https://docs.genko.me/mcpは廃止しました。
AIクライアントに登録する
使っているクライアントのMCP設定に、サーバー名genko-me、URLhttps://genko.me/mcpを登録します。設定後に接続を再読み込みし、OAuthのログイン画面で許可してください。OAuth対応のStreamable HTTP MCPクライアントが必要です。
CLIを使うと、利用するクライアントに合う設定を追加・更新できます。以前の名前(genko.me・genko・genko-docs)の設定も置き換えます。
npx @genko-me/cli@latest mcp --claude-codenpx @genko-me/cli@latest mcp --cursornpx @genko-me/cli@latest mcp --vscodenpx @genko-me/cli@latest mcp --codex--codexはユーザー全体の設定を更新します。CLIを使わない場合は、以下の形式で手動登録してください。
| クライアント | 設定先 |
|---|---|
| Claude Code | プロジェクトの.mcp.json |
| Cursor | プロジェクトの.cursor/mcp.json |
| VS Code | プロジェクトの.vscode/mcp.json(serversキー) |
| Codex | ユーザー全体の~/.codex/config.toml |
Claude Codeの.mcp.jsonの例です。
{ "mcpServers": { "genko-me": { "type": "http", "url": "https://genko.me/mcp" } }}Codexでは、~/.codex/config.tomlへ次を追加します。
[mcp_servers.genko-me]url = "https://genko.me/mcp"手動で設定する場合、以前の名前(genko.me・genko・genko-docs)の設定があれば削除してください。クライアントごとに設定形式が異なるため、上の表の保存先とキーを確認してください。
利用できるツール
| ツール | 引数 | 結果 |
|---|---|---|
search_docs | query:空でない検索語、任意でlang(jaかen。省くと検索語から判断) | 関連ページのタイトル・URL・抜粋 |
get_doc | path:ページのパスまたは完全なURL | ページ本文のMarkdown |
list_workspaces | なし | 所属ワークスペースと役割 |
list_apis | workspace | API・フィールド定義、ワークスペースの言語、各APIの多言語設定 |
list_entries | workspace, api、任意でstatus, limit, offset | メイン言語の記事一覧と作成済みの言語版の状態、未公開の変更の有無 |
get_entry | workspace, api, id、任意でlang | 記事と言語版、リッチテキストのMarkdown、未公開の変更 |
create_draft | workspace, api, values、任意でid | 下書きを作成 |
update_draft | workspace, api, id, values、任意でlang | 下書きを更新。公開中の版では未公開の変更として保存。未作成の言語版はメイン言語から作成 |
begin_draft_edit | workspace, api, id, fieldId, pendingBlocks | エディタの編集中表示を開始し、編集トークンを返す |
append_draft_block | workspace, api, id, editToken, markdown | Markdownの1ブロックを保存し、編集中表示を1行減らす |
finish_draft_edit | workspace, api, id, editToken | 編集中の表示を終了 |
publish_entry | workspace, api, id、任意でlang | 下書き・公開予定の版を即時公開、または公開中の版の未公開の変更を公開 |
discard_changes | workspace, api, id、任意でlang | 公開中の版の未公開の変更を破棄 |
schedule_entry | workspace, api, id, scheduledAt、任意でlang | 指定した言語版を予約公開 |
upload_media | workspace、url(https)かdata(base64)のどちらか1つとfilename、任意でalt | メディアライブラリにファイルを追加し、id・url・alt・mime・sizeを返す |
list_media | workspace、任意でquery・limit・offset | メディアの一覧(新しい順、ファイル名で検索) |
update_media | workspace, id, alt | メディアの代替テキストを変更 |
delete_media | workspace, id | メディアを完全に削除(エントリで使用中のメディアは削除できない) |
たとえばsearch_docsに{"query":"予約公開"}を渡し、見つかったページをget_docのpathに指定します。
{ "path": "/guides/scheduled-publishing" }検索は日本語の語句が適しています。短い機能名で検索し、抜粋だけで判断せず本文も取得してください。コンテンツ操作にはワークスペースでの権限が必要です。公開・予約はOAuthの追加権限を求めます。
エディタでAIの追記状況を見せる場合は、リッチテキストのフィールドIDを指定してbegin_draft_editを呼び、段落ごとにappend_draft_blockで保存してからfinish_draft_editを呼びます。保存された段落からエディタに反映され、未保存の段落はスケルトンで示されます。update_draftは従来どおり一括更新で、編集中表示は出ません。
公開中の原稿にupdate_draftを使うと、指定したフィールドだけが未公開の変更として保存されます。続けて更新した場合は、その未公開の内容に変更を重ねます。サイトと通常の配信APIは公開中の内容を表示し続けます。get_entryではhasPendingChanges: trueになり、valuesとmarkdownに未公開の内容、published.valuesとpublished.markdownに現在の公開内容が入ります。list_entriesのhasPendingChangesでも有無を確認できます。publish_entryで公開するか、discard_changesで破棄してください。これらの操作はlangを指定した言語版にも使えます。
begin_draft_edit・append_draft_block・finish_draft_editは下書き専用です。公開中の原稿の未公開の変更にはupdate_draftを使ってください。
画像をMCPから設定する
upload_mediaは管理画面のアップロードと同じ検証(使えるファイル形式、プランのファイルサイズ上限、容量)を通ります。urlかdataのどちらかを渡します。urlは公開されたhttpsのアドレスで、リダイレクトは辿りません。dataはbase64の内容と、拡張子つきのfilenameを渡します。altは300文字までです。
返ってきたidを、画像項目に{ "mediaId": "<id>" }の形で入れます。images項目はその配列です。メディアは同じワークスペースのものに限り、ほかのワークスペースのメディアは保存時に拒否されます。選択項目にはlist_apisで返るoptionsのどれかを渡します。
{ "title": "最初の記事", "hero": { "mediaId": "abcDEF123456" }, "photos": [{ "mediaId": "abcDEF123456" }, { "mediaId": "ghiJKL789012" }], "category": "news"}アップロード・代替テキストの変更・削除には、エディター以上のロールとmcp:writeが必要です。delete_mediaは完全な削除で、元に戻せません。
言語版をMCPから管理する
list_apisのlanguages.main・languages.subsでワークスペースの言語を確認し、対象APIのlocalized: trueを確認します。langを省略するかメイン言語を指定すると、従来どおりメイン言語を操作します。サブ言語のlangはget_entry・update_draft・publish_entry・discard_changes・schedule_entryで使えます。list_entriesのstatusによる絞り込みはメイン言語に対して行い、各行のlanguagesに作成済みの版と状態、hasPendingChangesを返します。
{ "workspace": "your-workspace", "api": "blog", "id": "abcDEF123456", "lang": "en", "values": { "title": "First article" }}update_draftは指定した言語版がない場合、メイン言語の現在の値を下書きとしてコピーし、渡したフィールド値を適用します。値と容量を先に検証し、失敗した場合は言語版を作りません。既存の言語版が下書きならその内容を更新し、公開中ならその言語版の未公開の変更として保存します。publish_entryとschedule_entryは版を自動作成しないため、先に下書きを用意してください。変更履歴にはMCPからの保存と言語が記録され、メイン言語とほかの言語の内容・公開状態は変わりません。
get_entryは未公開の版も読み、作成済みの言語版と状態をlanguagesに返します。未知の言語や多言語でないAPIへのサブ言語指定、未作成の版はエラーです。読み取りにはワークスペースへの所属が必要です。更新には編集者以上のロールとmcp:write、公開・予約にはさらにmcp:publishが必要です。begin_draft_edit・append_draft_block・finish_draft_editによるエディタ内の進捗表示はメイン言語の下書きだけを編集します。
接続確認
AIクライアントでgenko-meのツールが見えることを確認し、「genko.meのAPIキーの管理方法を検索して」と依頼します。検索結果のページ本文まで取得できれば接続完了です。
ツールが見えない場合は、設定ファイルの保存先、クライアントの再読み込み、URLの末尾が/mcpであることを確認してください。ネットワークで接続が制限される環境では、Markdownで読む方法も利用できます。
最終更新: 2026年10月24日