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.
Integrations
Servidor MCP: herramienta escalable de detección de puntos finales OpenAPI y solicitud de API
HACER
- La imagen de Docker ocupa 2 GB sin los modelos predescargados. ¡Ocupa 3,76 GB con los modelos predescargados! Es demasiado grande. Por favor, necesito ayuda para reducir el tamaño.
Configuración
Personalice mediante variables de entorno. ¡GLOBAL_TOOL_PROMPT es IMPORTANTE !
OPENAPI_JSON_DOCS_URL
: URL al JSON de la especificación OpenAPI (el valor predeterminado es https://api.staging.readymojo.com/openapi.json )MCP_API_PREFIX
: Espacio de herramientas personalizable (predeterminado "any_openapi").CopyGLOBAL_TOOL_PROMPT
: Texto opcional para anteponer a todas las descripciones de herramientas. Esto es crucial para que Claude seleccione y no seleccione la herramienta con precisión.Copy
Resumen
Por qué creo esto : quiero servir mi API privada, cuyos documentos de OpenAPI de Swagger tienen un tamaño de unos cientos de KB.
- Claude MCP simplemente cometió un error al procesar este tamaño de archivo
- Intenté convertir el resultado a YAML, no es lo suficientemente pequeño y hay muchos errores. FALLÓ
- Intenté proporcionar una categoría de API y luego le pedí al cliente MCP (Claude Desktop) que obtuviera la documentación de la API por grupo. Aún era demasiado grande, FALLÓ.
Al final llegué a esta solución:
- Utiliza la búsqueda semántica en memoria para encontrar puntos finales de API relevantes mediante lenguaje natural (como productos de lista).
- Devuelve los documentos completos del punto final (ya que lo diseñé para almacenar un punto final como un fragmento) en millones de segundos (como está en la memoria).
¡Boom ! ¡Claude ahora sabe qué API llamar, con todos los parámetros !
Espere, tengo que crear otra herramienta en este servidor para realizar la solicitud REST real, porque el servidor de "búsqueda" simplemente no funciona y no quiero depurar por qué.
https://github.com/user-attachments/assets/484790d2-b5a7-475d-a64d-157e839ad9b0
Aspectos técnicos destacados:
Características
- 🧠 Utilice el archivo json openapi remoto como fuente, sin acceso al sistema de archivos local, no se requiere actualización para cambios de API
- 🔍 Búsqueda semántica utilizando el modelo MiniLM-L3 optimizado (43 MB frente a los 90 MB originales)
- Servidor basado en FastAPI con soporte asíncrono
- 🧠 Segmentación basada en puntos finales según especificaciones OpenAPI (maneja documentos de más de 100 KB), sin pérdida de contexto de punto final
- ⚡ Búsqueda de vectores FAISS en memoria para el descubrimiento instantáneo de puntos finales
Limitaciones
- No es compatible con Linux/Arm/v7 (la compilación falla en la biblioteca Transformer)
- Penalización por inicio en frío (~15 s para la carga del modelo) si no se usa la imagen de Docker
- [Obsoleto] La imagen actual de Docker deshabilitó la descarga de modelos. Tiene una dependencia con huggingface. Al cargar el Escritorio Claude, la descarga del modelo tarda un tiempo. Si huggingface no funciona, su servidor no se iniciará.
- La última imagen de Docker integra modelos precargados. Si hay problemas, recomiendo volver a la versión anterior.
Ejemplo de configuración de múltiples instancias
Aquí está el ejemplo de configuración multiinstancia. Lo diseñé para que sea más flexible para usar con múltiples conjuntos de API:
En este ejemplo:
- El servidor extraerá automáticamente las URL base de la documentación de OpenAPI:
https://api.finance.com
para API financierashttps://api.healthcare.com
para API de atención médica
- Opcionalmente, puede anular la URL base utilizando la variable de entorno
API_REQUEST_BASE_URL
:
Ejemplo de uso de Claude Desktop
Indicación del proyecto de escritorio de Claude:
En el chat puedes hacer:
Instalación
Instalación mediante herrería
Para instalar automáticamente Scalable OpenAPI Endpoint Discovery y API Request Tool para Claude Desktop a través de Smithery :
Usando pip
Herramientas disponibles
El servidor proporciona las siguientes herramientas (donde {prefix}
está determinado por MCP_API_PREFIX
):
{prefijo}_esquema_de_solicitud_api
Obtén esquemas de endpoints de API que coincidan con tu intención. Devuelve detalles de endpoints, como ruta, método, parámetros y formatos de respuesta.
Esquema de entrada:
{prefijo}_hacer_solicitud
Esencial para una ejecución confiable con API complejas donde las implementaciones simplificadas fallan. Proporciona:
Esquema de entrada:
Formato de respuesta:
Soporte de Docker
Construcciones multiarquitectura
Las imágenes oficiales son compatibles con 3 plataformas:
Nomenclatura flexible de herramientas
Nombres de herramientas de control a través de MCP_API_PREFIX
:
Plataformas compatibles
- Linux/amd64
- Linux/arm64
Opción 1: Usar una imagen prediseñada (Docker Hub)
Opción 2: Construcción de desarrollo local
Ejecución del contenedor
Componentes clave
- EndpointSearcher : clase principal que maneja:
- Análisis de especificaciones de OpenAPI
- Creación de índices de búsqueda semántica
- Formato de la documentación del punto final
- Procesamiento de consultas en lenguaje natural
- Implementación del servidor :
- Servidor FastAPI asíncrono
- Compatibilidad con el protocolo MCP
- Registro de herramientas y manejo de invocaciones
Corriendo desde la fuente
Integración con Claude Desktop
Configure el servidor MCP en la configuración de Claude Desktop:
Contribuyendo
- Bifurcar el repositorio
- Crea tu rama de funciones (
git checkout -b feature/amazing-feature
) - Confirme sus cambios (
git commit -m 'Add some amazing feature'
) - Empujar a la rama (
git push origin feature/amazing-feature
) - Abrir una solicitud de extracción
Licencia
Este proyecto está licenciado bajo los términos incluidos en el archivo LICENCIA.
Notas de implementación
- Procesamiento centrado en puntos finales : a diferencia del análisis a nivel de documento que tiene dificultades con grandes especificaciones, indexamos puntos finales individuales con:
- Ruta + Método como identificadores únicos
- Incrustaciones que reconocen parámetros
- Contexto del esquema de respuesta
- Manejo optimizado de especificaciones : procesa especificaciones OpenAPI de hasta 10 MB (aproximadamente 5000 puntos finales) a través de:
- Carga diferida de componentes del esquema
- Análisis paralelo de elementos de ruta
- Generación de incrustación selectiva (omite descripciones redundantes)
This server cannot be installed
Este servidor facilita el descubrimiento y la ejecución escalables de puntos finales OpenAPI mediante búsqueda semántica y procesamiento de alto rendimiento, superando las limitaciones del manejo de grandes especificaciones para lograr interacciones API optimizadas.
- TODO
- Configuration
- TL'DR
- Features
- Limitations
- Multi-instance config example
- Claude Desktop Usage Example
- Installation
- Available Tools
- Docker Support
- Integration with Claude Desktop
- Contributing
- License
- Implementation Notes