Skip to main content
Glama

openwiki-mcp

OpenWiki (OpenChamber) のドキュメント生成機能を Model Context Protocol ツールとして公開する MCP サーバーです。公式の未改変の OpenCode(または任意の MCP ホスト)がリポジトリの Wiki を生成・更新できるようにします。

opencode のソースツリーから完全に独立しています。openwiki 自体は外部パッケージ(npm インストールまたはステージングされたオフラインバンドル)として解決され、エージェントの認証情報は環境変数を介して中継され、保存されることはありません。

ツール

ツール

対応するエージェント

備考

openwiki_status

— (ローカル限定)

openwiki/ + .last-update.json を検査します。エージェント不要、モデル不要、オフラインで動作します。

openwiki_generate

init

初回の Wiki 生成を行います。オプションの userMessage でエージェントを誘導できます。

openwiki_update

update

差分ベースの更新。古いページのみ再生成されます。

Related MCP server: Minecraft Wiki MCP Server

前提条件

  • Node.js >= 22(MCP サーバーとエージェントの子プロセスの両方が node で実行されます)

  • openwiki パッケージのインストール:

    npm install -g openwiki          # online machine, or
    # offline machine: copy a prepared bundle and point at it
    set OPENWIKI_PACKAGE_ROOT=D:\path\to\staged\bundle\node_modules\openwiki

    OPENWIKI_PACKAGE_ROOT は、パッケージルートを直接指すか、node_modules/openwiki を含むレイアウトを指すことができます。ステージングされたバンドルは、ジャンクションやシンボリックリンクのトリックを必要としません。Node は通常の node_modules 探索を通じてエージェントのベアインポートを解決します。

エージェントモデルの設定

サーバーは以下の変数をエージェントの子プロセスに中継し(保存はしません):

環境変数 (サーバー側)

意味

OPENWIKI_PROVIDER

openai (デフォルト) または openai-compatible

OPENWIKI_MODEL_ID

モデル ID(例: gpt-5)

OPENAI_COMPATIBLE_BASE_URL

ローカルの OpenAI 互換ゲートウェイを指定し、実際のキーをエージェント環境から遠ざけます

OPENAI_COMPATIBLE_API_KEY

openai-compatible プロバイダーのキー

OPENAI_API_KEY

openai プロバイダーのキー

OPENWIKI_PACKAGE_ROOT

オプション。openwiki インストールへの明示的なパス

呼び出しごとの modelId/language/userMessage ツール引数は、その実行において周囲の環境設定を上書きします。

OpenCode への登録

opencode.json / opencode.jsonc に以下を追加してください:

{
  "mcp": {
    "openwiki": {
      "type": "local",
      "command": ["node", "D:/path/to/openwiki-mcp/dist/index.js"],
      "environment": {
        "OPENWIKI_PACKAGE_ROOT": "D:/path/to/staged/bundle/node_modules/openwiki",
        "OPENWIKI_PROVIDER": "openai-compatible",
        "OPENWIKI_MODEL_ID": "gpt-5",
        "OPENAI_COMPATIBLE_BASE_URL": "http://127.0.0.1:4096/v1"
      }
    }
  }
}

これにより、3 つのツールがすべての OpenCode 会話で通常のツールとして利用可能になります。

開発

npm install
npm run build        # tsc -> dist/
npm test             # node --test (status inspection unit tests)
npm run dev          # run the server via tsx (dev)

スモークテスト:

node scripts/smoke.mjs <dir> status        # local inspection only
node scripts/smoke.mjs <dir> init "note"   # full agent run (needs model env)

手動 MCP プロトコルチェック:

@'
{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}
{"jsonrpc":"2.0","method":"notifications/initialized"}
{"jsonrpc":"2.0","id":1,"method":"tools/list"}
'@ | node dist/index.js

設計ノート

  • src/openwiki/resolve.ts — パッケージ解決: OPENWIKI_PACKAGE_ROOT、次に require.resolve("openwiki/package.json")。

  • src/openwiki/worker.mjs — アダプターワーカー: 標準入力から 1 つのジョブを読み取り、エージェントエントリを絶対パスでインポートし、標準出力に NDJSON 進捗を出力します。opencode フォークの packages/openwiki アダプターから移植され、独立して維持されています。

  • src/openwiki/run.ts — MCP サーバーの子プロセスとしてワーカーを起動するため、ハングしたエージェントが MCP ホストをダウンさせることはありません。

  • src/status.ts — ローカルステータス検査(モデルコストなし)。

  • v0.1 では generate をエージェントの init コマンドにマッピングしており、これは openwiki 0.3.x で init が初回生成コマンド、update が更新コマンドであることに対応しています。

Related MCP Connectors

Related MCP Servers