Skip to main content
Glama
Bek85
by Bek85

Code Context MCP

A multi-provider embedding MCP server with local Milvus for semantic code search. Works with Claude Code, Cursor, Windsurf, and other MCP-compatible IDEs.

Features

  • Multi-provider embeddings: Local Qwen (free), OpenAI, or DeepSeek

  • Dimension mismatch detection: Warns before indexing if dimensions don't match

  • Zero cloud dependency: Use local Qwen for completely offline operation

  • Dual deployment: Docker or local with pnpm

Related MCP server: mcp-context

Architecture

┌─────────────────┐     ┌────────────────────┐     ┌─────────────────┐
│  Your Codebase  │────▶│  Embedding Provider │────▶│  Local Milvus   │
│                 │     │  (Qwen/OpenAI/etc) │     │  (Vector Store) │
└─────────────────┘     └────────────────────┘     └─────────────────┘
         │                                                  │
         │         ┌────────────────────────────┐          │
         └────────▶│     code-context-mcp       │◀─────────┘
                   │       (MCP Server)         │
                   └────────────────────────────┘
                            │
              ┌─────────────┴─────────────┐
              ▼             ▼             ▼
        Claude Code      Cursor      Windsurf

Quick Start

# 1. Configure
cp .env.example .env
# Edit .env with your settings

# 2. Start all services
docker-compose up -d

# 3. Verify (~60 seconds to initialize)
curl http://localhost:9091/healthz   # Milvus
curl http://localhost:3100/health    # MCP Server

IDE Configuration (Docker):

{
  "mcpServers": {
    "code-context": {
      "url": "http://localhost:3100/sse"
    }
  }
}

Option B: Local Development

# 1. Start only Milvus in Docker
docker-compose up -d milvus

# 2. Install and build
pnpm install
pnpm build

# 3. Configure IDE (see below)

IDE Configuration (Local):

{
  "mcpServers": {
    "code-context": {
      "command": "node",
      "args": ["/path/to/code-context-mcp/dist/index.js"],
      "env": {
        "EMBEDDING_PROVIDER": "qwen-local",
        "QWEN_LOCAL_BASE_URL": "http://172.18.35.123:8001/v1",
        "QWEN_LOCAL_MODEL": "Qwen3-Embedding-4B",
        "MILVUS_ADDRESS": "127.0.0.1:19530"
      }
    }
  }
}

MCP Tools

Tool

Description

index_codebase

Index a directory into Milvus

search_code

Semantic search across indexed code

check_dimensions

Check provider/collection dimension compatibility

drop_collection

Delete a collection (for re-indexing)

get_provider_info

Show current provider configuration

Usage:

index_codebase /path/to/your/project
search_code "authentication logic"
check_dimensions

Embedding Providers

Provider

Model

Dimensions

Cost

qwen-local

Qwen3-Embedding-4B

2560

Free

openai

text-embedding-3-small

1536

$0.02/1M tokens

openai

text-embedding-3-large

3072

$0.13/1M tokens

deepseek

deepseek-embedding-v2

768

Paid

Environment Variables

Variable

Description

Default

EMBEDDING_PROVIDER

openai, qwen-local, deepseek

openai

MILVUS_ADDRESS

Milvus server address

127.0.0.1:19530

DIMENSION_CHECK_ENABLED

Check dimensions before indexing

true

MCP_TRANSPORT

stdio or http

stdio

MCP_PORT

HTTP port (http mode)

3100

Provider-specific:

Provider

Variables

Local Qwen

QWEN_LOCAL_BASE_URL, QWEN_LOCAL_MODEL

OpenAI

OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_EMBEDDING_MODEL

DeepSeek

DEEPSEEK_API_KEY, DEEPSEEK_BASE_URL, DEEPSEEK_EMBEDDING_MODEL

Dimension Mismatch Handling

Different providers produce different dimensions. Switching providers requires re-indexing:

drop_collection code_context confirm=true
index_codebase /path/to/project

Docker Commands

docker-compose up -d              # Start all
docker-compose up -d milvus       # Start only Milvus
docker-compose logs -f            # View logs
docker-compose down               # Stop all
docker-compose down -v            # Reset (delete data)
docker-compose build --no-cache   # Rebuild

Local Development

pnpm install    # Install dependencies
pnpm build      # Build TypeScript
pnpm dev        # Run in dev mode
pnpm start      # Run production build

Project Structure

code-context-mcp/
├── docker-compose.yml      # Milvus + MCP server
├── Dockerfile
├── package.json
├── tsconfig.json
├── .env.example
└── src/
    ├── index.ts            # Entry point (stdio + HTTP)
    ├── config.ts           # Configuration
    ├── providers/          # Embedding providers
    │   ├── base.ts
    │   ├── openai.ts
    │   ├── qwen-local.ts
    │   └── deepseek.ts
    ├── milvus/             # Milvus integration
    │   ├── client.ts
    │   └── dimension-checker.ts
    └── tools/              # MCP tools
        ├── index-codebase.ts
        ├── search-code.ts
        └── check-dimensions.ts

License

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A high-performance MCP server for semantic search and codebase indexing using the Qdrant vector database. It features optimized embedding pipelines, AST-aware chunking, and git metadata enrichment for fast, privacy-focused local or remote search.
    15 npm
    11
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Local MCP server that provides semantic search (RAG) over code repositories, enabling AI clients like Claude and Gemini to access project context without manual re-upload.
    -
  • A
    license
    B
    quality
    C
    maintenance
    Persistent memory MCP server for Claude Code, Cursor, and GitHub Copilot. Semantic search, Git sync, project-based, Persistent memory MCP server for Claude Code, Cursor, and GitHub Copilot. Semantic search, Git sync, project-based organization, and team collaboration via Model Context Protocol.
    69
    171 npm
    2
    MIT