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.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。