Skip to main content
Glama

Enterprise Code Search MCP Server

Enterprise Code Search MCP Server

A powerful Model Context Protocol (MCP) server for semantic code search with shared vector database. Supports both OpenAI and Ollama for embeddings, and can index local projects or Git repositories.

šŸš€ Features

  • Semantic code search using AI embeddings

  • Dual provider support: OpenAI or Ollama (local, private)

  • Flexible indexing: Local projects or Git repositories

  • Shared vector database with ChromaDB

  • Multi-project management: Handle multiple projects simultaneously

  • Automatic project structure analysis

  • Similar code search based on code snippets

  • Enterprise-ready: Private, secure, self-hosted

šŸ“‹ Requirements

  • Node.js 18+

  • Docker and Docker Compose

  • Git (for repository indexing)

šŸ› ļø Quick Start

1. Clone the repository

git clone https://github.com/your-username/semantic-context-mcp.git cd semantic-context-mcp

2. Install dependencies

npm install

3. Configure environment

cp .env.example .env # Edit .env with your configuration

4. Start services

# Start ChromaDB and Ollama docker-compose up -d # Wait for Ollama to download models docker-compose logs -f ollama-setup

5. Build and run

npm run build npm start

āš™ļø Configuration

Using Ollama (Recommended for Enterprise)

# .env EMBEDDING_PROVIDER=ollama OLLAMA_HOST=http://localhost:11434 OLLAMA_MODEL=nomic-embed-text CHROMA_HOST=localhost CHROMA_PORT=8000

Using OpenAI

# .env EMBEDDING_PROVIDER=openai OPENAI_API_KEY=your-api-key OPENAI_MODEL=text-embedding-3-small

šŸ”§ Claude Desktop Integration

To use this MCP server with Claude Desktop, add to your claude_desktop_config.json:

{ "mcpServers": { "enterprise-code-search": { "command": "node", "args": ["/path/to/semantic-context-mcp/dist/index.js"], "env": { "EMBEDDING_PROVIDER": "ollama", "OLLAMA_HOST": "http://localhost:11434", "OLLAMA_MODEL": "nomic-embed-text", "CHROMA_HOST": "localhost", "CHROMA_PORT": "8000", "COMPANY_NAME": "YourCompany" } } } }

šŸŽÆ Usage Examples

1. Index a local project

Index my local project at /home/user/my-app with the name "frontend-app"

2. Search in code

Search for "main application function" in all indexed projects

3. Find similar code

Find code similar to: ```python def authenticate_user(username, password): return check_credentials(username, password)

4. Analyze project structure

Analyze the structure of project "frontend-app"

šŸ› ļø Available Tools

Tool

Description

index_local_project

Index a local directory

search_codebase

Semantic search in code

list_indexed_projects

List all indexed projects

get_embedding_provider_info

Get embedding provider information

šŸ“Š Example Queries

Functional searches

  • "Where is the authentication logic?"

  • "Functions that handle database operations"

  • "Environment variable configuration"

  • "Unit tests for the API"

Code analysis

  • "What design patterns are used?"

  • "Most complex functions in the project"

  • "Error handling in the code"

Technology-specific search

  • "Code using React hooks"

  • "PostgreSQL queries"

  • "Docker configuration"

šŸ”§ Advanced Configuration

Recommended Ollama Models

# For code embeddings ollama pull nomic-embed-text # Best for code (384 dims) ollama pull all-minilm # Lightweight alternative (384 dims) ollama pull mxbai-embed-large # Higher precision (1024 dims)

File Patterns

The server supports extensive file type recognition including:

  • Programming Languages: Python, JavaScript/TypeScript, Java, C/C++, Go, Rust, PHP, Ruby, Swift, Kotlin, Scala, and more

  • Web Technologies: HTML, CSS, SCSS, Vue, Svelte

  • Configuration: JSON, YAML, TOML, Docker, Terraform

  • Documentation: Markdown, reStructuredText, AsciiDoc

  • Database: SQL files

Performance Tuning

# Maximum chunk size (characters) MAX_CHUNK_SIZE=1500 # Maximum file size (KB) MAX_FILE_SIZE=500 # Batch size for indexing BATCH_SIZE=100

šŸ¢ Enterprise Deployment

Option 1: Dedicated Server

# On enterprise server docker-compose up -d

Option 2: Network Deployment

# Configure for network access CHROMA_HOST=192.168.1.100 OLLAMA_HOST=http://192.168.1.100:11434

šŸ”’ Security Considerations

Key Benefits

  1. Private Data: Ollama keeps everything local

  2. No External APIs: When using Ollama, no data leaves your network

  3. Self-hosted: Full control over your code and embeddings

  4. Isolated Environment: Docker containers provide isolation

Security Best Practices

# Restrict ChromaDB access CHROMA_SERVER_HOST=127.0.0.1 # Localhost only # Use HTTPS for production OLLAMA_HOST=https://ollama.company.com

šŸ“ˆ Monitoring & Troubleshooting

Useful Logs

# View indexing logs docker-compose logs -f enterprise-mcp-server # ChromaDB performance docker-compose logs -f chromadb # Monitor Ollama curl http://localhost:11434/api/tags

Common Issues

Ollama not responding:

curl http://localhost:11434/api/tags # If it fails: docker-compose restart ollama

ChromaDB slow:

# Check disk space docker system df # Clean if necessary docker system prune

Poor embedding quality:

  • Try different model: all-minilm vs nomic-embed-text

  • Adjust chunk size

  • Verify source file quality

šŸ¤ Collaborative Workflow

Typical Enterprise Workflow

  1. DevOps indexes main projects

  2. Developers search code using Claude

  3. Automatic updates via CI/CD

  4. Code analysis for code reviews

Best Practices

  • Index after important merges

  • Use descriptive project names

  • Maintain project-specific search filters

  • Document naming conventions

šŸ› ļø Development

Project Structure

src/ ā”œā”€ā”€ index.ts # Main MCP server └── http-server.ts # HTTP server variant scripts/ # Setup and utility scripts docker-compose.yml # Service orchestration package.json # Dependencies and scripts

Available Scripts

npm run build # Compile TypeScript npm run dev # Development mode npm run start # Production mode npm run clean # Clean build directory

šŸ“š API Reference

The MCP server implements the standard Model Context Protocol with these specific tools:

  • index_local_project: Index local directories with configurable file patterns

  • search_codebase: Semantic search with project filtering and similarity scoring

  • list_indexed_projects: Enumerate all indexed projects with metadata

  • get_embedding_provider_info: Get current provider status and configuration

Each tool includes detailed JSON schema with examples and validation.

šŸ¤– Recommended AI Models

For embeddings (Ollama)

  • nomic-embed-text: Optimized for code

  • all-minilm: Balanced, fast

  • mxbai-embed-large: High precision

For embeddings (OpenAI)

  • text-embedding-3-small: Cost-effective

  • text-embedding-3-large: Higher precision

🐳 Docker Support

The project includes a complete Docker setup:

  • ChromaDB: Vector database for embeddings

  • Ollama: Local embedding generation

  • PostgreSQL: Optional metadata storage

All services are orchestrated with Docker Compose for easy deployment.

ā˜• Support

If this project helps you with your development workflow, consider supporting it:

Buy Me A Coffee

šŸ“„ License

MIT License - see LICENSE file for details.

šŸ¤ Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project

  2. Create your feature branch (git checkout -b feature/AmazingFeature)

  3. Commit your changes (git commit -m 'Add some AmazingFeature')

  4. Push to the branch (git push origin feature/AmazingFeature)

  5. Open a Pull Request

šŸ“ž Support & Issues

Deploy Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/damian-pramparo/semantic-context-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server