Skip to main content
Glama

MCP-сервер Notepad++

FastMCP Version Ruff Linted with Biome Built with Just

CI Release Python FastMCP License: MIT Version

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+ (requires-python в pyproject.toml)

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. Примеры операций внутри комбинированных инструментов:

Инструмент

Типичные значения operation

file_ops

open, new, save, info

text_ops

insert, find

status_ops

help, system_status, health_check

tab_ops

list, switch, close

session_ops

save, load, list

linting_ops

python, javascript, json, markdown

display_ops

fix_invisible_text, fix_display_issue

plugin_ops

discover, install, list, execute

Также: suggest_notepad_plan, agentic_notepad_workflow (оркестрация), в зависимости от сборки.

Снимки сессий (session_ops)

  • save — копирует текущий файл session.xml Notepad++ (обычно %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 (например, Ollama http://127.0.0.1:11434/v1)

  • NOTEPADPP_SAMPLING_MODEL

  • NOTEPADPP_SAMPLING_USE_CLIENT_LLM — позволить хосту MCP выполнять сэмплирование, если это поддерживается


Обзор инструментов (комбинированные)

Инструмент

Назначение

file_ops

Открытие, создание, сохранение, информация о файле

text_ops

Вставка / поиск в буфере

status_ops

Справка, статус системы, проверка работоспособности

tab_ops

Список / переключение / закрытие вкладок

session_ops

Сохранение / загрузка / список сессий рабочего пространства

linting_ops

Python, JS, JSON, Markdown (использует ruff / eslint в PATH, если доступно)

display_ops

Невидимый текст / сбои отображения

plugin_ops

Обнаружение / установка / список / выполнение плагинов

Ответы используют согласованную структуру словаря: success, message или summary, плюс error / recovery_options, где это применимо.


Документация в репозитории

  • docs/EDITOR_AND_MCP_SCOPE.mdNotepad++ (редактор) против этого сервера: сильные стороны редактора, границы 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.xsession_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.

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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