Skip to main content
Glama
ericlimabr

mcp-context

by ericlimabr

mcp-context

Локальный сервер Model Context Protocol (MCP) с семантическим поиском (RAG) по репозиториям кода. Предоставляет контекст нескольких проектов внешним ИИ-клиентам — Claude.ai, Gemini, Claude Code — устраняя необходимость вручную передавать контекст при каждой сессии.

Стек: Python · FastMCP · Qdrant · sentence-transformers · Next.js · Docker · Cloudflare Tunnel


Предварительные требования

Перед продолжением убедитесь, что установлены следующие инструменты:

Инструмент

Минимальная версия

Проверка

Python

3.11

python3 --version

Docker

24.0

docker --version

Docker Compose

2.20

docker compose version

Node.js

18.0

node --version

npm

9.0

npm --version

Git

любая

git --version

cloudflared

любая

cloudflared --version

Для удаленного подключения (этап 3) требуется учетная запись Cloudflare с активным доменом.


Related MCP server: MCP Codebase RAG Server

Установка

# 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 setup

Примечание о GITHUB_TOKEN: Файл .env содержит переменную GITHUB_TOKEN для доступа к репозиториям на чтение. Чтобы получить этот токен, перейдите в GitHub Settings > Developer settings > Personal access tokens. Создайте новый токен и вставьте его в ваш файл .env.


Конфигурация

1. Переменные окружения

Отредактируйте файл .env, созданный на предыдущем шаге:

# 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-password

2. Настройка 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.com

Создайте cloudflared/config.yml в корне проекта (этот файл игнорируется git). Замените <id> на UUID, выведенный командой tunnel create выше:

tunnel: mcp-context
credentials-file: /home/your-user/.cloudflared/<id>.json

ingress:
  - hostname: mcp.yourdomain.com
    service: http://localhost:17800
  - service: http_status:404

3. Создание фронтенда

Этот шаг требуется выполнить только один раз. Он создает проект Next.js и автоматически удаляет внутреннюю папку .git/:

make frontend-setup

4. Индексация первого проекта

Откройте фронтенд, добавьте путь к проекту и запустите индексацию:

make frontend
# Access http://localhost:17801

Или запустите индексатор напрямую из терминала:

make index

Локальный запуск (разработка)

Для запуска MCP-сервера с автоматической перезагрузкой (рекомендуется при разработке):

make dev

Это запустит Qdrant, Cloudflare Tunnel и MCP-сервер с включенной горячей перезагрузкой. Сервер автоматически перезапускается при каждом изменении файла в server/.

Для запуска всех служб в фоновом режиме (MCP-сервер, фронтенд, туннель, Qdrant):

make server-dev

Доступные службы:

Служба

URL

MCP Server

http://localhost:17800

Frontend (admin + dashboard)

http://localhost:17801

Qdrant (API)

http://localhost:17810

Логи в реальном времени доступны в logs/:

tail -f logs/server.log    # MCP server
tail -f logs/frontend.log  # frontend
tail -f logs/tunnel.log    # Cloudflare Tunnel
make qdrant-logs           # Qdrant

Для остановки всего:

make stop

Локальное развертывание (все службы в контейнерах)

Для запуска проекта полностью в контейнерах — полезно для имитации производственной среды или одновременного запуска всего через 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-logs

Внимание: перед запуском prod-up убедитесь, что PROJECTS_ROOT в .env указывает на правильную директорию. Контейнер MCP-сервера монтирует этот путь для доступа к локальным файлам.


Команды Make

Команда

Описание

make setup

Первый запуск: установка зависимостей через uv и запуск Qdrant

make frontend-setup

Создание проекта Next.js в apps/frontend/ (один раз)

make dev

Запуск Qdrant + туннель + MCP-сервер с автоперезагрузкой

make server-dev

Запуск всех служб в фоновом режиме

make stop

Остановка всех служб разработки

make server

Запуск только MCP-сервера (порт 17800)

make frontend

Запуск только фронтенда Next.js (порт 17801)

make tunnel

Запуск только Cloudflare Tunnel

make index

Запуск воркера индексации

make qdrant-up

Запуск Qdrant через Docker Compose

make qdrant-down

Остановка Qdrant

make qdrant-logs

Логи Qdrant в реальном времени

make prod-build

Сборка всех Docker-образов

make prod-up

Запуск всех контейнеров

make prod-down

Остановка всех контейнеров

make prod-logs

Логи всех контейнеров в реальном времени


Структура репозитория

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 file

Известные ограничения

  • Сервер зависит от того, включена ли локальная машина, чтобы работать удаленно через Cloudflare Tunnel

  • Индекс Qdrant отражает состояние кода на момент последней индексации — настройте хук post-commit для автоматического обновления индекса после каждого коммита

  • Бинарные файлы, изображения и ассеты не индексируются

  • Модель эмбеддингов (jina-embeddings-v2-base-code, ~160 МБ) автоматически загружается при первом запуске через sentence-transformers

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    A local MCP server that enables LLM clients like Claude to perform semantic code search and answer questions about a codebase using tree-sitter parsing and sqlite-vec vector storage.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for semantic code search and explanation. Allows AI agents to search, ask questions, and manage memory about a codebase with local embeddings and LLM integration.
    -

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