mcpField
C
CodeWiki MCP — AI-generated docs for GitHub repos

CodeWiki MCP — AI-generated docs for GitHub repos

ローカル
github.com/izzzzzi開発ツール1928 週間前に更新

CodeWiki MCP — AI-generated docs for GitHub repos について

codewiki-mcpは、codewiki.googleに登録されたGitHubリポジトリを検索し、生成されたWiki文書の取得や質問への回答を行うMCPサーバーです。複数のトランスポートと自然言語によるリポジトリ解決に対応します。

主な機能

  1. 01登録済みリポジトリの検索
  2. 02Wikiページの取得(全文・構造化)
  3. 03会話履歴を使った質問
  4. 04自然言語からリポジトリを解決
  5. 05stdio、Streamable HTTP、SSE対応

活用シーン

  1. 01トピックからリポジトリを探す
  2. 02リポジトリの生成文書を読む
  3. 03機能の仕組みをリポジトリについて質問する

MCP 対応

検索、文書取得、リポジトリへの質問をMCPツールとして公開し、codewiki.googleに接続します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"izzzzzi-codewiki": {
"command": "npx",
"args": [
"-y",
"codewiki-mcp"
]
}
}
}
起動コマンドnpx -y codewiki-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmcodewiki-mcp1.1.1

ツール

3

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
limitintegerいいえ
querystringはい

詳細

📚 codewiki-mcp

codewiki.google 用 MCP サーバー — オープンソースリポジトリを検索し、ドキュメントを取得して、質問できます

CI Release npm version npm downloads License: MIT TypeScript Node.js

🇷🇺 Русский | 🇬🇧 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 にインデックスされたリポジトリを検索します。

パラメーター型必須デフォルト説明
querystring✅—検索クエリ
limitnumber—10最大結果数(1~50)
📄 codewiki_fetch_repo

リポジトリの生成済み Wiki コンテンツを取得します。

パラメーター型必須デフォルト説明
repostring✅—owner/repo、GitHub URL、または自然言語のクエリ
modestring—"aggregate""aggregate" — Markdown 全体、"pages" — 構造化 JSON
💬 codewiki_ask_repo

リポジトリについて自然言語で質問します。

パラメーター型必須デフォルト説明
repostring✅—リポジトリ識別子(fetch と同じ形式)
questionstring✅—リポジトリについての質問
historyarray—[]会話履歴 [{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 でもありません)。クライアントは次の処理を行います。

  1. f.req=... の本文を含む POST リクエストを作成します
  2. /_/BoqAngularSdlcAgentsUi/data/batchexecute に送信します
  3. XSSI プレフィックス )]}'\n を含む応答を受信します
  4. 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即時
1250ms
2500ms
31000ms

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_URLhttps://codewiki.googleベース URL
CODEWIKI_REQUEST_TIMEOUT30000リクエストのタイムアウト(ms)
CODEWIKI_MAX_RETRIES3最大再試行回数
CODEWIKI_RETRY_DELAY250再試行の基本遅延(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/

🤝 コントリビューション

コントリビューションを歓迎します。以下の手順に従ってください。

  1. リポジトリをフォークします
  2. 機能ブランチを作成します(git checkout -b feat/my-feature)
  3. コミットメッセージには Conventional Commits を使用します
  4. 提出前に npm run typecheck && npm run test を実行します
  5. プルリクエストを作成します

📄 ライセンス

MIT © codewiki-mcp contributors

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。