Skip to main content
Glama
sandraschi

Notepad++ MCP Server

by sandraschi

Notepad++ MCP 서버

FastMCP Version Ruff Linted with Biome Built with Just

CI Release Python FastMCP License: MIT Version

Windows**Notepad++**를 위한 MCP 서버입니다. FastMCP 3.1.0을 사용하여 포트만토(portmanteau) 도구(더 적은 도구로 동일한 범위 지원), 선택적 HTTP 브리지, 샘플링(Ollama 호환 HTTP 또는 클라이언트 LLM), 프롬프트, skill:// 리소스에이전트 워크플로우를 지원합니다.

편집기 vs 이 저장소: Notepad++ 자체의 강점(Scintilla, 플러그인, 매크로, 세션 등)은 이 MCP가 노출하는 기능과는 별개입니다. 명확한 구분과 편집기 측면의 전체적인 개요는 **docs/EDITOR_AND_MCP_SCOPE.md**를 참조하십시오.


요구 사항

항목

참고 사항

OS

Windows 10/11 (64비트)

편집기

Notepad++ 8+ 설치됨

Python

3.12+ (pyproject.tomlrequires-python)

API

pywin32 (Windows에서 가져옴)


Related MCP server: Windows Automation MCP Server

설치

권장: 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.tomlnotepadpp_mcp.server:run)입니다.

  • 기본 stdio: 대부분의 MCP 호스트(Claude Desktop, Cursor 등)가 사용하는 방식입니다. 추가 플래그가 필요 없습니다.

  • 선택적 HTTP 브리지: 127.0.0.1에서 FastAPI + uvicorn 실행, /mcp에서 MCP HTTP 지원.

notepadpp-mcp --http --port 10815

10815 포트가 사용 중인 경우 --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-mcpPATH에 있는 경우:

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

레거시: 이전 문서에서는 python -m notepadpp_mcp.tools.server를 참조했습니다. 해당 모듈을 디버깅하는 경우가 아니라면 **notepadpp-mcp**를 사용하는 것을 권장합니다.

도구 호출 (개념)

어시스턴트는 이름으로 MCP 도구를 호출합니다. PowerShell에서 직접 실행하는 것이 아닙니다. 포트만토 도구 내의 작업 예시:

도구

일반적인 operation

file_ops

open, new, save, info

text_ops

insert, find

status_ops

help, system_status, health_check

tab_ops

list, switch, close

session_ops

save, load, list

linting_ops

python, javascript, json, markdown

display_ops

fix_invisible_text, fix_display_issue

plugin_ops

discover, install, list, execute

또한 빌드에 따라 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++의 다중 인스턴스(Multi-instance) 설정에 따라 다릅니다.

  • 재정의: NOTEPADPP_SESSION_STORAGE_DIR(명명된 *.xml이 저장되는 위치), NOTEPADPP_LIVE_SESSION_XML(실시간 session.xml에 대한 재정의 경로, 예: 포터블 또는 -settingsDir 레이아웃).

샘플링 (워크플로우용 LLM)

선택 사항입니다. 서버 / NotepadSamplingHandler에 문서화된 대로 환경 변수를 설정하십시오. 예:

  • NOTEPADPP_SAMPLING_BASE_URL: OpenAI 호환 베이스 (예: Ollama http://127.0.0.1:11434/v1)

  • NOTEPADPP_SAMPLING_MODEL

  • NOTEPADPP_SAMPLING_USE_CLIENT_LLM: 지원되는 경우 MCP 호스트가 샘플링을 수행하도록 허용


도구 개요 (포트만토)

도구

목적

file_ops

열기, 새 파일, 저장, 파일 정보

text_ops

버퍼에 삽입 / 찾기

status_ops

도움말, 시스템 상태, 상태 확인

tab_ops

탭 나열 / 전환 / 닫기

session_ops

작업 공간 세션 저장 / 불러오기 / 나열

linting_ops

Python, JS, JSON, Markdown (사용 가능한 경우 PATH의 ruff / eslint 사용)

display_ops

보이지 않는 텍스트 / 디스플레이 결함 수정

plugin_ops

플러그인 검색 / 설치 / 나열 / 실행

응답은 success, message 또는 summary와 관련이 있는 경우 error / recovery_options를 포함하는 일관된 딕셔너리 형태를 사용합니다.


저장소 내 문서

  • docs/EDITOR_AND_MCP_SCOPE.md: Notepad++ (편집기) 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(있는 경우)를 실행하십시오.


로드맵 / 할 일 (확장)

계획 중이거나 열려 있는 작업 - 기여자를 위한 좋은 첫 번째 이슈:

  • [ ] 다중 인스턴스 / 다중 창: 여러 Notepad++가 열려 있을 때 특정 HWND를 대상으로 지정

  • [ ] 더 풍부한 플러그인 흐름: 조정된 다중 플러그인 단계, 플러그인 관리자로부터의 더 나은 오류 표면

  • [ ] 린팅: HTML/CSS, 린터를 위한 선택적 구성 파일

  • [ ] 구성 프로필: 서버 측 기본값 (경로, 타임아웃, 자동 시작)

  • [ ] 배치: 진행 상황 보고가 포함된 일류 배치 파일 작업

  • [ ] 웹 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 브리지 + 웹 훅.

  • 이전: 포트만토 도구 통합, 린팅 및 플러그인 도구.


🛡️ 산업 품질 스택

이 프로젝트는 고충실도 에이전트 오케스트레이션을 위한 SOTA 14.1 산업 표준을 준수합니다:

  • Python (코어): 린팅 및 포맷팅을 위한 Ruff. 코어 핸들러에서 print 문에 대한 무관용 원칙 (T201).

  • 웹앱 (UI): 밀리초 미만의 린팅을 위한 Biome. 엄격한 noConsoleLog 적용.

  • 프로토콜 준수: 충돌 방지 JSON-RPC 통신을 보장하기 위한 강화된 stdout/stderr 격리.

  • 자동화: 모든 플릿 작업을 위한 Justfile 레시피 (just lint, just fix, just dev).

  • 보안: banditsafety를 통한 자동 감사.

라이선스

MIT - LICENSE를 참조하십시오.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    A
    quality
    F
    maintenance
    Enables Excel file manipulation through Microsoft's official COM automation interface using xlwings, designed for corporate environments where security policies prevent direct file access. Provides 25 tools for workbook operations, data manipulation, formatting, charts, pivot tables, and worksheet management through native Excel integration.
    2
    29
    9
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables comprehensive Windows desktop automation including screen capture, OCR text extraction, mouse/keyboard control, window management, process control, and clipboard operations through 25+ tools for AI agents.
    3
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides essential developer tools for workspace management, including advanced file searching, project structure analysis, and batch code editing. It enables users to efficiently navigate, analyze, and modify source code within their development environment.
    7
    56
    MIT

View all related MCP servers

Related MCP Connectors

  • Control Unreal Engine to browse assets, import content, and manage levels and sequences. Automate…

  • AI access to your aNotepad online notes: read, search, write, and organize via 22 tools.

  • Streamline your workflow with Felix. Integrate it into your workspace and tailor its behavior to y…

View all MCP Connectors

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