local-dev-mcp
Enables AI agents to work with multiple local projects on Windows, providing file system access and PowerShell command execution, with project auto-detection and support for various dev tools.
README
Local Dev MCP
Локальный MCP-сервер для работы AI-агента с несколькими проектами на одной Windows-машине.
Local Dev MCP предоставляет AI-клиенту доступ к локальным проектам, файловой системе и выполнению команд через PowerShell. Один экземпляр сервера может работать сразу с несколькими репозиториями, расположенными в одной или нескольких корневых директориях.
Docker не является обязательной зависимостью. Проекты могут использовать Docker, Node.js, PHP, Python или любой другой локально установленный стек.
Установка
1. Установите Node.js
Для работы Local Dev MCP требуется Node.js версии 20 или новее.
Проверьте текущую версию:
node --version
npm --version
Если Node.js не установлен, установите актуальную LTS-версию с официального сайта Node.js.
После установки закройте и повторно откройте PowerShell или Windows Terminal.
2. Получите Local Dev MCP
Склонируйте репозиторий:
git clone https://github.com/mfokusnik/LocalDevMCP
cd LocalDevMCP
Либо скачайте архив репозитория и распакуйте его в удобную директорию, например:
C:\Tools\local-dev-mcp
3. Выполните первичную настройку
Запустите:
FIRST_RUN.cmd
Скрипт автоматически:
- проверит наличие Node.js;
- запросит корневую директорию с локальными проектами;
- создаст
config.local.json; - установит npm-зависимости;
- проверит TypeScript;
- запустит MCP-сервер.
Например, если проекты сотрудника находятся здесь:
C:\Users\User\Documents\GitHub
необходимо указать эту директорию при первом запуске.
У другого сотрудника путь может быть любым:
D:\Projects
или:
C:\Development
Настройка хранится локально и не попадает в Git.
4. Проверьте запуск
После успешного запуска откройте:
http://127.0.0.1:7676/health
Ожидаемый ответ:
{
"ok": true,
"name": "local-dev-mcp",
"version": "0.1.0",
"mcp": "http://127.0.0.1:7676/mcp"
}
MCP endpoint:
http://127.0.0.1:7676/mcp
5. Подключите MCP-клиент
В используемом локальном MCP tunnel укажите:
http://127.0.0.1:7676/mcp
После подключения AI-клиент получит доступ к зарегистрированным MCP tools.
6. Проверьте MCP-интерфейс
При запущенном сервере выполните:
SMOKE_TEST.cmd
или:
npm run smoke
Тест должен успешно подключиться к MCP endpoint и вернуть список доступных инструментов.
Последующие запуски
После первой установки повторная настройка не требуется.
Для запуска сервера используйте:
START.cmd
или:
npm run dev
Локальная конфигурация сохраняется в:
config.local.json
Для смены директории с проектами можно отредактировать этот файл вручную или повторно выполнить первичную настройку.
Возможности
- автоматическое обнаружение проектов в одной или нескольких корневых директориях;
- выбор активного проекта по имени или alias;
- файловые операции внутри выбранного проекта;
- выполнение PowerShell-команд с рабочей директорией выбранного проекта;
- базовое определение используемого стека;
- проверка доступности локальных CLI-инструментов;
- работа с Git и GitHub CLI через локальный shell;
- Streamable HTTP MCP endpoint;
- локальный health-check endpoint;
- защита файловых MCP-операций от выхода за пределы активного проекта.
Поддерживается автоматическое определение следующих технологий и инструментов:
- Git;
- Node.js;
- PHP / Composer;
- Laravel;
- Docker / Docker Compose;
- Python;
- Go;
- Rust.
Архитектура
AI-клиент
│
│ MCP
▼
Local Dev MCP
│
├── обнаружение проектов
├── выбор workspace
├── файловые операции
└── PowerShell
│
├── git
├── gh
├── docker
├── npm
├── composer
├── php / artisan
├── python
└── другие локальные CLI
Сервер не реализует отдельные MCP-инструменты для каждого фреймворка или среды выполнения.
Команды вида:
npm test
php artisan test
docker compose ps
git status
gh pr create
выполняются через универсальный инструмент shell.run.
За счёт этого MCP-сервер не зависит от технологического стека конкретного проекта.
Требования
Обязательно:
- Windows 10 или Windows 11;
- Node.js 20 или новее;
- хотя бы одна локальная директория с проектами.
Дополнительные инструменты устанавливаются только при необходимости:
- Git;
- GitHub CLI;
- Docker Desktop;
- PHP;
- Composer;
- Python;
- другие CLI и runtime, используемые проектами.
Docker для работы Local Dev MCP не требуется.
Первый запуск
1. Склонируйте или распакуйте проект
Например:
C:\Tools\local-dev-mcp
2. Запустите первичную настройку
FIRST_RUN.cmd
Скрипт:
- проверит наличие Node.js;
- запросит путь к директории с проектами;
- создаст локальный конфигурационный файл;
- установит npm-зависимости;
- выполнит проверку TypeScript;
- запустит MCP-сервер.
По умолчанию предлагается путь:
%USERPROFILE%\Documents\GitHub
При необходимости можно указать другой:
D:\Projects
3. Проверьте запуск
Откройте:
http://127.0.0.1:7676/health
Ожидаемый ответ:
{
"ok": true,
"name": "local-dev-mcp",
"version": "0.1.0",
"mcp": "http://127.0.0.1:7676/mcp"
}
MCP endpoint:
http://127.0.0.1:7676/mcp
По умолчанию сервер слушает только 127.0.0.1 и напрямую не публикуется в локальную сеть или интернет.
4. Подключите MCP-клиент
В локальном MCP tunnel или другом совместимом клиенте укажите:
http://127.0.0.1:7676/mcp
5. Выполните smoke test
При запущенном сервере:
SMOKE_TEST.cmd
или:
npm run smoke
Тест проверяет подключение к MCP и выводит список зарегистрированных tools.
Обычный запуск
После первичной настройки:
START.cmd
или:
npm run dev
Конфигурация
Локальная конфигурация хранится в:
config.local.json
Файл исключён из Git через .gitignore и предназначен для настроек конкретной рабочей станции.
Пример:
{
"roots": [
"C:\\Users\\YourName\\Documents\\GitHub"
],
"scanDepth": 1,
"host": "127.0.0.1",
"port": 7676,
"mcpPath": "/mcp",
"shell": {
"executable": "powershell.exe",
"timeoutMs": 120000,
"maxOutputChars": 200000
},
"skipDirectories": [
".git",
"node_modules",
"vendor",
".next",
"dist",
"build"
],
"projects": []
}
Несколько корневых директорий
{
"roots": [
"C:\\Users\\YourName\\Documents\\GitHub",
"D:\\Work",
"D:\\Experiments"
]
}
Каждая директория сканируется независимо.
Глубина сканирования
Если структура проектов вложенная:
D:\Work
├── clients
│ ├── project-a
│ └── project-b
└── internal
└── project-c
можно увеличить:
{
"scanDepth": 2
}
Максимальное значение в текущей версии — 5.
Явное добавление проекта и alias
Проекты можно добавлять вручную:
{
"projects": [
{
"name": "sample-app",
"path": "D:\\Projects\\sample-app",
"aliases": [
"sample",
"app"
]
}
]
}
После этого проект можно выбрать как по основному имени, так и по alias.
Обнаружение проектов
Директория считается проектом, если содержит хотя бы один из поддерживаемых markers:
.git
package.json
composer.json
artisan
compose.yml
compose.yaml
docker-compose.yml
docker-compose.yaml
Dockerfile
pyproject.toml
requirements.txt
go.mod
Cargo.toml
После определения директории как проекта сканирование её внутренних папок прекращается.
Это позволяет не определять внутренние зависимости и служебные директории как отдельные workspace.
MCP tools
projects.list
Возвращает список обнаруженных и явно настроенных проектов.
projects.select
Выбирает активный проект по имени или alias.
Пример:
Пользователь:
Работаем с sample-app
AI:
projects.select({ "name": "sample-app" })
В ответ сервер возвращает:
- абсолютный путь проекта;
- обнаруженный стек;
- текущую Git-ветку;
- состояние working tree;
- список доступных локальных CLI-инструментов.
projects.current
Возвращает текущий активный проект и его состояние.
fs.list
Выводит содержимое директорий внутри активного проекта.
fs.read
Читает UTF-8 файлы.
Поддерживается чтение диапазона строк.
fs.write
Создаёт новый файл или полностью перезаписывает существующий.
fs.replace
Выполняет точную замену текста в файле.
Поддерживается замена одного или всех совпадений.
fs.move
Перемещает или переименовывает файл или директорию внутри активного проекта.
fs.delete
Удаляет файл или директорию внутри активного проекта.
Удаление корневой директории активного проекта через этот tool запрещено.
shell.run
Выполняет PowerShell-команду с рабочей директорией активного проекта.
Примеры:
git status
git switch -c feature/example
npm test
php artisan test
docker compose ps
docker compose exec app php artisan test
gh pr create
Отдельные инструменты docker.*, git.* или artisan.* в текущей версии не реализуются.
Универсальным интерфейсом выполнения команд является локальный shell.
Docker
Docker является опциональным инструментом.
Если Docker Desktop установлен, AI-клиент может использовать Docker CLI через shell.run.
Например:
docker compose ps
или:
docker compose exec app npm test
Если Docker отсутствует, MCP-сервер продолжает работать без ограничений для остальных инструментов.
То же относится к PHP, Composer, Python, GitHub CLI и другим runtime.
Git и GitHub
Git-операции выполняются через локально установленный Git CLI.
Например:
git status
git diff
git switch -c feature/example
git commit
При установленном и авторизованном GitHub CLI доступны операции через gh:
gh pr create
gh pr view
gh issue list
gh issue comment
Local Dev MCP не хранит GitHub-токены и использует существующую локальную авторизацию.
Модель безопасности
Файловые MCP-tools ограничены активным проектом.
Попытки обратиться к файлу через путь, выходящий за пределы workspace, блокируются.
Например:
..\..\some-file.txt
не должен позволить fs.read, fs.write или другим файловым tools выйти за пределы выбранного проекта.
При этом shell.run не является sandbox.
Команда выполняется из директории активного проекта:
cwd = active project
но сам PowerShell технически может обращаться к другим директориям и локальным ресурсам, если это указано непосредственно в команде.
Поэтому текущая версия рассчитана на доверенную локальную среду разработки:
один сотрудник
=
один локальный MCP
=
одна рабочая станция
Состояние активного проекта
Выбранный проект хранится в памяти процесса MCP.
После перезапуска сервера проект необходимо выбрать повторно.
Текущая версия не рассчитана на одновременную работу нескольких независимых пользователей через один экземпляр сервера.
Структура проекта
local-dev-mcp/
├── src/
│ ├── index.ts
│ ├── server.ts
│ ├── config.ts
│ ├── projects.ts
│ ├── fs-tools.ts
│ ├── shell.ts
│ ├── smoke.ts
│ └── types.ts
├── scripts/
│ └── setup.ps1
├── FIRST_RUN.cmd
├── START.cmd
├── SMOKE_TEST.cmd
├── config.example.json
├── package.json
└── tsconfig.json
Команды разработки
Установка зависимостей:
npm install
Запуск:
npm run dev
Проверка типов:
npm run check
Сборка:
npm run build
Запуск собранной версии:
npm start
Smoke test:
npm run smoke
Ограничения текущей версии
В текущей версии отсутствуют:
- web-интерфейс;
- система пользователей;
- база данных;
- ACL для отдельных shell-команд;
- подтверждение потенциально опасных команд на уровне сервера;
- Docker-контейнер для самого MCP;
- отдельные runtime profiles;
- сохранение активного проекта после перезапуска;
- публичный удалённый endpoint;
- многопользовательский режим.
Эти возможности могут быть добавлены по мере необходимости.
Диагностика
Node.js не найден
Проверьте:
node --version
npm --version
Требуется Node.js 20 или новее.
MCP запущен, но клиент не подключается
Сначала проверьте:
http://127.0.0.1:7676/health
Если /health недоступен, проблема находится на стороне локального MCP.
Если /health работает, проверьте MCP endpoint:
http://127.0.0.1:7676/mcp
и конфигурацию используемого MCP tunnel.
Порт 7676 занят
Измените порт в config.local.json:
{
"port": 7677
}
После этого используйте новый порт в MCP-клиенте.
Проект не обнаруживается
Проверьте:
- находится ли проект внутри одной из
roots; - содержит ли директория поддерживаемый project marker;
- достаточно ли значения
scanDepth; - при необходимости добавьте проект явно через
projects.
Технологии
- TypeScript;
- Node.js;
- Model Context Protocol;
- официальный MCP TypeScript SDK.
Документация:
https://modelcontextprotocol.io/
https://github.com/modelcontextprotocol/typescript-sdk
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。