PluginBench
MCP Server
Maintained
MIT

CodeWiki MCP — AI-generated docs for GitHub repos MCP Server

io.github.izzzzzi/codewiki-mcp

Search, fetch docs, and ask questions about any open-source repo via codewiki.google

What is the CodeWiki MCP — AI-generated docs for GitHub repos MCP server?

The CodeWiki MCP server connects AI assistants to codewiki.google, a service that generates comprehensive wiki documentation for GitHub repositories. It provides tools to search repos, fetch full markdown or structured documentation, and ask natural-language questions about any open-source project.

CodeWiki MCP gives you instant access to AI-generated documentation for any GitHub repository. Search for projects, retrieve complete wiki pages in markdown or structured JSON format, and ask natural-language questions with conversation history. It uses Google's batchexecute RPC API and includes NLP-powered repo resolution so you can type naturally instead of exact owner/repo names.

How to install CodeWiki MCP — AI-generated docs for GitHub repos

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "codewiki-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "codewiki-mcp"
      ]
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • codewiki_search_repos — Search repositories indexed by codewiki.google with optional limit parameter (1-50 results)
  • codewiki_fetch_repo — Fetch generated wiki content for a repository in aggregate (full markdown) or pages (structured JSON) mode
  • codewiki_ask_repo — Ask natural-language questions about a repository with optional conversation history support (max 20 messages)

Use cases

  • Search for open-source projects and get their documentation instantly without visiting GitHub
  • Fetch complete wiki documentation for a library to understand its architecture and API
  • Ask specific questions about how a framework works (e.g., 'how does React fiber reconciliation work?')
  • Resolve repositories using natural language (e.g., 'the fastify web framework' → fastify/fastify)
  • Maintain conversation context when asking follow-up questions about a codebase

CodeWiki MCP — AI-generated docs for GitHub repos MCP server FAQ

What is CodeWiki MCP?

It's an MCP server that connects AI assistants to codewiki.google, which provides AI-generated wiki documentation for any GitHub repository. You can search repos, fetch docs, and ask questions.

Is it free to use?

Yes, codewiki-mcp is open-source (MIT licensed) and free. It accesses codewiki.google's public API.

How do I install it in Cursor or Claude?

Add to your MCP config file (.cursor/mcp.json or claude_desktop_config.json): {"codewiki-mcp": {"command": "npx", "args": ["-y", "codewiki-mcp@latest"]}}

Do I need authentication?

No authentication is required for basic usage. Optionally set GITHUB_TOKEN environment variable to avoid GitHub API rate limits when using NLP repo resolution.

What formats can I get documentation in?

Two modes: 'aggregate' returns full markdown, and 'pages' returns structured JSON with individual pages, titles, anchors, and diagram counts.

Can I ask follow-up questions?

Yes, the ask_repo tool supports conversation history—pass an array of previous {role, content} messages (max 20) to maintain context.

README (reference)

Source of truth, from the repository.

<div align="center">

📚 codewiki-mcp

MCP server for codewiki.google — search, fetch docs, and ask questions about any open-source repo

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

🇷🇺 Русский | 🇬🇧 English

<br />

MCP server that connects any AI assistant to codewiki.google — AI-generated wiki documentation for open-source repositories.

</div>

📖 Overview

codewiki-mcp is a Model Context Protocol server that gives AI assistants access to codewiki.google — a service that generates comprehensive wiki documentation for any GitHub repository. Search repos, fetch full docs, or ask natural-language questions — all through MCP.


✨ Features

FeatureDescription
🔍 Search ReposFind repositories indexed by codewiki.google
📄 Fetch Wiki DocsGet full markdown or structured pages for any repo
💬 Ask QuestionsNatural-language Q&A with conversation history
🧠 NLP Repo ResolutionType naturally — wink-nlp extracts keywords and resolves to owner/repo
📡 Multiple Transportsstdio (default), Streamable HTTP, SSE
🔄 Retry with BackoffAutomatic retries with exponential backoff on 5xx errors
🐳 Docker SupportMulti-stage Alpine build
📊 Response MetadataByte count and elapsed time on every response

🚀 Quick Start

Using npx (no install)

npx -y codewiki-mcp@latest

From source

git clone https://github.com/izzzzzi/codewiki-mcp.git
cd codewiki-mcp
npm install
npm run build

Transports

# 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 Client Configuration

<details> <summary><b>Cursor</b></summary>

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "codewiki-mcp": {
      "command": "npx",
      "args": ["-y", "codewiki-mcp@latest"]
    }
  }
}
</details> <details> <summary><b>Claude Desktop</b></summary>

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "codewiki-mcp": {
      "command": "npx",
      "args": ["-y", "codewiki-mcp@latest"]
    }
  }
}
</details> <details> <summary><b>Claude Code</b></summary>
claude mcp add codewiki-mcp -- npx -y codewiki-mcp@latest
</details> <details> <summary><b>Windsurf</b></summary>

Add to your Windsurf MCP config:

{
  "mcpServers": {
    "codewiki-mcp": {
      "command": "npx",
      "args": ["-y", "codewiki-mcp@latest"]
    }
  }
}
</details> <details> <summary><b>VS Code (Copilot)</b></summary>

Add to .vscode/mcp.json:

{
  "servers": {
    "codewiki-mcp": {
      "command": "npx",
      "args": ["-y", "codewiki-mcp@latest"]
    }
  }
}
</details> <details> <summary><b>Local development</b></summary>
{
  "mcpServers": {
    "codewiki-mcp": {
      "command": "node",
      "args": ["/path/to/codewiki-mcp/dist/cli.js"]
    }
  }
}
</details>

💡 Usage

Prompts you can use in any MCP-compatible client:

codewiki fetch how routing works in Next.js
codewiki search state management libraries
codewiki ask how does React fiber reconciler work?

Fetch complete documentation:

codewiki fetch vercel/next.js
codewiki fetch https://github.com/fastify/fastify

Get structured pages:

codewiki fetch pages tailwindlabs/tailwindcss

Ask with natural language:

codewiki ask fastify how to add authentication?

🛠️ MCP Tools

🔍 codewiki_search_repos

Search repositories indexed by codewiki.google.

ParameterTypeRequiredDefaultDescription
querystring✅—Search query
limitnumber—10Max results (1–50)

📄 codewiki_fetch_repo

Fetch generated wiki content for a repository.

ParameterTypeRequiredDefaultDescription
repostring✅—owner/repo, GitHub URL, or natural-language query
modestring—"aggregate""aggregate" — full markdown; "pages" — structured JSON

💬 codewiki_ask_repo

Ask a natural-language question about a repository.

ParameterTypeRequiredDefaultDescription
repostring✅—Repository identifier (same formats as fetch)
questionstring✅—Question about the repo
historyarray—[]Conversation history [{role, content}] (max 20)

📊 Response Format

<details> <summary><b>✅ Success — Search</b></summary>
{
  "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
  }
}
</details> <details> <summary><b>✅ Success — Fetch (pages mode)</b></summary>
{
  "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
  }
}
</details> <details> <summary><b>✅ Success — Ask</b></summary>
{
  "answer": "Fastify uses a plugin-based architecture where...",
  "meta": {
    "totalBytes": 8500,
    "totalElapsedMs": 2300
  }
}
</details> <details> <summary><b>❌ Error Response</b></summary>
{
  "error": {
    "code": "RPC_FAIL",
    "message": "CodeWiki RPC VSX6ub failed with status 404",
    "rpcId": "VSX6ub",
    "statusCode": 404
  }
}

Error codes: VALIDATION, RPC_FAIL, TIMEOUT, NLP_RESOLVE_FAIL

</details>

⚙️ How It Works

Data Flow

AI Assistant → MCP protocol → codewiki-mcp → HTTPS → codewiki.google
                                                            ↓
AI Assistant ← MCP protocol ← codewiki-mcp ← JSON  ← Google RPC API

Google Batchexecute RPC

codewiki.google uses Google's internal batchexecute RPC format (not REST, not GraphQL). The client:

  1. Builds a POST request with f.req=... body
  2. Sends it to /_/BoqAngularSdlcAgentsUi/data/batchexecute
  3. Receives a response with XSSI prefix )]}'\n
  4. Parses wrb.fr frames and extracts the typed payload

Each tool maps to an RPC ID:

ToolRPC ID
🔍 SearchvyWDAf
📄 FetchVSX6ub
💬 AskEgIxfe

🧠 NLP Repo Resolution

Users can type natural language instead of 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

🔄 Retry with Exponential Backoff

AttemptDelay
0immediate
1250ms
2500ms
31000ms

4xx errors (client errors) are never retried.


🖥️ 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

⚡ Configuration

Environment variables:

VariableDefaultDescription
CODEWIKI_BASE_URLhttps://codewiki.googleBase URL
CODEWIKI_REQUEST_TIMEOUT30000Request timeout (ms)
CODEWIKI_MAX_RETRIES3Max retries
CODEWIKI_RETRY_DELAY250Base retry delay (ms)
GITHUB_TOKEN—GitHub token for NLP repo resolution

You can also create a .env file in the project root:

CODEWIKI_REQUEST_TIMEOUT=60000
CODEWIKI_MAX_RETRIES=5
GITHUB_TOKEN=ghp_your_token

📁 Project Structure

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

❓ Troubleshooting

<details> <summary><b>Permission Denied</b></summary>
chmod +x ./node_modules/.bin/codewiki-mcp
</details> <details> <summary><b>Connection Refused (HTTP/SSE)</b></summary>
# Check if port is in use
lsof -i :3000
</details> <details> <summary><b>Timeout Errors</b></summary>

For large repositories, increase the timeout:

CODEWIKI_REQUEST_TIMEOUT=60000 node dist/cli.js
</details> <details> <summary><b>NLP Resolution Fails</b></summary>

If natural-language input doesn't resolve, use explicit format:

# Instead of "the fastify framework"
fastify/fastify
# or
https://github.com/fastify/fastify

Set GITHUB_TOKEN to avoid GitHub API rate limits for unauthenticated requests.

</details>

🧑‍💻 Development

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/

🤝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/my-feature)
  3. Use Conventional Commits for commit messages
  4. Run npm run typecheck && npm run test before submitting
  5. Open a Pull Request

📄 License

MIT © codewiki-mcp contributors

Related MCP servers

Tolk smart contract compiler for TON — compile, check, and deploy from AI assistants

2
TypeScript
MIT
View repository →

ドメインの設定を調べる MCP サーバー。SPF / DKIM / DMARC・DNS・SSL 証明書・セキュリティヘッダ・サブドメイン・類似ドメインを、公開情報だけで確認します。登録不要・無料。

View repository →

AI image and video generation, editing, and region repair via Gemini, OpenAI, and Grok.

5
JavaScript
MIT
View repository →

Verify ANZ businesses against government registers. Surfaces cross-jurisdictional findings.

0
MIT
View repository →
COCode Assistant logo

Code Assistant

Maintained

Gemini-powered MCP server for code analysis.

0
TypeScript
View repository →
COCode Lens logo

Code Lens

Maintained

Gemini-powered MCP server for code analysis.

0
TypeScript
View repository →