baas-sms-mcp


Namebaas-sms-mcp JSON
Version 1.0.25 PyPI version JSON
download
home_pageNone
SummaryA Model Context Protocol server for SMS and MMS messaging services
upload_time2025-08-12 01:41:18
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords mcp messaging mms model-context-protocol sms
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # BaaS SMS/MMS MCP 서버

[![npm version](https://badge.fury.io/js/baas-sms-mcp.svg)](https://badge.fury.io/js/baas-sms-mcp)
[![PyPI version](https://badge.fury.io/py/baas-sms-mcp.svg)](https://badge.fury.io/py/baas-sms-mcp)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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[![npm version](https://badge.fury.io/js/baas-sms-mcp.svg)](https://badge.fury.io/js/baas-sms-mcp)\n[![PyPI version](https://badge.fury.io/py/baas-sms-mcp.svg)](https://badge.fury.io/py/baas-sms-mcp)\n[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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"
}
        
Elapsed time: 1.93333s