UNPKG

code-context-mcp

Version:

MCP server for semantic code search powered by MongoDB Atlas Vector Search and Voyage AI embeddings

303 lines (229 loc) 6.82 kB
# code-context-mcp [![npm version](https://img.shields.io/npm/v/code-context-mcp.svg)](https://www.npmjs.com/package/code-context-mcp) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![MCP Compatible](https://img.shields.io/badge/MCP-1.0.0-blue.svg)](https://modelcontextprotocol.io) An MCP (Model Context Protocol) server that provides semantic code search capabilities to AI assistants using MongoDB Atlas Vector Search and Voyage AI embeddings. ## 🚀 Features - **Semantic Code Search**: Find relevant code based on meaning, not just keywords - **MongoDB Atlas Vector Search**: Unified platform for vectors and data - **Voyage AI Embeddings**: State-of-the-art code embeddings (MongoDB exclusive) - **Native Hybrid Search**: Combine vector and text search with MongoDB's $rankFusion - **Real-time Sync**: Automatic updates with MongoDB Change Streams - **Multi-language Support**: TypeScript, JavaScript, Python, Java, Go, Rust, C++ ## 📋 Prerequisites 1. **MongoDB Atlas Account** (Free tier available) - Sign up at: https://www.mongodb.com/cloud/atlas/register - Create a cluster and get your connection string 2. **Voyage AI API Key** (200M tokens free) - Sign up at: https://dash.voyageai.com/ - Get your API key ## 🔧 Installation ### For Claude Desktop ```bash # Install globally npm install -g code-context-mcp # Or use npx (recommended) npx code-context-mcp ``` ### Configuration Add to your Claude Desktop configuration: **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` ```json { "mcpServers": { "code-context": { "command": "npx", "args": ["code-context-mcp"], "env": { "MONGODB_URI": "mongodb+srv://username:password@cluster.mongodb.net/", "VOYAGE_API_KEY": "va_xxx" } } } } ``` ### For Other AI Assistants #### Cursor Add to `~/.cursor/mcp.json`: ```json { "mcpServers": { "code-context": { "command": "npx", "args": ["code-context-mcp"], "env": { "MONGODB_URI": "mongodb+srv://...", "VOYAGE_API_KEY": "va_xxx" } } } } ``` #### Windsurf Add to your Windsurf configuration: ```json { "mcpServers": { "code-context": { "command": "npx", "args": ["code-context-mcp"], "env": { "MONGODB_URI": "mongodb+srv://...", "VOYAGE_API_KEY": "va_xxx" } } } } ``` ## 🛠️ Available Tools The MCP server provides the following tools to AI assistants: ### `index_codebase` Index a codebase for semantic search. ```typescript { "path": "/path/to/project", "name": "my-project" } ``` ### `search_code` Search for code semantically. ```typescript { "projectPath": "/path/to/project", "query": "authentication middleware", "limit": 10, "threshold": 0.7 } ``` ### `get_file_content` Retrieve specific file content. ```typescript { "projectPath": "/path/to/project", "relativePath": "src/auth.ts", "startLine": 10, "endLine": 50 } ``` ### `list_indexed_projects` List all indexed projects. ### `clear_index` Clear the index for a project. ```typescript { "projectPath": "/path/to/project" } ``` ### `get_project_stats` Get statistics about an indexed project. ```typescript { "projectPath": "/path/to/project" } ``` ## ⚙️ Configuration ### Environment Variables | Variable | Description | Required | Default | |----------|-------------|----------|---------| | `MONGODB_URI` | MongoDB Atlas connection string | ✅ | - | | `VOYAGE_API_KEY` | Voyage AI API key | ✅ | - | | `MONGODB_DATABASE` | Database name | ❌ | `code_context` | | `MONGODB_COLLECTION` | Collection name | ❌ | `embeddings` | | `VOYAGE_MODEL` | Voyage AI model | ❌ | `voyage-3.5` | | `BATCH_SIZE` | Embedding batch size | ❌ | `10` | | `MAX_FILE_SIZE` | Max file size (MB) | ❌ | `10` | ### Voyage AI Models | Model | Best For | Performance | |-------|----------|-------------| | `voyage-context-3` | RAG systems, long documents | +14.24% vs OpenAI | | `voyage-3-large` | Highest accuracy | +9.74% vs OpenAI | | `voyage-3.5` | General purpose (default) | +8.26% vs OpenAI | | `voyage-3.5-lite` | High throughput | +6.34% vs OpenAI | | `voyage-code-3` | Source code | Best for code | ## 🏗️ MongoDB Atlas Setup ### 1. Create a Vector Search Index In MongoDB Atlas: 1. Navigate to your cluster 2. Click "Search" → "Create Search Index" 3. Choose "Atlas Vector Search" 4. Use this configuration: ```json { "fields": [{ "type": "vector", "path": "embedding", "numDimensions": 1024, "similarity": "cosine" }] } ``` ### 2. Enable Hybrid Search (Optional) For MongoDB 8.0+, create both vector and text indexes: ```json { "mappings": { "fields": { "embedding": { "type": "knnVector", "dimensions": 1024, "similarity": "cosine" }, "content": { "type": "string", "analyzer": "lucene.standard" } } } } ``` ## 📊 Performance Based on 2025 benchmarks: - **Storage**: 83% less than competitors with int8 quantization - **Accuracy**: Up to 14.24% better retrieval than OpenAI - **Speed**: Native hybrid search 30% faster - **Cost**: 96% storage reduction with binary quantization ## 🔍 Example Usage in Claude Once configured, you can use natural language commands: ``` "Index my TypeScript project at /Users/me/my-project" "Search for authentication middleware in my-project" "Show me the implementation of the UserService class" "Find all database connection code" "What files handle error logging?" ``` ## 🐛 Troubleshooting ### Connection Issues 1. **MongoDB Connection Failed** - Verify your connection string - Check IP whitelist in Atlas - Ensure cluster is running 2. **Voyage AI Authentication Failed** - Verify API key is correct - Check API key has credits 3. **MCP Not Responding** - Check logs in stderr - Verify environment variables - Restart AI assistant ### Debug Mode Set `DEBUG=true` in environment variables for verbose logging: ```json { "env": { "DEBUG": "true", "MONGODB_URI": "...", "VOYAGE_API_KEY": "..." } } ``` ## 🤝 Contributing Contributions are welcome! Please see our [Contributing Guide](https://github.com/mongodb/code-context-mcp/blob/main/CONTRIBUTING.md). ## 📄 License MIT License - see [LICENSE](https://github.com/mongodb/code-context-mcp/blob/main/LICENSE) for details. ## 🔗 Links - [GitHub Repository](https://github.com/mongodb/code-context-mcp) - [MongoDB Atlas](https://www.mongodb.com/atlas) - [Voyage AI](https://voyageai.com) - [Model Context Protocol](https://modelcontextprotocol.io) --- **Built with 💚 by MongoDB and Voyage AI**