CodeWiki MCP Server

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.

Category
Visit Server

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

  1. Clone this repository
  2. Install dependencies:
    npm install
    
  3. 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/organization
  • repo (string): Repository name
  • force_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/organization
  • repo (string): Repository name
  • query (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 clear
  • repo (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-cache in 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 path
  • CODEWIKI_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

  1. Server (server.ts): Main MCP server implementation
  2. CodeWikiClient (codewiki-client.ts): Client for interacting with Google CodeWiki
  3. CacheManager (cache-manager.ts): Manages caching of documentation

Data Flow

  1. Client requests repository documentation
  2. Server checks cache for existing data
  3. If not cached or expired, fetches from Google CodeWiki
  4. Parses and structures the documentation
  5. Stores in cache for future requests
  6. 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

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

MIT License - see LICENSE file for details.

Author

Chris Bunting cbuntingde@gmail.com

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

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.

Official
Featured
Python
graphlit-mcp-server

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.

Official
Featured
TypeScript
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured