Skip to main content
Glama

Bedrock MCP Agent

🧠 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.

Bedrock MCP Agent Python React Flask

🚀 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

bedrock-mcp-agent/ ├── 📄 README.md # Documentación del proyecto ├── 🐍 bedrock_mcp_agent.py # Agente principal de Python ├── 🌐 app.py # Servidor Flask backend ├── 🎨 frontend.html # Interfaz web React ├── 📦 requirements.txt # Dependencias de Python ├── ⚙️ .env.example # Plantilla de variables de entorno ├── 🚫 .gitignore # Archivos excluidos de Git ├── 🚀 start.sh # Script de inicio para Linux/macOS └── 🚀 start.bat # Script de inicio para Windows

📋 Requisitos Previos

AWS

  • ✅ Cuenta de AWS activa

  • ✅ Acceso habilitado a AWS Bedrock

  • ✅ Credenciales AWS configuradas (IAM user o role)

  • ✅ Permisos para bedrock:InvokeModel y bedrock: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:

git clone https://github.com/harold-moncaleano/bedrock-mcp-agent.git cd bedrock-mcp-agent chmod +x start.sh ./start.sh

Para Windows:

git clone https://github.com/harold-moncaleano/bedrock-mcp-agent.git cd bedrock-mcp-agent start.bat

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

git clone https://github.com/harold-moncaleano/bedrock-mcp-agent.git cd bedrock-mcp-agent

2. Crear entorno virtual

python -m venv venv # Activar entorno virtual # Linux/macOS: source venv/bin/activate # Windows: venv\Scripts\activate

3. Instalar dependencias

pip install -r requirements.txt

4. Configurar variables de entorno

cp .env.example .env # Editar .env con tus credenciales AWS

⚙️ Configuración AWS

Opción 1: Variables de entorno (.env)

# Editar archivo .env AWS_ACCESS_KEY_ID=tu_access_key_id AWS_SECRET_ACCESS_KEY=tu_secret_access_key AWS_DEFAULT_REGION=us-east-1

Opción 2: AWS CLI

aws configure

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

  1. Ve a la consola AWS Bedrock

  2. Navega a "Model access"

  3. 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

# Ejecutar servidor Flask python app.py # Abrir en navegador # http://localhost:5000

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)

# Ejecutar agente directamente python bedrock_mcp_agent.py

🌐 API Endpoints

Endpoint

Método

Descripción

/

GET

Interfaz web principal

/health

GET

Estado del servidor y agente

/api/models

GET

Lista de modelos disponibles

/api/chat

POST

Enviar mensaje a modelo

/api/config

GET

Configuración del servidor

Ejemplo de uso de API

// Enviar mensaje const response = await fetch('http://localhost:5000/api/chat', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ model_id: 'anthropic.claude-3-sonnet-20240229-v1:0', prompt: '¿Qué es AWS Bedrock?', temperature: 0.7, max_tokens: 1000 }) });

🎛️ Configuración Avanzada

Variables de entorno disponibles

Variable

Descripción

Valor por defecto

AWS_ACCESS_KEY_ID

ID de clave de acceso AWS

-

AWS_SECRET_ACCESS_KEY

Clave secreta AWS

-

AWS_DEFAULT_REGION

Región AWS

us-east-1

FLASK_HOST

Host del servidor Flask

0.0.0.0

FLASK_PORT

Puerto del servidor Flask

5000

FLASK_DEBUG

Modo debug

True

SECRET_KEY

Clave secreta Flask

bedrock-mcp-*

Modelos soportados

Modelo

ID

Proveedor

Descripción

Claude 3 Sonnet

anthropic.claude-3-sonnet-20240229-v1:0

Anthropic

Balanceado para tareas complejas

Claude 3 Haiku

anthropic.claude-3-haiku-20240307-v1:0

Anthropic

Rápido y eficiente

Titan Text Premier

amazon.titan-text-premier-v1:0

Amazon

Modelo avanzado de Amazon

Titan Text Express

amazon.titan-text-express-v1

Amazon

Modelo rápido de Amazon

Llama 2 70B Chat

meta.llama2-70b-chat-v1

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"

# Verificar credenciales AWS aws configure list # o revisar archivo .env

Error: "Access denied to model"

  1. Ve a AWS Bedrock Console → Model access

  2. Solicita acceso al modelo específico

  3. 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

# Verificar que el servidor esté ejecutándose curl http://localhost:5000/health # Revisar logs del servidor python app.py

Problemas con dependencias

# Reinstalar dependencias pip install --upgrade -r requirements.txt # Limpiar caché pip cache purge

🔐 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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:ListFoundationModels" ], "Resource": "*" } ] }

📊 Monitoreo y Logs

Logs del servidor

# Los logs aparecen automáticamente en consola python app.py # Configurar nivel de logging en .env FLASK_DEBUG=True # Para logs detallados

Endpoint de salud

curl http://localhost:5000/health

Respuesta ejemplo:

{ "status": "healthy", "timestamp": "2024-01-15T10:30:00", "agent_status": "initialized", "region": "us-east-1" }

🚢 Despliegue en Producción

Usando Gunicorn

# Instalar Gunicorn pip install gunicorn # Ejecutar en producción gunicorn -w 4 -b 0.0.0.0:5000 app:app

Docker (opcional)

FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 5000 CMD ["python", "app.py"]

🤝 Contribuir

  1. Fork el repositorio

  2. Crea una rama para tu feature: git checkout -b feature/nueva-funcionalidad

  3. Commit tus cambios: git commit -am 'Añadir nueva funcionalidad'

  4. Push a la rama: git push origin feature/nueva-funcionalidad

  5. 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


¡Si este proyecto te resulta útil, dale una estrella!

🆘 Soporte

¿Necesitas ayuda?

📈 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

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

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.

  1. 🚀 Características
    1. 📁 Estructura del Proyecto
      1. 📋 Requisitos Previos
        1. AWS
        2. Software
      2. ⚡ Inicio Rápido
        1. Método 1: Scripts Automatizados (Recomendado)
        2. Método 2: Instalación Manual
      3. ⚙️ Configuración AWS
        1. Opción 1: Variables de entorno (.env)
        2. Opción 2: AWS CLI
        3. Opción 3: IAM Role (EC2)
        4. Habilitar modelos en AWS Bedrock
      4. 🚀 Ejecución
        1. Aplicación Web Completa
        2. Solo Backend (Línea de comandos)
      5. 🌐 API Endpoints
        1. Ejemplo de uso de API
      6. 🎛️ Configuración Avanzada
        1. Variables de entorno disponibles
        2. Modelos soportados
      7. 🎯 Funcionalidades de la Interfaz
        1. Panel de Configuración
        2. Chat Interactivo
        3. Controles Adicionales
      8. 🐛 Solución de Problemas
        1. Error: "Resource not accessible by personal access token"
        2. Error: "Access denied to model"
        3. Error: "Region not supported"
        4. Frontend no conecta con Backend
        5. Problemas con dependencias
      9. 🔐 Seguridad
        1. Mejores Prácticas
        2. Permisos IAM mínimos
      10. 📊 Monitoreo y Logs
        1. Logs del servidor
        2. Endpoint de salud
      11. 🚢 Despliegue en Producción
        1. Usando Gunicorn
        2. Docker (opcional)
      12. 🤝 Contribuir
        1. Áreas de contribución
      13. 📚 Recursos Adicionales
        1. 📄 Licencia
          1. 👨‍💻 Autor
            1. 🆘 Soporte
              1. 📈 Roadmap
                1. Próximas funcionalidades
                2. Integraciones planeadas

              Related MCP Servers

              • A
                security
                A
                license
                A
                quality
                Facilitates interaction with AWS Bedrock-enabled tools by implementing Anthropic's Model Context Protocol for seamless tool integration and communication.
                Last updated -
                54
                MIT License
              • -
                security
                F
                license
                -
                quality
                A 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
                • Apple
              • A
                security
                A
                license
                A
                quality
                A Model Context Protocol server that enables Claude to execute Python code using boto3 to query and manage AWS resources directly from conversations.
                Last updated -
                1
                22
                MIT License
                • Linux
              • A
                security
                A
                license
                A
                quality
                A Model Context Protocol server implementation that enables Claude to perform AWS operations on S3 and DynamoDB services through natural language commands.
                Last updated -
                23
                126
                MIT License
                • Apple

              View all related MCP servers

              MCP directory API

              We provide all the information about MCP servers via our MCP API.

              curl -X GET 'https://glama.ai/api/mcp/v1/servers/harold-moncaleano/bedrock-mcp-agent'

              If you have feedback or need assistance with the MCP directory API, please join our Discord server