bdougie/check_the_docs
If you are the rightful owner of check_the_docs and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Check The Docs - FastMCP Document Indexing Server is a tool designed to streamline the process of keeping documentation up-to-date with code changes using advanced semantic search and Git diff analysis.
Check The Docs - FastMCP Document Indexing Server
A FastMCP server that uses ChromaDB for semantic document indexing and Git diff analysis to identify documentation that needs updates when code changes.
Features
- š Document Indexing: Index markdown documentation with semantic search capabilities
- š Semantic Search: Search documentation using natural language queries
- š Git Diff Analysis: Automatically identify documentation that needs updates based on code changes
- š Fast Embeddings: Uses Ollama's nomic-embed-text model for high-quality embeddings
- š¾ Persistent Storage: ChromaDB for reliable vector storage
- āļø Cloud Support: ChromaDB Cloud integration for scalable, persistent storage
Prerequisites
- Python 3.9+
- uv (Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh
- Ollama with nomic-embed-text model
# Install Ollama (macOS) brew install ollama # Start Ollama service ollama serve # Pull the embedding model ollama pull nomic-embed-text
Quick Start
1. Clone and Setup
# Clone the repository
git clone https://github.com/bdougie/check_the_docs
cd check_the_docs
# Install dependencies with uv
uv sync
# Activate the virtual environment
source .venv/bin/activate # On macOS/Linux
# or
.venv\Scripts\activate # On Windows
2. Configure Continue
Create a YAML configuration file at .continue/mcpServers/mcp-server.yaml
:
name: Check Docs MCP server
version: 0.0.1
schema: v1
mcpServers:
- name: check_the_docs
command: uv
args:
- run
- python
- server.py
cwd: .
Replace /path/to/your/check_the_docs
with your actual project path.
Usage Examples
Index Documentation
In Continue Agent, ask to index the example docs:
index_docs ./docs # or path to your docs folder
Search Documentation
Search through indexed documentation:
Search docs for "git integration"
Analyze Code Changes
Check which docs need updates based on code changes:
Check what documentation needs updating based on recent Git changes
Self-Documentation Check
Use the project on itself to ensure all features are documented:
-
First, index the project's own documentation:
index_docs ./
-
Then check if all code features are covered:
Check docs to see if all features in server.py are covered in the documentation
This will analyze the codebase and suggest any missing documentation for new features or tools.
For detailed information about available MCP tools, see .
ChromaDB Cloud Setup
To use ChromaDB Cloud for scalable, persistent storage, you can configure it directly through MCP tools:
Quick Setup (MCP Tools)
# 1. Configure ChromaDB Cloud and switch to cloud mode
configure_chroma_cloud your-tenant-name your-database-name
# 2. Copy existing local data to cloud (optional)
copy_to_cloud your-tenant-name your-database-name
# 3. Verify cloud connection
chroma_status
Available MCP Configuration Tools
configure_chroma_cloud
- Set up and switch to ChromaDB Cloudswitch_to_local
- Switch back to local ChromaDBcopy_to_cloud
- Copy local collections to cloudcopy_from_cloud
- Copy cloud collections to localchroma_status
- Check current configuration and connection
Manual Setup (Environment Variables)
# Set environment variables
export CHROMA_CLOUD_TENANT="your-tenant-name"
export CHROMA_CLOUD_DATABASE="your-database-name"
# Copy data and verify
copy_to_cloud your-tenant-name your-database-name
chroma_status
For detailed setup instructions, see .
Development
Running Tests
# Install dev dependencies
uv sync --dev
# Run tests
uv run pytest
Project Structure
check_the_docs/
āāā server.py # Main FastMCP server implementation
āāā pyproject.toml # Project configuration
āāā README.md # This file
āāā example.md # Implementation guide
āāā chroma_db/ # ChromaDB storage (auto-created)
āāā example_docs/ # Example documentation (optional)
Environment Variables
OLLAMA_HOST
: Ollama API endpoint (default: http://localhost:11434)CHROMA_DB_PATH
: ChromaDB storage path (default: ./chroma_db)CHROMA_CLOUD_TENANT
: ChromaDB Cloud tenant name (optional, for cloud mode)CHROMA_CLOUD_DATABASE
: ChromaDB Cloud database name (optional, for cloud mode)CHROMA_CLOUD_API_KEY
: ChromaDB Cloud API key (optional, for programmatic access)
Architecture
The server uses:
- FastMCP for the MCP protocol implementation
- ChromaDB for vector storage and similarity search
- Ollama with nomic-embed-text for generating embeddings
- GitPython for repository analysis
- Pydantic for request/response validation
Troubleshooting
Ollama Connection Error
If you see "connection refused" errors:
# Check if Ollama is running
ollama list
# Start Ollama if needed
ollama serve
ChromaDB Persistence
The database is stored in ./chroma_db
by default. To reset:
rm -rf chroma_db/
Memory Issues
For large documentation sets, you may need to:
- Increase chunk size to reduce total chunks
- Process files in batches
- Use a cloud ChromaDB instance
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests with
uv run pytest
- Submit a pull request
License
MIT License - see LICENSE file for details