Servidor MCP de contexto de código
Un servidor de Protocolo de Contexto de Modelo (MCP) para proporcionar contexto de código desde repositorios Git locales. Este servidor permite:
Clonar repositorios git localmente
Ramas y archivos de proceso
Generar incrustaciones para fragmentos de código
Realizar una búsqueda semántica sobre el código
Características
Utiliza repositorios git locales en lugar de la API de GitHub
Almacena datos en una base de datos SQLite
Divide el código en fragmentos semánticos
Genera incrustaciones para fragmentos de código usando Ollama
Proporciona búsqueda semántica sobre el código.
Related MCP server: Git MCP
Prerrequisitos
Node.js (v16+)
Git
Ollama con un modelo de incrustación
Instalación
# Clone the repository
git clone <repository-url>
cd code-context-mcp
# Install dependencies
npm install
# Build the project
npm run buildConfiguración
Establezca las siguientes variables de entorno:
DATA_DIR: Directorio para la base de datos SQLite (predeterminado: '~/.codeContextMcp/data')REPO_CACHE_DIR: Directorio para repositorios clonados (predeterminado: '~/.codeContextMcp/repos')
Usando Ollama
Para realizar incrustaciones más rápidas y potentes, puedes usar Ollama:
# Install Ollama from https://ollama.ai/
# Pull an embedding model (unclemusclez/jina-embeddings-v2-base-code is recommended)
ollama pull unclemusclez/jina-embeddings-v2-base-code
Uso
Uso con Claude Desktop
Agregue la siguiente configuración a su archivo de configuración de Claude Desktop ( claude_desktop_config.json ):
{
"mcpServers": {
"code-context-mcp": {
"command": "/path/to/your/node",
"args": ["/path/to/code-context-mcp/dist/index.js"]
}
}
}Herramientas
El servidor proporciona la siguiente herramienta:
consultaRepo
Clona un repositorio, procesa el código y realiza una búsqueda semántica:
{
"repoUrl": "https://github.com/username/repo.git",
"branch": "main", // Optional - defaults to repository's default branch
"query": "Your search query",
"keywords": ["keyword1", "keyword2"], // Optional - filter results by keywords
"filePatterns": ["**/*.ts", "src/*.js"], // Optional - filter files by glob patterns
"excludePatterns": ["**/node_modules/**"], // Optional - exclude files by glob patterns
"limit": 10 // Optional - number of results to return, default: 10
}El parámetro branch es opcional. Si no se proporciona, la herramienta usará automáticamente la rama predeterminada del repositorio.
El parámetro keywords es opcional. Si se proporciona, los resultados se filtrarán para incluir únicamente los fragmentos que contengan al menos una de las palabras clave especificadas (coincidencia sin distinción entre mayúsculas y minúsculas).
Los parámetros filePatterns y excludePatterns son opcionales. Permiten filtrar los archivos que se procesan y buscan mediante patrones glob (p. ej., **/*.ts para todos los archivos TypeScript).
Esquema de base de datos
El servidor utiliza SQLite con el siguiente esquema:
repository: almacena información sobre los repositoriosbranch: almacena información sobre las ramasfile: almacena información sobre los archivosbranch_file_association: Asocia archivos con ramasfile_chunk: almacena fragmentos de código y sus incrustaciones
Licencia
Instituto Tecnológico de Massachusetts (MIT)
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.