SDK

Scalar provides SDKs to connect your AI agent to Scalar's OpenAPI MCP servers. Choose the SDK for your language and framework.

TypeScript

The @scalar/agent package provides native integrations for the Vercel AI SDK, OpenAI Agents SDK, and Anthropic Claude Agent SDK.

Installation

npm i @scalar/agent
pnpm i @scalar/agent
bun i @scalar/agent

Personal Access Token

You can create a personal access token in the Dashboard under Account > API Keys.

Setup

Initialize the SDK with your personal token, then create an installation reference using your installation ID.

import { agentScalar } from '@scalar/agent'

const scalar = agentScalar({
  token: 'your-personal-token',
})

const installation = await scalar.installation('your-installation-id')

Providers

Vercel AI SDK

Uses @ai-sdk/mcp natively. Returns a tool set ready for generateText or streamText.

import { agentScalar } from '@scalar/agent'
import { generateText, stepCountIs } from 'ai'

const scalar = agentScalar({
  token: 'your-personal-token',
})

const installation = await scalar.installation('your-installation-id')

const tools = await installation.createVercelAITools()

const { text } = await generateText({
  model,
  tools,
  stopWhen: stepCountIs(5),
  prompt: 'How do I create a planet?',
})

OpenAI Agents SDK

Returns options for MCPServerStreamableHttp from @openai/agents. The agent runtime handles tool discovery and execution natively.

import { agentScalar } from '@scalar/agent'
import { Agent, MCPServerStreamableHttp, run } from '@openai/agents'

const scalar = agentScalar({
  token: 'your-token',
})

const installation = await scalar.installation('your-installation-id')

const server = new MCPServerStreamableHttp(installation.createOpenAIMCP())
await server.connect()

const agent = new Agent({
  name: 'api-agent',
  mcpServers: [server],
})

const result = await run(
  agent,
  'Which APIs are available that let me create a planet?',
)

await server.close()

Anthropic Claude Agent SDK

Returns an MCP server configuration for @anthropic-ai/claude-agent-sdk.

import { agentScalar } from '@scalar/agent'
import { query } from '@anthropic-ai/claude-agent-sdk'

const scalar = agentScalar({
  token: 'your-token',
})

const installation = await scalar.installation('your-installation-id')

for await (const message of query({
  prompt: 'Which APIs are available that let me create a planet?',
  options: {
    mcpServers: {
      scalar: installation.createAnthropicMCP(),
    },
    allowedTools: ['mcp__scalar__*'],
  },
})) {
  if ('result' in message) console.log(message.result)
}

Configuration

Option Type Description
token string Your Scalar personal token used to authenticate requests to your MCP
baseUrl string Base URL of the Scalar MCP server. Defaults to the Scalar environment

Python

The scalar-agent package provides native integrations for the OpenAI Agents SDK and Anthropic Claude Agent SDK.

Installation

pip install scalar-agent

With provider extras:

# For Anthropic
pip install "scalar-agent[anthropic]"

# For OpenAI
pip install "scalar-agent[openai]"

# Both
pip install "scalar-agent[all]"

Personal Access Token

You can create a personal access token in the Scalar dashboard under Account > API Keys.

Setup

Initialize the SDK with your personal token, then create an installation reference using your installation ID.

from scalar_agent import agent_scalar

scalar = agent_scalar(token="your-personal-token")
installation = scalar.installation("your-installation-id")

Providers

OpenAI Agents SDK

Returns params for MCPServerStreamableHttp from openai-agents. The agent runtime handles tool discovery and execution natively.

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())

Anthropic Claude Agent SDK

Returns an MCP server configuration for claude_agent_sdk.

import asyncio

from scalar_agent import agent_scalar
from claude_agent_sdk import query
from claude_agent_sdk.types import ClaudeAgentOptions, ResultMessage

scalar = agent_scalar(token="your-personal-token")
installation = scalar.installation("your-installation-id")

async def main() -> None:
    async for message in query(
        prompt="Which APIs are available that let me create a planet?",
        options=ClaudeAgentOptions(
            mcp_servers={"scalar": installation.create_anthropic_mcp()},
            allowed_tools=["mcp__scalar__*"],
        ),
    ):
        if isinstance(message, ResultMessage):
            print(message.result)

asyncio.run(main())

Configuration

Parameter Type Description
token str Your Scalar personal token used to authenticate requests to your MCP
base_url str Base URL of the Scalar MCP server. Defaults to the Scalar environment