# BaaS SMS/MMS MCP 서버
[](https://badge.fury.io/js/baas-sms-mcp)
[](https://badge.fury.io/py/baas-sms-mcp)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
지능형 코드 생성과 CDN 최적화 템플릿을 통해 BaaS 플랫폼과의 원활한 통합을 제공하는 SMS 및 MMS 메시징 서비스용 종합 모델 컨텍스트 프로토콜 서버입니다.
## 🚀 개요
이 MCP 서버는 AI 개발 워크플로우와 BaaS 메시징 플랫폼 사이의 브리지 역할을 하며 다음을 제공합니다:
- **지능형 코드 생성**: SMS/MMS 통합을 위한 프로덕션 준비 코드 생성
- **CDN 최적화 템플릿**: CDN에서 유지보수되는 최신 코드 템플릿 가져오기
- **다중 언어 및 프레임워크 지원**: React, Vue, Django, Laravel 등과 함께 JavaScript, Python, PHP
- **토큰 효율성**: CDN 기반 템플릿 가져오기를 통한 토큰 사용량 최소화
- **환경 통합**: 자동 API 키 주입 및 환경 변수 관리
- **플랫폼별 가이드**: 주요 플랫폼용 배포 및 통합 가이드
## 📋 아키텍처
### 시스템 구성요소
```
┌─────────────────────────────────────────────────────────────────┐
│ 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 # 플랫폼 배포 가이드
```
## 🛠 설치 및 설정
### npm 설치 (권장)
```bash
npm install -g baas-sms-mcp
```
### 로컬 개발 설정
```bash
git clone https://github.com/jjunmomo/BaaS-MCP.git
cd BaaS-MCP
npm install
```
### Python 의존성
서버가 Python 의존성을 자동으로 관리하지만, 수동으로 설치할 수도 있습니다:
```bash
pip install -r requirements.txt
```
## ⚙️ 구성
### MCP 클라이언트 설정
MCP 클라이언트 구성 파일에 추가:
```json
{
"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`
- `deployment_platform` (선택사항): 대상 플랫폼
- `vercel`, `netlify`, `aws`, `docker` 등
**반환값:**
```json
{
"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): 사용 예제 포함
**반환값:**
```json
{
"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` (객체): 프로젝트 구성
```json
{
"default_callback": "02-1234-5678",
"company_name": "귀하의 회사"
}
```
- `language` (문자열): 대상 프로그래밍 언어
- `features` (배열, 선택사항): 포함할 기능
- 사용 가능: `["sms", "mms", "status_check", "history", "validation"]`
**반환값:**
```json
{
"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`
**반환값:**
```json
{
"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 키만으로 간소화된 인증
- ✅ 업데이트된 응답 형식
### 마이그레이션 가이드
```javascript
// 이전 (사용 중단)
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 제거됨
// ... 기타 매개변수
})
});
```
## 💡 사용 예제
### React SMS 컴포넌트 생성
```javascript
// TypeScript와 함께 React 컴포넌트 생성
const result = await mcp.generate_direct_api_code("javascript", "react", true);
console.log(result.code); // 완전한 React 컴포넌트
```
### 회사별 템플릿 생성
```javascript
const projectConfig = {
default_callback: "02-1234-5678",
company_name: "마이테크 코퍼레이션"
};
const template = await mcp.create_message_service_template(
projectConfig,
"python",
["sms", "mms", "status_check"]
);
// 회사 기본값이 포함된 커스터마이즈된 Python 서비스 클래스 반환
```
### Vercel 배포 가이드 가져오기
```javascript
const guide = await mcp.get_integration_guide("vercel", "production");
console.log(guide.guide_content); // 완전한 배포 지침
```
### 토큰 효율성을 위한 템플릿 URL 가져오기
```javascript
const urls = await mcp.get_code_template_url("python", "django", "heroku");
console.log(urls.template_url); // CDN 템플릿 URL
console.log(urls.integration_url); // 플랫폼별 가이드 URL
```
## 🏗 개발
### 로컬에서 실행
```bash
# 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 구성
```
### 릴리즈 프로세스
```bash
# 패치 버전 (버그 수정)
npm run release:patch
# 마이너 버전 (새 기능)
npm run release:minor
# 메이저 버전 (주요 변경)
npm run release:major
```
## 🔒 보안 모범 사례
### API 키 관리
- 소스 코드에 API 키를 하드코딩하지 말 것
- 환경 변수 또는 시크릿 관리 서비스 사용
- API 키를 정기적으로 교체
- API 키 사용량 모니터링
### 배포 보안
- 모든 통신에 HTTPS 활성화
- 입력 데이터를 철저히 검증
- 적절한 에러 처리 및 로깅 구현
- 최소 권한 접근 원칙 사용
### 코드 생성 보안
- 신뢰할 수 있는 CDN 소스에서 템플릿 가져오기
- 자동 입력 정화
- MCP 서버에서 생성된 코드 실행하지 않음
- 템플릿과 런타임 환경 간의 명확한 분리
## 🤝 기여하기
1. 저장소 포크
2. 기능 브랜치 생성: `git checkout -b feature/new-feature`
3. 변경사항을 만들고 철저히 테스트
4. 명확한 메시지로 커밋: `git commit -m "새 기능 추가"`
5. 포크에 푸시: `git push origin feature/new-feature`
6. Pull Request 생성
## 📊 성능 및 모니터링
### 토큰 효율성
- CDN 기반 템플릿으로 토큰 사용량 60-80% 감소
- 지능형 캐싱으로 중복 API 호출 최소화
- MCP 프로토콜용 최적화된 응답 형식
### 모니터링
- 내장 에러 로깅 및 보고
- CDN 성능 모니터링
- API 키 사용량 추적
- 템플릿 가져오기 성공률
## 📄 라이선스
MIT 라이선스 - 자세한 내용은 [LICENSE](LICENSE) 파일을 참조하세요.
## 🆘 지원 및 커뮤니티
- **GitHub 이슈**: [버그 신고 또는 기능 요청](https://github.com/jjunmomo/BaaS-MCP/issues)
- **이메일 지원**: support@aiapp.link
- **문서**: [API 명세서](SMS_MMS_API_Specification.md)
- **영어 문서**: [README.md](README.eng.md)
## 🗺 로드맵
### 예정된 기능
- [ ] 추가 언어 지원 (Java, Go, C#)
- [ ] 고급 템플릿 커스터마이징 옵션
- [ ] 실시간 템플릿 업데이트
- [ ] 템플릿 버전 관리
- [ ] 향상된 에러 보고 및 디버깅
- [ ] 인기 IDE 확장 프로그램과의 통합
### 버전 히스토리
- **v1.0.18**: API 업데이트가 포함된 현재 안정 릴리즈
- **v1.0.0**: 초기 안정 릴리즈
- **v0.1.4**: 핵심 기능이 포함된 베타 릴리즈
---
> **참고**: 이 MCP 서버는 외부 개발자 워크플로우에 최적화되어 있으며 AI 기반 개발 환경과 원활하게 통합됩니다. 최신 업데이트와 포괄적인 API 문서는 [GitHub 저장소](https://github.com/jjunmomo/BaaS-MCP)를 참조하세요.
Raw data
{
"_id": null,
"home_page": null,
"name": "baas-sms-mcp",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "mcp, messaging, mms, model-context-protocol, sms",
"author": null,
"author_email": "mBaaS Team <support@aiapp.link>",
"download_url": "https://files.pythonhosted.org/packages/26/ba/f92bbceccfca841352a1b40a88b8bafcb34164b099baf94a3d99ecfe0c52/baas_sms_mcp-1.0.25.tar.gz",
"platform": null,
"description": "# BaaS SMS/MMS MCP \uc11c\ubc84\n\n[](https://badge.fury.io/js/baas-sms-mcp)\n[](https://badge.fury.io/py/baas-sms-mcp)\n[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n\n\uc9c0\ub2a5\ud615 \ucf54\ub4dc \uc0dd\uc131\uacfc CDN \ucd5c\uc801\ud654 \ud15c\ud50c\ub9bf\uc744 \ud1b5\ud574 BaaS \ud50c\ub7ab\ud3fc\uacfc\uc758 \uc6d0\ud65c\ud55c \ud1b5\ud569\uc744 \uc81c\uacf5\ud558\ub294 SMS \ubc0f MMS \uba54\uc2dc\uc9d5 \uc11c\ube44\uc2a4\uc6a9 \uc885\ud569 \ubaa8\ub378 \ucee8\ud14d\uc2a4\ud2b8 \ud504\ub85c\ud1a0\ucf5c \uc11c\ubc84\uc785\ub2c8\ub2e4.\n\n## \ud83d\ude80 \uac1c\uc694\n\n\uc774 MCP \uc11c\ubc84\ub294 AI \uac1c\ubc1c \uc6cc\ud06c\ud50c\ub85c\uc6b0\uc640 BaaS \uba54\uc2dc\uc9d5 \ud50c\ub7ab\ud3fc \uc0ac\uc774\uc758 \ube0c\ub9ac\uc9c0 \uc5ed\ud560\uc744 \ud558\uba70 \ub2e4\uc74c\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4:\n\n- **\uc9c0\ub2a5\ud615 \ucf54\ub4dc \uc0dd\uc131**: SMS/MMS \ud1b5\ud569\uc744 \uc704\ud55c \ud504\ub85c\ub355\uc158 \uc900\ube44 \ucf54\ub4dc \uc0dd\uc131\n- **CDN \ucd5c\uc801\ud654 \ud15c\ud50c\ub9bf**: CDN\uc5d0\uc11c \uc720\uc9c0\ubcf4\uc218\ub418\ub294 \ucd5c\uc2e0 \ucf54\ub4dc \ud15c\ud50c\ub9bf \uac00\uc838\uc624\uae30\n- **\ub2e4\uc911 \uc5b8\uc5b4 \ubc0f \ud504\ub808\uc784\uc6cc\ud06c \uc9c0\uc6d0**: React, Vue, Django, Laravel \ub4f1\uacfc \ud568\uaed8 JavaScript, Python, PHP\n- **\ud1a0\ud070 \ud6a8\uc728\uc131**: CDN \uae30\ubc18 \ud15c\ud50c\ub9bf \uac00\uc838\uc624\uae30\ub97c \ud1b5\ud55c \ud1a0\ud070 \uc0ac\uc6a9\ub7c9 \ucd5c\uc18c\ud654\n- **\ud658\uacbd \ud1b5\ud569**: \uc790\ub3d9 API \ud0a4 \uc8fc\uc785 \ubc0f \ud658\uacbd \ubcc0\uc218 \uad00\ub9ac\n- **\ud50c\ub7ab\ud3fc\ubcc4 \uac00\uc774\ub4dc**: \uc8fc\uc694 \ud50c\ub7ab\ud3fc\uc6a9 \ubc30\ud3ec \ubc0f \ud1b5\ud569 \uac00\uc774\ub4dc\n\n## \ud83d\udccb \uc544\ud0a4\ud14d\ucc98\n\n### \uc2dc\uc2a4\ud15c \uad6c\uc131\uc694\uc18c\n\n```\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 MCP \ud074\ub77c\uc774\uc5b8\ud2b8 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2502 MCP \ud504\ub85c\ud1a0\ucf5c\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25bc\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Node.js \ub798\ud37c (index.js) \u2502\n\u2502 - \ud06c\ub85c\uc2a4 \ud50c\ub7ab\ud3fc \ud638\ud658\uc131 \u2502\n\u2502 - \uc758\uc874\uc131 \uad00\ub9ac \u2502\n\u2502 - \ud504\ub85c\uc138\uc2a4 \ub77c\uc774\ud504\uc0ac\uc774\ud074 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2502\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25bc\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Python MCP \uc11c\ubc84 (server.py) \u2502\n\u2502 - FastMCP \ud504\ub808\uc784\uc6cc\ud06c \u2502\n\u2502 - CDN \ud15c\ud50c\ub9bf \uac00\uc838\uc624\uae30 \u2502\n\u2502 - \ucf54\ub4dc \uc0dd\uc131 \ubc0f \ucee4\uc2a4\ud130\ub9c8\uc774\uc9d5 \u2502\n\u2502 - API \ud0a4 \uc8fc\uc785 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2502 HTTPS\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25bc\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 CDN \ud15c\ud50c\ub9bf \uc800\uc7a5\uc18c \u2502\n\u2502 - \uc5b8\uc5b4\ubcc4 \ud15c\ud50c\ub9bf \u2502\n\u2502 - \ud504\ub808\uc784\uc6cc\ud06c \ud1b5\ud569 \u2502\n\u2502 - \ubc30\ud3ec \uac00\uc774\ub4dc \u2502\n\u2502 - \ud504\ub85c\uc81d\ud2b8 \ud5ec\ud37c \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n### \ud15c\ud50c\ub9bf \uad6c\uc870\n\n```\ntemplates/\n\u251c\u2500\u2500 javascript/\n\u2502 \u251c\u2500\u2500 vanilla.md # \uc21c\uc218 JavaScript \uad6c\ud604\n\u2502 \u2514\u2500\u2500 react.md # React \ucef4\ud3ec\ub10c\ud2b8 \ud1b5\ud569\n\u251c\u2500\u2500 python/\n\u2502 \u251c\u2500\u2500 vanilla.md # Python requests \uae30\ubc18\n\u2502 \u2514\u2500\u2500 django.md # Django \ud1b5\ud569\n\u251c\u2500\u2500 php/\n\u2502 \u2514\u2500\u2500 vanilla.md # PHP cURL \uad6c\ud604\n\u251c\u2500\u2500 helpers/\n\u2502 \u2514\u2500\u2500 javascript-project.md # \ud504\ub85c\uc81d\ud2b8\ubcc4 \uc720\ud2f8\ub9ac\ud2f0\n\u2514\u2500\u2500 deployment/\n \u2514\u2500\u2500 vercel-production.md # \ud50c\ub7ab\ud3fc \ubc30\ud3ec \uac00\uc774\ub4dc\n```\n\n## \ud83d\udee0 \uc124\uce58 \ubc0f \uc124\uc815\n\n### npm \uc124\uce58 (\uad8c\uc7a5)\n```bash\nnpm install -g baas-sms-mcp\n```\n\n### \ub85c\uceec \uac1c\ubc1c \uc124\uc815\n```bash\ngit clone https://github.com/jjunmomo/BaaS-MCP.git\ncd BaaS-MCP\nnpm install\n```\n\n### Python \uc758\uc874\uc131\n\uc11c\ubc84\uac00 Python \uc758\uc874\uc131\uc744 \uc790\ub3d9\uc73c\ub85c \uad00\ub9ac\ud558\uc9c0\ub9cc, \uc218\ub3d9\uc73c\ub85c \uc124\uce58\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4:\n```bash\npip install -r requirements.txt\n```\n\n## \u2699\ufe0f \uad6c\uc131\n\n### MCP \ud074\ub77c\uc774\uc5b8\ud2b8 \uc124\uc815\n\nMCP \ud074\ub77c\uc774\uc5b8\ud2b8 \uad6c\uc131 \ud30c\uc77c\uc5d0 \ucd94\uac00:\n\n```json\n{\n \"mcpServers\": {\n \"baas-sms-mcp\": {\n \"command\": \"npx\",\n \"args\": [\"baas-sms-mcp\"],\n \"env\": {\n \"BAAS_API_KEY\": \"\uc2e4\uc81c_API_\ud0a4\ub97c_\uc5ec\uae30\uc5d0_\uc785\ub825\ud558\uc138\uc694\"\n }\n }\n }\n}\n```\n\n### \ud658\uacbd \ubcc0\uc218\n\n| \ubcc0\uc218 | \uc124\uba85 | \ud544\uc218 |\n|------|------|------|\n| `BAAS_API_KEY` | BaaS \ud50c\ub7ab\ud3fc API \ud0a4 | \uc608* |\n\n*\uc0dd\uc131\ub41c \ucf54\ub4dc\uc5d0 \uc790\ub3d9 API \ud0a4 \uc8fc\uc785\uc744 \uc704\ud574 \ud544\uc694\ud569\ub2c8\ub2e4. \uc5c6\uc5b4\ub3c4 \uc11c\ubc84\ub294 \uc791\ub3d9\ud558\uc9c0\ub9cc \uc218\ub3d9 \ud0a4 \uad6c\uc131\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.\n\n## \ud83d\udd27 \uc0ac\uc6a9 \uac00\ub2a5\ud55c \ub3c4\uad6c\n\n### 1. `get_code_template_url`\n**\ubaa9\uc801**: \ud1a0\ud070 \uc624\ubc84\ud5e4\ub4dc \uc5c6\uc774 \ucd5c\uc801\ud654\ub41c \ucf54\ub4dc \ud15c\ud50c\ub9bf\uc6a9 CDN URL \uac00\uc838\uc624\uae30\n\n**\ub9e4\uac1c\ubcc0\uc218:**\n- `language` (\ubb38\uc790\uc5f4): \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\n - \uc9c0\uc6d0: `javascript`, `python`, `php`, `java`, `go`, `csharp`\n- `framework` (\uc120\ud0dd\uc0ac\ud56d): \ud504\ub808\uc784\uc6cc\ud06c \uc774\ub984\n - JavaScript: `react`, `vue`, `angular`\n - Python: `django`, `fastapi`, `flask`\n - PHP: `laravel`, `symfony`\n- `deployment_platform` (\uc120\ud0dd\uc0ac\ud56d): \ub300\uc0c1 \ud50c\ub7ab\ud3fc\n - `vercel`, `netlify`, `aws`, `docker` \ub4f1\n\n**\ubc18\ud658\uac12:**\n```json\n{\n \"success\": true,\n \"template_url\": \"https://cdn.mbaas.kr/templates/sms-mms/javascript/react.md\",\n \"integration_url\": \"https://cdn.mbaas.kr/templates/sms-mms/deployment/vercel.md\",\n \"api_endpoint\": \"https://api.aiapp.link/api/message/\",\n \"configuration\": {\n \"required_env_vars\": [\"BAAS_API_KEY\"],\n \"api_key_injected\": true\n }\n}\n```\n\n### 2. `generate_direct_api_code`\n**\ubaa9\uc801**: CDN \ud15c\ud50c\ub9bf\uc744 \uac00\uc838\uc640 \ucee4\uc2a4\ud130\ub9c8\uc774\uc9d5\ud558\uc5ec \ud504\ub85c\ub355\uc158 \uc900\ube44 \ucf54\ub4dc \uc0dd\uc131\n\n**\ub9e4\uac1c\ubcc0\uc218:**\n- `language` (\ubb38\uc790\uc5f4, \uae30\ubcf8\uac12: \"javascript\"): \ub300\uc0c1 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\n- `framework` (\uc120\ud0dd\uc0ac\ud56d): \ud504\ub808\uc784\uc6cc\ud06c\ubcc4 \uad6c\ud604\n- `include_examples` (\ubd88\ub9b0, \uae30\ubcf8\uac12: true): \uc0ac\uc6a9 \uc608\uc81c \ud3ec\ud568\n\n**\ubc18\ud658\uac12:**\n```json\n{\n \"success\": true,\n \"code\": \"// \uc644\uc804\ud55c \uad6c\ud604 \ucf54\ub4dc...\",\n \"filename\": \"baas-sms-service.js\",\n \"description\": \"\uc9c1\uc811 /api/message/ API \ud638\ucd9c\uc744 \uc704\ud55c JavaScript BaaS SMS \uc11c\ube44\uc2a4\",\n \"source\": \"CDN \ud15c\ud50c\ub9bf\",\n \"configuration\": {\n \"env_vars\": [\"BAAS_API_KEY\"],\n \"install\": \"npm install (\uc885\uc18d\uc131 \ud3ec\ud568)\",\n \"api_key_injected\": true\n }\n}\n```\n\n### 3. `create_message_service_template`\n**\ubaa9\uc801**: \ucee4\uc2a4\ud130\ub9c8\uc774\uc9d5\uc744 \ud1b5\ud55c \uc644\uc804\ud55c \ud504\ub85c\uc81d\ud2b8\ubcc4 \uc11c\ube44\uc2a4 \ud15c\ud50c\ub9bf \uc0dd\uc131\n\n**\ub9e4\uac1c\ubcc0\uc218:**\n- `project_config` (\uac1d\uccb4): \ud504\ub85c\uc81d\ud2b8 \uad6c\uc131\n ```json\n {\n \"default_callback\": \"02-1234-5678\",\n \"company_name\": \"\uadc0\ud558\uc758 \ud68c\uc0ac\"\n }\n ```\n- `language` (\ubb38\uc790\uc5f4): \ub300\uc0c1 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\n- `features` (\ubc30\uc5f4, \uc120\ud0dd\uc0ac\ud56d): \ud3ec\ud568\ud560 \uae30\ub2a5\n - \uc0ac\uc6a9 \uac00\ub2a5: `[\"sms\", \"mms\", \"status_check\", \"history\", \"validation\"]`\n\n**\ubc18\ud658\uac12:**\n```json\n{\n \"success\": true,\n \"code\": \"// \ud504\ub85c\uc81d\ud2b8 \uae30\ubcf8\uac12\uc774 \ud3ec\ud568\ub41c \ucee4\uc2a4\ud130\ub9c8\uc774\uc988\ub41c \uad6c\ud604...\",\n \"filename\": \"\uadc0\ud558\uc758_\ud68c\uc0ac_\uba54\uc2dc\uc9c0_\uc11c\ube44\uc2a4.js\",\n \"description\": \"\uadc0\ud558\uc758 \ud68c\uc0ac \uc804\uc6a9 \uba54\uc2dc\uc9c0 \uc11c\ube44\uc2a4 \ud15c\ud50c\ub9bf\",\n \"source\": \"CDN \ud15c\ud50c\ub9bf + \ud504\ub85c\uc81d\ud2b8 \ucee4\uc2a4\ud130\ub9c8\uc774\uc9d5\"\n}\n```\n\n### 4. `get_integration_guide`\n**\ubaa9\uc801**: \uc0c1\uc138\ud55c \ud50c\ub7ab\ud3fc\ubcc4 \ubc30\ud3ec \ubc0f \ud1b5\ud569 \uac00\uc774\ub4dc \uac00\uc838\uc624\uae30\n\n**\ub9e4\uac1c\ubcc0\uc218:**\n- `platform` (\ubb38\uc790\uc5f4): \ub300\uc0c1 \ud50c\ub7ab\ud3fc\n - \uc9c0\uc6d0: `vercel`, `netlify`, `heroku`, `aws`, `gcp`, `azure`, `docker`\n- `deployment_type` (\ubb38\uc790\uc5f4, \uae30\ubcf8\uac12: \"production\"): \ubc30\ud3ec \ud658\uacbd\n - \uc635\uc158: `development`, `staging`, `production`\n\n**\ubc18\ud658\uac12:**\n```json\n{\n \"success\": true,\n \"platform\": \"vercel\",\n \"deployment_type\": \"production\",\n \"guide_content\": \"# Vercel \ubc30\ud3ec \uac00\uc774\ub4dc\\n...\",\n \"security_checklist\": [\n \"API \ud0a4\ub97c \ucf54\ub4dc\uc5d0 \ud558\ub4dc\ucf54\ub529\ud558\uc9c0 \uc54a\uae30\",\n \"\ud658\uacbd \ubcc0\uc218 \ub610\ub294 \uc2dc\ud06c\ub9bf \uad00\ub9ac \uc11c\ube44\uc2a4 \uc0ac\uc6a9\",\n \"HTTPS \ud1b5\uc2e0 \ud655\uc778\",\n \"\uc801\uc808\ud55c \uc5d0\ub7ec \ub85c\uae45 \uc124\uc815\"\n ]\n}\n```\n\n## \ud83d\udea8 \uc911\uc694\ud55c API \ubcc0\uacbd\uc0ac\ud56d\n\nBaaS \ud50c\ub7ab\ud3fc\uc774 \uc8fc\uc694 \ubcc0\uacbd\uc0ac\ud56d\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\ub418\uc5c8\uc2b5\ub2c8\ub2e4:\n\n### \uc0c8\ub85c\uc6b4 API \uad6c\uc870\n- **\ubca0\uc774\uc2a4 URL**: `https://api.aiapp.link`\n- **SMS \uc5d4\ub4dc\ud3ec\uc778\ud2b8**: `/api/message/sms`\n- **MMS \uc5d4\ub4dc\ud3ec\uc778\ud2b8**: `/api/message/mms`\n- **\uc778\uc99d**: `X-API-KEY` \ud5e4\ub354\ub9cc \uc0ac\uc6a9\n\n### \uc8fc\uc694 \ubcc0\uacbd\uc0ac\ud56d\n- \u274c \ubaa8\ub4e0 API \ud638\ucd9c\uc5d0\uc11c `PROJECT_ID` \ub9e4\uac1c\ubcc0\uc218 **\uc81c\uac70\ub428**\n- \u274c \uc774\uc804 \uc5d4\ub4dc\ud3ec\uc778\ud2b8 \uc0ac\uc6a9 \uc911\ub2e8\n- \u2705 API \ud0a4\ub9cc\uc73c\ub85c \uac04\uc18c\ud654\ub41c \uc778\uc99d\n- \u2705 \uc5c5\ub370\uc774\ud2b8\ub41c \uc751\ub2f5 \ud615\uc2dd\n\n### \ub9c8\uc774\uadf8\ub808\uc774\uc158 \uac00\uc774\ub4dc\n```javascript\n// \uc774\uc804 (\uc0ac\uc6a9 \uc911\ub2e8)\nconst response = await fetch('https://api.aiapp.link/message/sms', {\n headers: {\n 'Authorization': `Bearer ${jwt_token}`,\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n project_id: \"uuid-string\",\n // ... \uae30\ud0c0 \ub9e4\uac1c\ubcc0\uc218\n })\n});\n\n// \ud604\uc7ac (\uc2e0\uaddc)\nconst response = await fetch('https://api.aiapp.link/api/message/sms', {\n headers: {\n 'X-API-KEY': process.env.BAAS_API_KEY,\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n // project_id \uc81c\uac70\ub428\n // ... \uae30\ud0c0 \ub9e4\uac1c\ubcc0\uc218\n })\n});\n```\n\n## \ud83d\udca1 \uc0ac\uc6a9 \uc608\uc81c\n\n### React SMS \ucef4\ud3ec\ub10c\ud2b8 \uc0dd\uc131\n```javascript\n// TypeScript\uc640 \ud568\uaed8 React \ucef4\ud3ec\ub10c\ud2b8 \uc0dd\uc131\nconst result = await mcp.generate_direct_api_code(\"javascript\", \"react\", true);\nconsole.log(result.code); // \uc644\uc804\ud55c React \ucef4\ud3ec\ub10c\ud2b8\n```\n\n### \ud68c\uc0ac\ubcc4 \ud15c\ud50c\ub9bf \uc0dd\uc131\n```javascript\nconst projectConfig = {\n default_callback: \"02-1234-5678\",\n company_name: \"\ub9c8\uc774\ud14c\ud06c \ucf54\ud37c\ub808\uc774\uc158\"\n};\n\nconst template = await mcp.create_message_service_template(\n projectConfig, \n \"python\", \n [\"sms\", \"mms\", \"status_check\"]\n);\n\n// \ud68c\uc0ac \uae30\ubcf8\uac12\uc774 \ud3ec\ud568\ub41c \ucee4\uc2a4\ud130\ub9c8\uc774\uc988\ub41c Python \uc11c\ube44\uc2a4 \ud074\ub798\uc2a4 \ubc18\ud658\n```\n\n### Vercel \ubc30\ud3ec \uac00\uc774\ub4dc \uac00\uc838\uc624\uae30\n```javascript\nconst guide = await mcp.get_integration_guide(\"vercel\", \"production\");\nconsole.log(guide.guide_content); // \uc644\uc804\ud55c \ubc30\ud3ec \uc9c0\uce68\n```\n\n### \ud1a0\ud070 \ud6a8\uc728\uc131\uc744 \uc704\ud55c \ud15c\ud50c\ub9bf URL \uac00\uc838\uc624\uae30\n```javascript\nconst urls = await mcp.get_code_template_url(\"python\", \"django\", \"heroku\");\nconsole.log(urls.template_url); // CDN \ud15c\ud50c\ub9bf URL\nconsole.log(urls.integration_url); // \ud50c\ub7ab\ud3fc\ubcc4 \uac00\uc774\ub4dc URL\n```\n\n## \ud83c\udfd7 \uac1c\ubc1c\n\n### \ub85c\uceec\uc5d0\uc11c \uc2e4\ud589\n```bash\n# MCP \uc11c\ubc84 \uc2dc\uc791\nnode index.js\n\n# \ud658\uacbd \ubcc0\uc218\uc640 \ud568\uaed8 \ud14c\uc2a4\ud2b8\nBAAS_API_KEY=\"test\" node index.js\n```\n\n### \ud504\ub85c\uc81d\ud2b8 \uad6c\uc870\n```\nBaaS-MCP/\n\u251c\u2500\u2500 index.js # Node.js \ub798\ud37c \ubc0f \uc758\uc874\uc131 \uad00\ub9ac\n\u251c\u2500\u2500 baas_sms_mcp/\n\u2502 \u251c\u2500\u2500 __init__.py # Python \ud328\ud0a4\uc9c0 \ucd08\uae30\ud654\n\u2502 \u2514\u2500\u2500 server.py # \uba54\uc778 MCP \uc11c\ubc84 \uad6c\ud604\n\u251c\u2500\u2500 templates/ # \ub85c\uceec \ud15c\ud50c\ub9bf \ud3f4\ubc31\n\u251c\u2500\u2500 requirements.txt # Python \uc758\uc874\uc131\n\u251c\u2500\u2500 package.json # Node.js \ud328\ud0a4\uc9c0 \uad6c\uc131\n\u251c\u2500\u2500 pyproject.toml # Python \ud328\ud0a4\uc9c0 \uad6c\uc131\n\u2514\u2500\u2500 mcp.config.json # \uc608\uc81c MCP \uad6c\uc131\n```\n\n### \ub9b4\ub9ac\uc988 \ud504\ub85c\uc138\uc2a4\n```bash\n# \ud328\uce58 \ubc84\uc804 (\ubc84\uadf8 \uc218\uc815)\nnpm run release:patch\n\n# \ub9c8\uc774\ub108 \ubc84\uc804 (\uc0c8 \uae30\ub2a5)\nnpm run release:minor\n\n# \uba54\uc774\uc800 \ubc84\uc804 (\uc8fc\uc694 \ubcc0\uacbd)\nnpm run release:major\n```\n\n## \ud83d\udd12 \ubcf4\uc548 \ubaa8\ubc94 \uc0ac\ub840\n\n### API \ud0a4 \uad00\ub9ac\n- \uc18c\uc2a4 \ucf54\ub4dc\uc5d0 API \ud0a4\ub97c \ud558\ub4dc\ucf54\ub529\ud558\uc9c0 \ub9d0 \uac83\n- \ud658\uacbd \ubcc0\uc218 \ub610\ub294 \uc2dc\ud06c\ub9bf \uad00\ub9ac \uc11c\ube44\uc2a4 \uc0ac\uc6a9\n- API \ud0a4\ub97c \uc815\uae30\uc801\uc73c\ub85c \uad50\uccb4\n- API \ud0a4 \uc0ac\uc6a9\ub7c9 \ubaa8\ub2c8\ud130\ub9c1\n\n### \ubc30\ud3ec \ubcf4\uc548\n- \ubaa8\ub4e0 \ud1b5\uc2e0\uc5d0 HTTPS \ud65c\uc131\ud654\n- \uc785\ub825 \ub370\uc774\ud130\ub97c \ucca0\uc800\ud788 \uac80\uc99d\n- \uc801\uc808\ud55c \uc5d0\ub7ec \ucc98\ub9ac \ubc0f \ub85c\uae45 \uad6c\ud604\n- \ucd5c\uc18c \uad8c\ud55c \uc811\uadfc \uc6d0\uce59 \uc0ac\uc6a9\n\n### \ucf54\ub4dc \uc0dd\uc131 \ubcf4\uc548\n- \uc2e0\ub8b0\ud560 \uc218 \uc788\ub294 CDN \uc18c\uc2a4\uc5d0\uc11c \ud15c\ud50c\ub9bf \uac00\uc838\uc624\uae30\n- \uc790\ub3d9 \uc785\ub825 \uc815\ud654\n- MCP \uc11c\ubc84\uc5d0\uc11c \uc0dd\uc131\ub41c \ucf54\ub4dc \uc2e4\ud589\ud558\uc9c0 \uc54a\uc74c\n- \ud15c\ud50c\ub9bf\uacfc \ub7f0\ud0c0\uc784 \ud658\uacbd \uac04\uc758 \uba85\ud655\ud55c \ubd84\ub9ac\n\n## \ud83e\udd1d \uae30\uc5ec\ud558\uae30\n\n1. \uc800\uc7a5\uc18c \ud3ec\ud06c\n2. \uae30\ub2a5 \ube0c\ub79c\uce58 \uc0dd\uc131: `git checkout -b feature/new-feature`\n3. \ubcc0\uacbd\uc0ac\ud56d\uc744 \ub9cc\ub4e4\uace0 \ucca0\uc800\ud788 \ud14c\uc2a4\ud2b8\n4. \uba85\ud655\ud55c \uba54\uc2dc\uc9c0\ub85c \ucee4\ubc0b: `git commit -m \"\uc0c8 \uae30\ub2a5 \ucd94\uac00\"`\n5. \ud3ec\ud06c\uc5d0 \ud478\uc2dc: `git push origin feature/new-feature`\n6. Pull Request \uc0dd\uc131\n\n## \ud83d\udcca \uc131\ub2a5 \ubc0f \ubaa8\ub2c8\ud130\ub9c1\n\n### \ud1a0\ud070 \ud6a8\uc728\uc131\n- CDN \uae30\ubc18 \ud15c\ud50c\ub9bf\uc73c\ub85c \ud1a0\ud070 \uc0ac\uc6a9\ub7c9 60-80% \uac10\uc18c\n- \uc9c0\ub2a5\ud615 \uce90\uc2f1\uc73c\ub85c \uc911\ubcf5 API \ud638\ucd9c \ucd5c\uc18c\ud654\n- MCP \ud504\ub85c\ud1a0\ucf5c\uc6a9 \ucd5c\uc801\ud654\ub41c \uc751\ub2f5 \ud615\uc2dd\n\n### \ubaa8\ub2c8\ud130\ub9c1\n- \ub0b4\uc7a5 \uc5d0\ub7ec \ub85c\uae45 \ubc0f \ubcf4\uace0\n- CDN \uc131\ub2a5 \ubaa8\ub2c8\ud130\ub9c1\n- API \ud0a4 \uc0ac\uc6a9\ub7c9 \ucd94\uc801\n- \ud15c\ud50c\ub9bf \uac00\uc838\uc624\uae30 \uc131\uacf5\ub960\n\n## \ud83d\udcc4 \ub77c\uc774\uc120\uc2a4\n\nMIT \ub77c\uc774\uc120\uc2a4 - \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 [LICENSE](LICENSE) \ud30c\uc77c\uc744 \ucc38\uc870\ud558\uc138\uc694.\n\n## \ud83c\udd98 \uc9c0\uc6d0 \ubc0f \ucee4\ubba4\ub2c8\ud2f0\n\n- **GitHub \uc774\uc288**: [\ubc84\uadf8 \uc2e0\uace0 \ub610\ub294 \uae30\ub2a5 \uc694\uccad](https://github.com/jjunmomo/BaaS-MCP/issues)\n- **\uc774\uba54\uc77c \uc9c0\uc6d0**: support@aiapp.link\n- **\ubb38\uc11c**: [API \uba85\uc138\uc11c](SMS_MMS_API_Specification.md)\n- **\uc601\uc5b4 \ubb38\uc11c**: [README.md](README.eng.md)\n\n## \ud83d\uddfa \ub85c\ub4dc\ub9f5\n\n### \uc608\uc815\ub41c \uae30\ub2a5\n- [ ] \ucd94\uac00 \uc5b8\uc5b4 \uc9c0\uc6d0 (Java, Go, C#)\n- [ ] \uace0\uae09 \ud15c\ud50c\ub9bf \ucee4\uc2a4\ud130\ub9c8\uc774\uc9d5 \uc635\uc158\n- [ ] \uc2e4\uc2dc\uac04 \ud15c\ud50c\ub9bf \uc5c5\ub370\uc774\ud2b8\n- [ ] \ud15c\ud50c\ub9bf \ubc84\uc804 \uad00\ub9ac\n- [ ] \ud5a5\uc0c1\ub41c \uc5d0\ub7ec \ubcf4\uace0 \ubc0f \ub514\ubc84\uae45\n- [ ] \uc778\uae30 IDE \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8\uacfc\uc758 \ud1b5\ud569\n\n### \ubc84\uc804 \ud788\uc2a4\ud1a0\ub9ac\n- **v1.0.18**: API \uc5c5\ub370\uc774\ud2b8\uac00 \ud3ec\ud568\ub41c \ud604\uc7ac \uc548\uc815 \ub9b4\ub9ac\uc988\n- **v1.0.0**: \ucd08\uae30 \uc548\uc815 \ub9b4\ub9ac\uc988\n- **v0.1.4**: \ud575\uc2ec \uae30\ub2a5\uc774 \ud3ec\ud568\ub41c \ubca0\ud0c0 \ub9b4\ub9ac\uc988\n\n---\n\n> **\ucc38\uace0**: \uc774 MCP \uc11c\ubc84\ub294 \uc678\ubd80 \uac1c\ubc1c\uc790 \uc6cc\ud06c\ud50c\ub85c\uc6b0\uc5d0 \ucd5c\uc801\ud654\ub418\uc5b4 \uc788\uc73c\uba70 AI \uae30\ubc18 \uac1c\ubc1c \ud658\uacbd\uacfc \uc6d0\ud65c\ud558\uac8c \ud1b5\ud569\ub429\ub2c8\ub2e4. \ucd5c\uc2e0 \uc5c5\ub370\uc774\ud2b8\uc640 \ud3ec\uad04\uc801\uc778 API \ubb38\uc11c\ub294 [GitHub \uc800\uc7a5\uc18c](https://github.com/jjunmomo/BaaS-MCP)\ub97c \ucc38\uc870\ud558\uc138\uc694.",
"bugtrack_url": null,
"license": null,
"summary": "A Model Context Protocol server for SMS and MMS messaging services",
"version": "1.0.25",
"project_urls": {
"Documentation": "https://github.com/your-org/baas-sms-mcp#readme",
"Homepage": "https://github.com/your-org/baas-sms-mcp",
"Issues": "https://github.com/your-org/baas-sms-mcp/issues",
"Repository": "https://github.com/your-org/baas-sms-mcp.git"
},
"split_keywords": [
"mcp",
" messaging",
" mms",
" model-context-protocol",
" sms"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "ac758e6ba5df5c67b71a87220aac0c67f95fc65ff867b045f20fdb21e95e3c67",
"md5": "d96f356460f86e8899bd3c8ea5ec1924",
"sha256": "72b108a69bc3aa5f97e32946f08b9188d743f467bb1b5c7256f090e5a3c2aa70"
},
"downloads": -1,
"filename": "baas_sms_mcp-1.0.25-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d96f356460f86e8899bd3c8ea5ec1924",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 13279,
"upload_time": "2025-08-12T01:41:16",
"upload_time_iso_8601": "2025-08-12T01:41:16.716674Z",
"url": "https://files.pythonhosted.org/packages/ac/75/8e6ba5df5c67b71a87220aac0c67f95fc65ff867b045f20fdb21e95e3c67/baas_sms_mcp-1.0.25-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "26baf92bbceccfca841352a1b40a88b8bafcb34164b099baf94a3d99ecfe0c52",
"md5": "598363fce96cfc73a70ae40adb34aa4a",
"sha256": "a1e6eed88597bf8709893cb94c146a13178fc87149aa8c0f4f903f6a67b13080"
},
"downloads": -1,
"filename": "baas_sms_mcp-1.0.25.tar.gz",
"has_sig": false,
"md5_digest": "598363fce96cfc73a70ae40adb34aa4a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 96674,
"upload_time": "2025-08-12T01:41:18",
"upload_time_iso_8601": "2025-08-12T01:41:18.421993Z",
"url": "https://files.pythonhosted.org/packages/26/ba/f92bbceccfca841352a1b40a88b8bafcb34164b099baf94a3d99ecfe0c52/baas_sms_mcp-1.0.25.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-12 01:41:18",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "your-org",
"github_project": "baas-sms-mcp#readme",
"github_not_found": true,
"lcname": "baas-sms-mcp"
}