claude-context
Enables Claude to index and retrieve context from codebases using self-hosted Milvus for semantic search, with hardened reliability and security for production use.
README
@lbruton/claude-context
Actively maintained fork of zilliztech/claude-context — hardened for self-hosted Milvus deployments.
Why this fork?
The upstream @zilliz/claude-context-mcp targets Zilliz Cloud. When used with self-hosted Milvus it has several issues:
- No fetch/gRPC timeout — hangs indefinitely on
DEADLINE_EXCEEDED - Zilliz Cloud fallback — silently falls back to cloud on any connection error, masking local Milvus failures
- No retry logic — a single transient failure aborts the entire indexing run
- No error differentiation — timeout vs auth vs connection failure all look the same
- Carries unused packages — chrome extension, VS Code extension, and evaluation suite add attack surface without value for MCP-only deployments
- Ignore file accumulation —
.dockerignore,.npmignoreetc. loaded alongside.gitignore, causing patterns like*.mdto bleed across repos indexed in the same session
This fork strips it down to core + MCP server, patches all known issues, and publishes to @lbruton/ on npm.
Changes from upstream
Reliability (CC-1)
- Removed Zilliz Cloud fallback — failed Milvus connections surface as errors immediately, no silent cloud redirect
- Retry with exponential backoff — transient
DEADLINE_EXCEEDEDand connection errors retry automatically before failing - Health check on startup — Milvus connectivity verified at server init with a clear error if unreachable
- 30s fetch + gRPC timeouts — no more indefinite hangs on REST or gRPC calls
- Hardened snapshot validation — safety guards prevent corrupted state files from breaking subsequent runs
Indexing correctness (CC-2 — v0.1.13)
- Allowlist for ignore files — only
.gitignoreand.contextignoreare loaded;.dockerignore,.npmignore, and other tool-specific files are excluded. Prevents patterns like*.mdfrom a Docker ignore file bleeding into unrelated repos indexed in the same session. - Negation line filtering —
!-prefixed lines in.gitignoreare stripped rather than passed as positive rules to the glob engine, preventing false exclusions.
Cleaner MCP startup (CC-3 — v0.1.13)
- Removed debug logs —
[DEBUG]lines that dumped environment variable names (including API key presence) to stderr on every startup have been removed fromconfig.ts.
Security hardening (v0.1.8)
- Removed unused packages — chrome extension, VS Code extension, and
evaluation/benchmark suite eliminated along with their vulnerable dependency trees - Patched all dependencies — 67 audit vulnerabilities resolved (0 remaining)
- pnpm overrides for transitive deps pinned by upstream packages
- Codacy SCA/SAST clean —
.codacy.ymlconfigured, false positives suppressed
Scope
- Rebranded to
@lbruton/npm scope —@lbruton/claude-context-core+@lbruton/claude-context-mcp - Lean monorepo — only
packages/coreandpackages/mcpremain in the workspace
Installation (Claude Code MCP)
In ~/.claude/.mcp.json:
{
"mcpServers": {
"claude-context": {
"command": "npx",
"args": ["-y", "@lbruton/claude-context-mcp@latest"],
"env": {
"OPENAI_API_KEY": "sk-...",
"EMBEDDING_PROVIDER": "OpenAI",
"EMBEDDING_MODEL": "text-embedding-3-small",
"MILVUS_ADDRESS": "192.168.1.81:19530"
},
"startupTimeoutMs": 30000
}
}
}
Environment Variables
| Variable | Required | Description |
|---|---|---|
MILVUS_ADDRESS |
Yes | Milvus gRPC endpoint — bare host:port (e.g., 192.168.1.81:19530) |
OPENAI_API_KEY |
Yes* | API key for OpenAI embeddings |
EMBEDDING_PROVIDER |
No | OpenAI (default), VoyageAI, Gemini, Ollama |
EMBEDDING_MODEL |
No | Model name (default: text-embedding-3-small) |
MILVUS_TOKEN |
No | Authentication token for Milvus (if auth enabled) |
VOYAGEAI_API_KEY |
No | Required when EMBEDDING_PROVIDER=VoyageAI |
GEMINI_API_KEY |
No | Required when EMBEDDING_PROVIDER=Gemini |
OLLAMA_HOST |
No | Ollama server host (default: http://127.0.0.1:11434) |
OLLAMA_MODEL |
No | Ollama model name (alternative to EMBEDDING_MODEL for Ollama) |
*Required when using OpenAI embeddings (default).
Custom ignore patterns
By default only .gitignore and .contextignore are loaded. To exclude files or directories from indexing without modifying your .gitignore, add a .contextignore file at the root of the codebase:
# .contextignore
dist/
*.generated.ts
secrets/
Local Milvus setup
This fork is designed for local Milvus Standalone. Run Milvus via Docker:
docker compose -f docker-compose-milvus.yml up -d
Or point MILVUS_ADDRESS at an existing Milvus instance on your network.
Building from source
pnpm install
pnpm build:core
pnpm build:mcp
Publishing
pnpm release:core
pnpm release:mcp
License
MIT — same as upstream.
Upstream
Original project by Zilliz: zilliztech/claude-context. This fork diverges in scope (MCP-only, self-hosted Milvus) but the core indexing engine and MCP protocol implementation remain theirs.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.