Allows cloning and processing of local git repositories, extracting code context from different branches and files for semantic search.
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
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:
Usage
Using with Claude Desktop
Add the following configuration to your Claude Desktop configuration file (claude_desktop_config.json
):
Tools
The server provides the following tool:
queryRepo
Clones a repository, processes code, and performs semantic search:
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:
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:
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
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
An MCP server that provides semantic search over local git repositories, enabling users to clone repositories, process branches, and search code through vectorized code chunks.
Related MCP Servers
- AsecurityAlicenseAqualityA specialized MCP server for in-depth analysis of git repositories, offering tools for branch overview, time period analysis, file changes, and merge recommendations.Last updated -41Apache 2.0
- -securityFlicense-qualityAn MCP server that enables Git repository operations and GitHub PR workflows, allowing users to manage repositories, create branches, commit changes, and create pull requests through natural language.Last updated -1
- AsecurityAlicenseAqualityAn MCP server that allows users to efficiently search and reference user-configured documents through document listing, grep searching, semantic searching with OpenAI Embeddings, and full document retrieval.Last updated -43MIT License