> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://www.buildwithorbit.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://www.buildwithorbit.ai/_mcp/server.

# Quickstart guide

Orbit MCP Server lets you search for and integrate publicly available APIs for any task you want to accomplish. Connect your AI agent to the Orbit MCP Server so your AI agent handles the search-and-integrate flow automatically.

You can also call the Orbit API directly with `curl`.Your AI agent can use these endpoints to [search](/api-reference/search-public-endpoints) for and [integrate](/api-reference/integrate-public-endpoints) publicly available APIs that fit your task description.

## Connect agents to Orbit

### Claude

To use the Orbit MCP Server with Claude, run the following command in your terminal:

```
claude mcp add --transport http orbit https://mcp.buildwithorbit.ai/mcp
```

Describe your task to Claude, and it automatically searches for and integrates public APIs that fit your task description.

### Cursor

Add this to `~/.cursor/mcp.json` for global use, or `.cursor/mcp.json` inside one project:

```
{
  "servers": {
    "orbit": {
      "url": "https://mcp.buildwithorbit.ai/mcp"
    }
  }
}
```

### VS Code

Add this to VS Code:

```
  {
    "servers": {
      "orbit": {
        "type": "http",
        "url": "https://mcp.buildwithorbit.ai/mcp"
      }
    }
  }
```

### Codex

Add this to Codex:

```
codex mcp add orbit --url https://mcp.buildwithorbit.ai/mcp
```

Then describe your task to your connected agent. It automatically searches for and integrates public APIs that fit your task description — no manual `search/integrate` calls needed.

## Use Orbit endpoints with your AI agent

Your AI agent can use the Orbit endpoints to search for and integrate public APIs that fit your task description.

### Search

The [`POST /v1/search` endpoint](/api-reference/search-public-endpoints) takes a plain language description of the task you want to do and returns a list of public API endpoints with an `id` and evaluation summary for each endpoint. The evaluation summary assesses how well each API fits the task.

```curl
curl -X POST https://api.buildwithorbit.ai/v1/search \
  -H "Content-Type: application/json" \
  -d '{"q": "Get Current Weather"}'
```

### Integrate

Select the API that fits best and pass its `id` and `resourceType` as `type`to the [`POST /v1/integrate` endpoint](/api-reference/integrate-public-endpoints). The integrate endpoint then generates and returns a `taskBrief` with instructions for how to use the selected API.

```curl
curl -X POST https://api.buildwithorbit.ai/v1/integrate \
  -H "Content-Type: application/json" \
  -d '{
    "task": "Build an app to post current weather to Slack",
    "resources": [
      { "id": "urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json", "type": "endpoint" },
      { "id": "urn:orbit:endpoint:v1:1Jgb5F43F8b9al2a64G1srYRVxJ3SKnSepsgceU9aKzl1nnJeNHWFxEudTUMG:slack:send-message-to-slack", "type": "endpoint" }
    ]
  }'
```

### Examples

In Orbit, put your task description in the `q` field of the search endpoint.

#### cURL

```curl
curl -X POST https://api.buildwithorbit.ai/v1/search \
  -H "Content-Type: application/json" \
  -d '{"q": "Get Current Weather"}'
```

#### Request body

```json
{
    "q": "Get Current Weather"
}
```

You'll get a list of public API endpoints with an evaluation summary. An abbreviated sample response looks like this:

```
{
    "data": [
        {
            "id": "urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json",
            "resourceType": "endpoint",
            "name": "Get Current Weather - OpenWeatherMap",
            "description": "OpenWeatherMap API provides weather data. This request gets current weather for a city. Replace YOUR_API_KEY with your actual API key from openweathermap.org",
            "method": "GET",
            "url": "https://api.openweathermap.org/data/2.5/weather?q=London&appid=YOUR_API_KEY",
            "evaluateGuide": "Retrieves current weather data for a specified city from OpenWeatherMap. An agent can obtain conditions such as temperature and other weather details using the city and API key parameters. Use for: current weather in London, city weather lookup, temperature retrieval Not supported: forecasts, historical weather, weather alerts"
        }
    ],
    "meta": {
        "q": "Get Current Weather",
        "total": 1
    }
}
```

In the integrate endpoint, describe what you want to do in `task`. Then copy the selected result's `id` and `resourceType` into the integrate request's `resources` array as `id` and `type`.

#### cURL

```curl
curl -X POST https://api.buildwithorbit.ai/v1/integrate \
  -H "Content-Type: application/json" \
  -d '{
    "task": "Build an app to post current weather to Slack",
    "resources": [
      { "id": "urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json", "type": "endpoint" },
      { "id": "urn:orbit:endpoint:v1:1Jgb5F43F8b9al2a64G1srYRVxJ3SKnSepsgceU9aKzl1nnJeNHWFxEudTUMG:slack:send-message-to-slack", "type": "endpoint" }
    ]
  }'
```

#### Request body

```json
{
    "task": "Build an app to post current weather to Slack",
    "resources": [
        {
            "id": "urn:orbit:endpoint:v1:1OYrNvmw0qAUVtV7jNU3tC3kuCIFbpjpfGZuyexkHTlZg60P7mpN4cYzSm9XW:weatherapi-com:current-weather-json",
            "type": "endpoint"
        },
        {
            "id": "urn:orbit:endpoint:v1:1Jgb5F43F8b9al2a64G1srYRVxJ3SKnSepsgceU9aKzl1nnJeNHWFxEudTUMG:slack:send-message-to-slack",
            "type": "endpoint"
        }
    ]
}
```

The integrate endpoint returns a `taskBrief` with instructions for how to use the selected API.

```
{
    "data": [
        {
            "taskBrief": "TASK BRIEF: Two independent calls supporting a weather-to-Slack app: retrieve London weather and post a message to Slack (OpenWeatherMap and Slack Web API)\nAUTH\n  OpenWeatherMap: API key supplied as the required `appid` query parameter; replace `YOUR_API_KEY` with the actual key.\n  Slack: bot token supplied in the `token` form field/header value as `{{bot_token}}`, requiring the `chat:write` scope. The Slack collection also specifies bearer authentication using the same `{{bot_token}}` credential; the request explicitly defines the `token` field.\n\nBASE URL\n  https://api.openweathermap.org  step 1\n  https://slack.com step 2\n\nSTEPS\n  1. GET /data/2.5/weather\n    Params:\n      q: required string query parameter  `London`\n      appid: required string query parameter `YOUR_API_KEY` (replace with your OpenWeatherMap API key)\n    Returns:\n      No saved response example; the request is intended to return current weather data for the specified city.\n    Threading:\n      None\n\n  2. POST /api/chat.postMessage\n    Params (application/x-www-form-urlencoded body):\n      token: required string authentication field  `{{bot_token}}`\n      channel: required string  `<string>` or a channel/private-group/IM channel identifier\n      text: string message text  `test`; replace with the weather summary to post\n      Optional disabled fields include `as_user`, `attachments`, `blocks`, `icon_emoji`, `icon_url`, `link_names`, `mrkdwn`, `parse`, `reply_broadcast`, `thread_ts`, `unfurl_links`, `unfurl_media`, and `username`.\n    Returns:\n      HTTP 200 OK with JSON fields `ok` (boolean), `channel` (string), `ts` (string), and `message` (object). The message example includes `text`, `type`, and `ts`, plus optional attachments and blocks.\n    Threading:\n      None\n\nGOTCHAS\n  - Step 1 uses `appid` in the query string, not an authorization header.\n  - Step 2 must use `application/x-www-form-urlencoded`, not JSON."
        }
    ]
}
```