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.

Servidor MCP de VoIPBin

Una implementación de servidor de Protocolo de contexto de modelo (MCP) para la API VoIPBin, que permite que los modelos de IA interactúen con los servicios de VoIP.

Descargo de responsabilidad

Este software se proporciona "tal cual", sin garantías, ni expresas ni implícitas. El autor no garantiza la integridad, fiabilidad ni precisión de este software. El uso de este software se realiza bajo su propia responsabilidad. El autor no se responsabiliza de ningún daño derivado del uso de este software.

Descripción general

Este servidor MCP proporciona una interfaz estandarizada para que los modelos de IA interactúen con los servicios API de VoIPBin. Implementa la especificación del Protocolo de Contexto de Modelo y admite los tipos de transporte SSE y stdio.

Características

  • Integración completa de la API de VoIPBin a través del protocolo MCP
  • Compatibilidad con los modos de transporte stdio y SSE
  • Definiciones completas de herramientas con anotaciones adecuadas
  • Manejo de solicitudes y respuestas con seguridad de tipos
  • Solicitudes HTTP asincrónicas
  • Manejo y validación de errores adecuados
  • Compatibilidad con Docker para una implementación sencilla

Herramientas disponibles

Gestión de llamadas

  • get_calls : recupera una lista de llamadas con filtrado opcional
  • get_call : Obtener detalles de una llamada específica
  • create_call : Crea una nueva llamada
  • end_call : Finalizar una llamada activa

Gestión de agentes

  • get_agents : recupera una lista de agentes
  • get_agent : Obtener detalles de un agente específico
  • update_agent_status : Actualizar el estado de un agente

Gestión de campañas

  • get_campaigns : Recuperar una lista de campañas
  • get_campaign : Obtener detalles de una campaña específica
  • create_campaign : Crea una nueva campaña

Gestión de grabaciones

  • get_recordings : recupera una lista de grabaciones de llamadas
  • get_recording : Obtener detalles de una grabación específica

Gestión de colas

  • get_queues : recupera una lista de colas de llamadas
  • get_queue : Obtener detalles de una cola específica

Gestión de conferencias

  • get_conferences : recupera una lista de conferencias activas
  • create_conference : Crea una nueva conferencia

Gestión de chat

  • get_chats : recupera una lista de conversaciones de chat
  • send_chat_message : Envía un mensaje en una conversación de chat

Gestión de facturación

  • get_billing_info : Recuperar información de facturación actual
  • get_billing_history : recupera el historial de facturación con filtrado de fechas opcional

Configuración

Configuración de desarrollo local

  1. Crear un entorno virtual:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
  1. Instalar dependencias:
pip install -r requirements.txt
  1. Crea un archivo .env :
cp .env.example .env
  1. Actualice el archivo .env con sus credenciales de API de VoIPBin:
VOIPBIN_API_URL=https://api.voipbin.net/v1.0 VOIPBIN_API_KEY=your-api-key-here PORT=8000

Configuración de Docker

  1. Construya y ejecute usando 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. O bien, construya y ejecute usando Docker directamente:
# 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

Ejecución del servidor

Desarrollo local

Modo de E/S estándar

python src/main.py --transport stdio

Modo SSE

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

Estibador

El servidor se ejecuta en modo SSE por defecto al usar Docker. El contenedor expone el puerto 8000 para conexiones SSE.

Ejemplos de uso de herramientas

Creando una llamada

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

Obtener detalles de la llamada

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

Creación de una conferencia

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

Enviar un mensaje de chat

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

Anotaciones de herramientas

Cada herramienta incluye anotaciones que proporcionan metadatos sobre su comportamiento:

  • readOnlyHint : Indica si la herramienta solo lee datos
  • destructiveHint : Indica si la herramienta modifica o elimina datos
  • idempotentHint : Indica si las llamadas repetidas tienen el mismo efecto que una sola llamada
  • openWorldHint : Indica si la herramienta opera en un contexto de mundo abierto

Manejo de errores

El servidor incluye un manejo integral de errores:

  • Credenciales de API no válidas
  • Problemas de conectividad de red
  • Parámetros de solicitud no válidos
  • Limitación de velocidad
  • Errores del servidor

Desarrollo

Agregar nuevas herramientas

Para agregar una nueva herramienta:

  1. Agregue la definición de la herramienta en la función list_tools()
  2. Implementar el controlador de herramientas en la función voipbin_tool()
  3. Actualizar la documentación

Pruebas

Ejecute el conjunto de pruebas:

python -m pytest tests/

Seguridad

  • Las claves API se almacenan de forma segura en variables de entorno
  • Todas las solicitudes están autenticadas
  • Se aplica HTTPS para la comunicación API
  • La validación de entrada se realiza en todas las solicitudes
  • El contenedor Docker se ejecuta como un usuario no root
  • Los controles de salud garantizan que el contenedor funcione correctamente

Contribuyendo

  1. Bifurcar el repositorio
  2. Crear una rama de características
  3. Confirme sus cambios
  4. Empujar hacia la rama
  5. Crear una solicitud de extracción

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

La Licencia MIT es una licencia permisiva, breve y concisa. Permite a las personas hacer lo que quieran con el código, siempre y cuando se les dé crédito y no se les exija responsabilidad.

Qué puedes hacer con este código:

  • Úselo comercialmente
  • Modificarlo
  • Distribuirlo
  • Úselo de forma privada
  • Sublicenciarlo

Lo que debes hacer:

  • Incluya el aviso de derechos de autor original
  • Incluir el texto de la licencia
  • Proporcionar una atribución clara a la fuente original.
  • Mantener la atribución en cualquier trabajo derivado

Lo que no puedes hacer:

  • Hacer responsable al autor de los daños
  • Eliminar u ocultar la atribución
  • Reclama la obra como tuya

Para obtener más información sobre la licencia MIT, visite choosealicense.com/licenses/mit/ .

ID: eidmvi5tei