Provides code context from local git repositories.
A Model Context Protocol (MCP) server for providing code context from local git repositories. This server allows you to:
# Clone the repository
git clone <repository-url>
cd code-context-mcp
# Install dependencies
npm install
# Build the project
npm run build
Set the following environment variables:
DATA_DIR
: Directory for SQLite database (default: '~/.codeContextMcp/data')REPO_CACHE_DIR
: Directory for cloned repositories (default: '~/.codeContextMcp/repos')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
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"]
}
}
}
The server provides the following tool:
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).
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 embeddingsWhen 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
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"}'
MIT
Monitors shadow-cljs builds and provides real-time build status updates.
A server for generating version 7 universally unique identifiers (UUIDv7).
Analyze large codebases and document collections using high-context models via OpenRouter, OpenAI, or Google AI -- very useful, e.g., with Claude Code
An MCP server that dynamically loads tools from an external JSON file configured via an environment variable.
Quickly retrieve SVGs using the Iconify API, with no external data files required.
A Python client for connecting to Model Context Protocol (MCP) servers, supporting local scripts and npx packages.
A server for a structured, LLM-based coding workflow, from feature clarification and planning to phased development and progress tracking.
Work on dataset metadata with MLCommons Croissant validation and creation.
Provides interactive user feedback and command execution for AI-assisted development.
Interacting with Phabricator API