Connect your APIs to LLMs—quickly, securely, and with minimal context
Upload your OpenAPI documents and instantly expose them as an MCP server; just-in-time tool calls, secure delegated auth, and only 0.2% of your context window no matter how many APIs you need.
Everything agents need
Three tools cover any API. Operation details are retrieved when needed, not dumped into the first turn.
Configure OAuth, API keys, or bearer tokens per installation. Agents never receive your upstream credentials.
Decide which APIs and endpoints each MCP installation may call. Private by default; share carefully via team flows.
Sandboxed requests so concurrent agents and automations can share the same catalog safely.
Expose guides and long-form documentation beside API tools when you want extra context in the server.
Works for public SaaS APIs and for large internal microservice catalogs without growing the tool list.
From API to agent-ready in three steps
No custom wrappers and no token bloat. Scalar sits between your API definition and the agent runtime.
Upload
Add one spec or many—paste a URL or upload directly. Scalar parses, indexes, and augments it for search and execution.
Configure
Create installations, set access, and preconfigure auth (OAuth, API keys, bearer tokens). Agents use your Scalar credentials; your upstream API secrets stay on our execution layer.
Connect
Plug in via MCP URL or the Agent SDK. The model gets three lean tools that pull schema and operation details just in time.
Connect from anywhere
Use the chat at agent.scalar.com, or connect from your own agent runtime or IDE. Create a personal access token under Account → API Keys, then follow the guide for your stack (SDK · MCP).
import asyncio
from scalar_agent import agent_scalar
from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp
async def main() -> None:
scalar = agent_scalar(token="your-personal-token")
installation = scalar.installation("your-installation-id")
server = MCPServerStreamableHttp(**installation.create_openai_mcp())
await server.connect()
agent = Agent(name="api-agent", mcp_servers=[server])
result = await Runner.run(agent, "Which APIs are available that let me create a planet?")
print(result.final_output)
await server.cleanup()
asyncio.run(main())
Authentication and access
Configure auth once in the Scalar dashboard—OAuth 2.0, API keys, bearer tokens, or patterns that match your OpenAPI securitySchemes. Every MCP connection still requires a Scalar personal access token or team-approved flow so shared URLs do not leak access by themselves.
Read more: API Authentication on the MCP page.