sandraschi

Notepad++ MCP Server

Community sandraschi
Updated

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.

Notepad++ MCP Server

PythonFastMCPLicense: MITToolsTests

FastMCP 2.12 compatible MCP server for comprehensive Notepad++ automation and control.

✨ 15 powerful tools including advanced tab and session managementπŸ§ͺ 18 comprehensive tests with real Windows API integration🎯 Production-ready with structured logging and error handling

πŸš€ Installation & Setup

πŸ“¦ Option 1: DXT Installation (Recommended)

  1. Download the latest DXT file from Releases
  2. Open Claude Desktop
  3. Go to Settings β†’ Developer β†’ MCP Servers
  4. Drag & Drop the DXT file onto the extensions screen
  5. Restart Claude Desktop - the server will auto-install and configure

🐍 Option 2: Python Installation

# Install from PyPI
pip install notepadpp-mcp

# Or install from source
git clone https://github.com/sandraschi/notepadpp-mcp.git
cd notepadpp-mcp
pip install -e .

βš™οΈ Claude Desktop Configuration

Add to your Claude Desktop configuration:

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

πŸ”§ Manual Configuration (if needed)

{
  "mcpServers": {
    "notepadpp-mcp": {
      "command": "python",
      "args": ["-m", "notepadpp_mcp.tools.server"],
      "cwd": "${workspaceFolder}",
      "env": {
        "PYTHONPATH": "${workspaceFolder}/src"
      }
    }
  }
}

πŸ“‹ Requirements

πŸ–₯️ System Requirements

  • Windows 10/11 (64-bit)
  • Notepad++ 8.0+ installed and accessible
  • Python 3.10+ with pip
  • pywin32 for Windows API integration

πŸ› οΈ Dependencies

  • FastMCP 2.12+ - MCP framework
  • pywin32 - Windows API bindings
  • psutil - System monitoring
  • pathlib - Path operations

🚨 Important Notes

  • Notepad++ must be installed on the system
  • Server requires Windows API access (pywin32)
  • First run may require Notepad++ to be started manually

🎯 New in v1.0: Advanced Workspace Management

πŸ“‘ Tab Management Tools

Organize and navigate multiple open files efficiently:

  • List all tabs: See filenames, modification status, and active tab
  • Switch tabs: Jump to any tab by index (0-based)
  • Close tabs: Remove tabs individually or current tab

πŸ’Ύ Session Management Tools

Save and restore your entire workspace:

  • Save sessions: Preserve all open files and cursor positions
  • Load sessions: Restore complete workspace state
  • List sessions: Browse saved workspace configurations

πŸ’‘ Usage Examples

# Get comprehensive help about all tools
get_help()

# List all open tabs
list_tabs()

# Save current workspace
save_session("my_project_session")

# Load a saved session
load_session("my_project_session")

# Switch to tab 2
switch_to_tab(2)

πŸ“ Project Structure

notepadpp-mcp/
β”œβ”€β”€ src/notepadpp_mcp/
β”‚   β”œβ”€β”€ tools/          # MCP server implementation
β”‚   β”œβ”€β”€ docs/           # Documentation and examples
β”‚   β”œβ”€β”€ tests/          # Test suite
β”‚   └── dxt/            # DXT packaging configuration
β”œβ”€β”€ pyproject.toml      # Package configuration
β”œβ”€β”€ README.md           # This file
└── LICENSE             # MIT license

πŸ“š Documentation

  • Complete API Documentation - Comprehensive guide
  • Product Requirements Document - Vision and roadmap
  • Configuration Examples - Integration templates

πŸ› οΈ Tools Overview (15 Total)

Category Tools Description
File Operations 4 Create, open, save, and inspect files
Text Operations 2 Insert and search text content
Status & Info 3 Monitor system and document state
Tab Management 3 Organize and navigate multiple files
Session Management 3 Save and restore workspace states

Total: 15 production-ready tools with comprehensive Windows API integration.

⚑ Features

πŸ“ File Operations (4 tools)

  • open_file - Open files in Notepad++
  • new_file - Create new files
  • save_file - Save current file
  • get_current_file_info - Get file metadata

πŸ“ Text Operations (2 tools)

  • insert_text - Insert text at cursor position
  • find_text - Search text with case sensitivity options

πŸ“Š Status & Information (3 tools)

  • get_status - Notepad++ status and window info
  • get_system_status - Comprehensive system diagnostics
  • get_help - Hierarchical help system

πŸ“‘ Tab Management (3 tools) ✨ NEW

  • list_tabs - List all open tabs with metadata
  • switch_to_tab - Switch between tabs by index
  • close_tab - Close tabs by index or current tab

πŸ’Ύ Session Management (3 tools) ✨ NEW

  • save_session - Save workspace to named session
  • load_session - Load saved sessions
  • list_sessions - List all saved sessions

πŸ”§ Core Capabilities

  • 🎯 Windows Integration: Native Windows API with pywin32
  • ⚑ FastMCP 2.12: Latest MCP framework compliance
  • πŸ“ Structured Logging: Professional error handling
  • πŸ§ͺ Comprehensive Testing: 18 tests covering all tools
  • πŸ“š Self-Documenting: Built-in help system

πŸ› οΈ Development

# Clone and install
git clone https://github.com/sandraschi/notepadpp-mcp.git
cd notepadpp-mcp
pip install -e .[dev]

# Run comprehensive tests
python -m pytest src/notepadpp_mcp/tests/

# Format code
black src/

# Test real Notepad++ integration
python demonstration_test.py

# Development helper
python dev.py test|format|build|validate-dxt

πŸ§ͺ Testing

  • 18 comprehensive tests covering all tools
  • Real Windows API testing with actual Notepad++ integration
  • Demonstration script (demonstration_test.py) tests live functionality
  • CI/CD ready with automated testing pipeline

πŸ—οΈ Architecture

🎯 Core Components

  • NotepadPPController - Windows API integration layer
  • FastMCP Server - MCP protocol implementation
  • Tool Decorators - Automatic tool registration
  • Structured Logging - Professional error handling

πŸ”§ Integration Flow

  1. MCP Client (Claude Desktop) β†’ FastMCP Server
  2. Server β†’ NotepadPPController β†’ Windows API
  3. Windows API β†’ Notepad++ Application β†’ User Interface

πŸ“ File Structure

src/notepadpp_mcp/
β”œβ”€β”€ tools/server.py     # Main MCP server (966 lines)
β”œβ”€β”€ tests/              # Comprehensive test suite
β”œβ”€β”€ docs/               # Documentation and examples
└── dxt/                # DXT packaging configuration

πŸ› Troubleshooting

❌ Common Issues

"Notepad++ not found"
# Check if Notepad++ is installed
python demonstration_test.py

# Install Notepad++
# Download from: https://notepad-plus-plus.org/downloads/
# Or via Chocolatey: choco install notepadplusplus
"Windows API not available"
# Install pywin32
pip install pywin32

# Restart Python environment
# Try running demonstration script again
python demonstration_test.py
"Server not connecting"
{
  "mcpServers": {
    "notepadpp-mcp": {
      "command": "python",
      "args": ["-m", "notepadpp_mcp.tools.server"],
      "cwd": "${workspaceFolder}",
      "env": {
        "PYTHONPATH": "${workspaceFolder}/src"
      }
    }
  }
}
"Tools not appearing in Claude"
  1. Restart Claude Desktop after configuration
  2. Check logs in Claude developer console
  3. Verify Notepad++ is running on the system
  4. Run demonstration script to test functionality

πŸ†˜ Getting Help

Run Diagnostics
# Test all functionality
python demonstration_test.py

# Check tool availability
python -c "from notepadpp_mcp.tools.server import app; print('Tools:', len(app._tools))"
Debug Mode
# Enable debug logging
import logging
logging.basicConfig(level=logging.DEBUG)

# Run server with debug output
python -m notepadpp_mcp.tools.server
Manual Testing
# Test individual tools
from notepadpp_mcp.tools.server import get_status, get_help

# Get status
status = await get_status()
print("Status:", status)

# Get help
help_info = await get_help()
print("Help:", help_info)

🀝 Contributing

πŸ“ Development Setup

# Clone repository
git clone https://github.com/sandraschi/notepadpp-mcp.git
cd notepadpp-mcp

# Install development dependencies
pip install -e .[dev]

# Run tests
python -m pytest

# Format code
black src/

# Build DXT package
python dev.py build

πŸ› Reporting Issues

  1. Run demonstration script first: python demonstration_test.py
  2. Check existing issues on GitHub
  3. Include error logs and system information
  4. Test with different Notepad++ versions if possible

πŸ’‘ Feature Requests

  • Check existing tools in the tools overview
  • Consider Windows API limitations
  • Test with real Notepad++ workflows
  • Follow FastMCP 2.12 patterns

πŸ“œ Changelog

v1.0.0 - Current Release

  • βœ… 15 comprehensive tools for Notepad++ automation
  • βœ… Real Windows API integration with pywin32
  • βœ… Advanced tab and session management
  • βœ… 18 comprehensive tests with full coverage
  • βœ… DXT packaging for easy installation
  • βœ… Production-ready error handling and logging

Planned Features

  • Multi-instance support for multiple Notepad++ windows
  • Plugin integration for extended functionality
  • Configuration files for custom settings
  • Batch operations for multiple file processing

πŸ“„ License

MIT - see LICENSE

MCP Server Β· Populars

MCP Server Β· New

    chinawsb

    Daofy for Delphi

    Daofy for Delphi β€” MCP Server that compiles Delphi projects and queries knowledge base for AI assistants.

    Community chinawsb
    heymrun

    Heym

    Self-hosted AI workflow automation platform with visual canvas, agents, RAG, HITL, MCP, and observability in one runtime.

    Community heymrun
    Wide-Moat

    Open Computer Use

    MCP server that gives any LLM its own computer β€” managed Docker workspaces with live browser, terminal, code execution, document skills, and autonomous sub-agents. Self-hosted, open-source, pluggable into any model.

    Community Wide-Moat
    uarlouski

    πŸš€ TestRail MCP Server

    AI-native MCP server connecting Claude, Cursor, Windsurf, and other AI assistants to TestRail β€” manage test cases, runs, and results through natural-language conversation, with typed schemas built for LLMs.

    Community uarlouski
    metabase

    Metabase MCP Server

    The easy-to-use open source Business Intelligence and Embedded Analytics tool that lets everyone work with data :bar_chart:

    Community metabase