claude-context-local
A local-first MCP server for indexing and searching codebases using PostgreSQL and Ollama embeddings, ensuring complete privacy and zero API costs.
README
claude-context-local
Project Philosophy: This project maintains the full history of the original claude-context for transparency and attribution, but represents a divergent branch focused on privacy and local operation. While the original continues toward cloud integration, we're committed to a 100% local, privacy-first approach. Both projects serve different needs in the ecosystem.
A local-first implementation of claude-context MCP server that replaces cloud dependencies with local alternatives for complete privacy and zero API costs.
🚀 Key Features
- 100% Local: No external API calls, all processing happens on your machine
- PostgreSQL + pgvector: Replaces Milvus/Zilliz Cloud with local PostgreSQL
- Ollama Embeddings: Uses free, open-source models instead of OpenAI
- Privacy-First: Your code never leaves your machine
- Zero API Costs: No subscription fees or usage charges
- Multimodal Support: Nomic embedding model supports text and images
⚡ Quick Start
Prerequisites
- Install PostgreSQL and pgvector:
brew install postgresql@14 pgvector
brew services start postgresql@14
- Install and configure Ollama:
brew install ollama
ollama serve # Start in a separate terminal
ollama pull DC1LEX/nomic-embed-text-v1.5-multimodal
- Setup database:
psql -U postgres -c "CREATE DATABASE embeddings;"
psql -U postgres -d embeddings -c "CREATE EXTENSION IF NOT EXISTS vector;"
Installation
# Clone the repository
git clone https://github.com/MikeO-AI/claude-context-local.git
cd claude-context-local
# Install dependencies
pnpm install
# Build the project
pnpm build
# Test the integration
node test-postgres.js
Running the MCP Server
Method 1: Direct Installation (Recommended)
# First, validate your setup
node validate-mcp-setup.js
# Start with default settings (PostgreSQL on localhost, Ollama on localhost:11434)
node packages/mcp/dist/index-postgres.js
# Or with custom configuration
POSTGRES_HOST=your-db POSTGRES_PASSWORD=your-pass node packages/mcp/dist/index-postgres.js
Method 2: NPM Package
Install globally from npm:
npm install -g @mikeo-ai/claude-context-local-mcp
claude-context-local-mcp
# Or use with npx (recommended)
npx @mikeo-ai/claude-context-local-mcp@latest
Method 3: Claude MCP Add Command
claude mcp add claude-context-local \
-e EMBEDDING_PROVIDER=Ollama \
-e POSTGRES_DATABASE=embeddings \
-- npx @mikeo-ai/claude-context-local-mcp@latest
For detailed setup instructions, see MCP-SETUP-GUIDE.md
⚙️ Configuration
Claude Code Integration
Add to your Claude Code config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"claude-context-local": {
"command": "node",
"args": ["/absolute/path/to/claude-context-local/packages/mcp/dist/index-postgres.js"],
"env": {
"EMBEDDING_PROVIDER": "Ollama",
"OLLAMA_MODEL": "DC1LEX/nomic-embed-text-v1.5-multimodal",
"OLLAMA_HOST": "http://localhost:11434",
"POSTGRES_HOST": "localhost",
"POSTGRES_PORT": "5432",
"POSTGRES_DATABASE": "embeddings",
"POSTGRES_USER": "postgres",
"POSTGRES_PASSWORD": "postgres"
}
}
}
}
Environment Variables
| Variable | Default | Description |
|---|---|---|
EMBEDDING_PROVIDER |
Ollama |
Embedding provider (Ollama recommended) |
OLLAMA_MODEL |
DC1LEX/nomic-embed-text-v1.5-multimodal |
Ollama model to use |
OLLAMA_HOST |
http://localhost:11434 |
Ollama server URL |
POSTGRES_HOST |
localhost |
PostgreSQL host |
POSTGRES_PORT |
5432 |
PostgreSQL port |
POSTGRES_DATABASE |
embeddings |
Database name |
POSTGRES_USER |
postgres |
Database user |
POSTGRES_PASSWORD |
postgres |
Database password |
🐳 Docker Setup (Optional)
For easier deployment, use Docker Compose:
# docker-compose.yml
version: '3.8'
services:
postgres:
image: pgvector/pgvector:pg16
environment:
POSTGRES_DB: embeddings
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
ollama:
image: ollama/ollama
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
command: serve
volumes:
postgres_data:
ollama_data:
Then:
docker-compose up -d
docker exec -it claude-context-local_ollama_1 ollama pull DC1LEX/nomic-embed-text-v1.5-multimodal
🔧 MCP Tools
add_codebase
Index a codebase directory for semantic search:
add_codebase({
path: "/path/to/your/project"
})
search_codebase
Search through indexed codebases:
search_codebase({
query: "authentication logic",
path: "/path/to/your/project",
limit: 10
})
📊 Comparison with Original
| Feature | Original (Milvus) | Local (PostgreSQL) |
|---|---|---|
| Vector Database | Milvus/Zilliz Cloud | PostgreSQL + pgvector |
| Embeddings | OpenAI/VoyageAI | Ollama (local) |
| Privacy | Data sent to cloud | 100% local |
| Cost | API usage fees | Free |
| Setup | Cloud account required | Local installation |
| Internet | Required | Not required |
| Dimensions | Variable | 768 (configurable) |
🙏 Credits & Attribution
This project is based on claude-context by Zilliz, licensed under the MIT License.
What's Changed
- Replaced Milvus/Zilliz Cloud with PostgreSQL + pgvector
- Replaced OpenAI embeddings with Ollama
- Added multimodal embedding support
- Removed all external API dependencies
- Added comprehensive PostgreSQL implementation
Original Contributors
- Zilliz Team - Original claude-context implementation
- Cheney Zhang - Original author
📚 Documentation
- PostgreSQL Setup Guide - Detailed PostgreSQL configuration
- Test Script - Verify your installation
- Original Documentation - Reference the original project
🔍 Troubleshooting
Common Issues
-
pgvector not found
brew install pgvector psql -U postgres -d embeddings -c "CREATE EXTENSION vector;" -
Ollama connection failed
ollama serve # Start Ollama service -
Model not found
ollama pull DC1LEX/nomic-embed-text-v1.5-multimodal
🗺️ Roadmap
- [ ] SQLite support for simpler setup
- [ ] Additional Ollama model support
- [ ] Web UI for codebase management
- [ ] Incremental indexing
- [ ] Docker one-click deployment
- [ ] Support for more local embedding models
🤝 Contributing
Contributions are welcome! This is a community project aimed at providing a fully local alternative to cloud-based code context solutions.
How to Contribute
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
Areas for Contribution
- Support for additional databases (SQLite, DuckDB)
- More embedding model integrations
- Performance optimizations
- Documentation improvements
- Testing and bug fixes
📄 License
MIT License - see LICENSE for details.
This project includes code from claude-context by Zilliz, also licensed under MIT.
⭐ Star History
If you find this project useful, please consider giving it a star!
Built with ❤️ for the community by MikeO-AI
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。