AI Customer Support Bot - MCP Server

by ChiragPatankar
Verified
MIT License
  • Linux

Integrations

  • Manages environment variables for API keys, database connections, and server configuration settings.

  • Version control system used for server codebase management and contribution workflow.

  • Stores user interactions, context metadata, and tracking data for the AI customer support system.

Bot de atención al cliente con IA - Servidor MCP

Un servidor de Protocolo de Contexto de Modelo (MCP) que brinda soporte al cliente impulsado por IA mediante la integración de Cursor AI y Glama.ai.

Características

  • Obtención de contexto en tiempo real desde Glama.ai
  • Generación de respuestas impulsada por IA con Cursor AI
  • Soporte de procesamiento por lotes
  • Cola de prioridad
  • Limitación de velocidad
  • Seguimiento de la interacción del usuario
  • Vigilancia de la salud
  • Cumplimiento del protocolo MCP

Prerrequisitos

  • Python 3.8+
  • Base de datos PostgreSQL
  • Clave API de Glama.ai
  • Clave API de Cursor AI

Instalación

  1. Clonar el repositorio:
git clone <repository-url> cd <repository-name>
  1. Crear y activar 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. Cree un archivo .env basado en .env.example :
cp .env.example .env
  1. Configure su archivo .env con sus credenciales:
# API Keys GLAMA_API_KEY=your_glama_api_key_here CURSOR_API_KEY=your_cursor_api_key_here # Database DATABASE_URL=postgresql://user:password@localhost/customer_support_bot # API URLs GLAMA_API_URL=https://api.glama.ai/v1 # Security SECRET_KEY=your_secret_key_here # MCP Server Configuration SERVER_NAME="AI Customer Support Bot" SERVER_VERSION="1.0.0" API_PREFIX="/mcp" MAX_CONTEXT_RESULTS=5 # Rate Limiting RATE_LIMIT_REQUESTS=100 RATE_LIMIT_PERIOD=60 # Logging LOG_LEVEL=INFO
  1. Configurar la base de datos:
# Create the database createdb customer_support_bot # Run migrations (if using Alembic) alembic upgrade head

Ejecución del servidor

Iniciar el servidor:

python app.py

El servidor estará disponible en http://localhost:8000

Puntos finales de API

1. Punto final raíz

GET /

Devuelve información básica del servidor.

2. Versión MCP

GET /mcp/version

Devuelve las versiones del protocolo MCP compatibles.

3. Capacidades

GET /mcp/capabilities

Devuelve las capacidades del servidor y las funciones compatibles.

4. Solicitud de proceso

POST /mcp/process

Procesar una sola consulta con contexto.

Ejemplo de solicitud:

curl -X POST http://localhost:8000/mcp/process \ -H "Content-Type: application/json" \ -H "X-MCP-Auth: your-auth-token" \ -H "X-MCP-Version: 1.0" \ -d '{ "query": "How do I reset my password?", "priority": "high", "mcp_version": "1.0" }'

5. Procesamiento por lotes

POST /mcp/batch

Procesar múltiples consultas en una sola solicitud.

Ejemplo de solicitud:

curl -X POST http://localhost:8000/mcp/batch \ -H "Content-Type: application/json" \ -H "X-MCP-Auth: your-auth-token" \ -H "X-MCP-Version: 1.0" \ -d '{ "queries": [ "How do I reset my password?", "What are your business hours?", "How do I contact support?" ], "mcp_version": "1.0" }'

6. Chequeo de salud

GET /mcp/health

Verifique la salud del servidor y el estado del servicio.

Limitación de velocidad

El servidor implementa la limitación de velocidad con los siguientes valores predeterminados:

  • 100 solicitudes cada 60 segundos
  • La información del límite de velocidad se incluye en el punto final de verificación de estado
  • Las respuestas de límite de velocidad excedido incluyen tiempo de reinicio

Manejo de errores

El servidor devuelve respuestas de error estructuradas en el siguiente formato:

{ "code": "ERROR_CODE", "message": "Error description", "details": { "timestamp": "2024-02-14T12:00:00Z", "additional_info": "value" } }

Códigos de error comunes:

  • RATE_LIMIT_EXCEEDED : Límite de velocidad excedido
  • UNSUPPORTED_MCP_VERSION : Versión de MCP no compatible
  • PROCESSING_ERROR : Error al procesar la solicitud
  • CONTEXT_FETCH_ERROR : Error al obtener el contexto de Glama.ai
  • BATCH_PROCESSING_ERROR : Error al procesar la solicitud por lotes

Desarrollo

Estructura del proyecto

. ├── app.py # Main application file ├── database.py # Database configuration ├── middleware.py # Middleware (rate limiting, validation) ├── models.py # Database models ├── mcp_config.py # MCP-specific configuration ├── requirements.txt # Python dependencies └── .env # Environment variables

Añadiendo nuevas funciones

  1. Actualice mcp_config.py con nuevas opciones de configuración
  2. Agregue nuevos modelos en models.py si es necesario
  3. Crear nuevos puntos finales en app.py
  4. Actualizar las capacidades del punto final para reflejar las nuevas funciones

Seguridad

  • Todos los puntos finales de MCP requieren autenticación a través del encabezado X-MCP-Auth
  • Se implementa una limitación de velocidad para evitar el abuso.
  • Las credenciales de la base de datos deben mantenerse seguras
  • Las claves API nunca deben comprometerse con el control de versiones

Escucha

El servidor proporciona puntos finales de verificación de estado para supervisar:

  • Estado del servicio
  • Uso del límite de velocidad
  • Servicios conectados
  • Tiempos de procesamiento

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

[Su licencia aquí]

Apoyo

Para obtener ayuda, comuníquese con [Su información de contacto]

-
security - not tested
F
license - not found
-
quality - not tested

Un servidor de Protocolo de Contexto de Modelo (MCP) que brinda soporte al cliente impulsado por IA mediante la integración de Cursor AI y Glama.ai.

  1. Features
    1. Prerequisites
      1. Installation
        1. Running the Server
          1. API Endpoints
            1. 1. Root Endpoint
            2. 2. MCP Version
            3. 3. Capabilities
            4. 4. Process Request
            5. 5. Batch Processing
            6. 6. Health Check
          2. Rate Limiting
            1. Error Handling
              1. Development
                1. Project Structure
                2. Adding New Features
              2. Security
                1. Monitoring
                  1. Contributing
                    1. License
                      1. Support
                        ID: tjcibidq76