Provides integration with Amazon's Titan Text models (Premier and Express) via AWS Bedrock, supporting text generation with adjustable temperature and token settings.
Uses Flask to create a web server that exposes the MCP functionality through REST API endpoints, including model listing, chat interactions, and server configuration.
Allows access to Meta's Llama 2 70B Chat model through AWS Bedrock, enabling conversational AI capabilities with configurable model parameters.
Leverages React for the frontend interface, providing a responsive web UI with features like model selection, temperature control, and interactive chat history.
🧠 Bedrock MCP Agent
Agente de AWS Bedrock integrado con Model Context Protocol (MCP)
Una aplicación completa que permite interactuar con los modelos de lenguaje de AWS Bedrock a través de una interfaz web moderna y un backend Python robusto.
🚀 Características
🐍 Backend Python con integración completa a AWS Bedrock
⚛️ Frontend React moderno y responsivo
🤖 Soporte múltiples modelos: Claude 3, Titan, Llama 2, y más
📡 Protocolo MCP para formateo estandarizado de respuestas
⚙️ Configuración flexible de parámetros (temperatura, tokens, región)
💬 Interfaz de chat interactiva con historial de conversaciones
🔄 Scripts de inicio automatizados para Windows, Linux y macOS
📊 Monitoreo en tiempo real del estado del servidor
🛡️ Manejo robusto de errores y logging completo
📁 Estructura del Proyecto
📋 Requisitos Previos
AWS
✅ Cuenta de AWS activa
✅ Acceso habilitado a AWS Bedrock
✅ Credenciales AWS configuradas (IAM user o role)
✅ Permisos para
bedrock:InvokeModel
ybedrock:ListFoundationModels
Software
✅ Python 3.8 o superior
✅ pip (gestor de paquetes de Python)
✅ Navegador web moderno
⚡ Inicio Rápido
Método 1: Scripts Automatizados (Recomendado)
Para Linux/macOS:
Para Windows:
Los scripts automatizados se encargan de:
✅ Verificar Python y pip
✅ Crear el entorno virtual
✅ Instalar dependencias automáticamente
✅ Configurar variables de entorno
✅ Ofrecer opciones de ejecución interactivas
Método 2: Instalación Manual
1. Clonar el repositorio
2. Crear entorno virtual
3. Instalar dependencias
4. Configurar variables de entorno
⚙️ Configuración AWS
Opción 1: Variables de entorno (.env)
Opción 2: AWS CLI
Opción 3: IAM Role (EC2)
Si ejecutas en EC2, el agente usará automáticamente el IAM role de la instancia.
Habilitar modelos en AWS Bedrock
Ve a la consola AWS Bedrock
Navega a "Model access"
Solicita acceso a los modelos:
✅ Anthropic Claude 3 Sonnet
✅ Anthropic Claude 3 Haiku
✅ Amazon Titan Text Premier
✅ Meta Llama 2 70B Chat
🚀 Ejecución
Aplicación Web Completa
El servidor Flask:
🌐 Sirve el frontend en la ruta principal
/
📡 Expone API REST en
/api/*
🔍 Incluye endpoint de salud en
/health
📊 Proporciona configuración en
/api/config
Solo Backend (Línea de comandos)
🌐 API Endpoints
Endpoint | Método | Descripción |
| GET | Interfaz web principal |
| GET | Estado del servidor y agente |
| GET | Lista de modelos disponibles |
| POST | Enviar mensaje a modelo |
| GET | Configuración del servidor |
Ejemplo de uso de API
🎛️ Configuración Avanzada
Variables de entorno disponibles
Variable | Descripción | Valor por defecto |
| ID de clave de acceso AWS | - |
| Clave secreta AWS | - |
| Región AWS |
|
| Host del servidor Flask |
|
| Puerto del servidor Flask |
|
| Modo debug |
|
| Clave secreta Flask |
|
Modelos soportados
Modelo | ID | Proveedor | Descripción |
Claude 3 Sonnet |
| Anthropic | Balanceado para tareas complejas |
Claude 3 Haiku |
| Anthropic | Rápido y eficiente |
Titan Text Premier |
| Amazon | Modelo avanzado de Amazon |
Titan Text Express |
| Amazon | Modelo rápido de Amazon |
Llama 2 70B Chat |
| Meta | Conversacional de Meta |
🎯 Funcionalidades de la Interfaz
Panel de Configuración
🔧 Selector de modelos dinámico desde AWS
🌡️ Control de temperatura (0-1) con slider
🔢 Configuración de tokens máximos (1-4000)
🌍 Selector de región AWS
Chat Interactivo
💬 Historial de conversaciones persistente
⏱️ Indicadores de estado y tiempo de procesamiento
📊 Metadata detallada (tokens, tiempo, ID de request)
🔄 Indicador de estado del servidor en tiempo real
Controles Adicionales
🗑️ Limpiar chat con un clic
🔄 Recargar configuración y modelos
📱 Diseño responsivo para móviles
⚙️ Panel de configuración colapsible
🐛 Solución de Problemas
Error: "Resource not accessible by personal access token"
Error: "Access denied to model"
Ve a AWS Bedrock Console → Model access
Solicita acceso al modelo específico
Espera aprobación (puede tomar minutos)
Error: "Region not supported"
Usa regiones soportadas:
us-east-1
,us-west-2
,eu-west-1
,ap-southeast-1
Frontend no conecta con Backend
Problemas con dependencias
🔐 Seguridad
Mejores Prácticas
⚠️ Nunca commitees credenciales AWS en el código
✅ Usa variables de entorno o AWS IAM roles
✅ Implementa autenticación en producción
✅ Limita permisos IAM al mínimo necesario
✅ Usa HTTPS en producción
Permisos IAM mínimos
📊 Monitoreo y Logs
Logs del servidor
Endpoint de salud
Respuesta ejemplo:
🚢 Despliegue en Producción
Usando Gunicorn
Docker (opcional)
🤝 Contribuir
Fork el repositorio
Crea una rama para tu feature:
git checkout -b feature/nueva-funcionalidad
Commit tus cambios:
git commit -am 'Añadir nueva funcionalidad'
Push a la rama:
git push origin feature/nueva-funcionalidad
Crea un Pull Request
Áreas de contribución
🔧 Nuevos modelos de Bedrock
🎨 Mejoras en la interfaz
📚 Documentación
🧪 Tests unitarios
🔐 Mejoras de seguridad
📚 Recursos Adicionales
📄 Licencia
Este proyecto está bajo la Licencia MIT. Ve el archivo LICENSE
para más detalles.
👨💻 Autor
Harold Moncaleano
🐙 GitHub: @harold-moncaleano
📧 Email: harold.moncaleano@nuvu.cc
🌐 Proyecto: bedrock-mcp-agent
⭐ ¡Si este proyecto te resulta útil, dale una estrella! ⭐
🆘 Soporte
¿Necesitas ayuda?
🐛 Reporta bugs en Issues
💡 Sugiere features en Discussions
📧 Contacto directo: harold.moncaleano@nuvu.cc
📈 Roadmap
Próximas funcionalidades
🔐 Autenticación de usuarios
💾 Persistencia de conversaciones
📁 Carga de archivos y documentos
🎨 Temas personalizables
📊 Dashboard de métricas
🔌 Plugins y extensiones
🌐 Soporte multiidioma
📱 Aplicación móvil nativa
Integraciones planeadas
🗄️ Base de datos (PostgreSQL/MongoDB)
🔍 Elasticsearch para búsqueda
📊 Grafana para monitoreo
🐳 Docker Compose completo
☸️ Kubernetes deployment
🚀 CI/CD con GitHub Actions
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
A web application that enables users to interact with AWS Bedrock language models through a modern interface with support for multiple models like Claude 3, Titan, and Llama 2.
- 🚀 Características
- 📁 Estructura del Proyecto
- 📋 Requisitos Previos
- ⚡ Inicio Rápido
- ⚙️ Configuración AWS
- 🚀 Ejecución
- 🌐 API Endpoints
- 🎛️ Configuración Avanzada
- 🎯 Funcionalidades de la Interfaz
- 🐛 Solución de Problemas
- 🔐 Seguridad
- 📊 Monitoreo y Logs
- 🚢 Despliegue en Producción
- 🤝 Contribuir
- 📚 Recursos Adicionales
- 📄 Licencia
- 👨💻 Autor
- 🆘 Soporte
- 📈 Roadmap
Related MCP Servers
- AsecurityAlicenseAqualityFacilitates interaction with AWS Bedrock-enabled tools by implementing Anthropic's Model Context Protocol for seamless tool integration and communication.Last updated -54MIT License
- -securityFlicense-qualityA TypeScript-based server that provides a memory system for Large Language Models (LLMs), allowing users to interact with multiple LLM providers while maintaining conversation history and offering tools for managing providers and model configurations.Last updated -27
- AsecurityAlicenseAqualityA Model Context Protocol server that enables Claude to execute Python code using boto3 to query and manage AWS resources directly from conversations.Last updated -122MIT License
- AsecurityAlicenseAqualityA Model Context Protocol server implementation that enables Claude to perform AWS operations on S3 and DynamoDB services through natural language commands.Last updated -23126MIT License