Skip to main content
Glama

Notepad++ MCP Server

FastMCP Version Ruff Linted with Biome Built with Just

CI Release Python FastMCP License: MIT Version

MCP-Server für Notepad++ unter Windows. Verwendet FastMCP 3.1.0 mit Portmanteau-Tools (weniger Tools, gleiche Abdeckung), optionaler HTTP-Brücke, Sampling (Ollama-kompatibles HTTP oder Client-LLM), Prompts, skill:// Ressourcen und agentischen Workflows.

Editor vs. dieses Repo: Die Stärken von Notepad++ selbst (Scintilla, Plugins, Makros, Sitzungen) sind getrennt von dem, was dieses MCP bereitstellt. Siehe docs/EDITOR_AND_MCP_SCOPE.md für eine klare Trennung und einen umfassenderen Überblick über die Editor-Seite.


Anforderungen

Element

Hinweise

Betriebssystem

Windows 10/11 (64-Bit)

Editor

Notepad++ 8+ installiert

Python

3.12+ (requires-python in pyproject.toml)

API

pywin32 (wird unter Windows automatisch geladen)


Installation

Empfohlen: uv.

Von einem Klon dieses Repos:

git clone https://github.com/sandraschi/notepadpp-mcp.git
Set-Location notepadpp-mcp
uv sync
uv run notepadpp-mcp --help

Oder installieren Sie das Paket im editierbaren Modus:

uv pip install -e ".[dev]"

Sobald das Paket auf PyPI veröffentlicht ist, können Sie es ausführen mit:

uvx notepadpp-mcp

Verwendung

Wie der Server ausgeführt wird

Das veröffentlichte Konsolenskript ist notepadpp-mcp (notepadpp_mcp.server:run in pyproject.toml).

  • Standard stdio: Was die meisten MCP-Hosts verwenden (Claude Desktop, Cursor usw.). Keine zusätzlichen Flags.

  • Optionale HTTP-Brücke: FastAPI + uvicorn auf 127.0.0.1, MCP HTTP unter /mcp.

notepadpp-mcp --http --port 10815

Ändern Sie --port, falls 10815 belegt ist (siehe zentrales Port-Register, falls Sie eine Flotte von MCP-Webanwendungen verwenden).

MCP-Client-Konfiguration

Claude Desktop (claude_desktop_config.json) – verweisen Sie command/args auf Ihre Installation. Beispiel mit uv von einem festen Repo-Pfad:

{
  "mcpServers": {
    "notepadpp-mcp": {
      "command": "uv",
      "args": ["run", "--directory", "D:/Dev/repos/notepadpp-mcp", "notepadpp-mcp"]
    }
  }
}

Wenn notepadpp-mcp im PATH ist:

{
  "mcpServers": {
    "notepadpp-mcp": {
      "command": "notepadpp-mcp",
      "args": []
    }
  }
}

Veraltet: Ältere Dokumentationen verwiesen auf python -m notepadpp_mcp.tools.server. Bevorzugen Sie notepadpp-mcp, es sei denn, Sie debuggen dieses Modul.

Aufrufen von Tools (konzeptionell)

Der Assistent ruft MCP-Tools beim Namen auf; Sie führen diese nicht in PowerShell aus. Beispiele für Operationen innerhalb von Portmanteau-Tools:

Tool

Typische operation-Werte

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

Außerdem: suggest_notepad_plan, agentic_notepad_workflow (Orchestrierung), je nach Build.

Sitzungs-Snapshots (session_ops)

  • save – Kopiert die aktive session.xml von Notepad++ (typischerweise %APPDATA%\Notepad++\session.xml), die alle offenen Puffer auflistet, in eine benannte Datei unter %APPDATA%\Notepad++\notepadpp-mcp-sessions\. Das Format entspricht dem, was Notepad++ für Sitzung laden / -openSession verwendet. Wenn die Live-Datei fehlt oder keine Dateien auflistet, greift der Server auf eine minimale Sitzung zurück, die aus dem Pfad des aktiven Tabs erstellt wird, sofern dieser Pfad auf der Festplatte existiert.

  • load – Führt notepad++.exe -openSession "<saved.xml>" aus. Ob eine neue oder bestehende Instanz Dateien öffnet, hängt von Ihren Multi-Instanz-Einstellungen in Notepad++ ab.

  • ÜberschreibungenNOTEPADPP_SESSION_STORAGE_DIR (wo benannte *.xml gespeichert werden), NOTEPADPP_LIVE_SESSION_XML (Überschreibungspfad zur Live-session.xml, z. B. portable oder -settingsDir-Layouts).

Sampling (LLM für Workflows)

Optional. Setzen Sie Umgebungsvariablen wie im Server / NotepadSamplingHandler dokumentiert, zum Beispiel:

  • NOTEPADPP_SAMPLING_BASE_URL – OpenAI-kompatible Basis (z. B. Ollama http://127.0.0.1:11434/v1)

  • NOTEPADPP_SAMPLING_MODEL

  • NOTEPADPP_SAMPLING_USE_CLIENT_LLM – Lassen Sie den MCP-Host das Sampling durchführen, wenn unterstützt


Tools-Übersicht (Portmanteau)

Tool

Zweck

file_ops

Öffnen, neu, speichern, Datei-Info

text_ops

Einfügen / Suchen im Puffer

status_ops

Hilfe, Systemstatus, Integrität

tab_ops

Tabs auflisten / wechseln / schließen

session_ops

Arbeitsbereichs-Sitzungen speichern / laden / auflisten

linting_ops

Python, JS, JSON, Markdown (verwendet ruff / eslint im PATH, falls verfügbar)

display_ops

Unsichtbarer Text / Anzeigefehler

plugin_ops

Plugins entdecken / installieren / auflisten / ausführen

Antworten verwenden eine konsistente Dict-Form: success, message oder summary, plus error / recovery_options, wo relevant.


Dokumentation im Repo

  • docs/EDITOR_AND_MCP_SCOPE.mdNotepad++ (Editor) vs. dieser Server: Stärken des Editors, Grenzen der MCP-Brücke

  • docs/NOTEPADPP_MACROS.mdMakros (wofür Leute sie verwenden, shortcuts.xml, kuratierte Sets / zukünftige Tool-Ideen)

  • src/notepadpp_mcp/docs/ – API-Notizen, Beispiele, PRD, falls vorhanden

  • src/notepadpp_mcp/docs_manifest.py – REST/MCP-Übersicht für die Web-Brücke (wenn aktiviert)


Entwicklung

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

Optional: python demonstration_test.py oder Projekt dev.py, falls für Integrations-Smoke-Tests vorhanden.


Roadmap / TODO (Erweiterungen)

Arbeiten, die geplant oder offen sind – gute erste Issues für Mitwirkende:

  • [ ] Multi-Instanz / Multi-Fenster – ein spezifisches Notepad++ HWND ansteuern, wenn mehrere geöffnet sind

  • [ ] Reichhaltigere Plugin-Flows – koordinierte Multi-Plugin-Schritte, bessere Fehlermeldungen aus dem Plugin-Admin

  • [ ] Linting – HTML/CSS, optionale Konfigurationsdateien für Linter

  • [ ] Konfigurationsprofile – serverseitige Standardwerte (Pfade, Timeouts, Autostart)

  • [ ] Batch – erstklassige Batch-Dateivorgänge mit Fortschrittsberichten

  • [ ] Web-UI – Dokumentation mit dem tatsächlichen Dashboard-Paket (z. B. web_sota/) und Ports abgleichen

  • [ ] Tests / Abdeckung – Abdeckung erhöhen; CI auf Windows-Runnern grün halten

  • [ ] Makros – kuratierte XML-Snippets im Repo; optionales Lesen/Auflisten/Zusammenführen für %APPDATA%\Notepad++\shortcuts.xml (siehe docs/NOTEPADPP_MACROS.md)

Ältere Changelog-Punkte (Multi-Instanz, Plugin-Analytik usw.) sind in die obige Liste eingeflossen, wo sie noch zutreffen.


Fehlerbehebung

  • Notepad++ nicht gefunden – Installieren Sie Notepad++, starten Sie es einmal oder aktivieren Sie das Autostart-Verhalten, falls Ihr Build dies unterstützt.

  • Windows API nicht verfügbar – Verwenden Sie Windows; installieren Sie pywin32 in derselben Umgebung wie den Server.

  • Tools fehlen im Client – Starten Sie den Host neu, überprüfen Sie die MCP-Protokolle, bestätigen Sie, dass notepadpp-mcp ohne Fehler von einem Terminal aus läuft.

  • Sitzung speichern leer / schlägt fehl – Notepad++ aktualisiert session.xml möglicherweise erst, wenn Sie gespeicherte Dateien geöffnet oder den Editor neu gestartet haben; stellen Sie sicher, dass das Sitzungsverhalten unter Einstellungen > Einstellungen > Sicherung Ihren Erwartungen entspricht. Setzen Sie bei portablen Installationen NOTEPADPP_LIVE_SESSION_XML auf die korrekte session.xml.


Changelog (kurz)

  • 0.2.xsession_ops speichert benannte Sitzungen dauerhaft: kopiert Live-session.xml, lädt über -openSession (siehe README-Abschnitt Sitzungs-Snapshots).

  • 0.2.0 – FastMCP 3.1.0, Sampling, Skills, Prompts, agentischer Workflow, HTTP-Brücke + Web-Hooks wie in server.py implementiert.

  • Früher – Portmanteau-Tool-Konsolidierung, Linting- und Plugin-Tooling.


🛡️ Industrieller Qualitäts-Stack

Dieses Projekt hält sich an die SOTA 14.1 Industriestandards für hochpräzise agentische Orchestrierung:

  • Python (Core): Ruff für Linting und Formatierung. Null-Toleranz für print-Anweisungen in Core-Handlern (T201).

  • Webapp (UI): Biome für Sub-Millisekunden-Linting. Strenge noConsoleLog-Durchsetzung.

  • Protokoll-Konformität: Gehärtete stdout/stderr-Isolierung, um eine absturzsichere JSON-RPC-Kommunikation zu gewährleisten.

  • Automatisierung: Justfile-Rezepte für alle Flottenoperationen (just lint, just fix, just dev).

  • Sicherheit: Automatisierte Audits via bandit und safety.

Lizenz

MIT – siehe 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