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