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
Related MCP server: MCP Starter
Prerrequisitos
Python 3.8+
Base de datos PostgreSQL
Clave API de Glama.ai
Clave API de Cursor AI
Instalación
Clonar el repositorio:
git clone <repository-url>
cd <repository-name>Crear y activar un entorno virtual:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activateInstalar dependencias:
pip install -r requirements.txtCree un archivo
.envbasado en.env.example:
cp .env.example .envConfigure su archivo
.envcon 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=INFOConfigurar la base de datos:
# Create the database
createdb customer_support_bot
# Run migrations (if using Alembic)
alembic upgrade headEjecución del servidor
Iniciar el servidor:
python app.pyEl 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/versionDevuelve las versiones del protocolo MCP compatibles.
3. Capacidades
GET /mcp/capabilitiesDevuelve las capacidades del servidor y las funciones compatibles.
4. Solicitud de proceso
POST /mcp/processProcesar 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/batchProcesar 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/healthVerifique 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 excedidoUNSUPPORTED_MCP_VERSION: Versión de MCP no compatiblePROCESSING_ERROR: Error al procesar la solicitudCONTEXT_FETCH_ERROR: Error al obtener el contexto de Glama.aiBATCH_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 variablesAñadiendo nuevas funciones
Actualice
mcp_config.pycon nuevas opciones de configuraciónAgregue nuevos modelos en
models.pysi es necesarioCrear nuevos puntos finales en
app.pyActualizar 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-AuthSe 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
Bifurcar el repositorio
Crear una rama de características
Confirme sus cambios
Empujar hacia la rama
Crear una solicitud de extracción
Insignia de verificación
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
Apoyo
Para obtener ayuda, cree un problema en el repositorio o comuníquese con el equipo de desarrollo.