Skip to main content
Glama
WeirdBrains

OneSignal MCP Server

by WeirdBrains

OneSignal MCP 서버

OneSignal API와 상호 작용하기 위한 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버는 OneSignal의 REST API를 통해 푸시 알림, 이메일, SMS, 사용자 기기, 세그먼트, 템플릿 등을 관리할 수 있는 편리한 인터페이스를 제공합니다.

라이센스: MIT 버전

개요

이 MCP 서버는 OneSignal REST API를 래핑하여 OneSignal 애플리케이션을 관리하고 사용자에게 메시지를 전송하는 데 필요한 도구 세트를 제공합니다. 다음을 포함한 모든 주요 OneSignal 작업을 지원합니다.

  • 푸시 알림, 이메일, SMS 전송

  • 사용자 기기 및 구독 관리

  • 세그먼트 생성 및 관리

  • 템플릿 만들기 및 관리

  • 앱 정보 및 분석 보기

  • 조직 수준 운영

  • 여러 OneSignal 애플리케이션 관리

Related MCP server: MCP Boilerplate

요구 사항

  • Python 3.7 이상

  • python-dotenv 패키지

  • requests 패키지

  • API 자격 증명이 있는 OneSignal 계정

설치

옵션 1: GitHub에서 복제

지엑스피1

옵션 2: 패키지로 설치(곧 제공)

pip install onesignal-mcp

구성

  1. OneSignal 자격 증명을 사용하여 루트 디렉토리에 .env 파일을 만듭니다.

    # Default app credentials (optional, you can also add apps via the API) ONESIGNAL_APP_ID=your_app_id_here ONESIGNAL_API_KEY=your_rest_api_key_here # Organization API key (for org-level operations) ONESIGNAL_ORG_API_KEY=your_organization_api_key_here
  2. OneSignal 대시보드에서 OneSignal 자격 증명을 찾을 수 있습니다.

    • 앱 ID: 설정 > 키 및 ID > OneSignal 앱 ID

    • REST API 키: 설정 > 키 및 ID > REST API 키

    • 조직 API 키: 조직 설정 > API 키

용법

서버 실행

python onesignal_server.py

서버가 시작되고 MCP 시스템에 등록되어 도구를 사용할 수 있게 됩니다.

기본 사용 예

푸시 알림 보내기

# Send a notification to all subscribed users result = await send_notification( title="Hello World", message="This is a test notification", segment="Subscribed Users" ) print(result)

여러 앱으로 작업하기

# Add a new app configuration await add_app( key="my_second_app", app_id="second-app-id", api_key="second-app-api-key", name="My Second App" ) # List all configured apps apps = await list_apps() print(apps) # Switch to the new app await switch_app("my_second_app") # Send a notification using the current app await send_notification( title="Hello", message="This is from my second app" ) # Send a notification from a specific app (without switching) await send_notification( title="Hello", message="This is from my first app", app_key="mandible" )

세그먼트 관리

# List all segments segments = await view_segments() print(segments) # Create a new segment result = await create_segment( name="High Value Users", filters='[{"field":"amount_spent", "relation":">", "value":"100"}]' ) print(result)

템플릿 작업

# Create an email template result = await create_template( name="Welcome Email", title="Welcome to Our App", message="<html><body><h1>Welcome!</h1><p>Thank you for joining us.</p></body></html>", template_type="email" ) print(result)

다중 앱 지원

이 서버는 여러 OneSignal 애플리케이션 관리를 지원합니다. 다음 작업을 수행할 수 있습니다.

  1. 다양한 식별자를 사용하여 여러 앱 구성 추가

  2. API 호출 시 앱 간 전환

  3. 개별 작업에 사용할 앱을 지정하세요

앱 관리 도구

  • list_apps : 서버에 구성된 모든 OneSignal 앱을 나열합니다.

  • add_app : 새로운 OneSignal 앱 구성을 추가합니다.

  • update_app : 기존 OneSignal 앱 구성을 업데이트합니다.

  • remove_app : OneSignal 앱 구성 제거

  • switch_app : API 요청에 사용할 현재 앱을 전환합니다.

사용 가능한 도구

메시지 관리

  • send_notification : 새로운 푸시 알림, 이메일 또는 SMS를 보냅니다.

  • view_messages : OneSignal을 통해 전송된 최근 메시지 목록

  • view_message_details : 특정 메시지에 대한 자세한 정보를 가져옵니다.

  • cancel_message : 예약된 메시지를 취소합니다.

장치 관리

  • view_devices : OneSignal 앱에 등록된 기기(사용자)를 나열합니다.

  • view_device_details : 특정 장치에 대한 자세한 정보를 가져옵니다.

세그먼트 관리

  • view_segments : OneSignal 앱에서 사용 가능한 모든 세그먼트를 나열합니다.

  • create_segment : 지정된 필터로 새 세그먼트를 만듭니다.

  • delete_segment : 기존 세그먼트 삭제

템플릿 관리

  • view_templates : OneSignal 앱에서 사용 가능한 모든 템플릿을 나열합니다.

  • view_template_details : 특정 템플릿에 대한 자세한 정보를 가져옵니다.

  • create_template : 알림이나 이메일을 위한 새로운 템플릿을 만듭니다.

앱 정보

  • view_app_details : 구성된 OneSignal 앱에 대한 자세한 정보를 가져옵니다.

벌채 반출

서버에는 디버깅 및 모니터링에 도움이 되는 포괄적인 로깅 기능이 포함되어 있습니다. 로그는 기본적으로 다음 형식으로 콘솔에 출력됩니다.

YYYY-MM-DD HH:MM:SS - onesignal-mcp - LEVEL - Message

서버 파일에서 logging.basicConfig 호출을 수정하여 로깅 수준을 조정할 수 있습니다.

테스트

OneSignal MCP 서버에는 모든 기능이 예상대로 작동하는지 확인하는 포괄적인 테스트 스위트가 포함되어 있습니다. 이 테스트는 Python 내장 unittest 프레임워크와 외부 API 호출 모의를 사용하여 서버의 동작을 테스트합니다.

테스트 실행

테스트를 실행하려면 다음 명령을 사용하세요.

python -m unittest discover tests

이렇게 하면 tests 디렉토리에 있는 모든 테스트가 검색되어 실행됩니다.

테스트 범위

테스트 모음에는 다음이 포함됩니다.

  • 앱 구성 관리

  • 적절한 인증을 통한 API 요청 처리

  • 오류 처리 및 복구

  • 다양한 앱 지원

  • 조직 수준 운영

새로운 테스트 작성

서버에 새로운 기능을 추가하는 경우, 해당 테스트도 추가해 주세요. 테스트는 tests 디렉터리에 저장해야 하며, test_*.py 명명 규칙을 따라야 합니다.

문제 해결

일반적인 문제

사용 가능한 앱 구성이 없습니다

"앱 구성을 사용할 수 없습니다" 오류가 표시되면 다음 사항을 확인하세요.

  1. 올바른 자격 증명으로 .env 파일을 설정하거나

  2. add_app 도구를 사용하여 앱 구성을 추가했습니다.

API 키 오류

인증 오류가 발생하면 다음 사항을 확인하세요.

  1. API 키가 정확합니다

  2. 작업에 적합한 키(REST API 키 대 조직 API 키)를 사용하고 있습니다.

  3. 키에는 OneSignal에 필요한 권한이 있습니다.

속도 제한

OneSignal에는 API 요청에 대한 속도 제한이 있습니다. 속도 제한이 발생하는 경우:

  1. 요청 빈도를 줄이세요

  2. 지수 백오프를 사용한 재시도 논리 구현

도움 받기

여기에 언급되지 않은 문제가 발생하는 경우:

  1. OneSignal API 문서를 확인하세요

  2. GitHub 저장소에서 이슈를 열어보세요

기여하다

OneSignal MCP 서버 개선을 위한 여러분의 참여를 환영합니다! 자세한 내용은 CONTRIBUTING.md를 참조하세요.

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

감사의 말

  • OneSignal 의 탁월한 알림 서비스와 API

  • 이 프로젝트를 지원해 주신 Weirdbrains 팀에게 감사드립니다.

-
security - not tested
A
license - permissive license
-
quality - not tested

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/WeirdBrains/onesignal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server