Skip to main content
Glama
The-Swarm-Corporation

openapi-to-mcp

MCP Scribe

Transcribe cualquier esquema OpenAPI en un servidor MCP de nivel de producción.

PyPI Python License

Swarms GitHub Swarms website Discord Twitter


Related MCP server: Any API MCP Server

Descripción general

Apunta MCP Scribe a un esquema OpenAPI. Obtén un servidor MCP.

Cada operación de la especificación se convierte en una herramienta que un modelo puede invocar, con el JSON Schema, las credenciales, los reintentos, la limitación de velocidad y el modelado de respuestas ya gestionados. No hay código generado que mantener ni capa de adaptación que sincronizar: la especificación es la fuente de verdad y el servidor se deriva de ella al arrancar.

MCP Scribe está diseñado para equipos que exponen APIs reales a modelos de lenguaje, donde los modos de fallo que importan son la fuga de credenciales, los reintentos descontrolados contra un endpoint facturable y superficies de herramientas demasiado grandes para que un modelo pueda navegarlas.


Instalación

pip install mcp-scribe

Desde el código fuente, como CLI global:

git clone https://github.com/kyegomez/mcp-scribe && cd mcp-scribe
uv tool install --editable ".[http]"

El extra http instala uvicorn y starlette, necesarios solo para el transporte HTTP. Un servidor stdio no necesita ninguno de los dos.

Requisitos: Python 3.10 – 3.13.


Inicio rápido

Desplegar un servidor compartido

Un solo comando. Especificación dentro, servidor arriba.

mcp-scribe deploy https://api.swarms.world/openapi.json --port 8000

Llamar a ese servidor

import asyncio
import os
import sys

from dotenv import load_dotenv
from mcp import ClientSession
from mcp.client.streamable_http import streamable_http_client
from mcp.shared._httpx_utils import create_mcp_http_client

load_dotenv()

# Streamable HTTP path defaults to /mcp (see transport.path).
MCP_URL = "http://127.0.0.1:8000/mcp"


async def main() -> None:
    api_key = os.environ.get("SWARMS_API_KEY")
    if not api_key:
        sys.exit(
            "set SWARMS_API_KEY first: export SWARMS_API_KEY=sk-..."
        )

    http = create_mcp_http_client(headers={"x-api-key": api_key})
    async with http, streamable_http_client(
        MCP_URL, http_client=http
    ) as (read, write), ClientSession(read, write) as session:
        await session.initialize()
        result = await session.call_tool(
            "get_available_models_v1_models_available_get",
            {},
        )
        print(result.content[0].text)


if __name__ == "__main__":
    asyncio.run(main())

Comandos CLI

Usage: mcp-scribe [OPTIONS] COMMAND [ARGS]...

Turn any OpenAPI schema URL into a production-grade MCP server.

Options:
  --help          Show this message and exit.

Commands:
  serve     Run the MCP server.
  deploy    Serve over HTTP with production defaults. The short path to a shared server.
  inspect   Show the tools a spec produces — the fastest way to validate a setup.
  call      Invoke one tool from the terminal — the same code path the server uses.
  generate  Write a self-contained, deployable MCP server project for a spec.
  install   Build the server and register it with your MCP client in one step.
  version   Print the version.

Capacidades clave

Capacidad

Qué ofrece

Ingesta universal de especificaciones

OpenAPI 3.1, 3.0 y Swagger 2.0 desde una URL, archivo o stdin, en JSON o YAML. Swagger 2.0 se convierte de antemano; los $ref externos y recursivos se precargan y resuelven.

Generación de herramientas sin código

Una herramienta MCP por operación, emitida como JSON Schema 2020-12 con la matriz completa style/explode, $defs para modelos recursivos y aplanado automático del cuerpo para la precisión en la invocación de herramientas.

Aislamiento de credenciales

Los parámetros de credenciales declarados en la especificación se eliminan de los esquemas de herramientas y se inyectan en el momento de la solicitud. Al modelo nunca se le pide que produzca un secreto que no posee.

Autenticación empresarial

Clave API (cabecera, consulta, cookie), bearer, HTTP basic, credenciales de cliente OAuth2 con renovación automática y cabeceras estáticas arbitrarias: todo componible y aplicado por solicitud.

Aislamiento multiinquilino

Paso de credenciales por llamante con lista blanca de cabeceras y aplicación de cierre ante fallos, de modo que un servidor compartido no significa una identidad compartida ni una factura compartida.

Resiliencia por defecto

Retroceso exponencial con jitter completo que respeta Retry-After, un interruptor de circuito por host, un cubo de tokens, un límite de concurrencia y un presupuesto de tiempo real por llamada de herramienta.

Reintentos seguros por defecto

POST y PATCH nunca se reintentan a menos que se habiliten explícitamente. Reenviar una solicitud facturable se considera peor que fallar.

Control de la superficie de ataque

Filtra por etiqueta, regex de ruta, método u operationId; --read-only restringe un servidor a GET/HEAD/OPTIONS con una sola bandera.

Gobernanza del contexto

Las respuestas se truncan a un presupuesto configurable con una pista que indica al modelo cómo acotar la solicitud.

Transporte dual

stdio para servidores personales por usuario; HTTP transmisible con una sonda /health y sesiones sin estado para despliegues compartidos y escalados horizontalmente.

Higiene de secretos

Archivos .env, variables de entorno MCP_SCRIBE_* e interpolación ${VAR} en la configuración. Los secretos son SecretStr en memoria y se redactan en la salida.

Herramientas operativas

inspect para validar una configuración sin iniciar nada, call --dry-run para ver la solicitud saliente exacta, registro JSON estructurado y recarga en caliente de la especificación.

Artefactos desplegables

generate emite un proyecto autocontenido con un Dockerfile, requisitos fijados, configuración y una especificación incluida para el arranque sin conexión.


Documentación

Documento

Contenido

docs/DOCS.md

Guía de usuario completa: modelo mental, transportes, credenciales, multiinquilinato, filtrado, modelado de esquemas, fiabilidad, depuración, despliegue y resolución de problemas.

docs/REFERENCE.md

Referencia exhaustiva: todos los comandos y banderas de CLI, todas las claves de configuración con tipos y valores predeterminados, la tabla completa de variables de entorno, la API de Python y la jerarquía de excepciones.

CLAUDE.md

Guía para colaboradores y agentes: comandos, arquitectura módulo por módulo, invariantes estructurales, convenciones y trampas.

MCP_SCRIBE_SKILL.md

Definición de habilidad de agente: cómo un agente autónomo debe elegir comandos, validar configuraciones y gestionar credenciales.


Licencia

Apache-2.0. Consulta LICENSE.


Citación

@misc{mcpscribe2026,
    title   = {mcp-scribe: production-grade MCP servers from OpenAPI schemas},
    author  = {Gomez, Kye},
    year    = {2026},
    url     = {https://github.com/kyegomez/mcp-scribe}
}
@misc{mcp2024,
    title   = {Model Context Protocol},
    author  = {Anthropic},
    year    = {2024},
    url     = {https://modelcontextprotocol.io}
}
A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Point Gecko at an OpenAPI spec; get first-call-correct, auth-hidden agent tools.

  • Free public MCP for AI agents — 193 tools, 44 workflows. No API key.

  • Generate a typed SDK, CLI, and MCP server from any OpenAPI or GraphQL spec, and keep them current.

View all MCP Connectors

Latest Blog Posts

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/The-Swarm-Corporation/mcp-scribe'

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