Skip to main content
Glama

Notepad++ MCP Server

Notepad++ MCP Server

Gold Status CI Release Python FastMCP License: MIT Tools Tests Coverage

πŸ† Gold Status Certified FastMCP 2.12 compatible MCP server for comprehensive Notepad++ automation, control, and code quality analysis. Enterprise production-ready with 64 passing tests, structured logging, and advanced linting capabilities.

✨ 20 powerful tools including advanced tab/session management and code linting πŸ§ͺ 64 comprehensive tests with real Windows API integration and 23% coverage πŸ” 5 linting tools for Python, JavaScript, JSON, and Markdown 🎯 Enterprise production-ready with structured logging and error handling πŸ† Gold Status on Glama.ai platform (85/100 quality score)

πŸš€ 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

πŸ› οΈ Tools Overview (20 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

Code Quality & Linting

5

Analyze code for multiple file types

Total: 20 production-ready tools with comprehensive Windows API integration and multi-linter support.

⚑ 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

πŸ” Code Quality & Linting (5 tools) ✨ NEW

  • lint_python_file - Comprehensive Python code analysis with ruff/flake8

  • lint_javascript_file - JavaScript validation with ESLint or basic checking

  • lint_json_file - JSON syntax validation and structure analysis

  • lint_markdown_file - Markdown style and syntax validation

  • get_linting_tools - Overview of available linting capabilities

πŸ”§ Core Capabilities

  • 🎯 Windows Integration: Native Windows API with pywin32

  • ⚑ FastMCP 2.12: Latest MCP framework compliance

  • πŸ“ Structured Logging: Professional error handling

  • πŸ§ͺ Comprehensive Testing: 34 tests covering all tools

  • πŸ“š Self-Documenting: Built-in help system

  • πŸ” Multi-linter Support: ruff, flake8, ESLint with fallback options

  • 🎨 Code Quality: Syntax validation for Python, JS, JSON, Markdown

πŸ› οΈ 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

  • 34 comprehensive tests covering all tools including linting functionality

  • Real Windows API testing with actual Notepad++ integration

  • Demonstration script (demonstration_test.py) tests live functionality

  • CI/CD ready with automated testing pipeline

  • Multi-linter testing with ruff, flake8, and ESLint integration

πŸ—οΈ 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 (1533 lines) β”œβ”€β”€ tests/ # Comprehensive test suite (34 tests) β”œβ”€β”€ 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.1.0 - Linting Tools Release ✨ NEW

  • βœ… 5 comprehensive linting tools for Python, JavaScript, JSON, and Markdown

  • βœ… Multi-linter support with ruff, flake8, ESLint, and fallback options

  • βœ… 16 additional tests covering all linting functionality

  • βœ… Enhanced DXT configuration with detailed linting tool documentation

  • βœ… Total: 20 tools for complete code quality analysis

v1.0.0 - Core 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

  • HTML/CSS linting tools for web development

  • Configuration files for custom settings

  • Batch operations for multiple file processing

πŸ“„ License

MIT - see LICENSE

-
security - not tested
-
license - not tested
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

Enables comprehensive automation and control of Notepad++ on Windows, including file operations, text editing, tab management, and session management through 15 integrated tools. Supports advanced workspace management with the ability to save and restore complete editing sessions.

  1. πŸš€ Installation & Setup
    1. πŸ“¦ Option 1: DXT Installation (Recommended)
    2. 🐍 Option 2: Python Installation
    3. βš™οΈ Claude Desktop Configuration
    4. πŸ”§ Manual Configuration (if needed)
  2. πŸ“‹ Requirements
    1. πŸ–₯️ System Requirements
    2. πŸ› οΈ Dependencies
    3. 🚨 Important Notes
  3. 🎯 New in v1.0: Advanced Workspace Management
    1. πŸ“‘ Tab Management Tools
    2. πŸ’Ύ Session Management Tools
    3. πŸ’‘ Usage Examples
  4. πŸ“ Project Structure
    1. πŸ“š Documentation
      1. πŸ› οΈ Tools Overview (20 Total)
        1. ⚑ Features
          1. πŸ“ File Operations (4 tools)
          2. πŸ“ Text Operations (2 tools)
          3. πŸ“Š Status & Information (3 tools)
          4. πŸ“‘ Tab Management (3 tools) ✨ NEW
          5. πŸ’Ύ Session Management (3 tools) ✨ NEW
          6. πŸ” Code Quality & Linting (5 tools) ✨ NEW
          7. πŸ”§ Core Capabilities
        2. πŸ› οΈ Development
          1. πŸ§ͺ Testing
        3. πŸ—οΈ Architecture
          1. 🎯 Core Components
          2. πŸ”§ Integration Flow
          3. πŸ“ File Structure
        4. πŸ› Troubleshooting
          1. ❌ Common Issues
          2. πŸ†˜ Getting Help
        5. 🀝 Contributing
          1. πŸ“ Development Setup
          2. πŸ› Reporting Issues
          3. πŸ’‘ Feature Requests
        6. πŸ“œ Changelog
          1. v1.1.0 - Linting Tools Release ✨ NEW
          2. v1.0.0 - Core Release
          3. Planned Features
        7. πŸ“„ License

          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