CodeWiki MCP Server
Integrates with Google CodeWiki to search, fetch, and cache documentation for GitHub repositories, enabling easy access to repository documentation through natural language queries.
README
CodeWiki MCP Server
An MCP (Model Context Protocol) server that integrates with Google CodeWiki to fetch and cache documentation for GitHub repositories.
Features
- Repository Search: Search for GitHub repositories on Google CodeWiki
- Documentation Fetching: Retrieve and parse documentation from CodeWiki
- Smart Caching: Cache documentation with TTL (Time To Live) to avoid repeated requests
- Documentation Search: Search within cached documentation for specific content
- Cache Management: List, clear, and manage cached repositories
Installation
- Clone this repository
- Install dependencies:
npm install - Build the project:
npm run build
Setup
VS Code Integration
The project includes VS Code MCP configuration. The .vscode/mcp.json file is automatically created during setup and configures the server for use with MCP-compatible clients.
Git Configuration
A comprehensive .gitignore file is included to exclude:
- Build outputs (
dist/,build/) - Cache directories (
.codewiki-cache/) - Environment files (
.env*) - IDE files (
.vscode/,.idea/) - OS files (
.DS_Store,Thumbs.db) - Logs and temporary files
Usage
As an MCP Server
This server can be used with any MCP-compatible client. The server provides the following tools:
search_repository
Search for GitHub repositories on Google CodeWiki.
Parameters:
query(string): Search query for repository name or owner/repo format
Example:
{
"query": "facebook/react"
}
get_repository_docs
Get documentation for a specific GitHub repository.
Parameters:
owner(string): Repository owner/organizationrepo(string): Repository nameforce_refresh(boolean, optional): Force refresh cached documentation (default: false)
Example:
{
"owner": "facebook",
"repo": "react",
"force_refresh": false
}
search_documentation
Search within cached documentation for a repository.
Parameters:
owner(string): Repository owner/organizationrepo(string): Repository namequery(string): Search query within the documentation
Example:
{
"owner": "facebook",
"repo": "react",
"query": "hooks"
}
list_cached_repositories
List all repositories currently cached.
Parameters: None
clear_cache
Clear the documentation cache.
Parameters:
owner(string, optional): Specific repository owner to clearrepo(string, optional): Repository name when clearing specific repo
Examples:
{
"owner": "facebook",
"repo": "react"
}
{}
Direct Usage
You can also run the server directly:
npm start
Configuration
Cache Settings
The cache manager supports the following configuration:
- Default TTL: 24 hours (configurable)
- Cache Directory:
.codewiki-cachein the project root - Memory Cache: In-memory cache for frequently accessed data
- Disk Cache: Persistent cache stored as JSON files
Environment Variables
CODEWIKI_CACHE_DIR: Custom cache directory pathCODEWIKI_CACHE_TTL: Cache TTL in milliseconds (default: 86400000)
Project Structure
codewiki-mcp-server/
├── src/
│ ├── server.ts # Main MCP server implementation
│ ├── codewiki-client.ts # Client for interacting with Google CodeWiki
│ └── cache-manager.ts # Manages caching of documentation
├── .vscode/
│ └── mcp.json # MCP server configuration for VS Code
├── .gitignore # Git ignore rules
├── LICENSE # MIT License
├── README.md # This file
├── mcp.json # MCP server manifest
├── package.json # Project dependencies and scripts
└── tsconfig.json # TypeScript configuration
Architecture
Components
- Server (
server.ts): Main MCP server implementation - CodeWikiClient (
codewiki-client.ts): Client for interacting with Google CodeWiki - CacheManager (
cache-manager.ts): Manages caching of documentation
Data Flow
- Client requests repository documentation
- Server checks cache for existing data
- If not cached or expired, fetches from Google CodeWiki
- Parses and structures the documentation
- Stores in cache for future requests
- Returns structured documentation to client
Development
Building
npm run build
Development Mode
npm run dev
Cleaning
npm run clean
Limitations
- No Public API: Google CodeWiki doesn't provide a public API, so this server uses web scraping
- Rate Limiting: Be respectful of CodeWiki's servers with appropriate delays
- Repository Coverage: Not all repositories may have CodeWiki documentation available
- Content Parsing: HTML structure changes on CodeWiki may require updates to the parsing logic
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
License
MIT License - see LICENSE file for details.
Author
Chris Bunting cbuntingde@gmail.com
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.