Notepad++ MCP Server
Servidor MCP de Notepad++
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+ ( |
API | pywin32 (se descarga en Windows) |
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 --helpO instala el paquete en modo editable:
uv pip install -e ".[dev]"Cuando el paquete se publique en PyPI, podrás ejecutarlo con:
uvx notepadpp-mcpUso
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 10815Cambia --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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.xmlactivo 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*.xmlcon nombre),NOTEPADPP_LIVE_SESSION_XML(ruta de sobrescritura alsession.xmlactivo, 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., Ollamahttp://127.0.0.1:11434/v1)NOTEPADPP_SAMPLING_MODELNOTEPADPP_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 |
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 MCPdocs/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é presentesrc/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 testsOpcional: 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(verdocs/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-mcpse ejecuta sin errores desde una terminal.El guardado de sesión está vacío / falla: Es posible que Notepad++ no actualice
session.xmlhasta 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, estableceNOTEPADPP_LIVE_SESSION_XMLen elsession.xmlcorrecto.
Registro de cambios (corto)
0.2.x:
session_opspersiste sesiones con nombre: copia elsession.xmlactivo, 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
printen 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/stderrpara 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
banditysafety.
Licencia
MIT: ver LICENSE.
This server cannot be installed
Maintenance
Appeared in Searches
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