Notepad++ MCP Server
Notepad++ MCP サーバー
Windows上のNotepad++用MCPサーバーです。FastMCP 3.1.0を使用し、ポートマントー(統合)ツール(ツール数を減らしつつ同等のカバレッジを維持)、オプションのHTTPブリッジ、サンプリング(Ollama互換HTTPまたはクライアントLLM)、プロンプト、skill:// リソース、およびエージェント型ワークフローをサポートしています。
エディタと本リポジトリの違い: Notepad++自体の強み(Scintilla、プラグイン、マクロ、セッションなど)は、このMCPが公開するものとは別物です。明確な役割分担とエディタ側の詳細な概要については、docs/EDITOR_AND_MCP_SCOPE.md を参照してください。
要件
項目 | 備考 |
OS | Windows 10/11 (64-bit) |
エディタ | Notepad++ 8+ インストール済み |
Python | 3.12+ ( |
API | pywin32 (Windows上で自動的に取得) |
インストール
推奨: uv。
このリポジトリをクローンした場合:
git clone https://github.com/sandraschi/notepadpp-mcp.git
Set-Location notepadpp-mcp
uv sync
uv run notepadpp-mcp --helpまたは、編集可能モードでパッケージをインストールします:
uv pip install -e ".[dev]"パッケージがPyPIに公開されたら、以下で実行できます:
uvx notepadpp-mcp使用方法
サーバーの実行方法
公開されているコンソールスクリプトは notepadpp-mcp (pyproject.toml 内の notepadpp_mcp.server:run) です。
デフォルト stdio: ほとんどのMCPホスト(Claude Desktop、Cursorなど)で使用されます。追加のフラグは不要です。
オプション HTTPブリッジ:
127.0.0.1上の FastAPI + uvicorn、/mcpでMCP HTTPを提供します。
notepadpp-mcp --http --port 1081510815番ポートが使用中の場合は --port を変更してください(MCPウェブアプリ群を使用している場合は、中央ポートレジストリを参照してください)。
MCPクライアントの設定
Claude Desktop (claude_desktop_config.json) では、command/args にインストール先を指定します。固定リポジトリパスから uv を使用する例:
{
"mcpServers": {
"notepadpp-mcp": {
"command": "uv",
"args": ["run", "--directory", "D:/Dev/repos/notepadpp-mcp", "notepadpp-mcp"]
}
}
}notepadpp-mcp が PATH にある場合:
{
"mcpServers": {
"notepadpp-mcp": {
"command": "notepadpp-mcp",
"args": []
}
}
}レガシー: 古いドキュメントでは python -m notepadpp_mcp.tools.server が参照されていました。そのモジュールをデバッグする場合を除き、notepadpp-mcp を使用してください。
ツールの呼び出し(概念)
アシスタントはMCPツールを名前で呼び出します。これらをPowerShellで直接実行するわけではありません。ポートマントーツール内の操作の例:
ツール | 代表的な |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
その他: ビルドに応じて suggest_notepad_plan、agentic_notepad_workflow(オーケストレーション)も利用可能です。
セッションスナップショット (session_ops)
save Notepad++のライブ
session.xml(通常%APPDATA%\Notepad++\session.xml)をコピーします。これには開いているすべてのバッファがリストされており、%APPDATA%\Notepad++\notepadpp-mcp-sessions\配下の名前付きファイルに保存されます。形式はNotepad++の「セッションの読み込み」/-openSessionで使用されるものと一致します。ライブファイルが存在しない、またはファイルがリストされていない場合、サーバーはディスク上にパスが存在するアクティブなタブから構築された最小限のセッションにフォールバックします。load
notepad++.exe -openSession "<saved.xml>"を実行します。新規インスタンスで開くか、既存のインスタンスで開くかは、Notepad++の「多重起動」設定に依存します。オーバーライド
NOTEPADPP_SESSION_STORAGE_DIR(名前付き*.xmlの保存先)、NOTEPADPP_LIVE_SESSION_XML(ライブsession.xmlへのパスをオーバーライド。ポータブル版や-settingsDirレイアウト用)。
サンプリング(ワークフロー用LLM)
オプションです。サーバー / NotepadSamplingHandler で文書化されている環境変数を設定します。例:
NOTEPADPP_SAMPLING_BASE_URLOpenAI互換ベース(例: Ollamahttp://127.0.0.1:11434/v1)NOTEPADPP_SAMPLING_MODELNOTEPADPP_SAMPLING_USE_CLIENT_LLMサポートされている場合、MCPホストにサンプリングを実行させる
ツール概要(ポートマントー)
ツール | 目的 |
file_ops | 開く、新規作成、保存、ファイル情報 |
text_ops | バッファへの挿入 / 検索 |
status_ops | ヘルプ、システムステータス、ヘルスチェック |
tab_ops | タブのリスト / 切り替え / 閉じる |
session_ops | ワークスペースセッションの保存 / 読み込み / リスト |
linting_ops | Python, JS, JSON, Markdown(利用可能な場合、PATH上の |
display_ops | 不可視テキスト / 表示の不具合修正 |
plugin_ops | プラグインの検出 / インストール / リスト / 実行 |
応答は一貫した辞書形式を使用します: success、message または summary、および関連する場合は error / recovery_options。
リポジトリ内のドキュメント
docs/EDITOR_AND_MCP_SCOPE.mdNotepad++(エディタ)vs 本サーバー: エディタの強みとMCPブリッジの境界線docs/NOTEPADPP_MACROS.mdマクロ(用途、shortcuts.xml、キュレーションセット / 将来のツール案)src/notepadpp_mcp/docs/APIノート、例、PRD(存在する場合)src/notepadpp_mcp/docs_manifest.pyウェブブリッジ用のREST/MCP概要(有効時)
開発
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 testsオプション: 統合スモークテスト用に python demonstration_test.py またはプロジェクトの dev.py(存在する場合)を実行します。
ロードマップ / TODO(拡張機能)
計画中またはオープンな作業(貢献者向けの最初の課題として最適):
[ ] 多重起動 / マルチウィンドウ 複数のNotepad++が開いている場合に特定のHWNDをターゲットにする
[ ] よりリッチなプラグインフロー 調整されたマルチプラグインステップ、プラグイン管理からのより良いエラー表示
[ ] Linting HTML/CSS、リンター用のオプション設定ファイル
[ ] 設定プロファイル サーバー側のデフォルト(パス、タイムアウト、自動起動)
[ ] バッチ 進捗報告を伴うファーストクラスのバッチファイル操作
[ ] Web UI ドキュメントを実際のダッシュボードパッケージ(例:
web_sota/)およびポートと整合させる[ ] テスト / カバレッジ カバレッジの向上、WindowsランナーでのCIの維持
[ ] マクロ リポジトリ内のキュレーションされたXMLスニペット。
%APPDATA%\Notepad++\shortcuts.xmlの読み込み/リスト/マージ(docs/NOTEPADPP_MACROS.mdを参照)
古い変更履歴の項目(多重起動、プラグイン分析など)は、現在も適用されるものは上記リストに統合されています。
トラブルシューティング
Notepad++が見つからない Notepad++をインストールして一度起動するか、ビルドがサポートしている場合は自動起動動作を有効にしてください。
Windows APIが利用できない Windowsを使用してください。サーバーと同じ環境に pywin32 をインストールしてください。
クライアントでツールが見つからない ホストを再起動し、MCPログを確認し、ターミナルから
notepadpp-mcpがエラーなしで実行できることを確認してください。セッションの保存が空 / 失敗する Notepad++は、保存されたファイルを開くかエディタを再起動するまで
session.xmlを更新しない場合があります。「設定 > 環境設定 > バックアップ」のセッション動作が期待通りであることを確認してください。ポータブル版の場合は、NOTEPADPP_LIVE_SESSION_XMLを正しいsession.xmlに設定してください。
変更履歴(短縮版)
0.2.x
session_opsが名前付きセッションを永続化: ライブsession.xmlをコピーし、-openSession経由で読み込みます(READMEの「セッションスナップショット」セクションを参照)。0.2.0 FastMCP 3.1.0、サンプリング、スキル、プロンプト、エージェント型ワークフロー、
server.pyに実装されたHTTPブリッジ + Webフック。以前 ポートマントーによるツール統合、Lintingおよびプラグインツール。
🛡️ 産業品質スタック
本プロジェクトは、高忠実度なエージェント型オーケストレーションのための SOTA 14.1 産業標準に準拠しています:
Python (コア): Lintingとフォーマットに Ruff を使用。コアハンドラー内での
print文をゼロ許容 (T201)。Webapp (UI): ミリ秒単位のLintingに Biome を使用。厳格な
noConsoleLogの強制。プロトコル準拠: クラッシュ耐性のあるJSON-RPC通信を保証するための、堅牢な
stdout/stderr分離。自動化: すべてのフリート操作のための Justfile レシピ (
just lint,just fix,just dev)。セキュリティ:
banditおよびsafetyによる自動監査。
ライセンス
MIT 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