Provides containerized deployment options with pre-configured services, including both production and development environments with hot-reload capabilities.
Supports environment variable configuration through .env files for storing credentials and settings like IOL_USERNAME and IOL_PASSWORD.
Enables version control workflow for contribution including forking, branching, and pull request processes for collaborative development.
Built on Python 3.11+ runtime, with Python package dependencies for server implementation.
IOL MCP Server
Servidor MCP (Model-Controller-Proxy) para la API de InvertirOnline (IOL).
Descripción
Este proyecto implementa un servidor MCP que actúa como intermediario entre el cliente y la API de InvertirOnline. Proporciona una interfaz simplificada y estructurada para acceder a las funcionalidades de la API.
Related MCP server: Deriv API MCP Server
Características
Autenticación automática con manejo de tokens
Endpoints para consulta de portafolio
Endpoints para consulta de títulos y cotizaciones
Manejo de errores y reintentos
Logging detallado
Soporte para Docker y Docker Compose
Hot-reload para desarrollo
Requisitos
Python 3.11+
FastMCP >= 2.10.6
Docker y Docker Compose (opcional)
Cuenta de InvertirOnline
Instalación
Usando Docker (Recomendado)
Clonar el repositorio:
Copiar el archivo de ejemplo de variables de entorno:
Editar el archivo
.envcon tus credenciales:
Iniciar los servicios con Docker Compose:
Instalación Manual
Clonar el repositorio:
Asegurarse de tener Python 3.11 o superior:
Instalar dependencias:
Configurar variables de entorno:
Iniciar el servidor:
Uso de Docker Compose
El proyecto incluye dos servicios en Docker Compose:
iol-mcp (Puerto 8000):
Servidor principal
Sin hot-reload
Para producción
iol-mcp-sse (Puerto 8001):
Servidor con hot-reload
Para desarrollo
Actualiza automáticamente al modificar el código
Comandos Útiles
Endpoints Disponibles
Portafolio
obtener_portafolio: Obtiene el portafolio del usuarioParámetros:
pais(opcional): Filtrar por país
obtener_operaciones: Obtiene las operaciones del usuarioParámetros:
filtro(opcional): Tipo de operaciónpais(opcional): País de la operaciónestado(opcional): Estado de la operaciónfecha_desde(opcional): Fecha desde (YYYY-MM-DD)fecha_hasta(opcional): Fecha hasta (YYYY-MM-DD)numero(opcional): Número de operación
Títulos
obtener_cotizacion: Obtiene la cotización de un títuloParámetros:
simbolo: Símbolo del títulomercado: Mercado del títuloplazo(opcional): Plazo de la cotización
obtener_panel: Obtiene el panel de un instrumentoParámetros:
instrumento: Tipo de instrumentopanel: Tipo de panelpais: País del panel
obtener_opciones: Obtiene las opciones de un títuloParámetros:
simbolo: Símbolo del títulomercado: Mercado del título
obtener_puntas: Obtiene las puntas de un títuloParámetros:
simbolo: Símbolo del títulomercado: Mercado del títuloplazo(opcional): Plazo de la cotización
Contribuir
Fork el proyecto
Crear una rama para tu feature (
git checkout -b feature/AmazingFeature)Commit tus cambios (
git commit -m 'Add some AmazingFeature')Push a la rama (
git push origin feature/AmazingFeature)Abrir un Pull Request
Licencia
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para más detalles.