project-helper
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@project-helperSearch the project for TODO comments and list the matching files"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Project Helper MCP Server
Локальный MCP-сервер на Python для безопасного чтения и поиска по файлам текущего проекта. Выбран Python + FastMCP: этот SDK компактно регистрирует инструменты, генерирует JSON Schema из аннотаций и поддерживает stdio.
1. Описание и принципы MCP
VS Code/Copilot Chat запускает MCP-сервер как отдельный процесс по команде из MCP-конфига. Клиент и процесс обмениваются сообщениями JSON-RPC через stdin/stdout (stdio), поэтому сервер не должен писать диагностические сообщения в stdout. В этом проекте такие сообщения направляются в logs/mcp-server.log и stderr.
MCP tool здесь — именованный инструмент с описанием, JSON Schema входных параметров и структурированным результатом. Агент выбирает инструмент по описанию, передаёт валидированные параметры, а сервер возвращает объект контракта {status, data, error}.
Related MCP server: Context MCP
2. Установка и запуск на macOS
cd "path/to/project"
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
cp .env.example .envВ .env укажите путь к проекту, который разрешено читать:
PROJECT_ROOT=/absolute/path/to/projectДля ручной проверки запуска:
PROJECT_ROOT="$PWD" .venv/bin/python server.pyПроцесс будет ждать MCP-сообщения в stdin. Не добавляйте print() в сервер: stdout зарезервирован для протокола.
3. Инструменты
FastMCP публикует схемы параметров на основе типов и ограничений Field.
Tool | Параметры | Назначение |
|
| Регулярный поиск по текстовым файлам проекта. |
|
| Список файлов внутри корня проекта. |
|
| Чтение диапазона строк файла. |
|
| Поиск объявлений функций/классов/методов по regex. |
Пути в file_glob фильтруются относительно корня проекта. query для search_in_files — регулярное выражение; некорректный regex возвращается как ошибка инструмента.
4. Tool outputs contract
Каждый успешно выполненный вызов возвращает:
{
"status": "success",
"data": { "...": "tool-specific JSON data" },
"error": null
}Ошибка операции возвращается без выполнения опасного действия:
{
"status": "error",
"data": null,
"error": { "code": "path_outside_project", "message": "..." }
}data всегда содержит структурированный объект/массив, а error равен null при успехе. Ошибки валидации схемы до вызова функции обрабатывает MCP SDK.
5. Ограничения безопасности
Разрешён только корень из
PROJECT_ROOT(или текущая директория, если переменная не задана).Каждый путь нормализуется через
Path.resolve()и проверяется черезrelative_to(root).Абсолютные пути вне корня,
..-переходы и симлинки, уводящие наружу, отклоняются.Сервер только читает файлы и не выполняет код, не удаляет и не изменяет файлы.
Секреты не хранятся в коде;
.envи логи исключены из git. Не помещайте ключи в параметры tool-запросов.Бинарные и нечитаемые UTF-8 файлы пропускаются поиском.
6. Как подключить к VS Code / GitHub Copilot Chat
Установите зависимости из раздела выше и убедитесь, что существует
.venv/bin/python.Откройте
.vscode/mcp.json. В${workspaceFolder}будет подставлен открытый корень проекта.При необходимости измените
PROJECT_ROOTв конфиге на каталог, который сервер должен читать. Для текущего репозитория оставьте${workspaceFolder}.Откройте Command Palette и выполните
Developer: Reload Window, затем откройте Copilot Chat.В MCP/Tools-индикаторе чата проверьте сервер
project-helper; подробные вызовы смотрите вlogs/mcp-server.log, а ошибки запуска — вView > Output, канал GitHub Copilot Chat/MCP (название канала может зависеть от версии VS Code).
Конфигурация использует актуальную для VS Code форму .vscode/mcp.json:
{
"servers": {
"project-helper": {
"type": "stdio",
"command": "${workspaceFolder}/.venv/bin/python",
"args": ["${workspaceFolder}/server.py"],
"env": {
"PROJECT_ROOT": "${workspaceFolder}"
}
}
}
}7. Таблица проверочных запросов
Первые три запроса должны привести к реальному вызову MCP tool. После ручной проверки замените logs/verification-*.txt на фактические фрагменты логов или скриншоты.
№ | Запрос пользователя агенту | Ожидаемый tool | Подтверждение вызова |
1 | Найди в проекте все упоминания |
| |
2 | Перечисли Python-файлы проекта. |
| |
3 | Прочитай строки 1–30 файла |
| |
4 | Что делает | Ответ по контексту, tool не обязателен |
|
5 | Какие ограничения безопасности описаны в проекте? | Ответ по контексту, tool не обязателен |
|
Для каждого реального вызова скопируйте из logs/mcp-server.log строку tool_call и следующую строку tool_result в соответствующий файл подтверждения. Не сохраняйте в подтверждения секреты.
Для запроса №2 подтверждение уже добавлено: на скриншоте видны tool list_project_files, параметр extension: ".py", результат с единственным файлом server.py, а в Output — успешные события tool_call и tool_result.
Для запросов №1 и №3 подтверждение добавлено по новым скриншотам и записям в mcp-server.log: оба вызова завершились со статусом success.
8. Ссылки на код
Номера строк актуальны для текущей версии файлов и обновляются при изменениях.
Поднятие stdio-сервера и регистрация инструментов: server.py.
Общая проверка пути и контракт ответа: server.py.
Общее логирование вызовов и ошибок: server.py.
Реализация
search_in_files: server.py; место логирования: server.py; пример лога: logs/mcp-server.log (создаётся после первого вызова).Реализация
list_project_files: server.py; место логирования: server.py.Реализация
read_file_snippet: server.py; место логирования: server.py.Реализация
find_symbol_usages: server.py; место логирования: server.py.Пример запроса для
read_file_snippetнаходится в таблице выше; подтверждение хранится в logs/verification-03-read.txt после ручного запуска.
Пример фактического лога после запроса поиска:
INFO tool_call name=search_in_files params={"query": "PROJECT_ROOT", "file_glob": "*.py", "max_results": 5}
INFO tool_result name=search_in_files status=successThis server cannot be deployed
Maintenance
Related MCP Connectors
Securely search and manage workspace context files for AI agents and teams.
Safe folder access for ChatGPT and Claude: read, write and search files, risky tools opt-in.
Manage files and folders directly from your workspace. Read and write files, list directories, cre…
Read and write KukGit repositories, files, issues and pull requests from an AI assistant.
Related MCP Servers
- FlicenseBqualityDmaintenanceProvides LLMs with safe, read-only access to local codebases for searching, reading files, and finding function definitions. All source code remains local, ensuring privacy while enabling AI assistants to explore project structures and functionality.4-
- AlicenseNot gradedqualityDmaintenanceProvides AI agents with secure, read-only file system access to analyze and understand project codebases, enabling multi-repository context aggregation and cross-project code tracing.5MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to perform file system operations within a specified project directory, including reading, writing, editing, and managing files, with optional read-only access to reference projects.223 PyPI48MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to securely browse, search, inspect, and understand local project files through Model Context Protocol tools.MIT