article
README
🚀 一个信号MCP服务器
本项目是一个用于管理和操作OneSignal API的工具。它能让您发送推送通知、电子邮件和短信,还提供对设备、段落和模板的管理功能。
🚀 快速开始
需求
- Python 3.6或更高版本
- 必须安装以下库:
python-dotenv和requests - 必须拥有一个OneSignal账号并获取相应的API凭证
安装
方案一:克隆仓库
git clone https://github.com/your-repository-url.git
cd onesignal-mcp-server
pip install -r requirements.txt
方案二:作为Python包安装(即将推出)
pip install onesignal-mcp-server
配置
创建一个.env文件,并添加以下内容:
ONESIGNAL_APP_ID=your_app_id_here
ONESIGNAL_API_KEY=your_api_key_here
# 可选:设置日志级别,默认为INFO
LOG_LEVEL=DEBUG
获取API凭证请参考OneSignal文档。
运行服务器
python -m onesignal_mcp_server.runserver
✨ 主要特性
推送通知管理
- 发送单个或批量推送通知
- 支持设置定时发送
- 查看已发送消息的详细信息
设备管理
- 列出所有注册设备
- 获取特定设备的详细信息
段落管理
- 创建新的段落
- 删除现有的段落
- 查看所有可用段落
模板管理
- 创建自定义通知或电子邮件模板
- 查看现有模板的详细信息
多应用支持
该服务器支持同时管理多个OneSignal应用。您可以通过添加不同的应用配置来实现。
💻 使用示例
基础用法
发送推送通知
from onesignal_mcp_server import NotificationSender
sender = NotificationSender()
response = sender.send_push_notification(
title="Hello",
body="World",
user_ids=["user1", "user2"]
)
print(response.status_code) # 输出状态码
📚 详细文档
日志记录
服务器提供详细的日志记录功能,日志输出格式如下:
YYYY-MM-DD HH:MM:SS - onesignal-mcp-server - LEVEL - Message
默认情况下,日志输出到控制台。您可以通过修改logging.basicConfig调用调整日志级别。
测试
项目包含全面的测试套件,使用Python内置的unittest框架,并通过模拟外部API调用来测试服务器行为。
运行测试
python -m unittest discover tests
测试范围
- 应用配置管理
- API请求处理与身份验证
- 错误处理与恢复
- 多应用支持
- 组织级操作
故障排除
常见问题
无可用应用配置
如果出现错误“无应用配置可用”,请确保:
- 您的
.env文件设置正确,或 - 已使用
add_app工具添加了应用配置
API密钥错误
如遇身份验证错误,请检查:
- 您的API密钥是否正确
- 您是否在使用正确的密钥进行操作(REST API密钥与组织级API密钥)
- 密钥是否具有相应的权限
速率限制
OneSignal对API请求有限制。遇到速率限制时,请:
- 减少请求频率
- 实现带有指数回退的重试逻辑
获取帮助
如遇未解决的问题,请参考OneSignal API文档或在GitHub仓库打开问题。
贡献指南
欢迎为改进OneSignal MCP服务器做出贡献!请查阅CONTRIBUTING.md以获取详细指南。
📄 许可证
本项目根据MIT许可证发布,具体请参阅LICENSE文件。
致谢
感谢您对开源社区的支持与贡献。
扫码联系在线客服