Code Context MCP Server
Provides code context from local git repositories.
Code Context MCP Server
A Model Context Protocol (MCP) server for providing code context from local git repositories. This server allows you to:
- Clone git repositories locally
- Process branches and files
- Generate embeddings for code chunks
- Perform semantic search over code
Features
- Uses local git repositories instead of GitHub API
- Stores data in SQLite database
- Splits code into semantic chunks
- Generates embeddings for code chunks using Ollama
- Provides semantic search over code
Prerequisites
- Node.js (v16+)
- Git
- Ollama with an embedding model
Installation
# Clone the repository
git clone <repository-url>
cd code-context-mcp
# Install dependencies
npm install
# Build the project
npm run build
Configuration
Set the following environment variables:
DATA_DIR: Directory for SQLite database (default: '~/.codeContextMcp/data')REPO_CACHE_DIR: Directory for cloned repositories (default: '~/.codeContextMcp/repos')
Using Ollama
For faster and more powerful embeddings, you can use Ollama:
# Install Ollama from https://ollama.ai/
# Pull an embedding model (unclemusclez/jina-embeddings-v2-base-code is recommended)
ollama pull unclemusclez/jina-embeddings-v2-base-code
Usage
Using with Claude Desktop
Add the following configuration to your Claude Desktop configuration file (claude_desktop_config.json):
{
"mcpServers": {
"code-context-mcp": {
"command": "/path/to/your/node",
"args": ["/path/to/code-context-mcp/dist/index.js"]
}
}
}
Tools
The server provides the following tool:
queryRepo
Clones a repository, processes code, and performs semantic search:
{
"repoUrl": "https://github.com/username/repo.git",
"branch": "main", // Optional - defaults to repository's default branch
"query": "Your search query",
"keywords": ["keyword1", "keyword2"], // Optional - filter results by keywords
"filePatterns": ["**/*.ts", "src/*.js"], // Optional - filter files by glob patterns
"excludePatterns": ["**/node_modules/**"], // Optional - exclude files by glob patterns
"limit": 10 // Optional - number of results to return, default: 10
}
The branch parameter is optional. If not provided, the tool will automatically use the repository's default branch.
The keywords parameter is optional. If provided, the results will be filtered to only include chunks that contain at least one of the specified keywords (case-insensitive matching).
The filePatterns and excludePatterns parameters are optional. They allow you to filter which files are processed and searched using glob patterns (e.g., **/*.ts for all TypeScript files).
Database Schema
The server uses SQLite with the following schema:
repository: Stores information about repositoriesbranch: Stores information about branchesfile: Stores information about filesbranch_file_association: Associates files with branchesfile_chunk: Stores code chunks and their embeddings
Debugging
MAC Mx Series - ARM Architecture Issues
When installing better-sqlite3 on Mac M-series chips (ARM architecture), if you encounter errors like "mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')", you need to ensure the binary matches your architecture. Here's how to resolve this issue:
# Check your Node.js architecture
node -p "process.arch"
# If it shows 'arm64', but you're still having issues, try:
npm rebuild better-sqlite3 --build-from-source
# Or for a clean install:
npm uninstall better-sqlite3
export npm_config_arch=arm64
export npm_config_target_arch=arm64
npm install better-sqlite3 --build-from-source
If you're using Rosetta, make sure your entire environment is consistent. Your error shows x86_64 binaries being built but your system needs arm64. For persistent configuration, add to your .zshrc or .bashrc:
export npm_config_arch=arm64
export npm_config_target_arch=arm64
Testing Ollama Embeddings
curl http://localhost:11434/api/embed -d '{"model":"unclemusclez/jina-embeddings-v2-base-code","input":"Llamas are members of the camelid family"}' curl http://127.0.01:11434/api/embed -d '{"model":"unclemusclez/jina-embeddings-v2-base-code","input":"Llamas are members of the camelid family"}' curl http://[::1]:11434/api/embed -d '{"model":"unclemusclez/jina-embeddings-v2-base-code","input":"Llamas are members of the camelid family"}'
License
MIT
Related Servers
Scout Monitoring MCP
sponsorPut performance and error data directly in the hands of your AI assistant.
Alpha Vantage MCP Server
sponsorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
GDB
A GDB/MI protocol server based on the MCP protocol, providing remote application debugging capabilities with AI assistants.
Fal.ai OpenAI Image
A server for the Fal.ai text-to-image API, powered by OpenAI's image model. Requires Fal.ai and OpenAI API keys.
lenderwiki
Query 13,000+ US consumer lenders with eligibility criteria, rates, CFPB complaints, and ratings. Find matching lenders by borrower profile, get full profiles, compare lenders, and check eligibility.
FluidMCP CLI
A command-line tool to run MCP servers from a single file, with support for automatic dependency resolution, environment setup, and package installation from local or S3 sources.
Remote MCP Server (Authless)
An example of a remote MCP server without authentication, deployable on Cloudflare Workers.
Kite Trading MCP Server
An MCP server for the Zerodha Kite Connect API, featuring fully automated authentication without manual token handling.
MCP Storybook Image Generator
Generate storybook images for children's stories using Google's Gemini AI.
Dify Plugin Agent
An agent that supports Function Calling and ReAct for the MCP protocol via HTTP with SSE or Streamable HTTP transport.
FastAPI MCP Server
A MCP server implementation using the FastAPI framework, configurable via environment variables.
Design System Server
An MCP server for accessing and managing design system documentation from a GitHub repository.