
OneSignal MCP Server
一个模型上下文协议服务器,它封装了 OneSignal REST API,从而能够跨多个 OneSignal 应用程序管理推送通知、电子邮件、短信、用户设备和用户分群。
README
OneSignal MCP 服务器
一个用于与 OneSignal API 交互的模型上下文协议 (MCP) 服务器。该服务器提供了一个方便的接口,用于通过 OneSignal 的 REST API 管理推送通知、电子邮件、短信、用户设备、细分、模板等。
概述
此 MCP 服务器包装了 OneSignal REST API,提供了一组工具来管理您的 OneSignal 应用程序并向您的用户发送消息。它支持所有主要的 OneSignal 操作,包括:
- 发送推送通知、电子邮件和短信
- 管理用户设备和订阅
- 创建和管理细分
- 创建和管理模板
- 查看应用程序信息和分析
- 组织级别操作
- 管理多个 OneSignal 应用程序
要求
- Python 3.7 或更高版本
python-dotenv
包requests
包- 具有 API 凭据的 OneSignal 帐户
安装
选项 1:从 GitHub 克隆
# 克隆存储库
git clone https://github.com/weirdbrains/onesignal-mcp.git
cd onesignal-mcp
# 安装依赖项
pip install -r requirements.txt
选项 2:作为包安装(即将推出)
pip install onesignal-mcp
配置
-
在根目录中创建一个
.env
文件,其中包含您的 OneSignal 凭据:# 默认应用程序凭据(可选,您也可以通过 API 添加应用程序) ONESIGNAL_APP_ID=your_app_id_here ONESIGNAL_API_KEY=your_rest_api_key_here # 组织 API 密钥(用于组织级别操作) ONESIGNAL_ORG_API_KEY=your_organization_api_key_here
-
您可以在 OneSignal 仪表板中找到您的 OneSignal 凭据:
- 应用程序 ID:设置 > 密钥和 ID > OneSignal 应用程序 ID
- REST API 密钥:设置 > 密钥和 ID > REST API 密钥
- 组织 API 密钥:组织设置 > API 密钥
用法
运行服务器
python onesignal_server.py
服务器将启动并向 MCP 系统注册自身,使其工具可供使用。
基本用法示例
发送推送通知
# 向所有订阅用户发送通知
result = await send_notification(
title="Hello World",
message="This is a test notification",
segment="Subscribed Users"
)
print(result)
使用多个应用程序
# 添加新的应用程序配置
await add_app(
key="my_second_app",
app_id="second-app-id",
api_key="second-app-api-key",
name="My Second App"
)
# 列出所有已配置的应用程序
apps = await list_apps()
print(apps)
# 切换到新应用程序
await switch_app("my_second_app")
# 使用当前应用程序发送通知
await send_notification(
title="Hello",
message="This is from my second app"
)
# 从特定应用程序发送通知(无需切换)
await send_notification(
title="Hello",
message="This is from my first app",
app_key="mandible"
)
管理细分
# 列出所有细分
segments = await view_segments()
print(segments)
# 创建新的细分
result = await create_segment(
name="High Value Users",
filters='[{"field":"amount_spent", "relation":">", "value":"100"}]'
)
print(result)
使用模板
# 创建电子邮件模板
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 应用程序。 您可以:
- 添加具有不同标识符的多个应用程序配置
- 在进行 API 调用时在应用程序之间切换
- 指定要用于单个操作的应用程序
应用程序管理工具
list_apps
:列出服务器中所有已配置的 OneSignal 应用程序add_app
:添加新的 OneSignal 应用程序配置update_app
:更新现有的 OneSignal 应用程序配置remove_app
:删除 OneSignal 应用程序配置switch_app
:切换当前应用程序以用于 API 请求
可用工具
消息管理
send_notification
:发送新的推送通知、电子邮件或短信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
。
故障排除
常见问题
没有可用的应用程序配置
如果您看到错误“No app configuration available”,请确保您:
- 使用正确的凭据设置了您的
.env
文件,或者 - 使用
add_app
工具添加了应用程序配置
API 密钥错误
如果您收到身份验证错误,请验证:
- 您的 API 密钥是否正确
- 您是否为操作使用了正确的密钥(REST API 密钥与组织 API 密钥)
- 密钥在 OneSignal 中是否具有必要的权限
速率限制
OneSignal 对 API 请求有速率限制。 如果您遇到速率限制:
- 降低请求的频率
- 使用指数退避实现重试逻辑
获得帮助
如果您遇到此处未涵盖的问题:
- 查看 OneSignal API 文档
- 在 GitHub 存储库上打开一个 issue
贡献
我们欢迎您为改进 OneSignal MCP 服务器做出贡献! 请参阅 CONTRIBUTING.md 了解指南。
许可证
本项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
致谢
- OneSignal 感谢他们出色的通知服务和 API
- 感谢 Weirdbrains 团队对该项目的支持
推荐服务器

Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。