claude-context-local

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.

Category
访问服务器

README

claude-context-local

Social Preview

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

  1. Install PostgreSQL and pgvector:
brew install postgresql@14 pgvector
brew services start postgresql@14
  1. Install and configure Ollama:
brew install ollama
ollama serve  # Start in a separate terminal
ollama pull DC1LEX/nomic-embed-text-v1.5-multimodal
  1. 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

📚 Documentation

🔍 Troubleshooting

Common Issues

  1. pgvector not found

    brew install pgvector
    psql -U postgres -d embeddings -c "CREATE EXTENSION vector;"
    
  2. Ollama connection failed

    ollama serve  # Start Ollama service
    
  3. 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

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. 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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选