name: Build and Release MCPB Extension
on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
version:
description: 'Version to build (e.g., 1.2.0)'
required: true
default: '1.2.0'
jobs:
build-mcpb:
name: Build MCPB Package
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install MCPB CLI
run: npm install -g @anthropic-ai/mcpb
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install "fastmcp>=2.12.0"
pip install -r requirements.txt
- name: Validate manifest.json
run: mcpb validate manifest.json
- name: Build MCPB extension
run: |
if (-not (Test-Path dist)) {
New-Item -ItemType Directory -Path dist -Force
}
mcpb pack . dist/notepadpp-mcp.mcpb
shell: pwsh
- name: Verify package
run: |
if (Test-Path dist/notepadpp-mcp.mcpb) {
$size = (Get-Item dist/notepadpp-mcp.mcpb).Length / 1MB
Write-Host "✅ Package built: $([math]::Round($size, 2)) MB"
} else {
Write-Error "❌ Package not found"
exit 1
}
shell: pwsh
- name: Upload MCPB artifact
uses: actions/upload-artifact@v3
with:
name: mcpb-extension
path: dist/*.mcpb
retention-days: 90
- name: Create GitHub Release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v1
with:
files: |
dist/*.mcpb
generate_release_notes: true
draft: false
prerelease: false
body: |
## 🚀 Notepad++ MCP Server v${{ github.ref_name }}
**Download and install the MCPB package for one-click setup in Claude Desktop!**
### ✨ Features
- **26 powerful tools** for Notepad++ automation
- **Plugin ecosystem** integration with 1,400+ official plugins
- **Code quality** analysis with multi-language linting
- **Display fixes** for invisible text and theme issues
- **Windows integration** via native Windows API
### 📦 Installation
1. **Download** `notepadpp-mcp.mcpb` from the assets below
2. **Drag** the file to Claude Desktop
3. **Configure** Notepad++ path and preferences
4. **Restart** Claude Desktop
5. **Test** the 26 available tools!
### 🛠️ Tool Categories
- **File Operations** (4 tools): Create, open, save, inspect files
- **Text Operations** (2 tools): Insert and search text
- **Status & Info** (4 tools): Monitor system and document state
- **Tab Management** (3 tools): Organize multiple files
- **Session Management** (3 tools): Save and restore workspaces
- **Code Quality** (5 tools): Python, JavaScript, JSON, Markdown linting
- **Display Fixes** (2 tools): Fix invisible text and theme issues
- **Plugin Ecosystem** (4 tools): Discover, install, and manage plugins
### 📋 Requirements
- **Windows 10/11** (64-bit)
- **Python 3.10+** (bundled with Claude Desktop)
- **Notepad++ 8.0+** installed
- **FastMCP 2.12+** (bundled in package)
### 📚 Documentation
- [Complete README](https://github.com/sandraschi/notepadpp-mcp/blob/main/README.md)
- [API Documentation](https://github.com/sandraschi/notepadpp-mcp/blob/main/src/notepadpp_mcp/docs/README.md)
- [Plugin Ecosystem Guide](https://github.com/sandraschi/notepadpp-mcp/blob/main/src/notepadpp_mcp/docs/PLUGIN_ECOSYSTEM.md)
### 🐛 Troubleshooting
If installation fails:
1. Check Notepad++ is installed
2. Verify Claude Desktop is up to date
3. See [Issues](https://github.com/sandraschi/notepadpp-mcp/issues) for help
---
**What's New in this Release:**
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish-pypi:
name: Publish to PyPI
runs-on: ubuntu-latest
needs: build-mcpb
if: startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build twine
- name: Build Python package
run: python -m build
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}