README
🚀 BaaS SMS/MMS MCP 服务器
这是一个专为 SMS 和 MMS 消息服务打造的综合模型上下文协议服务器,借助智能代码生成与 CDN 优化模板,实现与 BaaS 平台的无缝集成。
🚀 快速开始
此 MCP 服务器在 AI 开发工作流与 BaaS 消息平台之间架起桥梁,具备以下能力:
- 智能代码生成:生成用于 SMS/MMS 集成的生产就绪代码。
- CDN 优化模板:从 CDN 获取最新维护的代码模板。
- 多语言和框架支持:支持 JavaScript、Python、PHP 等语言,以及 React、Vue、Django、Laravel 等框架。
- 令牌效率:通过基于 CDN 的模板导入,最小化令牌使用量。
- 环境集成:自动注入 API 密钥并管理环境变量。
- 平台特定指南:提供主要平台的部署和集成指南。
✨ 主要特性
- 智能代码生成:为 SMS/MMS 集成生成可用于生产的代码。
- CDN 优化模板:从 CDN 获取最新的代码模板。
- 多语言与框架支持:支持 JavaScript、Python、PHP 等多种语言,以及 React、Vue、Django、Laravel 等框架。
- 令牌效率:通过 CDN 模板导入,减少令牌使用。
- 环境集成:自动注入 API 密钥,管理环境变量。
- 平台指南:提供主要平台的部署和集成指南。
📦 安装指南
npm 安装(推荐)
npm install -g baas-sms-mcp
本地开发设置
git clone https://github.com/jjunmomo/BaaS-MCP.git
cd BaaS-MCP
npm install
Python 依赖
服务器会自动管理 Python 依赖,但也可以手动安装:
pip install -r requirements.txt
💻 使用示例
基础用法
React SMS 组件创建
// 使用 TypeScript 创建 React 组件
const result = await mcp.generate_direct_api_code("javascript", "react", true);
console.log(result.code); // 完整的 React 组件
高级用法
公司特定模板创建
const projectConfig = {
default_callback: "02-1234-5678",
company_name: "MyTech Corporation"
};
const template = await mcp.create_message_service_template(
projectConfig,
"python",
["sms", "mms", "status_check"]
);
// 返回包含公司默认值的自定义 Python 服务类
获取 Vercel 部署指南
const guide = await mcp.get_integration_guide("vercel", "production");
console.log(guide.guide_content); // 完整的部署说明
获取用于令牌效率的模板 URL
const urls = await mcp.get_code_template_url("python", "django", "heroku");
console.log(urls.template_url); // CDN 模板 URL
console.log(urls.integration_url); // 特定平台指南 URL
📚 详细文档
架构
系统组件
┌─────────────────────────────────────────────────────────────────┐
│ MCP 客户端 │
└─────────────────────────┬───────────────────────────────────────┘
│ MCP 协议
┌─────────────────────────▼───────────────────────────────────────┐
│ Node.js 包装器 (index.js) │
│ - 跨平台兼容性 │
│ - 依赖管理 │
│ - 进程生命周期 │
└─────────────────────────┬───────────────────────────────────────┘
│
┌─────────────────────────▼───────────────────────────────────────┐
│ Python MCP 服务器 (server.py) │
│ - FastMCP 框架 │
│ - CDN 模板导入 │
│ - 代码生成和定制 │
│ - API 密钥注入 │
└─────────────────────────┬───────────────────────────────────────┘
│ HTTPS
┌─────────────────────────▼───────────────────────────────────────┐
│ CDN 模板存储库 │
│ - 特定语言模板 │
│ - 框架集成 │
│ - 部署指南 │
│ - 项目助手 │
└─────────────────────────────────────────────────────────────────┘
模板结构
templates/
├── javascript/
│ ├── vanilla.md # 纯 JavaScript 实现
│ └── react.md # React 组件集成
├── python/
│ ├── vanilla.md # 基于 Python requests
│ └── django.md # Django 集成
├── php/
│ └── vanilla.md # PHP cURL 实现
├── helpers/
│ └── javascript-project.md # 特定项目实用工具
└── deployment/
└── vercel-production.md # 平台部署指南
配置
MCP 客户端配置
在 MCP 客户端配置文件中添加:
{
"mcpServers": {
"baas-sms-mcp": {
"command": "npx",
"args": ["baas-sms-mcp"],
"env": {
"BAAS_API_KEY": "请在此处输入实际的 API 密钥"
}
}
}
}
环境变量
| 变量 | 说明 | 必需 |
|------|------|------|
| BAAS_API_KEY | BaaS 平台 API 密钥 | 是* |
*为了在生成的代码中自动注入 API 密钥,此变量是必需的。即使没有该变量,服务器也能运行,但需要手动配置密钥。
可用工具
1. get_code_template_url
目的:获取优化后的代码模板的 CDN URL,无需令牌开销。
参数:
language(字符串):编程语言- 支持:
javascript,python,php,java,go,csharp
- 支持:
framework(可选):框架名称- JavaScript:
react,vue,angular - Python:
django,fastapi,flask - PHP:
laravel,symfony
- JavaScript:
deployment_platform(可选):目标平台vercel,netlify,aws,docker等
返回值:
{
"success": true,
"template_url": "https://cdn.mbaas.kr/templates/sms-mms/javascript/react.md",
"integration_url": "https://cdn.mbaas.kr/templates/sms-mms/deployment/vercel.md",
"api_endpoint": "https://api.aiapp.link/api/message/",
"configuration": {
"required_env_vars": ["BAAS_API_KEY"],
"api_key_injected": true
}
}
2. generate_direct_api_code
目的:从 CDN 获取模板并进行定制,生成生产就绪代码。
参数:
language(字符串,默认值:"javascript"):目标编程语言framework(可选):特定框架实现include_examples(布尔值,默认值:true):是否包含使用示例
返回值:
{
"success": true,
"code": "// 完整的实现代码...",
"filename": "baas-sms-service.js",
"description": "用于直接调用 /api/message/ API 的 JavaScript BaaS SMS 服务",
"source": "CDN 模板",
"configuration": {
"env_vars": ["BAAS_API_KEY"],
"install": "npm install (包含依赖项)",
"api_key_injected": true
}
}
3. create_message_service_template
目的:通过定制创建完整的特定项目服务模板。
参数:
project_config(对象):项目配置{ "default_callback": "02-1234-5678", "company_name": "您的公司" }language(字符串):目标编程语言features(数组,可选):要包含的功能- 可用:
["sms", "mms", "status_check", "history", "validation"]
- 可用:
返回值:
{
"success": true,
"code": "// 包含项目默认值的定制实现...",
"filename": "您的公司消息服务.js",
"description": "您公司的专用消息服务模板",
"source": "CDN 模板 + 项目定制"
}
4. get_integration_guide
目的:获取详细的特定平台部署和集成指南。
参数:
platform(字符串):目标平台- 支持:
vercel,netlify,heroku,aws,gcp,azure,docker
- 支持:
deployment_type(字符串,默认值:"production"):部署环境- 选项:
development,staging,production
- 选项:
返回值:
{
"success": true,
"platform": "vercel",
"deployment_type": "production",
"guide_content": "# Vercel 部署指南\n...",
"security_checklist": [
"不要将 API 密钥硬编码到代码中",
"使用环境变量或密钥管理服务",
"确保使用 HTTPS 通信",
"设置适当的错误日志记录"
]
}
重要 API 变更
BaaS 平台已进行重大更新:
新 API 结构
- 基础 URL:
https://api.aiapp.link - SMS 端点:
/api/message/sms - MMS 端点:
/api/message/mms - 认证:仅使用
X-API-KEY头
主要变更
- ❌ 所有 API 调用中 移除
PROJECT_ID参数 - ❌ 停用旧端点
- ✅ 简化为仅使用 API 密钥认证
- ✅ 更新响应格式
迁移指南
// 旧版(已停用)
const response = await fetch('https://api.aiapp.link/message/sms', {
headers: {
'Authorization': `Bearer ${jwt_token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
project_id: "uuid-string",
// ... 其他参数
})
});
// 新版
const response = await fetch('https://api.aiapp.link/api/message/sms', {
headers: {
'X-API-KEY': process.env.BAAS_API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
// 移除 project_id
// ... 其他参数
})
});
开发
本地运行
# 启动 MCP 服务器
node index.js
# 带环境变量测试
BAAS_API_KEY="test" node index.js
项目结构
BaaS-MCP/
├── index.js # Node.js 包装器和依赖管理
├── baas_sms_mcp/
│ ├── __init__.py # Python 包初始化
│ └── server.py # 主 MCP 服务器实现
├── templates/ # 本地模板回退
├── requirements.txt # Python 依赖
├── package.json # Node.js 包配置
├── pyproject.toml # Python 包配置
└── mcp.config.json # 示例 MCP 配置
发布流程
# 补丁版本(修复 bug)
npm run release:patch
# 次要版本(新增功能)
npm run release:minor
# 主要版本(重大变更)
npm run release:major
安全最佳实践
API 密钥管理
- 不要将 API 密钥硬编码到源代码中。
- 使用环境变量或密钥管理服务。
- 定期更换 API 密钥。
- 监控 API 密钥使用情况。
部署安全
- 对所有通信启用 HTTPS。
- 彻底验证输入数据。
- 实现适当的错误处理和日志记录。
- 使用最小权限访问原则。
代码生成安全
- 从可信赖的 CDN 源获取模板。
- 自动清理输入。
- 不要在 MCP 服务器上运行生成的代码。
- 明确分离模板和运行时环境。
贡献
- 分叉仓库。
- 创建功能分支:
git checkout -b feature/new-feature。 - 进行更改并彻底测试。
- 使用清晰的消息提交:
git commit -m "添加新功能"。 - 推送到分叉仓库:
git push origin feature/new-feature。 - 创建拉取请求。
性能和监控
令牌效率
- 使用基于 CDN 的模板,减少 60 - 80% 的令牌使用量。
- 通过智能缓存,最小化重复 API 调用。
- 为 MCP 协议优化响应格式。
监控
- 内置错误日志记录和报告。
- 监控 CDN 性能。
- 跟踪 API 密钥使用情况。
- 跟踪模板导入成功率。
🔧 技术细节
该 MCP 服务器通过智能代码生成和 CDN 优化模板,实现 BaaS 平台与 AI 开发工作流的无缝对接。在代码生成方面,利用先进的算法生成适用于多种语言和框架的 SMS/MMS 集成代码。CDN 优化模板则确保了代码的时效性和可维护性,通过从 CDN 获取最新模板,减少了本地开发的负担。多语言和框架支持使得开发者可以根据自身需求选择合适的技术栈。同时,通过自动注入 API 密钥和管理环境变量,简化了开发和部署流程。
📄 许可证
本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。
🆘 支持与社区
- GitHub 问题:报告 bug 或请求功能
- 电子邮件支持:support@aiapp.link
- 文档:API 规范
- 英文文档:README.md
🗺 路线图
计划功能
- [ ] 支持更多语言(Java、Go、C#)
- [ ] 提供高级模板定制选项
- [ ] 实现实时模板更新
- [ ] 支持模板版本管理
- [ ] 改进错误报告和调试功能
- [ ] 集成流行的 IDE 扩展
版本历史
- v1.0.18:当前稳定版本,包含 API 更新
- v1.0.0:初始稳定版本
- v0.1.4:包含核心功能的 beta 版本
Scan to join WeChat group