docs-search-engine
Enables searching documentation from GitHub repositories and web pages via MCP tools, with in-memory indexing and caching for fast retrieval.
README
Documentation Search Engine
A custom Model Context Protocol (MCP) server that acts as a documentation search engine.
This project attempts to build a simple, personal clone of Context7, unlocking the capability to access up-to-date documentation from GitHub repositories and web pages directly within your AI assistant's context.
š ļø Tech Stack
- Python: Core programming language.
- FastMCP: Framework for building MCP servers easily.
- minsearch: Lightweight, in-memory full-text search engine.
- uv: Fast Python package and environment manager.
- Jina Reader: For turning web pages into LLM-friendly markdown.
- requests: For handling HTTP requests and downloading zip files.
- pytest: For comprehensive testing.
š Project Structure
docs-search-engine/
āāā main.py # Entry point: Defines MCP tools and server configuration
āāā search.py # Core logic: Zip download, extraction, indexing, and search
āāā scrape_web.py # Web scraping functionality (using Jina Reader)
āāā test_search.py # Tests for search functionality
āāā test_scrape_web.py # Tests for web scraping
āāā pyproject.toml # Project dependencies and configuration
š Workflow
- Ingestion: The server downloads documentation source code (e.g., as a
.zipfrom GitHub). - Indexing: Markdown content (
.mdand.mdx) is extracted and indexed in-memory usingminsearch. - Caching: Indexes are cached by URL to ensure fast subsequent searches without re-downloading.
- Retrieval: Users query the system via MCP tools (
search_docs,scrape_web), and relevant context is returned to the LLM.
āļø MCP Configuration
Add the following configuration to your MCP client settings (e.g., mcp_config.json in Google Antigravity):
{
"mcpServers": {
"docs-search-engine": {
"command": "uv",
"args": [
"run",
"--directory",
"C:/Users/username/path/to/docs-search-engine",
"main.py"
]
}
}
}
Note: Replace C:/Users/username/path/to/docs-search-engine with the actual absolute path to your project directory.
š” Example Usage
Once the MCP server is connected to your AI assistant (e.g., VSCode, Claude, Cursor, Antigravity), you can use natural language to interact with it.
1. Search Documentation
"Search for 'context' in the FastMCP docs."
"Find information about 'indexing' in the minsearch docs (https://github.com/alexeygrigorev/minsearch)."
2. Scrape Web Pages
"Scrape the content of https://example.com/blog/article and summarize it."
3. Count Word Occurrences
"Count how many times the word 'LLM' appears on https://example.com/ai-trends."
š» Setup & Execution
Prerequisites
- Python 3.13+
uvinstalled (recommended)
Installation
-
Clone the repository and navigate to the directory:
cd docs-search-engine -
Install dependencies:
uv sync
Running Locally
To run the server manually for debugging:
uv run main.py
Testing
Run the comprehensive test suite to ensure everything is working correctly:
# Run all tests
uv run pytest -v
# Run specific test files
uv run pytest test_search.py -v
uv run pytest test_scrape_web.py -v
# Run only integration tests
uv run pytest -m integration -v
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.