Skip to main content
Glama
sandraschi

Notepad++ MCP Server

by sandraschi

Servidor MCP de Notepad++

Versión de FastMCP Ruff Linted with Biome Built with Just

CI Release Python FastMCP License: MIT Version

Servidor MCP para Notepad++ en Windows. Utiliza FastMCP 3.1.0 con herramientas combinadas (menos herramientas, misma cobertura), puente HTTP opcional, muestreo (HTTP compatible con Ollama o LLM del cliente), prompts, recursos skill:// y flujos de trabajo agénticos.

Editor vs este repositorio: Las fortalezas propias de Notepad++ (Scintilla, plugins, macros, sesiones) son independientes de lo que expone este MCP. Consulta docs/EDITOR_AND_MCP_SCOPE.md para ver una división clara y una visión general más completa del lado del editor.


Requisitos

Elemento

Notas

SO

Windows 10/11 (64 bits)

Editor

Notepad++ 8+ instalado

Python

3.12+ (requires-python en pyproject.toml)

API

pywin32 (se descarga en Windows)


Related MCP server: Windows Automation MCP Server

Instalación

Recomendado: uv.

Desde un clon de este repositorio:

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

O instala el paquete en modo editable:

uv pip install -e ".[dev]"

Cuando el paquete se publique en PyPI, podrás ejecutarlo con:

uvx notepadpp-mcp

Uso

Cómo se ejecuta el servidor

El script de consola publicado es notepadpp-mcp (notepadpp_mcp.server:run en pyproject.toml).

  • stdio predeterminado: lo que usan la mayoría de los hosts MCP (Claude Desktop, Cursor, etc.). Sin flags adicionales.

  • Puente HTTP opcional: FastAPI + uvicorn en 127.0.0.1, MCP HTTP en /mcp.

notepadpp-mcp --http --port 10815

Cambia --port si el puerto 10815 está ocupado (consulta el registro central de puertos si utilizas un conjunto de aplicaciones web MCP).

Configuración del cliente MCP

Claude Desktop (claude_desktop_config.json): apunta command/args a tu instalación. Ejemplo usando uv desde una ruta de repositorio fija:

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

Si notepadpp-mcp está en el PATH:

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

Legado: los documentos antiguos hacían referencia a python -m notepadpp_mcp.tools.server. Prefiere notepadpp-mcp a menos que estés depurando ese módulo.

Llamada a herramientas (conceptual)

El asistente llama a las herramientas MCP por su nombre; no las ejecutas en PowerShell. Ejemplos de operaciones dentro de las herramientas combinadas:

Herramienta

Valores típicos de 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

También: suggest_notepad_plan, agentic_notepad_workflow (orquestación), dependiendo de la compilación.

Instantáneas de sesión (session_ops)

  • save: Copia el archivo session.xml activo de Notepad++ (normalmente %APPDATA%\Notepad++\session.xml), que enumera todos los búferes abiertos, en un archivo con nombre bajo %APPDATA%\Notepad++\notepadpp-mcp-sessions\**. El formato coincide con lo que usa Notepad++ para **Cargar sesión** / **-openSession. Si el archivo activo falta o no enumera archivos, el servidor recurre a una sesión mínima creada a partir de la ruta de la pestaña activa cuando esa ruta existe en el disco.

  • load: Ejecuta notepad++.exe -openSession "<saved.xml>". Si una instancia nueva o existente abre los archivos depende de tu configuración de Instancia múltiple en Notepad++.

  • Sobrescrituras: NOTEPADPP_SESSION_STORAGE_DIR (donde se almacenan los *.xml con nombre), NOTEPADPP_LIVE_SESSION_XML (ruta de sobrescritura al session.xml activo, p. ej., diseños portátiles o -settingsDir).

Muestreo (LLM para flujos de trabajo)

Opcional. Establece las variables de entorno como se documenta en el servidor / NotepadSamplingHandler, por ejemplo:

  • NOTEPADPP_SAMPLING_BASE_URL: Base compatible con OpenAI (p. ej., Ollama http://127.0.0.1:11434/v1)

  • NOTEPADPP_SAMPLING_MODEL

  • NOTEPADPP_SAMPLING_USE_CLIENT_LLM: permite que el host MCP ejecute el muestreo cuando sea compatible


Descripción general de las herramientas (combinadas)

Herramienta

Propósito

file_ops

Abrir, nuevo, guardar, información de archivo

text_ops

Insertar / buscar en el búfer

status_ops

Ayuda, estado del sistema, salud

tab_ops

Listar / cambiar / cerrar pestañas

session_ops

Guardar / cargar / listar sesiones de espacio de trabajo

linting_ops

Python, JS, JSON, Markdown (usa ruff / eslint en el PATH cuando está disponible)

display_ops

Texto invisible / fallos de visualización

plugin_ops

Descubrir / instalar / listar / ejecutar plugins

Las respuestas utilizan una forma de diccionario consistente: success, message o summary, además de error / recovery_options cuando sea relevante.


Documentación en el repositorio

  • docs/EDITOR_AND_MCP_SCOPE.md: Notepad++ (editor) vs este servidor: fortalezas del editor, límites del puente MCP

  • docs/NOTEPADPP_MACROS.md: Macros (para qué los usa la gente, shortcuts.xml, conjunto curado / ideas de herramientas futuras)

  • src/notepadpp_mcp/docs/: Notas de API, ejemplos, PRD donde esté presente

  • src/notepadpp_mcp/docs_manifest.py: Descripción general de REST/MCP para el puente web (cuando está habilitado)


Desarrollo

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

Opcional: python demonstration_test.py o el proyecto dev.py si está presente para pruebas de humo de integración.


Hoja de ruta / TODO (extensiones)

Trabajo que está planificado o abierto: buenas primeras tareas para colaboradores:

  • [ ] Instancia múltiple / ventana múltiple: apuntar a un HWND específico de Notepad++ cuando hay varios abiertos

  • [ ] Flujos de plugins más ricos: pasos coordinados de múltiples plugins, mejores superficies de error desde el Administrador de Plugins

  • [ ] Linting: HTML/CSS, archivos de configuración opcionales para linters

  • [ ] Perfiles de configuración: valores predeterminados del lado del servidor (rutas, tiempos de espera, inicio automático)

  • [ ] Lotes: operaciones de archivos por lotes de primera clase con informes de progreso

  • [ ] Interfaz web: alinear los documentos con el paquete de panel real (p. ej., web_sota/) y puertos

  • [ ] Pruebas / cobertura: aumentar la cobertura; mantener la CI verde en los ejecutores de Windows

  • [ ] Macros: fragmentos XML curados en el repositorio; lectura/lista/fusión opcional para %APPDATA%\Notepad++\shortcuts.xml (ver docs/NOTEPADPP_MACROS.md)

Los puntos del registro de cambios anteriores (instancia múltiple, análisis de plugins, etc.) se incluyen en la lista anterior donde todavía se aplican.


Solución de problemas

  • No se encuentra Notepad++: Instala Notepad++, inícialo una vez o habilita el comportamiento de inicio automático si tu compilación lo admite.

  • API de Windows no disponible: Usa Windows; instala pywin32 en el mismo entorno que el servidor.

  • Herramientas que faltan en el cliente: Reinicia el host, verifica los registros de MCP, confirma que notepadpp-mcp se ejecuta sin errores desde una terminal.

  • El guardado de sesión está vacío / falla: Es posible que Notepad++ no actualice session.xml hasta que hayas abierto archivos guardados o reiniciado el editor; asegúrate de que el comportamiento de la sesión en Configuración > Preferencias > Copia de seguridad coincida con tus expectativas. Para instalaciones portátiles, establece NOTEPADPP_LIVE_SESSION_XML en el session.xml correcto.


Registro de cambios (corto)

  • 0.2.x: session_ops persiste sesiones con nombre: copia el session.xml activo, carga mediante -openSession (ver la sección del README Instantáneas de sesión).

  • 0.2.0: FastMCP 3.1.0, muestreo, habilidades, prompts, flujo de trabajo agéntico, puente HTTP + web hooks como se implementó en server.py.

  • Anterior: Consolidación de herramientas combinadas, linting y herramientas de plugins.


🛡️ Pila de calidad industrial

Este proyecto se adhiere a los estándares industriales SOTA 14.1 para la orquestación agéntica de alta fidelidad:

  • Python (Núcleo): Ruff para linting y formato. Tolerancia cero para declaraciones print en los controladores principales (T201).

  • Aplicación web (UI): Biome para linting de sub-milisegundos. Aplicación estricta de noConsoleLog.

  • Cumplimiento del protocolo: Aislamiento endurecido de stdout/stderr para garantizar una comunicación JSON-RPC resistente a fallos.

  • Automatización: Recetas de Justfile para todas las operaciones de flota (just lint, just fix, just dev).

  • Seguridad: Auditorías automatizadas mediante bandit y safety.

Licencia

MIT: ver LICENSE.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    A
    quality
    F
    maintenance
    Enables Excel file manipulation through Microsoft's official COM automation interface using xlwings, designed for corporate environments where security policies prevent direct file access. Provides 25 tools for workbook operations, data manipulation, formatting, charts, pivot tables, and worksheet management through native Excel integration.
    2
    29
    9
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables comprehensive Windows desktop automation including screen capture, OCR text extraction, mouse/keyboard control, window management, process control, and clipboard operations through 25+ tools for AI agents.
    3
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides essential developer tools for workspace management, including advanced file searching, project structure analysis, and batch code editing. It enables users to efficiently navigate, analyze, and modify source code within their development environment.
    7
    56
    MIT

View all related MCP servers

Related MCP Connectors

  • Control Unreal Engine to browse assets, import content, and manage levels and sequences. Automate…

  • AI access to your aNotepad online notes: read, search, write, and organize via 22 tools.

  • Streamline your workflow with Felix. Integrate it into your workspace and tailor its behavior to y…

View all MCP Connectors

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