Ntfy MCP 서버
ntfy 푸시 알림 서비스와 연동하도록 설계된 MCP(모델 컨텍스트 프로토콜) 서버입니다. LLM과 AI 에이전트가 광범위한 사용자 지정 옵션을 통해 기기에 알림을 전송할 수 있도록 지원합니다.
목차
개요
이 서버는 모델 컨텍스트 프로토콜(MCP)을 구현하여 LLM과 외부 시스템 간의 표준화된 통신을 지원합니다. 특히, ntfy 푸시 알림 서비스에 대한 인터페이스를 제공합니다.
Ntfy 는 간단한 HTTP 기반 Pub-Sub 알림 서비스로, 간단한 HTTP 요청을 통해 휴대폰이나 데스크톱으로 알림을 보낼 수 있습니다. 이 MCP 서버를 사용하면 Claude와 같은 LLM 에이전트가 직접 HTTP에 액세스하지 않고도 Ntfy를 통해 알림을 보낼 수 있습니다.
지엑스피1
특징
- MCP 서버 구현: LLM 에이전트와의 원활한 통합을 위해
@modelcontextprotocol/sdk
사용하여 구축되었습니다. - Ntfy 통합: 다음을 지원하여 알림을 보내는 도구(
send_ntfy
)를 제공합니다.- 메시지 우선순위 지정(1~5단계)
- 이모티콘 태그
- 클릭 가능한 동작 및 버튼
- 파일 첨부
- 배달 지연
- 마크다운 서식
- 리소스 노출: 구성된 기본 ntfy 주제를 MCP 리소스로 노출합니다.
- TypeScript: 포괄적인 유형 정의를 갖춘 현대적이고 유형이 안전한 코드베이스입니다.
- 구조화된 로깅: 상세하고 회전 가능한 로그를 위해
winston
과winston-daily-rotate-file
사용합니다. - 구성 관리:
dotenv
사용하여 환경 기반 구성을 쉽게 수행합니다. - 유틸리티 스크립트: 빌드 아티팩트를 정리하고 디렉토리 구조 문서를 생성하기 위한 스크립트가 포함되어 있습니다.
- 오류 처리 및 보안: 견고한 오류 처리, 입력 정리(
sanitize-html
), 보안 필터(xss-filters
)를 구현합니다.
빠른 시작
- 필수 조건:
- Node.js(v16+)
- npm 또는 yarn
- MCP 호환 클라이언트(Claude Desktop, Cline 등)
- 설치 및 실행:
- MCP 클라이언트 설정에 추가: MCP 클라이언트 설정 파일에 서버를 추가합니다( 구성 참조)
- 도구 사용: 연결되면
send_ntfy
도구를 사용하여 알림을 보낼 수 있습니다.
설치
옵션 1: NPM 패키지(권장)
- 패키지를 전역으로 설치합니다.이렇게 하면 서버가 전역으로 설치되어 명령줄 도구로 사용할 수 있습니다.
- 또는 프로젝트에 로컬로 설치하세요.로컬에 설치한 경우 npx나 node.js를 통해 실행할 수 있습니다.
옵션 2: 소스에서
- 저장소를 복제합니다.
- 종속성 설치:
- 프로젝트를 빌드하세요:
구성
환경 변수
.env.example
기반으로 프로젝트 루트에 .env
파일을 만듭니다.
MCP 클라이언트 설정
Cline VSCode 확장 프로그램용
다음 구성을 Cline MCP 설정 파일에 추가합니다(macOS에서는 일반적으로 ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
에 위치).
전역적으로 설치된 경우:
소스에서 설치한 경우:
Claude 데스크톱 앱용
Claude Desktop 구성 파일(macOS에서는 일반적으로 ~/Library/Application Support/Claude/claude_desktop_config.json
에 위치)에 다음 구성을 추가합니다.
전역적으로 설치된 경우:
소스에서 설치한 경우:
소스 설치의 경우, /path/to/ntfy-mcp-server/dist/index.js
빌드된 서버 파일의 실제 절대 경로로 바꾸세요. 설정에 맞게 env
변수를 조정하세요.
Ntfy 설정
- ntfy.sh 또는 앱 스토어에서 장치에 ntfy 앱을 설치하세요.
- 앱에서 주제를 구독하세요
- MCP 서버 구성에서 동일한 주제를 사용하세요.
프로젝트 구조
도구
send_ntfy
ntfy 서비스를 통해 알림 메시지를 보냅니다.
주요 주장:
매개변수 | 유형 | 필수의 | 설명 |
---|---|---|---|
topic | 끈 | 예 | 게시할 ntfy 주제입니다. |
message | 끈 | 예 | 알림의 주요 내용(최대 4096바이트). |
title | 끈 | 아니요 | 알림 제목(최대 250바이트). |
tags | 끈[] | 아니요 | 분류를 위한 이모티콘 또는 키워드(예: ["warning", "robot"] ). 최대 5개까지 입력하세요. |
priority | 정수 | 아니요 | 메시지 우선순위: 1=최소, 2=낮음, 3=기본값, 4=높음, 5=최대. |
click | 끈 | 아니요 | 알림을 클릭하면 열리는 URL입니다. |
actions | 정렬 | 아니요 | 액션 버튼(보기, http, 브로드캐스트). 최대 3개. |
attachment | 물체 | 아니요 | 첨부 파일의 URL과 이름. |
email | 끈 | 아니요 | 알림을 전달할 이메일 주소입니다. |
delay | 끈 | 아니요 | 배달 지연(예: 30m , 1h , tomorrow ). |
cache | 끈 | 아니요 | 캐시 기간(예: 10m , 1h , 1d ). |
firebase | 끈 | 아니요 | 전달할 Firebase 클라우드 메시징(FCM) 주제입니다. |
id | 끈 | 아니요 | 메시지의 고유 ID입니다. |
expires | 끈 | 아니요 | 메시지 만료일(예: 10m , 1h , 1d ). |
markdown | 부울 | 아니요 | 메시지에서 마크다운 서식을 사용하려면 true 로 설정합니다. |
baseUrl | 끈 | 아니요 | 이 요청에 대한 기본 ntfy 서버 URL을 재정의합니다. |
사용 예:
응답 예시:
자원
직접 자원
ntfy://default
- 설명: 서버의 환경 변수에 구성된 기본 ntfy 토픽(
NTFY_DEFAULT_TOPIC
)을 반환합니다. - 사용법: 클라이언트가 사전 구성 없이도 주요 주제를 발견하는 데 유용합니다.
- 예: LLM 에이전트는 이 리소스에 액세스하여 알림을 보낼 때 자동으로 기본 주제를 사용할 수 있습니다.
- 응답 예시:
리소스 템플릿
ntfy://{topic}
- 설명: 특정 ntfy 주제에 대한 정보를 반환합니다.
- 매개변수:
topic
- ntfy 주제의 이름. - 사용법: 기본값 이외의 주제에 대한 정보를 쿼리하는 데 사용됩니다.
- 응답 예시:
사용 사례
- 장기 실행 작업 알림 - 데이터베이스 백업, 코드 생성, 데이터 처리 등의 작업이 완료되면 알림을 받습니다.
- 예약된 알림 - 향후 이벤트나 알림에 대한 지연 알림을 설정합니다.
- 경보 시스템 - 모니터링 시스템이나 중요 이벤트에 대한 중요한 경보를 설정합니다.
- LLM의 모바일 알림 - LLM이 귀하의 휴대전화로 직접 알림을 보낼 수 있도록 허용합니다.
- 여러 단계로 구성된 프로세스 업데이트 - 복잡한 프로세스의 각 단계가 완료되면 업데이트를 받습니다.
사용 예
기본 알림
동작이 포함된 풍부한 알림
사용 가능한 스크립트
npm run build
: TypeScript 소스 코드를 JavaScript로 컴파일하여dist/
디렉토리에 저장합니다.npm run clean
:dist/
디렉토리를 제거하고logs/
디렉토리의 내용을 정리합니다.npm run rebuild
:clean
후build
.npm run tree
:docs/tree.md
에 디렉토리 트리 표현을 생성합니다.npm start
: Node.js를 사용하여dist/
디렉토리에서 컴파일된 서버를 실행합니다.npm run watch
: 실시간 모니터링을 위해 결합된 로그 파일(logs/combined.log
)을 추적합니다.
기여하다
기여를 환영합니다! 프로젝트 개선을 위해 풀 리퀘스트를 제출하거나 이슈를 열어주세요.
- 저장소를 포크합니다.
- 기능 브랜치를 생성합니다(
git checkout -b feature/your-feature
). - 변경 사항을 커밋합니다(
git commit -m 'Add some feature'
). - 브랜치에 푸시합니다(
git push origin feature/your-feature
). - 새로운 풀 리퀘스트를 만듭니다.
버그나 기능 요청이 있으면 저장소에 이슈를 생성하세요.
개발 모범 사례
- TypeScript 모범 사례를 따르고 강력한 타이핑을 유지하세요.
- 새로운 기능에 대한 테스트를 작성하세요
- 종속성을 최신 상태로 유지하세요
- 기존 코드 스타일과 패턴을 따르세요
특허
이 프로젝트는 Apache-2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
감사의 말
- 알림 서비스를 제공하는 ntfy.sh
- LLM-툴 연결을 활성화하기 위한 모델 컨텍스트 프로토콜
- 이 프로젝트의 모든 기여자와 사용자
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
ntfy 게시/구독 서비스를 통해 AI 시스템이 휴대폰, 데스크톱 및 기타 기기에 실시간 알림을 보낼 수 있도록 하는 모델 컨텍스트 프로토콜 서버입니다.
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol implementation that enables AI agents to send notifications through Pushover.net, supporting message customization with various parameters like priority, sound, and URL.Last updated -317TypeScriptMIT License
- -securityFlicense-qualityA versatile Model Context Protocol server that enables AI assistants to manage calendars, track tasks, handle emails, search the web, and control smart home devices.Last updated -2Python
- -securityFlicense-qualityA demonstration implementation of the Model Context Protocol server that facilitates communication between AI models and external tools while maintaining context awareness.Last updated -Python
- -securityAlicense-qualityA Model Context Protocol server that connects to Mattermost, allowing AI models to monitor and process messages from specific teams and channels in real-time via SSE or Standard I/O transport modes.Last updated -1TypeScriptMIT License