VoIPBin MCP Server

MIT License
  • Linux
  • Apple

Integrations

  • Used for managing environment variables such as API credentials, with a .env file for configuration of the VoIPBin API key and URL.

  • Provides containerization support for easy deployment of the MCP server, with Docker Compose configuration and proper security practices for running the container.

  • Supports testing of the MCP server implementation with a test suite that can be run to verify functionality.

VoIPBin MCP 서버

VoIPBin API를 위한 MCP(Model Context Protocol) 서버 구현으로 AI 모델이 VoIP 서비스와 상호 작용할 수 있습니다.

부인 성명

본 소프트웨어는 명시적이든 묵시적이든 어떠한 보증도 없이 "있는 그대로" 제공됩니다. 저자는 본 소프트웨어의 완전성, 신뢰성 또는 정확성에 대해 어떠한 보장도 하지 않습니다. 본 소프트웨어 사용에 따른 모든 책임은 사용자에게 있습니다. 저자는 본 소프트웨어 사용으로 인해 발생하는 어떠한 손해에 대해서도 책임을 지지 않습니다.

개요

이 MCP 서버는 AI 모델이 VoIPBin API 서비스와 상호 작용할 수 있도록 표준화된 인터페이스를 제공합니다. 모델 컨텍스트 프로토콜(MCP) 사양을 구현하고 SSE 및 stdio 전송 유형을 모두 지원합니다.

특징

  • MCP 프로토콜을 통한 전체 VoIPBin API 통합
  • stdio 및 SSE 전송 모드 모두 지원
  • 적절한 주석이 포함된 포괄적인 도구 정의
  • 유형 안전 요청/응답 처리
  • 비동기 HTTP 요청
  • 적절한 오류 처리 및 검증
  • 간편한 배포를 위한 Docker 지원

사용 가능한 도구

통화 관리

  • get_calls : 선택적 필터링을 사용하여 통화 목록을 검색합니다.
  • get_call : 특정 통화에 대한 세부 정보를 가져옵니다.
  • create_call : 새로운 호출을 생성합니다
  • end_call : 활성 통화를 종료합니다.

에이전트 관리

  • get_agents : 에이전트 목록을 검색합니다.
  • get_agent : 특정 에이전트의 세부 정보를 가져옵니다.
  • update_agent_status : 에이전트의 상태를 업데이트합니다.

캠페인 관리

  • get_campaigns : 캠페인 목록을 검색합니다.
  • get_campaign : 특정 캠페인의 세부 정보를 가져옵니다.
  • create_campaign : 새로운 캠페인을 만듭니다

녹음 관리

  • get_recordings : 통화 녹음 목록을 검색합니다.
  • get_recording : 특정 녹음의 세부 정보를 가져옵니다.

대기열 관리

  • get_queues : 호출 대기열 목록을 검색합니다.
  • get_queue : 특정 대기열의 세부 정보를 가져옵니다.

컨퍼런스 관리

  • get_conferences : 활성 컨퍼런스 목록을 검색합니다.
  • create_conference : 새로운 컨퍼런스를 만듭니다

채팅 관리

  • get_chats : 채팅 대화 목록을 검색합니다.
  • send_chat_message : 채팅 대화에서 메시지를 보냅니다.

청구 관리

  • get_billing_info : 현재 청구 정보를 검색합니다.
  • get_billing_history : 선택적 날짜 필터링을 사용하여 청구 내역 검색

설정

지역 개발 설정

  1. 가상 환경 만들기:

지엑스피1

  1. 종속성 설치:
pip install -r requirements.txt
  1. .env 파일을 만듭니다.
cp .env.example .env
  1. VoIPBin API 자격 증명으로 .env 파일을 업데이트하세요.
VOIPBIN_API_URL=https://api.voipbin.net/v1.0 VOIPBIN_API_KEY=your-api-key-here PORT=8000

도커 설정

  1. Docker Compose를 사용하여 빌드하고 실행하세요.
# Build and start the container docker-compose up --build # Run in detached mode docker-compose up -d # Stop the container docker-compose down
  1. 또는 Docker를 직접 사용하여 빌드하고 실행합니다.
# Build the image docker build -t voipbin-mcp-server . # Run the container docker run -d \ -p 8000:8000 \ -e VOIPBIN_API_KEY=your-api-key-here \ -e VOIPBIN_API_URL=https://api.voipbin.net/v1.0 \ voipbin-mcp-server

서버 실행

지역 개발

표준 I/O 모드

python src/main.py --transport stdio

SSE 모드

python src/main.py --transport sse --port 8000

도커

Docker를 사용하면 서버는 기본적으로 SSE 모드로 실행됩니다. 컨테이너는 SSE 연결을 위해 8000번 포트를 노출합니다.

도구 사용 예

통화 만들기

{ "name": "create_call", "arguments": { "body": { "phone_number": "+1234567890", "agent_id": "agent_123", "campaign_id": "campaign_456" } } }

통화 세부 정보 얻기

{ "name": "get_call", "arguments": { "call_id": "call_789" } }

컨퍼런스 만들기

{ "name": "create_conference", "arguments": { "body": { "name": "Team Meeting", "participants": ["+1234567890", "+0987654321"] } } }

채팅 메시지 보내기

{ "name": "send_chat_message", "arguments": { "chat_id": "chat_123", "body": { "message": "Hello, how can I help you today?" } } }

도구 주석

각 도구에는 해당 도구의 동작에 대한 메타데이터를 제공하는 주석이 포함되어 있습니다.

  • readOnlyHint : 도구가 데이터를 읽는지 여부를 나타냅니다.
  • destructiveHint : 도구가 데이터를 수정하거나 삭제하는지 여부를 나타냅니다.
  • idempotentHint : 반복 호출이 단일 호출과 동일한 효과를 갖는지 여부를 나타냅니다.
  • openWorldHint : 도구가 오픈 월드 컨텍스트에서 작동하는지 여부를 나타냅니다.

오류 처리

서버에는 포괄적인 오류 처리 기능이 포함되어 있습니다.

  • 잘못된 API 자격 증명
  • 네트워크 연결 문제
  • 잘못된 요청 매개변수
  • 속도 제한
  • 서버 오류

개발

새로운 도구 추가

새로운 도구를 추가하려면:

  1. list_tools() 함수에 도구 정의를 추가합니다.
  2. voipbin_tool() 함수에서 도구 핸들러를 구현합니다.
  3. 문서를 업데이트하세요

테스트

테스트 모음을 실행합니다.

python -m pytest tests/

보안

  • API 키는 환경 변수에 안전하게 저장됩니다.
  • 모든 요청은 인증됩니다
  • API 통신에는 HTTPS가 적용됩니다.
  • 모든 요청에 대해 입력 검증이 수행됩니다.
  • Docker 컨테이너는 루트가 아닌 사용자로 실행됩니다.
  • 상태 점검을 통해 컨테이너가 제대로 실행되는지 확인합니다.

기여하다

  1. 저장소를 포크하세요
  2. 기능 브랜치 생성
  3. 변경 사항을 커밋하세요
  4. 지점으로 밀어 넣기
  5. 풀 리퀘스트 만들기

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

MIT 라이선스는 간결하고 간결한 관대한 라이선스입니다. 저작자를 명시하고 책임을 묻지 않는 한, 다른 사람들이 코드를 마음대로 사용할 수 있도록 허용합니다.

이 코드로 할 수 있는 일:

  • 상업적으로 사용하세요
  • 수정하세요
  • 그것을 배포하다
  • 비공개로 사용하세요
  • 하위 라이선스를 부여하세요

당신이 해야 할 일:

  • 원래 저작권 고지를 포함하세요
  • 라이센스 텍스트를 포함합니다
  • 원본 출처에 대한 명확한 출처 표시를 제공하세요
  • 파생 작품에 대한 출처 표시를 유지하세요

당신이 할 수 없는 일:

  • 저자에게 손해배상 책임을 묻다
  • 귀속을 제거하거나 흐리게 만듭니다.
  • 해당 작업을 자신의 것으로 주장하세요

MIT 라이선스에 대한 자세한 내용은 choosealicense.com/licenses/mit/ 에서 확인하세요.

ID: eidmvi5tei