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.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 8 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
display_ops
fix_invisible_text, fix_display_issue
-
file_ops
open, new, save, info
-
linting_ops
python, javascript, json, markdown,
-
plugin_ops
discover, install, list, execute
-
session_ops
save, load, list
-
status_ops
help, system_status, health_check
-
tab_ops
list, switch, close
-
text_ops
insert, find
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit b5aa4c6 · analyzer v18 · 2h ago
skills & prompt files 12
- agent-rulessandraschi-notepadpp-mcp-b5aa4c6/.cursor/rules/architect.mdc
- skillsandraschi-notepadpp-mcp-b5aa4c6/.cursor/skills/full-stack-developer/SKILL.md
- skillsandraschi-notepadpp-mcp-b5aa4c6/.cursor/skills/mcp-server-developer/SKILL.md
- agent-rulessandraschi-notepadpp-mcp-b5aa4c6/.cursorrules
- agent-rulessandraschi-notepadpp-mcp-b5aa4c6/AGENTS.md
- agent-rulessandraschi-notepadpp-mcp-b5aa4c6/CLAUDE.md
- prompt-filesandraschi-notepadpp-mcp-b5aa4c6/assets/prompts/configuration.md
- prompt-filesandraschi-notepadpp-mcp-b5aa4c6/assets/prompts/quick-start.md
- prompt-filesandraschi-notepadpp-mcp-b5aa4c6/assets/prompts/system.md
- prompt-filesandraschi-notepadpp-mcp-b5aa4c6/assets/prompts/troubleshooting.md
- prompt-filesandraschi-notepadpp-mcp-b5aa4c6/assets/prompts/user.md
- skillsandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/skills/notepadpp-mcp/SKILL.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
filesystem 12
- fs sandraschi-notepadpp-mcp-b5aa4c6/dev.py :11
from pathlib import Path - fs sandraschi-notepadpp-mcp-b5aa4c6/scripts/run_megatest.py :35
from pathlib import Path - fs sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/editor_bridge.py :7
from pathlib import Path - fs sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/file_validator.py :27
from pathlib import Path - fs sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/fleet.py :8
from pathlib import Path - fs sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/link_parser.py :400
from pathlib import Path - fs sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/npp_session_store.py :11
from pathlib import Path - fs sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/npp_theme.py :9
from pathlib import Path - fs sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/server.py :16
from pathlib import Path - fs sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/sync_health.py :28
from pathlib import Path - fs sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/tools/controller.py :10
from pathlib import Path - fs sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/tools/linting_operations.py :10
import shutil
shell / exec 6
- shell sandraschi-notepadpp-mcp-b5aa4c6/dev.py :8
import subprocess - shell sandraschi-notepadpp-mcp-b5aa4c6/scripts/run_megatest.py :33
import subprocess - shell sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/npp_session_store.py :7
import subprocess - shell sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/tools/controller.py :9
import subprocess - shell sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/tools/file_operations.py :9
import subprocess - shell sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/tools/linting_operations.py :11
import subprocess
network 3
- net sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/fleet.py :11
import httpx - net sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/plugin_catalog.py :9
import urllib.error - net sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/sampling/notepad_sampling_handler.py :20
from urllib.parse import urlparse
secrets 1
- secrets sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/sampling/notepad_sampling_handler.py :240
api_key = os.environ.get("NOTEPADPP_SAMPLING_API_KEY")
tool registrations 5
- suggest_notepad_plan sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/server.py :194
- sync_health sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/sync_health.py :16
- agentic_notepad_workflow sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/tools/agentic_notepad_workflow.py :36
- agentic_notepad_workflow sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/tools/server.py :122
- intelligent_file_processing sandraschi-notepadpp-mcp-b5aa4c6/src/notepadpp_mcp/tools/server.py :184
declared dependencies 11
- fastapi@>=0.115.0
- fastmcp@>=3.2,<4
- httpx@>=0.27.0
- pytest@>=7.0.0
- pytest-asyncio@>=0.21.0
- pytest-cov@>=4.0.0
- ruff@>=0.13.0
- mypy@>=1.5.0
- pre-commit@>=3.4.0
- build@>=0.10.0
- twine@>=4.0.0
cursor-plugin 5
- opaque (low) sandraschi-notepadpp-mcp-b5aa4c6/.cursor/prompt_template.md
bundled .cursor/ plugin descriptor (sandraschi-notepadpp-mcp-b5aa4c6/.cursor/prompt_template.md) — presence-detected; review the descriptor - opaque (low) sandraschi-notepadpp-mcp-b5aa4c6/.cursor/rules/architect.mdc
bundled .cursor/ plugin descriptor (sandraschi-notepadpp-mcp-b5aa4c6/.cursor/rules/architect.mdc) — presence-detected; review the descriptor - opaque (low) sandraschi-notepadpp-mcp-b5aa4c6/.cursor/settings.json
bundled .cursor/ plugin descriptor (sandraschi-notepadpp-mcp-b5aa4c6/.cursor/settings.json) — presence-detected; review the descriptor - opaque (low) sandraschi-notepadpp-mcp-b5aa4c6/.cursor/skills/full-stack-developer/SKILL.md
bundled .cursor/ plugin descriptor (sandraschi-notepadpp-mcp-b5aa4c6/.cursor/skills/full-stack-developer/SKILL.md) — presence-detected; review the descriptor - opaque (low) sandraschi-notepadpp-mcp-b5aa4c6/.cursor/tasks.json
bundled .cursor/ plugin descriptor (sandraschi-notepadpp-mcp-b5aa4c6/.cursor/tasks.json) — presence-detected; review the descriptor