1. Conduid
  2. Files
  3. Notepadpp MCP
MCP server · Files

Notepadpp MCP

MCP Server for Notepad++ automation with comprehensive file operations, plugin management, code linting, and Windows API integration. 26 tools, FastMCP 2.12 compatibility, and extensive testing.

Unclaimed files
34Low

Scored 6 months ago · breakdown

About Notepadpp MCP

Notepadpp MCP is an MCP server published by sandraschi in the Files category: mCP Server for Notepad++ automation with comprehensive file operations, plugin management, code linting, and Windows API integration. 26 tools, FastMCP 2.12 compatibility, and extensive testing.

The repository has 6 stars and 2 forks, with the last commit 11 days ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/sandraschi/notepadpp-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (8)

display_ops`fix_invisible_text`, `fix_display_issue`

Parameters not published.

file_ops`open`, `new`, `save`, `info`

Parameters not published.

linting_ops`python`, `javascript`, `json`, `markdown`,

Parameters not published.

plugin_ops`discover`, `install`, `list`, `execute`

Parameters not published.

session_ops`save`, `load`, `list`

Parameters not published.

status_ops`help`, `system_status`, `health_check`

Parameters not published.

tab_ops`list`, `switch`, `close`

Parameters not published.

text_ops`insert`, `find`

Parameters not published.

Ask AI

✦

Ask AI about Notepadpp MCP

Powered by Claude · Grounded in docs

I know everything about Notepadpp MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

Notepad++ MCP Server

FastMCP Version Ruff Linted with Biome Built with Just

CI Release Python FastMCP Version

MCP server for Notepad++ on Windows. Uses FastMCP 3.1.0 with portmanteau tools (fewer tools, same coverage), optional HTTP bridge, sampling (Ollama-compatible HTTP or client LLM), prompts, skill:// resources, and agentic workflows.

Editor vs this repo: Notepad++s own strengths (Scintilla, plugins, macros, sessions, ) are separate from what this MCP exposes. See docs/EDITOR_AND_MCP_SCOPE.md for a clear split and a fuller editor-side overview.


Requirements

Item Notes
OS Windows 10/11 (64-bit)
Editor Notepad++ 8+ installed
Python 3.12+ (requires-python in pyproject.toml)
API pywin32 (pulled in on Windows)

Installation

Recommended: uv.

From a clone of this repo:

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

Or install the package in editable mode:

uv pip install -e ".[dev]"

When the package is published to PyPI, you can run it with:

uvx notepadpp-mcp

Usage

How the server runs

The published console script is notepadpp-mcp (notepadpp_mcp.server:run in pyproject.toml).

  • Default stdio: what most MCP hosts use (Claude Desktop, Cursor, etc.). No extra flags.
  • Optional HTTP bridge: FastAPI + uvicorn on 127.0.0.1, MCP HTTP at /mcp.
notepadpp-mcp --http --port 10815

Change --port if 10815 is taken (see central port registry if you use a fleet of MCP webapps).

MCP client configuration

Claude Desktop (claude_desktop_config.json) point command/args at your install. Example using uv from a fixed repo path:

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

If notepadpp-mcp is on PATH:

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

Legacy: older docs referenced python -m notepadpp_mcp.tools.server. Prefer notepadpp-mcp unless you are debugging that module.

Calling tools (conceptual)

The assistant calls MCP tools by name; you do not run these in PowerShell. Examples of operations inside portmanteau tools:

Tool Typical operation values
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

Also: suggest_notepad_plan, agentic_notepad_workflow (orchestration), depending on build.

Session snapshots (session_ops)

  • save Copies Notepad++s live session.xml (typically %APPDATA%\Notepad++\session.xml), which lists all open buffers, into a named file under %APPDATA%\Notepad++\notepadpp-mcp-sessions\. Format matches what Notepad++ uses for Load Session / -openSession. If the live file is missing or lists no files, the server falls back to a minimal session built from the active tab path when that path exists on disk.
  • load Runs notepad++.exe -openSession "<saved.xml>". Whether a new or existing instance opens files depends on your Multi-instance settings in Notepad++.
  • Overrides NOTEPADPP_SESSION_STORAGE_DIR (where named *.xml are stored), NOTEPADPP_LIVE_SESSION_XML (override path to the live session.xml, e.g. portable or -settingsDir layouts).

Sampling (LLM for workflows)

Optional. Set env vars as documented in the server / NotepadSamplingHandler, for example:

  • NOTEPADPP_SAMPLING_BASE_URL OpenAI-compatible base (e.g. Ollama http://127.0.0.1:11434/v1)
  • NOTEPADPP_SAMPLING_MODEL
  • NOTEPADPP_SAMPLING_USE_CLIENT_LLM let the MCP host run sampling when supported

Tools overview (portmanteau)

Tool Purpose
file_ops Open, new, save, file info
text_ops Insert / find in buffer
status_ops Help, system status, health
tab_ops List / switch / close tabs
session_ops Save / load / list workspace sessions
linting_ops Python, JS, JSON, Markdown, (uses ruff / eslint on PATH when available)
display_ops Invisible text / display glitches
plugin_ops Discover / install / list / execute plugins

Responses use a consistent dict shape: success, message or summary, plus error / recovery_options where relevant.


Documentation in repo

  • docs/EDITOR_AND_MCP_SCOPE.md Notepad++ (editor) vs this server: strengths of the editor, boundaries of the MCP bridge
  • docs/NOTEPADPP_MACROS.md Macros (what people use them for, shortcuts.xml, curated-set / future tool ideas)
  • src/notepadpp_mcp/docs/ API notes, examples, PRD where present
  • src/notepadpp_mcp/docs_manifest.py REST/MCP overview for the web bridge (when enabled)

Development

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 or project dev.py if present for integration smoke tests.


Roadmap / TODO (extensions)

Work that is planned or open good first issues for contributors:

  • Multi-instance / multi-window target a specific Notepad++ HWND when several are open
  • Richer plugin flows coordinated multi-plugin steps, better error surfaces from Plugin Admin
  • Linting HTML/CSS, optional config files for linters
  • Config profiles server-side defaults (paths, timeouts, auto-start)
  • Batch first-class batch file operations with progress reporting
  • Web UI align docs with the actual dashboard package (e.g. web_sota/) and ports
  • Tests / coverage raise coverage; keep CI green on Windows runners
  • Macros curated XML snippets in-repo; optional read/list/merge for %APPDATA%\Notepad++\shortcuts.xml (see docs/NOTEPADPP_MACROS.md)

Older changelog bullets (multi-instance, plugin analytics, etc.) are folded into the list above where they still apply.


Troubleshooting

  • Notepad++ not found Install Notepad++, start it once, or enable auto-start behavior if your build supports it.
  • Windows API not available Use Windows; install pywin32 in the same environment as the server.
  • Tools missing in the client Restart the host, check MCP logs, confirm notepadpp-mcp runs without errors from a terminal.
  • Session save empty / fails Notepad++ may not refresh session.xml until you have opened saved files or restarted the editor; ensure Settings > Preferences > Backup session behavior matches your expectations. For portable installs, set NOTEPADPP_LIVE_SESSION_XML to the correct session.xml.

Changelog (short)

  • 0.2.x session_ops persists named sessions: copies live session.xml, loads via -openSession (see README section Session snapshots).
  • 0.2.0 FastMCP 3.1.0, sampling, skills, prompts, agentic workflow, HTTP bridge + web hooks as implemented in server.py.
  • Earlier Portmanteau tool consolidation, linting and plugin tooling.

🛡️ Industrial Quality Stack

This project adheres to SOTA 14.1 industrial standards for high-fidelity agentic orchestration:

  • Python (Core): Ruff for linting and formatting. Zero-tolerance for print statements in core handlers (T201).
  • Webapp (UI): Biome for sub-millisecond linting. Strict noConsoleLog enforcement.
  • Protocol Compliance: Hardened stdout/stderr isolation to ensure crash-resistant JSON-RPC communication.
  • Automation: Justfile recipes for all fleet operations (just lint, just fix, just dev).
  • Security: Automated audits via bandit and safety.

License

MIT see LICENSE.

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About Notepadpp MCP

How do I install Notepadpp MCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Notepadpp MCP safe to use with an AI agent?

Its trust score is 34 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Notepadpp MCP still maintained?

Yes — the last commit was 11 days ago. The repository has 6 stars and 2 forks.