# Codebase MCP > **Privacy-first AI development assistant via MCP** | Turn Claude into your personal coding assistant | Semantic code search β€’ AI-assisted editing β€’ Quality-checked generation β€’ Persistent memory | Free open-source alternative to Cursor & paid AI coding tools | Python, React, TypeScript, FastAPI Open Source** [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/Python-3.11+-green.svg)](https://www.python.org/downloads/) [![MCP](https://img.shields.io/badge/MCP-Compatible-purple.svg)](https://modelcontextprotocol.io) [![Version](https://img.shields.io/badge/version-1.0.0--beta-orange.svg)](https://github.com/danyQe/codebase-mcp/releases) **Codebase MCP** is an open-source AI-powered development assistant that connects Claude Desktop (or any MCP-compatible LLM) to your codebase through the Model Context Protocol. Stop paying for separate coding assistants - if you already have a Claude subscription, that's all you need. πŸ“– **[Read Full Documentation](https://danyqe.github.io/codebase-mcp/)** | πŸ—οΈ **[Architecture](docs/architecture.png)** | 🀝 **[Contributing](./CONTRIBUTING.md)** --- ## 🌟 Why Codebase MCP? ### The Problem Modern AI coding assistants like Cursor, Windsurf, and others charge **$20-40+/month** on top of your existing LLM subscription. If you already pay for Claude, why pay again for a coding assistant? ### The Solution **Codebase MCP** turns your existing Claude subscription into a powerful coding assistant: - βœ… **One subscription** - Use your existing Claude Pro/Team plan - βœ… **Privacy-first** - Local embeddings and processing (except edit operations) - βœ… **Open source** - Apache 2.0 license, community-driven - βœ… **Extensible** - Works with any MCP-compatible LLM via Model Context Protocol - βœ… **Lightweight** - ~100MB memory footprint for medium projects - βœ… **Fast** - Sub-second semantic search with local FAISS indexing --- ## ⚑ Quick Start ### Prerequisites - **Python 3.11+** - **Claude Desktop** (or any MCP-compatible client) - **Git** installed - **[uv](https://github.com/astral-sh/uv)** package manager (recommended) ### Installation **1. Clone the repository:** ```bash git clone https://github.com/danyQe/codebase-mcp.git cd codebase-mcp ``` **2. Install globally (recommended):** ```bash # Install uv if you haven't pip install uv # Create virtual environment and install dependencies uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate uv pip install -r requirements.txt # Install formatters globally (required for code formatting) pip install black ruff ``` **3. Configure Gemini API (for edit tool):** ```bash # Create .env file cp .env.example .env # Get free API key from: https://aistudio.google.com/app/apikey # Add to .env: GEMINI_API_KEY=your_api_key_here ``` **4. Configure Claude Desktop:** Add to your `claude_desktop_config.json`: ```json { "mcpServers": { "codebase-manager": { "command": "/path/to/your/.venv/bin/python", "args": [ "/path/to/codebase-mcp/mcp_server.py" ] } } } ``` **5. Start the FastAPI server:** ```bash # In a separate terminal, navigate to your project directory python main.py /path/to/your/project # Server starts on http://localhost:6789 # You can access the web dashboard at: http://localhost:6789 ``` **6. Use with Claude Desktop:** - Restart Claude Desktop - Start chatting - Claude now has access to 13+ MCP tools for codebase management! --- ## 🎯 Key Features ### πŸ” **Semantic Code Search** - AI-powered code understanding with local embeddings - Multi-language support (Python, JavaScript, TypeScript) - Symbol-level indexing (functions, classes, interfaces) - Fuzzy search and exact matching modes ### 🧠 **Persistent Memory System** - Remember context across chat sessions - Categorize learnings: progress, mistakes, solutions, architecture - Semantic memory search with importance scoring - Never repeat the same mistake twice ### 🌿 **Session-Based Git Workflow** - Isolated development branches for each feature - Automatic commit tracking in `.codebase` directory - Separate from user's `.git` - track AI changes independently - Auto-merge support with quality gates ### ✍️ **Intelligent Code Writing** - **Write Tool**: Create new files with auto-formatting and quality scoring - **Edit Tool**: AI-assisted editing with Gemini integration (inspired by Cursor) - **Quality Gates**: Auto-commit only when code quality β‰₯ 80% - **Dependency Checking**: Prevent code duplication and missing imports ### 🎨 **Auto-Formatting** - **Python**: Black + Ruff (PEP 8 compliant) - **TypeScript/JavaScript**: Prettier + ESLint - **Quality Scoring**: Automatic code quality assessment - **Error Recovery**: Intelligent retry with corrections ### πŸ“Š **Project Intelligence** - Real-time codebase analysis - File structure visualization - Dependency tracking - Symbol extraction and indexing --- ## πŸ—οΈ Architecture ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Claude Desktop β”‚ User interacts via chat β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ MCP Protocol (stdio) ↓ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ MCP Server β”‚ 13+ Tools (proxy layer) β”‚ (mcp_server.py)β”‚ Lightweight, fast β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ HTTP/REST ↓ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ FastAPI Server β”‚ Port 6789 (main.py) β”‚ Core Engine β”‚ 40+ API endpoints β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” ↓ ↓ ↓ ↓ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚Semanticβ”‚ β”‚Memoryβ”‚ β”‚ Git β”‚ β”‚Code Tools β”‚ β”‚ Search β”‚ β”‚Systemβ”‚ β”‚Manager β”‚ β”‚ Pipeline β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ↓ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Local Storage β”‚ β”‚ β€’ FAISS (vectors) β”‚ β”‚ β€’ SQLite (metadata) β”‚ β”‚ β€’ .codebase (git) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` **Privacy Note:** All processing is local except the edit tool, which uses Google's free Gemini API for AI-assisted code editing. Only the edited file is sent to Gemini - no project context or history. ![View Detailed Architecture Diagram](./docs/architecture.png) --- ## πŸ› οΈ Available Tools Codebase MCP provides **13 specialized MCP tools** for comprehensive development automation: | Tool | Purpose | Key Features | |------|---------|--------------| | `session_tool` | Manage dev sessions | Create branches, auto-commit, merge | | `memory_tool` | Store/retrieve knowledge | Persistent context, semantic search | | `git_tool` | Git operations | Status, diff, log, commit, branches | | `write_tool` | Intelligent file creation | Auto-format, quality scoring, dependency check | | `edit_file` | AI-assisted editing | Gemini-powered, error recovery, format validation | | `search_tool` | Semantic code search | 4 modes: semantic, fuzzy, text, symbol | | `read_code_tool` | Smart code reading | Symbol-level, line ranges, whole file | | `project_context_tool` | Project analysis | Structure, dependencies, overview | | `list_directory_tool` | Directory exploration | Tree view, metadata, gitignore support | | `code_analysis_tool` | Code quality checks | Syntax, linting, imports, dependencies | | `list_file_symbols_tool` | Symbol extraction | Functions, classes, interfaces | | `read_symbol_from_database` | DB symbol lookup | Fast indexed retrieval | | `project_structure_tool` | Project visualization | Enhanced tree with stats | --- ## πŸ“ˆ Performance - **Semantic Search:** Sub-second response for typical codebases - **Memory Footprint:** ~100MB for medium projects (<20k lines) - **Indexing Speed:** ~30 seconds for 10k lines initial index - **Edit Operations:** 5-15 seconds (Gemini API + formatting) - **Optimal Project Size:** <20,000 lines (tested and verified) **Note:** Edit tool can be slow due to Gemini API latency and code formatting. Claude Desktop may timeout on very large edits (use smaller, focused edits). --- ## πŸŽ“ Usage Examples ### Creating a New Feature ``` User: "Create a FastAPI endpoint for user authentication with JWT tokens" Claude: βœ… Searching for existing auth patterns... βœ… Creating session: feat/user-auth βœ… Writing authentication.py with JWT implementation βœ… Auto-formatted with Black + Ruff βœ… Quality score: 95% - Auto-committed βœ… Storing solution in memory ``` ### Refactoring Code ``` User: "Refactor the user service to use dependency injection" Claude: βœ… Reading current user service implementation βœ… Searching for DI patterns in codebase βœ… Editing with AI assistance (Gemini) βœ… Validating changes with quality gates βœ… Session: refactor/user-di ready for review ``` ### Memory-Driven Development ``` User: "Continue working on the payment integration" Claude: βœ… Loading memory context... βœ… Found previous progress: Stripe API setup complete βœ… Found previous mistake: Don't use synchronous requests in async endpoints βœ… Continuing from last checkpoint... ``` --- ## πŸ” Privacy & Security ### Privacy-First Design - **Local Embeddings**: AllMiniLM-L6-v2 runs entirely on your machine - **Local Processing**: FAISS vector store, SQLite metadata - all local - **No Cloud Dependencies**: Except for Gemini API (edit tool only) ### Gemini API Usage - **Scope**: Only `edit_file` tool uses Gemini - **Data Sent**: Only the file being edited (no project context) - **Alternative**: Contributors can add local LLM support (GPU required) - **Cost**: Free tier (15 RPM, 250K TPM, 1K RPD) ### Security Best Practices - Never commit `.env` with API keys - Use `.gitignore` for sensitive files - Review AI-generated code before production deployment - Keep dependencies updated --- ## 🀝 Contributing We welcome contributions! This project was built to be community-driven and extensible. **Priority Areas:** - 🌐 **Language Support**: Add Java, Go, Rust, PHP, etc. - 🧠 **Local LLM Integration**: Replace Gemini with local models - πŸ” **Search Improvements**: Enhanced semantic algorithms - πŸ“Š **UI/UX**: Improve web dashboard - ⚑ **Performance**: Optimization for larger codebases **See [CONTRIBUTING.md](./CONTRIBUTING.md) for detailed guidelines.** --- ## πŸ“„ License This project is licensed under the **Apache License 2.0** - see [LICENSE](./LICENSE) file for details. **Credits:** - Edit tool techniques inspired by [Cursor](https://cursor.sh/) - Built with [Claude Sonnet 4 and 4.5](https://www.anthropic.com/) - Powered by [Model Context Protocol](https://modelcontextprotocol.io) --- ## πŸ—ΊοΈ Roadmap **Current Version: v1.0.0-beta** **Upcoming Features:** - Community-driven enhancements - More language support - Local LLM alternatives - Performance optimizations - Advanced prompt engineering templates --- ## πŸ“ž Support - πŸ“– **Documentation**: https://danyqe.github.io/codebase-mcp/ - πŸ› **Issues**: https://github.com/danyQe/codebase-mcp/issues - πŸ’¬ **Discussions**: https://github.com/danyQe/codebase-mcp/discussions - 🌟 **Star this repo** if you find it useful! --- ## πŸŽ‰ Acknowledgments Special thanks to: - **Anthropic** for Claude and the Model Context Protocol - **Google** for the free Gemini API - **Cursor team** for pioneering AI-assisted editing techniques - **Open source community** for making this possible --- **Made with ❀️ by developers, for developers** *Stop paying for coding assistants. Start building with your own LLM.*