Skip to main content
Glama

Code Context MCP Server

by fkesheh

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

-
security - not tested
A
license - permissive license
-
quality - not tested

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.

  1. Features
    1. Prerequisites
      1. Installation
        1. Configuration
          1. Using Ollama
        2. Usage
          1. Using with Claude Desktop
        3. Tools
          1. queryRepo
        4. Database Schema
          1. License

            Related MCP Servers

            • A
              security
              A
              license
              A
              quality
              A 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 -
              4
              1
              Apache 2.0
            • A
              security
              F
              license
              A
              quality
              MCP server for managing Git operations on local repositories, allowing users to list repositories, get and create tags, list commits, push tags, and refresh repositories through a standardized interface.
              Last updated -
              6
              3
            • -
              security
              F
              license
              -
              quality
              An 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
            • A
              security
              A
              license
              A
              quality
              An 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 -
              4
              3
              MIT License
              • Apple
              • Linux

            View all related MCP servers

            MCP directory API

            We provide all the information about MCP servers via our MCP API.

            curl -X GET 'https://glama.ai/api/mcp/v1/servers/fkesheh/code-context-mcp'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server