Hippycampus

Convierte cualquier endpoint REST de Swagger/OpenAPI con definición yaml/json en un servidor MCP con integración automática de Langchain/Langflow.

Documentación

Hippycampus

Un servidor CLI y MCP basado en LangChain que soporta la carga dinámica de especificaciones OpenAPI e integración con Langflow.

Requisitos previos

  • Python 3.12.9
  • Gestor de paquetes UV
  • Clave API de Google AI Studio
  • Langflow (para la creación visual de flujos de trabajo)

Instalación

# Install UV if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Create and activate virtual environment
uv venv
source .venv/bin/activate  # On Windows use: .venv\Scripts\activate

# Install hippycampus and its dependencies
uv pip install -e .

# Install langflow
uv pip install langflow

Configuración

Clave API de Google AI Studio

  1. Visita Google AI Studio
  2. Haz clic en "Create API Key" en la esquina superior derecha
  3. Copia la clave generada y establécela como variable de entorno:
export GOOGLE_API_KEY='your-api-key-here'

Ejecución de las aplicaciones

Modo CLI (sin servidor MCP)

uv run hippycampus-cli

Modo servidor MCP (SSE)

uv run hippycampus-server --transport sse --port 8000

Servidor Langflow

Asegúrate de que el servidor MCP esté en ejecución antes de iniciar Langflow.

  1. Establece la variable de entorno de la ruta de componentes:
# Get your current working directory
pwd
# Use the output to set the components path
export LANGFLOW_COMPONENTS_PATH="/output/from/pwd/langflow/components"
  1. Inicia el servidor Langflow (añade --dev para el modo de desarrollo):
uv run langflow run
  1. Abre tu navegador y navega a http://localhost:7860

Uso de componentes personalizados en Langflow

  1. En la interfaz de Langflow, localiza los componentes personalizados:

    • OpenApi Service: Para cargar especificaciones OpenAPI
    • Hippycampus MCP Server: Para conectarse al servidor MCP a través de SSE
  2. Configura los componentes:

    • OpenApi Service: Usa https://raw.githubusercontent.com/APIs-guru/unofficial_openapi_specs/master/xkcd.com/1.0.0/openapi.yaml para pruebas
    • MCP Server: Usa http://localhost:8000/sse

Consulta la Demo de Screencast para obtener una guía visual. Screencast Demo

Ten en cuenta que los archivos swagger oficiales de XKCD contienen un error y especifican el campo comic_id como un número en lugar de un entero; hay una versión corregida en la carpeta de pruebas.

Solución de problemas

  • Errores de autenticación: Verifica que GOOGLE_API_KEY esté configurado correctamente
  • Componentes faltantes en Langflow: Verifica que LANGFLOW_COMPONENTS_PATH apunte al directorio correcto
  • Problemas de conexión: Asegúrate de que el servidor MCP esté en ejecución antes de conectarte a través de Langflow
  • Si los componentes no aparecen en Langflow, intenta reiniciar el servidor de Langflow
  • Usa la CLI para depurar problemas de openapi_builder/spec_parser y de interacción con el agente antes de ejecutar en MCP/Langflow.

Licencia

Licencia MIT

Copyright (c) 2024 Ray Cromwell

Se concede permiso, de forma gratuita, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el "Software"), para tratar el Software sin restricciones, incluidos, sin limitación, los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y para permitir a las personas a quienes se les proporcione el Software que lo hagan, sujeto a las siguientes condiciones:

El aviso de copyright anterior y este aviso de permiso deberán incluirse en todas las copias o partes sustanciales del Software.

EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE CUALQUIER RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRO MODO, QUE SURJA DE, O EN CONEXIÓN CON, EL SOFTWARE O EL USO U OTROS TRATOS EN EL SOFTWARE.