openapi-to-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@openapi-to-mcpset up an MCP server from https://api.swarms.world/openapi.json"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Scribe
Transcribe any OpenAPI schema into a production-grade MCP server.
Related MCP server: Any API MCP Server
Overview
Point MCP Scribe at an OpenAPI schema. Get an MCP server.
Every operation in the spec becomes a tool a model can call, with the JSON Schema, the credentials, the retries, the rate limiting, and the response shaping already handled. There is no generated code to maintain and no adapter layer to keep in sync — the spec is the source of truth, and the server is derived from it at startup.
MCP Scribe is designed for teams putting real APIs in front of language models, where the failure modes that matter are credential leakage, runaway retries against a billable endpoint, and tool surfaces too large for a model to navigate.
Installation
pip install mcp-scribeFrom source, as a global CLI:
git clone https://github.com/kyegomez/mcp-scribe && cd mcp-scribe
uv tool install --editable ".[http]"The http extra installs uvicorn and starlette, required only for HTTP transport. A
stdio server needs neither.
Requirements: Python 3.10 – 3.13.
Quick start
Deploy a shared server
One command. Spec in, server up.
mcp-scribe deploy https://api.swarms.world/openapi.json --port 8000Call that Server
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())
CLI Commands
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.
Key capabilities
Capability | What it delivers |
Universal spec ingestion | OpenAPI 3.1, 3.0, and Swagger 2.0 from a URL, file, or stdin — JSON or YAML. Swagger 2.0 is converted up front; external and recursive |
Zero-code tool generation | One MCP tool per operation, emitted as JSON Schema 2020-12 with the full |
Credential isolation | Credential parameters declared in the spec are stripped from tool schemas and injected at request time. The model is never asked to produce a secret it does not hold. |
Enterprise authentication | API key (header, query, cookie), bearer, HTTP basic, OAuth2 client credentials with automatic refresh, and arbitrary static headers — composable, all applied per request. |
Multi-tenant isolation | Per-caller credential passthrough with header allowlisting and fail-closed enforcement, so one shared server does not mean one shared identity or one shared bill. |
Resilience by default | Full-jitter exponential backoff honoring |
Safe-by-default retries | POST and PATCH are never retried unless explicitly enabled. Re-sending a billable request is treated as worse than failing. |
Attack-surface control | Filter by tag, path regex, method, or |
Context governance | Responses are truncated to a configurable budget with a hint telling the model how to narrow the request. |
Dual transport | stdio for personal, per-user servers; streamable HTTP with a |
Secret hygiene |
|
Operational tooling |
|
Deployable artifacts |
|
Documentation
Document | Contents |
Complete user guide — mental model, transports, credentials, multi-tenancy, filtering, schema shaping, reliability, debugging, deployment, and troubleshooting. | |
Exhaustive reference — every CLI command and flag, every configuration key with types and defaults, the full environment-variable table, the Python API, and the exception hierarchy. | |
Contributor and agent guide — commands, module-by-module architecture, load-bearing invariants, conventions, and gotchas. | |
Agent skill definition — how an autonomous agent should choose commands, validate setups, and handle credentials. |
License
Apache-2.0. See LICENSE.
Citation
@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}
}This server cannot be installed
Maintenance
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
- FlicenseNot gradedqualityDmaintenanceAutomatically converts any OpenAPI specification into an MCP server, exposing all HTTP endpoints as callable tools with support for various authentication methods and request types.2
- FlicenseNot gradedqualityDmaintenanceDynamically converts any API with an OpenAPI v3 specification into MCP tools for AI assistants. It supports multiple authentication methods including OAuth2, Bearer tokens, and API keys for flexible integration.
- AlicenseNot gradedqualityAmaintenanceTurns any OpenAPI/Swagger API into MCP tools, enabling AI assistants to call REST API endpoints directly.2MIT
- AlicenseNot gradedqualityDmaintenanceExposes OpenAPI endpoints as MCP tools, enabling LLMs to discover and interact with REST APIs through the MCP protocol.13MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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