Acemcp
MCP-сервер для индексации кодовой базы и семантического поиска. Позволяет искать релевантные фрагменты кода по естественно-языковому запросу, автоматически индексируя проект перед каждым поиском.
Установка
Установка через uv:
uv add mcp httpx fastapi "uvicorn[standard]" toml websockets
uv sync
Конфигурация
Файл конфигурации создаётся автоматически при первом запуске: ~/.acemcp/settings.toml.
Основные параметры:
BATCH_SIZE — количество файлов в одной загрузке (по умолчанию 10)
MAX_LINES_PER_BLOB — максимальное число строк в одном фрагменте (по умолчанию 800)
BASE_URL — URL API-эндпоинта
TOKEN — токен аутентификации
TEXT_EXTENSIONS — список расширений файлов для индексации (например, .py, .js, .ts)
EXCLUDE_PATTERNS — шаблоны исключения (поддерживаются wildcards, например *.pyc)
Приоритет настроек (от высшего к низшему):
- Аргументы командной строки (
--base-url, --token)
- Веб-интерфейс управления
- Переменные окружения с префиксом
ACEMCP_
- Файл конфигурации
Конфигурация MCP-клиента
Добавьте в конфигурацию вашего MCP-клиента (например, Claude Desktop):
{
"mcpServers": {
"acemcp": {
"command": "uvx",
"args": ["acemcp"]
}
}
}
Доступные аргументы командной строки:
--base-url — переопределить BASE_URL
--token — переопределить TOKEN
--web-port — включить веб-интерфейс управления на указанном порту (например, 8080)
Веб-интерфейс управления
Для включения веб-интерфейса добавьте аргумент --web-port:
{
"mcpServers": {
"acemcp": {
"command": "uvx",
"args": ["acemcp", "--web-port", "8888"]
}
}
}
После запуска интерфейс доступен по адресу http://localhost:8888.
Возможности веб-интерфейса:
- Просмотр и редактирование конфигурации (BASE_URL, TOKEN, BATCH_SIZE, MAX_LINES_PER_BLOB, TEXT_EXTENSIONS)
- Мониторинг логов в реальном времени через WebSocket
- Отладка инструментов MCP: тестирование
index_code и search_context с выводом результатов и ошибок
Инструменты
search_context
Поиск релевантного контекста кода по запросу. Перед поиском автоматически выполняет инкрементальную индексацию (только новые или изменённые файлы).
Параметры:
project_root_path (строка) — абсолютный путь к корню проекта. Используйте прямые слеши (/), даже в Windows (например, C:/Users/username/projects/myproject).
query (строка) — поисковый запрос на естественном языке. Используйте описательные ключевые слова; поиск семантический, а не по ключевым словам.
Что возвращает:
- Отформатированные фрагменты кода из файлов, соответствующих запросу
- Пути к файлам и номера строк
- Контекст вокруг релевантных участков
- Несколько результатов, отсортированных по релевантности
Примеры запросов:
Поиск конфигурации:
{
"project_root_path": "C:/Users/username/projects/myproject",
"query": "logging configuration setup"
}
Поиск аутентификации:
{
"project_root_path": "/home/user/projects/myproject",
"query": "user authentication login password validation"
}
Поиск работы с БД:
{
"project_root_path": "/home/user/projects/myproject",
"query": "database connection pool initialization"
}
Советы для лучших результатов:
- Используйте несколько связанных ключевых слов (например, "logging configuration setup" вместо просто "logging")
- Включайте технические термины
- Описывайте функциональность, а не точные имена переменных
- Пробуйте разные формулировки, если первый запрос не дал нужного результата
Особенности индексации
- Инкрементальная индексация: загружаются только новые или изменённые файлы
- Дедупликация по хешу: файлы идентифицируются по SHA-256 от пути и содержимого
- Автоматические повторные попытки: до 3 раз с экспоненциальной задержкой (1с, 2с, 4с)
- Устойчивость к ошибкам: если пакетная загрузка не удалась, сервер продолжает со следующим пакетом
- Разбиение больших файлов: файлы автоматически делятся на фрагменты (по умолчанию 800 строк)
- Исключение по шаблонам: автоматически пропускаются
.venv, node_modules, .git, __pycache__, *.pyc и другие
Хранение данных
- Конфигурация:
~/.acemcp/settings.toml
- Индексированные проекты:
~/.acemcp/data/projects.json (фиксированное расположение)
- Логи:
~/.acemcp/log/acemcp.log (с автоматической ротацией)
Проекты идентифицируются по абсолютному пути (нормализованному с прямыми слешами).
Логирование
- Вывод в консоль: уровень INFO и выше (цветной вывод)
- Вывод в файл: уровень DEBUG и выше (подробный формат с модулем, функцией и номером строки)
- Ротация: при достижении 5 МБ
- Хранение: максимум 10 файлов
- Сжатие: ротированные файлы автоматически сжимаются в
.zip
- Потокобезопасность: логирование безопасно для конкурентных операций
Пример записи:
2025-11-06 13:51:25 | INFO | acemcp.server:main:103 - Starting acemcp MCP server...
Логи создаются автоматически при первом запуске и не требуют ручной настройки.
Комментарии
Комментариев пока нет. Будьте первым.