Notepad++ MCP Server
MCP-сервер Notepad++
MCP-сервер для Notepad++ в Windows. Использует FastMCP 3.1.0 с комбинированными инструментами (меньше инструментов, тот же охват), опциональный HTTP-мост, сэмплирование (HTTP, совместимый с Ollama, или клиентский LLM), промпты, ресурсы skill:// и агентные рабочие процессы.
Редактор против этого репозитория: Сильные стороны самого Notepad++ (Scintilla, плагины, макросы, сессии) отделены от того, что предоставляет этот MCP. См. docs/EDITOR_AND_MCP_SCOPE.md для четкого разделения и более полного обзора со стороны редактора.
Требования
Элемент | Примечания |
ОС | Windows 10/11 (64-бит) |
Редактор | Установлен Notepad++ 8+ |
Python | 3.12+ ( |
API | pywin32 (подтягивается в Windows) |
Установка
Рекомендуется: uv.
Из клона этого репозитория:
git clone https://github.com/sandraschi/notepadpp-mcp.git
Set-Location notepadpp-mcp
uv sync
uv run notepadpp-mcp --helpИли установите пакет в редактируемом режиме:
uv pip install -e ".[dev]"Когда пакет будет опубликован в PyPI, вы сможете запустить его с помощью:
uvx notepadpp-mcpИспользование
Как работает сервер
Опубликованный консольный скрипт — это notepadpp-mcp (notepadpp_mcp.server:run в pyproject.toml).
Стандартный stdio: то, что используют большинство хостов MCP (Claude Desktop, Cursor и т.д.). Никаких дополнительных флагов.
Опциональный HTTP-мост: FastAPI + uvicorn на
127.0.0.1, MCP HTTP на/mcp.
notepadpp-mcp --http --port 10815Измените --port, если порт 10815 занят (см. центральный реестр портов, если вы используете парк веб-приложений MCP).
Конфигурация клиента MCP
Claude Desktop (claude_desktop_config.json) — укажите command/args для вашей установки. Пример использования uv из фиксированного пути репозитория:
{
"mcpServers": {
"notepadpp-mcp": {
"command": "uv",
"args": ["run", "--directory", "D:/Dev/repos/notepadpp-mcp", "notepadpp-mcp"]
}
}
}Если notepadpp-mcp находится в PATH:
{
"mcpServers": {
"notepadpp-mcp": {
"command": "notepadpp-mcp",
"args": []
}
}
}Устаревшее: в старой документации упоминался python -m notepadpp_mcp.tools.server. Используйте notepadpp-mcp, если только вы не отлаживаете этот модуль.
Вызов инструментов (концептуально)
Ассистент вызывает инструменты MCP по имени; вы не запускаете их в PowerShell. Примеры операций внутри комбинированных инструментов:
Инструмент | Типичные значения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Также: suggest_notepad_plan, agentic_notepad_workflow (оркестрация), в зависимости от сборки.
Снимки сессий (session_ops)
save — копирует текущий файл
session.xmlNotepad++ (обычно%APPDATA%\Notepad++\session.xml), в котором перечислены все открытые буферы, в именованный файл в папке%APPDATA%\Notepad++\notepadpp-mcp-sessions\. Формат соответствует тому, что Notepad++ использует для Загрузки сессии /-openSession. Если текущий файл отсутствует или не содержит файлов, сервер возвращается к минимальной сессии, созданной из пути активной вкладки, если этот путь существует на диске.load — запускает
notepad++.exe -openSession "<saved.xml>". Откроет ли файлы новый или существующий экземпляр, зависит от ваших настроек Multi-instance в Notepad++.Переопределения —
NOTEPADPP_SESSION_STORAGE_DIR(где хранятся именованные*.xml),NOTEPADPP_LIVE_SESSION_XML(переопределение пути к текущемуsession.xml, например, для портативных версий или макетов-settingsDir).
Сэмплирование (LLM для рабочих процессов)
Опционально. Установите переменные окружения, как описано в документации сервера / NotepadSamplingHandler, например:
NOTEPADPP_SAMPLING_BASE_URL— базовая URL, совместимая с OpenAI (например, Ollamahttp://127.0.0.1:11434/v1)NOTEPADPP_SAMPLING_MODELNOTEPADPP_SAMPLING_USE_CLIENT_LLM— позволить хосту MCP выполнять сэмплирование, если это поддерживается
Обзор инструментов (комбинированные)
Инструмент | Назначение |
file_ops | Открытие, создание, сохранение, информация о файле |
text_ops | Вставка / поиск в буфере |
status_ops | Справка, статус системы, проверка работоспособности |
tab_ops | Список / переключение / закрытие вкладок |
session_ops | Сохранение / загрузка / список сессий рабочего пространства |
linting_ops | Python, JS, JSON, Markdown (использует |
display_ops | Невидимый текст / сбои отображения |
plugin_ops | Обнаружение / установка / список / выполнение плагинов |
Ответы используют согласованную структуру словаря: success, message или summary, плюс error / recovery_options, где это применимо.
Документация в репозитории
docs/EDITOR_AND_MCP_SCOPE.md— Notepad++ (редактор) против этого сервера: сильные стороны редактора, границы MCP-мостаdocs/NOTEPADPP_MACROS.md— Макросы (для чего их используют,shortcuts.xml, курируемый набор / идеи для будущих инструментов)src/notepadpp_mcp/docs/— заметки по API, примеры, PRD (если есть)src/notepadpp_mcp/docs_manifest.py— обзор REST/MCP для веб-моста (когда включен)
Разработка
uv pip install -e ".[dev]"
uv run pytest src/notepadpp_mcp/tests/
uv run ruff check src/notepadpp_mcp tests
uv run ruff format src/notepadpp_mcp testsОпционально: python demonstration_test.py или проект dev.py, если он присутствует для интеграционных дымовых тестов.
Дорожная карта / TODO (расширения)
Работа, которая запланирована или открыта — хорошие первые задачи для участников:
[ ] Multi-instance / многооконность — нацеливание на конкретный HWND Notepad++, когда открыто несколько окон
[ ] Более богатые потоки плагинов — скоординированные шаги с несколькими плагинами, улучшенное отображение ошибок из Plugin Admin
[ ] Линтинг — HTML/CSS, опциональные файлы конфигурации для линтеров
[ ] Профили конфигурации — серверные значения по умолчанию (пути, тайм-ауты, автозапуск)
[ ] Пакетная обработка — первоклассные пакетные файловые операции с отчетами о прогрессе
[ ] Веб-интерфейс — приведение документации в соответствие с фактическим пакетом панели управления (например,
web_sota/) и портами[ ] Тесты / покрытие — повышение покрытия; поддержание CI в рабочем состоянии на раннерах Windows
[ ] Макросы — курируемые XML-фрагменты в репозитории; опциональное чтение/список/слияние для
%APPDATA%\Notepad++\shortcuts.xml(см.docs/NOTEPADPP_MACROS.md)
Более старые пункты журнала изменений (multi-instance, аналитика плагинов и т.д.) включены в список выше, где они все еще применимы.
Устранение неполадок
Notepad++ не найден — Установите Notepad++, запустите его один раз или включите поведение автозапуска, если ваша сборка это поддерживает.
Windows API недоступен — Используйте Windows; установите pywin32 в той же среде, что и сервер.
Инструменты отсутствуют в клиенте — Перезапустите хост, проверьте логи MCP, убедитесь, что
notepadpp-mcpзапускается без ошибок из терминала.Сохранение сессии пустое / не удается — Notepad++ может не обновлять
session.xml, пока вы не откроете сохраненные файлы или не перезапустите редактор; убедитесь, что поведение сессии в Настройки > Предпочтения > Резервное копирование соответствует вашим ожиданиям. Для портативных установок установитеNOTEPADPP_LIVE_SESSION_XMLна правильныйsession.xml.
Журнал изменений (кратко)
0.2.x —
session_opsсохраняет именованные сессии: копирует текущийsession.xml, загружает через-openSession(см. раздел README Снимки сессий).0.2.0 — FastMCP 3.1.0, сэмплирование, навыки, промпты, агентный рабочий процесс, HTTP-мост + веб-хуки, как реализовано в
server.py.Ранее — Консолидация комбинированных инструментов, линтинг и инструментарий плагинов.
🛡️ Стек промышленного качества
Этот проект придерживается промышленных стандартов SOTA 14.1 для высокоточной агентной оркестрации:
Python (Core): Ruff для линтинга и форматирования. Нулевая терпимость к операторам
printв основных обработчиках (T201).Webapp (UI): Biome для линтинга с субмиллисекундной скоростью. Строгое соблюдение
noConsoleLog.Соответствие протоколу: Усиленная изоляция
stdout/stderrдля обеспечения устойчивой к сбоям связи JSON-RPC.Автоматизация: Рецепты Justfile для всех операций парка (
just lint,just fix,just dev).Безопасность: Автоматизированные аудиты через
banditиsafety.
Лицензия
MIT — см. LICENSE.
This server cannot be installed
Maintenance
Appeared in Searches
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/sandraschi/notepadpp-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server