返回 MCP 目录
public公开dns本地运行

onesignal-mcp

OneSignal MCP服务器是一个用于与OneSignal API交互的模型上下文协议服务,提供管理推送通知、邮件、短信、用户设备、分段和模板等功能,并支持多应用管理。

article

README

🚀 OneSignal MCP 服务器

OneSignal MCP(推送通知管理平台)服务器是一款强大的工具,用于管理和发送推送通知。它支持与 OneSignal 的 REST API 集成,能帮助用户轻松实现推送通知的管理、设备信息查看、用户分段管理以及模板管理等功能。

🚀 快速开始

OneSignal MCP 服务器可帮助您高效管理和发送推送通知。下面将为您介绍使用前的需求、安装、配置等步骤。

✨ 主要特性

  • 功能丰富:支持发送推送通知、查看设备信息、管理用户分段以及模板管理等多种功能。
  • 多应用支持:能够管理多个 OneSignal 应用程序。
  • 详细日志记录:提供详细的日志记录功能,方便问题排查。
  • 全面测试套件:附带全面的测试套件,确保所有功能正常运行。

📦 安装指南

方案 1: 克隆仓库

您可以通过以下步骤克隆该仓库:

git clone https://github.com/your-repository-url.git
cd onesignal-mcp-server

方案 2: 使用 pip 包(即将发布)

当包上线后,您可以使用以下命令进行安装:

pip install onesignal-mcp

🔧 配置

请在项目的根目录下创建一个名为 .env 的文件,并添加以下内容:

ONESIGNAL_APP_ID=your_app_id
ONESIGNAL_API_KEY=your_api_key

您可以在 OneSignal 控制台中找到这些信息。

若要支持多应用,可添加以下内容到 .env 文件中:

ONESIGNAL_APP_ID1=app_id_1
ONESIGNAL_API_KEY1=api_key_1

ONESIGNAL_APP_ID2=app_id_2
ONESIGNAL_API_KEY2=api_key_2

💻 使用示例

基础用法

发送通知

from onesignal_mcp.server import send_notification

message = {
    "title": "测试",
    "body": "这条消息是通过 MCP 服务器发送的。",
    "sender_name": "测试用户"
}

response = send_notification(message)
print(response)

查看设备信息

from onesignal_mcp.server import view_devices

devices = view_devices()
for device in devices:
    print(device)

高级用法

该服务器提供了丰富的功能,以下是一些高级用法示例:

查看最近发送的消息

from onesignal_mcp.server import view_messages

messages = view_messages()
for message in messages:
    print(message)

查看所有可用的用户分段

from onesignal_mcp.server import view_segments

segments = view_segments()
for segment in segments:
    print(segment)

创建新的用户分段

from onesignal_mcp.server import create_segment

segment_data = {
    "name": "新用户分段",
    "filters": [
        {
            "field": "tag",
            "key": "new_user",
            "relation": "=",
            "value": "true"
        }
    ]
}

new_segment = create_segment(segment_data)
print(new_segment)

列出所有模板

from onesignal_mcp.server import view_templates

templates = view_templates()
for template in templates:
    print(template)

创建新的通知或电子邮件模板

from onesignal_mcp.server import create_template

template_data = {
    "name": "新模板",
    "contents": {
        "en": "这是一个新的模板内容。"
    }
}

new_template = create_template(template_data)
print(new_template)

🔧 技术细节

日志记录

该服务器提供详细的日志记录功能,日志输出格式如下:

YYYY-MM-DD HH:MM:SS - onesignal-mcp - LEVEL - 消息内容

默认情况下,日志输出到控制台。您可以通过修改 logging.basicConfig 的调用位置来调整日志级别。

测试

该服务器附带全面的测试套件,使用 Python 内置的 unittest 框架,并模拟外部 API 调用来测试服务器行为。使用以下命令运行测试:

python -m unittest discover tests

🚧 故障排除

常见问题

  • 无应用配置可用:确保:
    1. 您的 .env 文件已正确设置。
    2. 使用 add_app 方法添加了应用程序。
  • API 错误:检查 API 密钥和应用 ID 是否正确,确保网络连接正常。

🤝 贡献指南

我们欢迎社区贡献。请参考 CONTRIBUTING.md 文件了解如何参与。

📄 许可证

该服务器以 MIT 许可证发布,详情参见 LICENSE 文件。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端