codewiki-mcp
Connects to the GitHub Search API for natural-language repository resolution, allowing the server to identify repositories and resolve owners/names from descriptive keywords.
Integrates with codewiki.google to search for repositories, fetch AI-generated wiki documentation, and answer questions about open-source projects using the Google RPC API.
π codewiki-mcp
MCP server for codewiki.google β search, fetch docs, and ask questions about any open-source repo
π·πΊ Π ΡΡΡΠΊΠΈΠΉ | π¬π§ English
MCP server that connects any AI assistant to codewiki.google β AI-generated wiki documentation for open-source repositories.
π 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.
Related MCP server: mediawiki-mcp-server
β¨ Features
Feature | Description |
π Search Repos | Find repositories indexed by codewiki.google |
π Fetch Wiki Docs | Get full markdown or structured pages for any repo |
π¬ Ask Questions | Natural-language Q&A with conversation history |
π§ NLP Repo Resolution | Type naturally β wink-nlp extracts keywords and resolves to |
π‘ Multiple Transports | stdio (default), Streamable HTTP, SSE |
π Retry with Backoff | Automatic retries with exponential backoff on 5xx errors |
π³ Docker Support | Multi-stage Alpine build |
π Response Metadata | Byte count and elapsed time on every response |
π Quick Start
Using npx (no install)
npx -y codewiki-mcp@latestFrom source
git clone https://github.com/izzzzzi/codewiki-mcp.git
cd codewiki-mcp
npm install
npm run buildTransports
# 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
Add to .cursor/mcp.json:
{
"mcpServers": {
"codewiki-mcp": {
"command": "npx",
"args": ["-y", "codewiki-mcp@latest"]
}
}
}Add to claude_desktop_config.json:
{
"mcpServers": {
"codewiki-mcp": {
"command": "npx",
"args": ["-y", "codewiki-mcp@latest"]
}
}
}claude mcp add codewiki-mcp -- npx -y codewiki-mcp@latestAdd to your Windsurf MCP config:
{
"mcpServers": {
"codewiki-mcp": {
"command": "npx",
"args": ["-y", "codewiki-mcp@latest"]
}
}
}Add to .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"]
}
}
}π‘ Usage
Prompts you can use in any MCP-compatible client:
codewiki fetch how routing works in Next.jscodewiki search state management librariescodewiki ask how does React fiber reconciler work?Fetch complete documentation:
codewiki fetch vercel/next.js
codewiki fetch https://github.com/fastify/fastifyGet structured pages:
codewiki fetch pages tailwindlabs/tailwindcssAsk with natural language:
codewiki ask fastify how to add authentication?π οΈ MCP Tools
π codewiki_search_repos
Search repositories indexed by codewiki.google.
Parameter | Type | Required | Default | Description |
| string | β | β | Search query |
| number | β | 10 | Max results (1β50) |
π codewiki_fetch_repo
Fetch generated wiki content for a repository.
Parameter | Type | Required | Default | Description |
| string | β | β |
|
| string | β |
|
|
π¬ codewiki_ask_repo
Ask a natural-language question about a repository.
Parameter | Type | Required | Default | Description |
| string | β | β | Repository identifier (same formats as fetch) |
| string | β | β | Question about the repo |
| array | β |
| Conversation history |
π Response Format
{
"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
}
}{
"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
}
}Error codes: VALIDATION, RPC_FAIL, TIMEOUT, NLP_RESOLVE_FAIL
βοΈ How It Works
Data Flow
AI Assistant β MCP protocol β codewiki-mcp β HTTPS β codewiki.google
β
AI Assistant β MCP protocol β codewiki-mcp β JSON β Google RPC APIGoogle Batchexecute RPC
codewiki.google uses Google's internal batchexecute RPC format (not REST, not GraphQL). The client:
Builds a POST request with
f.req=...bodySends it to
/_/BoqAngularSdlcAgentsUi/data/batchexecuteReceives a response with XSSI prefix
)]}'\nParses
wrb.frframes and extracts the typed payload
Each tool maps to an RPC ID:
Tool | RPC ID |
π Search |
|
π Fetch |
|
π¬ Ask |
|
π§ 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
Attempt | Delay |
0 | immediate |
1 | 250ms |
2 | 500ms |
3 | 1000ms |
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:
Variable | Default | Description |
|
| Base URL |
|
| Request timeout (ms) |
|
| Max retries |
|
| Base retry delay (ms) |
| β | 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
chmod +x ./node_modules/.bin/codewiki-mcp# Check if port is in use
lsof -i :3000For large repositories, increase the timeout:
CODEWIKI_REQUEST_TIMEOUT=60000 node dist/cli.jsIf natural-language input doesn't resolve, use explicit format:
# Instead of "the fastify framework"
fastify/fastify
# or
https://github.com/fastify/fastifySet GITHUB_TOKEN to avoid GitHub API rate limits for unauthenticated requests.
π§βπ» 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:
Fork the repository
Create a feature branch (
git checkout -b feat/my-feature)Use Conventional Commits for commit messages
Run
npm run typecheck && npm run testbefore submittingOpen a Pull Request
π License
MIT Β© codewiki-mcp contributors
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/izzzzzi/codewiki-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server