CodeWiki MCP — AI-generated docs for GitHub repos について
codewiki-mcpは、codewiki.googleに登録されたGitHubリポジトリを検索し、生成されたWiki文書の取得や質問への回答を行うMCPサーバーです。複数のトランスポートと自然言語によるリポジトリ解決に対応します。
主な機能
- 01登録済みリポジトリの検索
- 02Wikiページの取得(全文・構造化)
- 03会話履歴を使った質問
- 04自然言語からリポジトリを解決
- 05stdio、Streamable HTTP、SSE対応
活用シーン
- 01トピックからリポジトリを探す
- 02リポジトリの生成文書を読む
- 03機能の仕組みをリポジトリについて質問する
MCP 対応
検索、文書取得、リポジトリへの質問をMCPツールとして公開し、codewiki.googleに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | |
| query | string | はい |
詳細
📚 codewiki-mcp
codewiki.google 用 MCP サーバー — オープンソースリポジトリを検索し、ドキュメントを取得して、質問できます
🇷🇺 Русский | 🇬🇧 English
オープンソースリポジトリ向けのAI生成Wikiドキュメントを提供する codewiki.google に、あらゆるAIアシスタントを接続するMCPサーバーです。
📖 概要
codewiki-mcp は、AIアシスタントが codewiki.google を利用できるようにする Model Context Protocol サーバーです。このサービスは、あらゆるGitHubリポジトリの包括的なWikiドキュメントを生成します。リポジトリの検索、ドキュメント全体の取得、自然言語での質問をすべてMCP経由で行えます。
✨ 特長
| 特長 | 説明 |
|---|---|
| 🔍 リポジトリ検索 | codewiki.google にインデックスされたリポジトリを検索します |
| 📄 Wikiドキュメントの取得 | 任意のリポジトリのMarkdown全体または構造化されたページを取得します |
| 💬 質問 | 会話履歴を活用した自然言語での質疑応答 |
| 🧠 NLPによるリポジトリ解決 | 自然な言葉で入力すると、wink-nlpがキーワードを抽出し、owner/repo に解決します |
| 📡 複数のトランスポート | stdio(デフォルト)、Streamable HTTP、SSE |
| 🔄 バックオフ付きリトライ | 5xxエラー時に指数バックオフで自動リトライします |
| 🐳 Docker対応 | マルチステージのAlpineビルド |
| 📊 レスポンスメタデータ | 各レスポンスにバイト数と経過時間を含めます |
🚀 クイックスタート
npx を使用する(インストール不要)
npx -y codewiki-mcp@latest
ソースから実行する
git clone https://github.com/izzzzzi/codewiki-mcp.git
cd codewiki-mcp
npm install
npm run build
トランスポート
# stdio (default)
node dist/cli.js
# Streamable HTTP
node dist/cli.js --http --port 3000
# SSE
node dist/cli.js --sse --port 3001
🐳 Docker
docker build -t codewiki-mcp .
# stdio
docker run -it --rm codewiki-mcp
# HTTP
docker run -p 3000:3000 codewiki-mcp --http
# with environment variables
docker run -p 3000:3000 \
-e CODEWIKI_REQUEST_TIMEOUT=60000 \
-e CODEWIKI_MAX_RETRIES=5 \
-e GITHUB_TOKEN=ghp_your_token \
codewiki-mcp --http
🔧 MCP クライアントの設定
Cursor
.cursor/mcp.json に追加します。
{
"mcpServers": {
"codewiki-mcp": {
"command": "npx",
"args": ["-y", "codewiki-mcp@latest"]
}
}
}
Claude Desktop
claude_desktop_config.json に追加します。
{
"mcpServers": {
"codewiki-mcp": {
"command": "npx",
"args": ["-y", "codewiki-mcp@latest"]
}
}
}
Claude Code
claude mcp add codewiki-mcp -- npx -y codewiki-mcp@latest
Windsurf
Windsurf の MCP 設定に追加します。
{
"mcpServers": {
"codewiki-mcp": {
"command": "npx",
"args": ["-y", "codewiki-mcp@latest"]
}
}
}
VS Code (Copilot)
.vscode/mcp.json に追加します。
{
"servers": {
"codewiki-mcp": {
"command": "npx",
"args": ["-y", "codewiki-mcp@latest"]
}
}
}
ローカル開発
{
"mcpServers": {
"codewiki-mcp": {
"command": "node",
"args": ["/path/to/codewiki-mcp/dist/cli.js"]
}
}
}
💡 使用方法
MCP対応クライアントで使えるプロンプト:
codewiki fetch how routing works in Next.js
codewiki search state management libraries
codewiki ask how does React fiber reconciler work?
ドキュメント全体を取得します。
codewiki fetch vercel/next.js
codewiki fetch https://github.com/fastify/fastify
構造化されたページを取得します。
codewiki fetch pages tailwindlabs/tailwindcss
自然言語で質問します。
codewiki ask fastify how to add authentication?
🛠️ MCP ツール
🔍 codewiki_search_repos
codewiki.google にインデックスされたリポジトリを検索します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
query | string | ✅ | — | 検索クエリ |
limit | number | — | 10 | 最大結果数(1~50) |
📄 codewiki_fetch_repo
リポジトリの生成済み Wiki コンテンツを取得します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
repo | string | ✅ | — | owner/repo、GitHub URL、または自然言語のクエリ |
mode | string | — | "aggregate" | "aggregate" — Markdown 全体、"pages" — 構造化 JSON |
💬 codewiki_ask_repo
リポジトリについて自然言語で質問します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
repo | string | ✅ | — | リポジトリ識別子(fetch と同じ形式) |
question | string | ✅ | — | リポジトリについての質問 |
history | array | — | [] | 会話履歴 [{role, content}](最大20件) |
📊 応答形式
✅ 成功 — 検索
{
"query": "fastify",
"count": 1,
"items": [
{
"fullName": "fastify/fastify",
"url": "https://github.com/fastify/fastify",
"description": "Fast and low overhead web framework",
"avatarUrl": "https://avatars.githubusercontent.com/u/24939....",
"extraScore": 555
}
],
"meta": {
"totalBytes": 12500,
"totalElapsedMs": 450
}
}
✅ 成功 — 取得(pages モード)
{
"repo": "fastify/fastify",
"commit": "abc123",
"canonicalUrl": "https://github.com/fastify/fastify",
"pages": [
{
"title": "Overview",
"level": 1,
"anchor": "#overview",
"markdown": "# Overview\n\nFastify is a web framework...",
"diagramCount": 1
}
],
"meta": {
"totalBytes": 25000,
"totalElapsedMs": 1200
}
}
✅ 成功 — 質問
{
"answer": "Fastify uses a plugin-based architecture where...",
"meta": {
"totalBytes": 8500,
"totalElapsedMs": 2300
}
}
❌ エラー応答
{
"error": {
"code": "RPC_FAIL",
"message": "CodeWiki RPC VSX6ub failed with status 404",
"rpcId": "VSX6ub",
"statusCode": 404
}
}
エラーコード:VALIDATION、RPC_FAIL、TIMEOUT、NLP_RESOLVE_FAIL
⚙️ 仕組み
データフロー
AI Assistant → MCP protocol → codewiki-mcp → HTTPS → codewiki.google
↓
AI Assistant ← MCP protocol ← codewiki-mcp ← JSON ← Google RPC API
Google Batchexecute RPC
codewiki.google は、Google 内部の batchexecute RPC 形式を使用します(REST でも GraphQL でもありません)。クライアントは次の処理を行います。
f.req=...の本文を含む POST リクエストを作成します/_/BoqAngularSdlcAgentsUi/data/batchexecuteに送信します- XSSI プレフィックス
)]}'\nを含む応答を受信します wrb.frフレームを解析し、型付きペイロードを抽出します
各ツールは RPC ID に対応しています。
| ツール | RPC ID |
|---|---|
| 🔍 検索 | vyWDAf |
| 📄 取得 | VSX6ub |
| 💬 質問 | EgIxfe |
🧠 NLP によるリポジトリ解決
owner/repo の代わりに自然言語を入力できます。
"the fastify web framework"
→ wink-nlp extracts keyword "fastify" (POS tag: NOUN/PROPN)
→ GitHub Search API: GET /search/repositories?q=fastify&sort=stars
→ top result: "fastify/fastify"
→ normalizeRepoInput("fastify/fastify") → URL for codewiki
🔄 指数バックオフによる再試行
| 試行 | 遅延 |
|---|---|
| 0 | 即時 |
| 1 | 250ms |
| 2 | 500ms |
| 3 | 1000ms |
4xx エラー(クライアントエラー)は再試行されません。
🖥️ CLI
codewiki-mcp [options]
Options:
--http Streamable HTTP transport
--sse SSE transport
--port <number> Port for HTTP/SSE (default: 3000)
--endpoint <str> URL endpoint (default: /mcp)
--help, -h Show help
⚡ 設定
環境変数:
| 変数 | デフォルト | 説明 |
|---|---|---|
CODEWIKI_BASE_URL | https://codewiki.google | ベース URL |
CODEWIKI_REQUEST_TIMEOUT | 30000 | リクエストのタイムアウト(ms) |
CODEWIKI_MAX_RETRIES | 3 | 最大再試行回数 |
CODEWIKI_RETRY_DELAY | 250 | 再試行の基本遅延(ms) |
GITHUB_TOKEN | — | NLP によるリポジトリ解決用の GitHub トークン |
プロジェクトのルートに .env ファイルを作成することもできます。
CODEWIKI_REQUEST_TIMEOUT=60000
CODEWIKI_MAX_RETRIES=5
GITHUB_TOKEN=ghp_your_token
📁 プロジェクト構成
src/
├── cli.ts # CLI entry point
├── server.ts # Transport setup (stdio/HTTP/SSE)
├── index.ts # Library re-exports
├── schemas.ts # Zod input schemas
├── lib/
│ ├── codewikiClient.ts # API client with retry + metadata
│ ├── batchexecute.ts # Google RPC response parser
│ ├── repo.ts # Repo normalization + NLP resolution
│ ├── extractKeyword.ts # NLP keyword extraction (wink-nlp)
│ ├── resolveRepo.ts # GitHub Search API resolver
│ ├── errors.ts # CodeWikiError + formatMcpError
│ └── config.ts # Env-based configuration
└── tools/
├── searchRepos.ts # codewiki_search_repos
├── fetchRepo.ts # codewiki_fetch_repo
└── askRepo.ts # codewiki_ask_repo
❓ トラブルシューティング
アクセス拒否
chmod +x ./node_modules/.bin/codewiki-mcp
接続拒否(HTTP/SSE)
# Check if port is in use
lsof -i :3000
タイムアウトエラー
大規模なリポジトリでは、タイムアウトを延長してください。
CODEWIKI_REQUEST_TIMEOUT=60000 node dist/cli.js
NLP による解決の失敗
自然言語の入力を解決できない場合は、明示的な形式を使用してください。
# Instead of "the fastify framework"
fastify/fastify
# or
https://github.com/fastify/fastify
未認証リクエストに対する GitHub API のレート制限を避けるには、GITHUB_TOKEN を設定してください。
🧑💻 開発
npm run dev # stdio with tsx
npm run dev:http # HTTP with tsx
npm run dev:sse # SSE with tsx
npm run typecheck # type check
npm run test # run tests
npm run test:watch # tests in watch mode
npm run build # compile to dist/
🤝 コントリビューション
コントリビューションを歓迎します。以下の手順に従ってください。
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feat/my-feature) - コミットメッセージには Conventional Commits を使用します
- 提出前に
npm run typecheck && npm run testを実行します - プルリクエストを作成します
📄 ライセンス
MIT © codewiki-mcp contributors
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。