@mhdd_24/notepadpp-mcp
v1.0.1
Published
MCP server for Notepad++ automation on Windows: open files, manage sessions, and run the editor from Cursor
Maintainers
Readme
@mhdd_24/notepadpp-mcp
MCP server for Notepad++ on Windows. Use it from Cursor, Claude Desktop, VS Code Copilot, or any MCP-compatible client to open files, check editor status, and save/load session snapshots.
Full documentation: docs/WIKI.md
How it works (30 seconds)
You (chat) → MCP client → notepadpp-mcp → notepad++.exe / session.xml- Status — resolves
NOTEPADPP_EXE, checks if the process is running - Open / new — launches Notepad++ with file paths or a fresh buffer
- Sessions — reads live
session.xml; save/load named snapshots via-openSession
Prerequisites
| Requirement | Notes |
|-------------|--------|
| Node.js 18+ | Required for MCP server |
| Notepad++ 8+ | Default: C:\Program Files\Notepad++\notepad++.exe |
| Windows | CLI + session.xml (no Python) |
Install
Option A — npm (recommended after publish)
npm install -g @mhdd_24/notepadpp-mcpOption B — npx (no global install)
npx @mhdd_24/notepadpp-mcpOption C — clone and build (contributors)
git clone https://github.com/Mhdd-24/NotePadpp-MCP.git
cd NotePadpp-MCP
npm install
npm run build
node dist/index.jsConfigure your MCP client
Cursor
Edit Cursor Settings → MCP or ~/.cursor/mcp.json:
{
"mcpServers": {
"notepadpp": {
"command": "npx",
"args": ["-y", "@mhdd_24/notepadpp-mcp"],
"env": {
"NOTEPADPP_EXE": "C:/Program Files/Notepad++/notepad++.exe",
"NOTEPADPP_WORKDIR": "C:/Users/You/Documents/NotepadPP-Notes"
}
}
}
}After global install, you can use:
"command": "notepadpp-mcp"Local development:
"command": "node",
"args": ["C:/path/to/notepadpp-mcp/dist/index.js"]Restart Cursor (or toggle the MCP server off/on) after saving.
Environment variables
| Variable | Required | Default | Purpose |
|----------|----------|---------|---------|
| NOTEPADPP_EXE | No | Program Files path | Path to notepad++.exe |
| NOTEPADPP_WORKDIR | No | %USERPROFILE%\Documents\NotepadPP-Notes | Base for relative paths |
| NOTEPADPP_SESSION_XML | No | %APPDATA%\Notepad++\session.xml | Live session file |
| NOTEPADPP_SESSION_STORAGE_DIR | No | %APPDATA%\Notepad++\notepadpp-mcp-sessions | Named snapshots |
Never commit machine-specific paths that identify private orgs. Put local overrides only in MCP env or a gitignored .env.
Tools
| Tool | Purpose |
|------|---------|
| npp_status | Exe path, process running, session/workdir |
| npp_open | Open file(s) in Notepad++ |
| npp_new | New empty buffer or create+open a file |
| npp_list_session | List paths from live session.xml |
| npp_save_session | Snapshot live session under a name |
| npp_load_session | Load named session via -openSession |
| npp_run | Escape hatch with custom CLI args |
What happens after npm install?
- Package files land in
node_modules/@mhdd_24/notepadpp-mcp/(or global prefix if-g). prepack/ publish includes compileddist/— no local build needed for end users.- The
notepadpp-mcpbin points todist/index.js. - Your MCP client runs that entry over stdio.
- Tools are registered; the server waits for
CallToolrequests from the AI.
After publishing to npm (maintainers)
- Bump version in
package.jsonandsrc/config/notepadpp.config.ts(NPP.SERVER.VERSION). - Build and test:
npm run buildthen test with localmcp.json. - Publish:
npm publish --access public(logged in as package owner). - Users update by restarting MCP —
npxpicks up the new version automatically.
Current package version: 1.0.1.
See WIKI — Publishing for the checklist.
Troubleshooting
| Problem | Fix |
|---------|-----|
| Exe not found | Set NOTEPADPP_EXE |
| Empty session list | Open saved files in Notepad++, then retry |
| Session load opens new window | Check Notepad++ multi-instance preferences |
License
ISC
