mcp-context
Servidor local del Protocolo de Contexto de Modelo (MCP) con búsqueda semántica (RAG) sobre repositorios de código. Expone el contexto de múltiples proyectos a clientes de IA externos — Claude.ai, Gemini, Claude Code — eliminando la necesidad de volver a pasar el contexto manualmente en cada sesión.
Stack: Python · FastMCP · Qdrant · sentence-transformers · Next.js · Docker · Cloudflare Tunnel
Requisitos previos
Asegúrese de que los siguientes elementos estén instalados antes de continuar:
Herramienta | Versión mínima | Comprobación |
Python | 3.11 |
|
Docker | 24.0 |
|
Docker Compose | 2.20 |
|
Node.js | 18.0 |
|
npm | 9.0 |
|
Git | cualquiera |
|
cloudflared | cualquiera |
|
Se requiere una cuenta de Cloudflare con un dominio activo para la conectividad remota (Fase 3).
Related MCP server: mcplens
Instalación
# 1. Clone the repository
git clone https://github.com/ericlimabr/mcp-context.git
cd mcp-context
# 2. Copy the environment variables file
cp .env.example .env
# 3. Run setup — installs Python dependencies via uv and starts Qdrant
make setupNota sobre
GITHUB_TOKEN: El archivo.envincluye una variableGITHUB_TOKENpara acceso de lectura a los repositorios. Para obtener este token, vaya a Settings > Developer settings > Personal access tokens en GitHub. Genere un nuevo token y péguelo en su archivo.env.
Configuración
1. Variables de entorno
Edite el archivo .env creado en el paso anterior:
# Root path where your projects are stored on the machine
PROJECTS_ROOT=/home/your-user/projects
# Access password for the administrative panel
ADMIN_PASSWORD=choose-a-strong-password2. Configurar Cloudflare Tunnel
# Authenticate cloudflared with your Cloudflare account
cloudflared tunnel login
# Create the permanent tunnel
cloudflared tunnel create mcp-context
# Associate with your subdomain (replace yourdomain.com)
cloudflared tunnel route dns mcp-context mcp.yourdomain.comCree cloudflared/config.yml en la raíz del proyecto (este archivo está ignorado por git). Reemplace <id> con el UUID impreso por el comando tunnel create anterior:
tunnel: mcp-context
credentials-file: /home/your-user/.cloudflared/<id>.json
ingress:
- hostname: mcp.yourdomain.com
service: http://localhost:17800
- service: http_status:4043. Crear el frontend
Este paso solo es necesario una vez. Crea el proyecto Next.js y elimina el .git/ interno automáticamente:
make frontend-setup4. Indexar el primer proyecto
Abra el frontend, añada una ruta de proyecto y active la indexación:
make frontend
# Access http://localhost:17801O ejecute el indexador directamente desde la terminal:
make indexEjecución local (desarrollo)
Para iniciar el servidor MCP con recarga automática (recomendado durante el desarrollo):
make devEsto inicia Qdrant, el túnel de Cloudflare y el servidor MCP con la recarga en caliente habilitada. El servidor se reinicia automáticamente con cada cambio de archivo en server/.
Para iniciar todos los servicios en segundo plano (servidor MCP, frontend, túnel, Qdrant):
make server-devServicios disponibles:
Servicio | URL |
Servidor MCP | |
Frontend (admin + dashboard) | |
Qdrant (API) |
Los registros en tiempo real están disponibles en logs/:
tail -f logs/server.log # MCP server
tail -f logs/frontend.log # frontend
tail -f logs/tunnel.log # Cloudflare Tunnel
make qdrant-logs # QdrantPara detener todo:
make stopDespliegue local (todos los servicios en contenedores)
Para ejecutar el proyecto completamente en contenedores — útil para simular el entorno de producción o hacer que todo se inicie junto con Docker:
# First time: build the images
make prod-build
# Start all containers
make prod-up
# Stop everything
make prod-down
# Real-time logs
make prod-logsAdvertencia: asegúrese de que
PROJECTS_ROOTen.envapunte al directorio correcto antes de ejecutarprod-up. El contenedor del servidor MCP monta esa ruta para acceder a los archivos locales.
Comandos make
Comando | Descripción |
| Primera ejecución: instala dependencias mediante uv e inicia Qdrant |
| Crea el proyecto Next.js en |
| Inicia Qdrant + túnel + servidor MCP con recarga automática |
| Inicia todos los servicios en segundo plano |
| Detiene todos los servicios de desarrollo |
| Inicia solo el servidor MCP (puerto 17800) |
| Inicia solo el frontend de Next.js (puerto 17801) |
| Inicia solo el túnel de Cloudflare |
| Ejecuta el trabajador de indexación |
| Inicia Qdrant mediante Docker Compose |
| Detiene Qdrant |
| Registros de Qdrant en tiempo real |
| Construcción de todas las imágenes Docker |
| Inicia todos los contenedores |
| Detiene todos los contenedores |
| Registros de todos los contenedores en tiempo real |
Estructura del repositorio
mcp-context/
├── server/ # MCP Server (FastMCP/SSE, port 17800)
│ ├── main.py # Entrypoint and MCP configuration
│ ├── tools/ # MCP tool definitions (planned)
│ ├── resources/ # MCP resource definitions (planned)
│ └── embeddings.py # Local embedding model loading (planned)
├── indexer/ # Project indexing worker (planned)
│ ├── worker.py # Orchestrates indexing
│ ├── chunker.py # Function-scope chunking
│ └── qdrant_client.py # Qdrant client abstraction
├── apps/
│ └── frontend/ # Next.js app — admin panel + dashboard (port 17801)
│ # Generated by make frontend-setup
├── cloudflared/ # Cloudflare Tunnel config (gitignored)
│ └── config.yml
├── docs/
│ ├── ARCHITECTURE.md # Detailed system architecture
│ ├── DECISIONS.md # Architecture decisions
│ ├── ENDPOINTS.md # Endpoints documentation
│ └── ROADMAP.md # Implementation phases
├── logs/ # Service logs in dev (gitignored)
├── .pids/ # Process PIDs in dev (gitignored)
├── qdrant_data/ # Persisted Qdrant data (gitignored)
├── config.json # Project configuration (gitignored)
├── .env # Environment variables (gitignored)
├── .env.example # Environment variables template
├── docker-compose.yml # Qdrant for development
├── docker-compose.prod.yml # All services for local deploy
├── Makefile # Command shortcuts
├── pyproject.toml # Python project and dependencies (uv)
├── CONTEXT.md # Project context for LLMs
└── README.md # This fileLimitaciones conocidas
El servidor depende de que la máquina local esté encendida para funcionar de forma remota a través del túnel de Cloudflare
El índice de Qdrant refleja el estado del código en el momento de la última indexación — configure un hook
post-commitpara mantener el índice actualizado automáticamente después de cada confirmación (commit)Los archivos binarios, imágenes y activos no se indexan
El modelo de incrustación (
jina-embeddings-v2-base-code, ~160 MB) se descarga automáticamente en la primera ejecución a través desentence-transformers
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/ericlimabr/mcp-context'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
