Infrastructure for APIs in the age of agents.

From an agent's first read of your docs to its millionth production call, Scalar is the layer in between: hosted, observed, and kept in sync from one OpenAPI document.

Get Started

One OpenAPI document in. Docs, MCP, and SDKs out.

For two decades the interface was the product. Now people ask a chat box, and an agent calls your API for them. Scalar builds what that agent needs.

Docs to read

Your guides and API reference on one site, under your own domain and theme, with access groups for partner portals. Every page is also served as Markdown, alongside an llms.txt and a Docs MCP endpoint, so agents read what your developers read. The core is open source, with 16k GitHub stars.

Learn more →

An MCP server to call

Scalar turns your OpenAPI document into a hosted MCP server, so Claude or ChatGPT can use your API directly. It exposes a small, fixed set of tools and fetches operation details on demand, so any API fits in about 0.2% of context.

Learn more →

MCP & Agent

Connect your APIs to LLMs quickly, securely, and with minimal context. One line connects Claude, ChatGPT or any remote MCP client to the operations you choose, with nothing to deploy.

Get started

SDKs to build on

Typed SDKs in TypeScript, Python, Go, Java, Kotlin, and Ruby, plus a CLI, generated from your OpenAPI document. Each release is a pull request you control, published to npm, PyPI, Go modules, Maven Central, and RubyGems with a changelog. Coming from Stainless? Upload your stainless.yml as it is and existing call sites keep working.

Learn more →

Warp is an AI-native HR and payroll platform that wants everything in its app to be reachable by API. Scalar generates its SDKs in TypeScript, Python, and Go, plus a CLI, and its CTO says the best part is how little the team has to think about them. Here is Warp's SDK in use:

import WarpAPI from "warp-hr";

const client = new WarpAPI({
  apiKey: process.env["API_KEY"], // defaults to the API_KEY env var
});

const assignments = await client.timeOff.listAssignments();
import os

from warp import Warp

client = Warp(
    api_key=os.environ.get("WARP_API_KEY"),
)

time_off = client.time_off.list_assignments()
package main

import (
	"context"
	"os"

	sdk "github.com/TeamWarp/warp-go-sdk"
	"github.com/TeamWarp/warp-go-sdk/option"
)

func main() {
	client := sdk.NewClient(
		option.WithAPIKey(os.Getenv("WARP_API_KEY")),
	)

	timeOff, err := client.TimeOff.ListAssignments(context.Background(), sdk.TimeOffListAssignmentsParams{})
	if err != nil {
		panic(err)
	}
	_ = timeOff
}

We run the infrastructure. You run your API.

An MCP server is a production service. Scalar runs yours at mcp.yourcompany.com with OAuth and rate limits, and shows you calls, errors, and latency per tool. You keep shipping your API.

The interface is still the product. It has moved to your API, where its newest users are agents working for your customers.

Make your API ready for the agents that are already looking for it.

Start with your OpenAPI document. Docs, SDKs, and a hosted MCP server all follow from it.

Get Started