Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

code-context-mcp

MCP.Pizza Chef: fkesheh

The code-context-mcp is an MCP server that provides rich, semantic code context by cloning and processing local git repositories. It splits code into meaningful chunks, generates embeddings using Ollama, and enables semantic search over codebases. It stores data in SQLite and operates independently of GitHub APIs, making it ideal for private or offline code analysis workflows.

Use This MCP server To

Clone and index local git repositories for semantic code search Generate embeddings for code chunks to enable advanced code understanding Perform semantic search across multiple branches and files in repos Store and manage code context data efficiently using SQLite Enable AI-powered code navigation and retrieval in developer tools Support offline or private repository code analysis without GitHub API Integrate with LLMs to provide real-time code context during development

README

Code Context MCP Server

A Model Context Protocol (MCP) server for providing code context from local git repositories. This server allows you to:

  1. Clone git repositories locally
  2. Process branches and files
  3. Generate embeddings for code chunks
  4. 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 repositories
  • branch: Stores information about branches
  • file: Stores information about files
  • branch_file_association: Associates files with branches
  • file_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

code-context-mcp FAQ

How does code-context-mcp handle private repositories?
It clones local git repositories directly, avoiding reliance on GitHub APIs, so private repos can be indexed securely.
What embedding model does code-context-mcp use?
It uses Ollama's embedding models to generate semantic embeddings for code chunks.
What are the system requirements for running code-context-mcp?
Requires Node.js v16+, Git, and Ollama with an embedding model installed.
How is code data stored in code-context-mcp?
Code context and embeddings are stored in a local SQLite database for efficient querying.
Can code-context-mcp perform semantic search across multiple branches?
Yes, it processes branches and files to enable semantic search across the entire repository.
Is an internet connection required to use code-context-mcp?
No, since it works with local git repositories and local embedding models, it can operate offline.
How do I configure repository and data storage locations?
Use environment variables DATA_DIR for SQLite data and REPO_CACHE_DIR for cloned repos.
Can code-context-mcp integrate with other MCP clients or tools?
Yes, it exposes structured code context data that MCP clients can consume for enhanced developer workflows.