> ## Documentation Index
> Fetch the complete documentation index at: https://docs.labelbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Labelbox MCP server

> Connect an AI agent to Labelbox, approve access, and use tools with your current permissions.

The Labelbox platform MCP server connects your AI agent to your workspace. Ask your agent to inspect projects, summarize labeling progress, or set up a project when you approve write access.

Operators and project managers can use it to monitor progress, review quality, and identify work that needs attention. Developers can use the same tools from their coding assistants. You do not need to write code to use Labelbox tools through a compatible AI assistant.

Add this server URL to your MCP client:

```text theme={"theme":"css-variables"}
https://api.labelbox.com/v1/agent-tools/mcp
```

You sign into Labelbox and approve the connection in your browser. You do not need an API key, client secret, or SDK installation.

## Before you connect

You need:

* A Labelbox account with access to a workspace.
* A workspace where external MCP access is available and allowed by your administrator.
* A client that supports remote MCP over Streamable HTTP and OAuth sign-in.

Your existing [roles and permissions](/horizon/guides/roles-and-permissions) determine what the agent can access. Approval does not add permissions to your account.

<Note>
  This URL connects to the Labelbox platform. The [documentation MCP](https://docs.labelbox.com/mcp) searches docs. Recursion Managed Agents has a separate MCP server and authentication flow.
</Note>

## Set up your client

<Tabs>
  <Tab title="Claude">
    1. In Claude, open **Customize → Connectors** and add a custom connector. For a managed account, an organization owner may need to add it first.

    2. Name it `Labelbox` and enter the server URL:

       ```text theme={"theme":"css-variables"}
       https://api.labelbox.com/v1/agent-tools/mcp
       ```

    3. Keep OAuth sign-in enabled. If asked how to identify the client, select automatic registration. Leave static credentials and request headers empty.

    4. Finish adding the connector and start sign-in. Complete [Approve access](#approve-access) in your browser.

    5. Enable the Labelbox connector for your conversation, then [verify the connection](#verify-the-connection).

    Availability depends on your Claude account and organization policy. See [Claude's remote connector instructions](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp) for current controls.
  </Tab>

  <Tab title="ChatGPT">
    1. Open ChatGPT on the web and go to **Plugins**. Choose **Add custom MCP server** from the add menu.

    2. Name it `Labelbox` and enter this server URL:

       ```text theme={"theme":"css-variables"}
       https://api.labelbox.com/v1/agent-tools/mcp
       ```

    3. Choose **OAuth** authentication and automatic client registration if offered. You do not need a static client ID or secret.

    4. Complete the setup and the [Labelbox approval flow](#approve-access). Find the resulting plugin in **Plugins** and install it before using it in a conversation.

    5. Select Labelbox with `@` in a conversation, then [verify the connection](#verify-the-connection).

    Your ChatGPT account and workspace policy must allow custom MCP connections. See [OpenAI's custom MCP instructions](https://developers.openai.com/api/docs/guides/custom-mcp-server) if the controls differ or are unavailable.
  </Tab>

  <Tab title="Cursor Desktop">
    Add the following entry to `~/.cursor/mcp.json`. Merge it with your existing `mcpServers` entries if the file already exists.

    ```json theme={"theme":"css-variables"}
    {
      "mcpServers": {
        "labelbox": {
          "url": "https://api.labelbox.com/v1/agent-tools/mcp"
        }
      }
    }
    ```

    Open Cursor's MCP controls, find `labelbox`, and start its sign-in flow. Keep Cursor open while you complete authorization in your browser.

    Continue with [Approve access](#approve-access), then return to Cursor's Agent chat to [verify the connection](#verify-the-connection).

    See [Cursor's MCP documentation](https://cursor.com/docs/mcp) for configuration locations and client controls.
  </Tab>

  <Tab title="Codex CLI">
    Add the remote server:

    ```sh theme={"theme":"css-variables"}
    codex mcp add labelbox --url https://api.labelbox.com/v1/agent-tools/mcp
    ```

    If sign-in does not start automatically, run:

    ```sh theme={"theme":"css-variables"}
    codex mcp login labelbox
    ```

    Complete [Approve access](#approve-access) in your browser. Start or reopen your Codex session, then use `/mcp` to check the server and [verify the connection](#verify-the-connection).

    See [Codex's MCP documentation](https://learn.chatgpt.com/docs/extend/mcp) for current client instructions.
  </Tab>

  <Tab title="Claude Code">
    Add the remote server for your user account:

    ```sh theme={"theme":"css-variables"}
    claude mcp add --transport http --scope user labelbox https://api.labelbox.com/v1/agent-tools/mcp
    ```

    Start an interactive Claude Code session and enter `/mcp`. Select the Labelbox server and authenticate.

    Complete [Approve access](#approve-access) in your browser, then return to Claude Code to [verify the connection](#verify-the-connection).

    The `--scope user` option stores the configuration for your user across projects. It does not grant Labelbox permissions.

    See [Claude Code's MCP documentation](https://code.claude.com/docs/en/mcp) for current client instructions.
  </Tab>

  <Tab title="Other clients">
    Use your client's remote MCP setup instructions. Enter the Labelbox server URL and select Streamable HTTP if the client asks for a transport.

    ```text theme={"theme":"css-variables"}
    https://api.labelbox.com/v1/agent-tools/mcp
    ```

    Start the client's OAuth sign-in flow, complete [Approve access](#approve-access), and [verify the connection](#verify-the-connection).

    Compatibility depends on the client's OAuth implementation. Hosted clients and browser connectors can have different account requirements and setup steps.
  </Tab>
</Tabs>

## Approve access

<Steps>
  <Step title="Sign into Labelbox">
    Start authorization from your MCP client. Sign into Labelbox in the browser when prompted. Use your own account rather than an impersonated session.
  </Step>

  <Step title="Select a workspace">
    Choose an eligible workspace for this connection. This choice applies to the MCP client and does not switch your existing browser workspace.

    If no workspace appears, see [Troubleshooting](#troubleshooting).
  </Step>

  <Step title="Review the requested access">
    Check the client name and requested access. Select optional access only if you need it:

    * **Allow project changes** permits supported project setup tools, subject to your current permissions.
    * **Limit access to selected projects** restricts the connection to the projects you select.
    * **Stay connected between sessions** permits connection renewal when the client supports and requests it.

    Write access and renewal start unchecked. These options depend on the access requested by your client and what your workspace permits.
  </Step>

  <Step title="Allow access">
    Choose **Allow access** to approve the connection. You can cancel if you do not want to grant access.
  </Step>

  <Step title="Return to your client">
    Keep the client open until authorization completes. Confirm that the Labelbox server connects and its tools appear.
  </Step>
</Steps>

## Verify the connection

Ask your agent:

```text theme={"theme":"css-variables"}
Use Labelbox to show my connected workspace and access restrictions.
```

The agent should call `get_caller_context` and return the selected workspace and connection restrictions. Confirm that the workspace is the one you intended.

A browser redirect alone does not confirm success. The client must complete authorization and receive a tool response.

You can also ask:

```text theme={"theme":"css-variables"}
Use Labelbox to list projects I can access in this workspace.
```

An empty result can be valid. Projects accessible through user groups may not appear in the list. To check a specific project, give the agent its project ID or Labelbox project URL and ask it to look up that project directly.

## What you can do

Your client discovers the current tools available to your connection from the server. Available actions depend on your permissions and approved access. You can ask:

```text theme={"theme":"css-variables"}
What can you do with my current Labelbox connection?
```

These are representative workflows, rather than a complete list of available tools:

| Workflow | Example prompt |
| - | - |
| Inspect workspace and projects | "Show my workspace and summarize this project's health." |
| Inspect project data | "Which datasets and batches are attached to this project?" |
| Track progress and quality | "Summarize progress, throughput, and benchmarks for this project." |
| Inspect workflow queues | "Show the queues in this project." |
| Set up projects with write access | "Create a project with an ontology and instructions, then add a batch from my existing dataset." |

The project setup workflow requires **Allow project changes**, workspace write availability, and the permissions for each action. A connection limited to selected projects cannot create a new project or use other workspace-level tools.

## Permissions and connection lifetime

Labelbox checks your current permissions on every tool call. The connection's approved access and selected projects can further restrict the agent.

* A connection applies to one workspace.
* Project restrictions limit access; they do not grant a new role or project membership.
* Your client controls its own tool confirmations and automation settings. Labelbox consent does not guarantee a confirmation before each tool call.
* Review how your client handles the data returned by tools.

Clients can request different access. A basic connection may be read-only, and **Stay connected between sessions** may not be offered. Missing options do not necessarily indicate an error.

If you approve renewal, a compatible client can renew the connection between sessions. Connections can still expire or be revoked. Without renewal, you must sign in again when access expires.

To change the approved access, start a new authorization flow from your client. To switch workspaces, follow [I want to connect another workspace](#troubleshooting).

## Manage connections

### Disconnect your client

Open [workspace settings](https://app.labelbox.com/workspace-settings/workspace) and find **Connected MCP clients**. This section lists your connections across workspaces.

Choose **Disconnect** for the client you want to remove and confirm the action. The connection stops working after the disconnect succeeds. Sign out of your client or remove its server entry if you also want to clear its local configuration.

Signing out of the Labelbox website does not disconnect an approved MCP connection.

### Control workspace access

Workspace administrators with permission to manage the workspace can use **Workspace MCP access** in [workspace settings](https://app.labelbox.com/workspace-settings/workspace).

* **Allow external MCP connections** controls whether users can connect external clients. Disabling it disconnects existing clients.
* **Disconnect all clients** invalidates the workspace's existing connections without changing whether new connections are allowed.

Re-enabling access does not restore earlier connections. Users must connect and approve access again.

Workspace access must also be available through Labelbox. If the administrator allows access but the workspace remains unavailable, [contact support](/horizon/guides/contacting-customer-support).

## Troubleshooting

<AccordionGroup>
  <Accordion title="No workspace is available for this connection">
    Confirm that you signed into the correct Labelbox account and belong to the workspace. Ask a workspace administrator to check **Allow external MCP connections**.

    If access is allowed but the workspace remains absent, [contact Labelbox support](/horizon/guides/contacting-customer-support) to check availability.
  </Accordion>

  <Accordion title="The request is invalid or expired">
    Return to your MCP client and start a fresh connection. Do not reuse a bookmarked consent page or a callback from an earlier attempt.
  </Accordion>

  <Accordion title="Localhost refused the connection after approval">
    The client may have stopped listening for the browser callback or the attempt may have timed out. Keep the client open and restart its authorization flow.

    For a local desktop client, complete sign-in in a browser on the same computer. A refused callback does not necessarily mean that your Labelbox session expired.
  </Accordion>

  <Accordion title="The connection was cancelled">
    Start authorization again from your client when you are ready to approve access. A callback from a cancelled attempt cannot complete a new connection.
  </Accordion>

  <Accordion title="Tools do not appear after approval">
    Check the client's MCP connection status and authentication errors. Confirm that the server uses the platform URL at the top of this guide.

    If authorization did not complete, start a fresh sign-in flow. Use `get_caller_context` to verify the workspace after the tools appear.
  </Accordion>

  <Accordion title="My project list is empty or a project is missing">
    Confirm the connected workspace and selected-project restrictions. An empty result is valid when no projects match the connection's access.

    Project lists may omit projects accessible through user groups. Give the agent the project's exact ID or Labelbox project URL and ask it to look up that project directly.

    If that lookup fails, check your [project permissions](/horizon/guides/roles-and-permissions) with an administrator.
  </Accordion>

  <Accordion title="A tool is missing or access is denied">
    Check your role permissions, approved connection access, selected projects, and workspace MCP policy. A restricted connection can have fewer tools than an unrestricted connection.

    Confirm permissions with your administrator. Reconnect if you need a different grant. [Contact support](/horizon/guides/contacting-customer-support) if the expected access still fails.
  </Accordion>

  <Accordion title="Write access or Stay connected is not offered">
    Your client must request the corresponding access. Project changes also require workspace write availability. Check your client's OAuth options and ask an administrator or [support](/horizon/guides/contacting-customer-support) about workspace availability.

    Keep read-only access if it meets your needs. If you change the client's requested access, start a new authorization flow. Do not edit a browser authorization URL.
  </Accordion>

  <Accordion title="My connection expired or stopped working">
    Reconnect from your client. Check that you still belong to the workspace and that external access remains allowed.

    An administrator can revoke connections or disable workspace access. Re-enabling access does not restore old grants; approve a new connection.
  </Accordion>

  <Accordion title="I want to connect another workspace">
    Disconnect or clear the Labelbox MCP authentication in your client, then authorize again and select the other workspace. You do not need to sign out of Labelbox in your browser.

    After reconnecting, ask your agent to call `get_caller_context` and confirm the selected workspace before using other tools.
  </Accordion>

  <Accordion title="The service is temporarily unavailable">
    Retry later. If the problem continues, [contact Labelbox support](/horizon/guides/contacting-customer-support).
  </Accordion>
</AccordionGroup>

For unresolved issues, include your client name, version, and a description of the failed step when you [contact support](/horizon/guides/contacting-customer-support). Do not share tokens, cookies, or full authorization callback URLs.
