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

# Use Stealth Agent from MCP clients

> Call StealthGPT as a tool from Cursor, Claude, ChatGPT and other MCP-aware agents

StealthGPT ships a remote **MCP (Model Context Protocol) server**, so AI agents and MCP-aware clients can generate and humanize content as a tool — without you writing any integration code. This is the **agent / tool invocation** workflow pattern: the model decides when to call the tools and you stay inside your editor or chat.

<Info>
  One server, many clients. The same MCP server works with Cursor, Claude, ChatGPT, and any MCP-compatible runtime. You don't install a per-client plugin.
</Info>

## Server endpoint

```
https://stealthgpt.ai/api/mcp/mcp
```

Transport: **Streamable HTTP** (the modern MCP transport). A legacy SSE endpoint is also available at `/api/mcp/sse`.

## Authentication

The server supports two ways to authenticate, and both resolve to the same StealthGPT account (identical billing):

* **OAuth (one-click)** — used by **claude.ai (web)** and other clients with built-in custom-connector support. You sign in with your StealthGPT account and approve access; there's no token to copy. See [Connect in claude.ai (web)](#connect-in-claudeai-web).
* **API token (bearer header)** — used by IDE/desktop clients like **Cursor**, **VS Code**, **Claude Desktop**, and CLIs:

  ```
  Authorization: Bearer YOUR_API_TOKEN
  ```

  Get your token from the [Stealth API dashboard](https://stealthgpt.ai/stealthapi/dashboard).

## Tools

| Tool               | Purpose                                                                                               | Key arguments                                                                                                               |
| ------------------ | ----------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `generate_content` | Start a full Stealth Agent run (research → draft → optional fact-check → humanize → optional images). | `preset` (`academic` \| `seo` \| `social`), `prompt`, `platform` (for `social`), `enableFactCheck`, `enableImageGeneration` |
| `humanize_text`    | Start a humanization run for existing text.                                                           | `text`, `qualityMode` (`fast` \| `quality`), `model` (`heavy` \| `lite`), `outputFormat` (`text` \| `markdown`)             |
| `get_run_status`   | Get the current status and final result of a run.                                                     | `runId`                                                                                                                     |

`generate_content` and `humanize_text` return a `runId` immediately (the work runs asynchronously). The agent then calls `get_run_status` with that `runId` until the status is `completed`, `failed`, or `cancelled`.

<Note>
  On a completed humanization, `howLikelyToBeDetected` is a 0–100 **human-likeness** score where **higher is better** (more human, less likely to be flagged as AI).
</Note>

## Install

One-click for Cursor:

[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](cursor://anysphere.cursor-deeplink/mcp/install?name=stealthgpt\&config=eyJ1cmwiOiJodHRwczovL3N0ZWFsdGhncHQuYWkvYXBpL21jcC9tY3AifQ==)

<Note>
  The one-click button adds the server URL; add your `Authorization: Bearer YOUR_API_TOKEN` header in the generated `mcp.json`. (Cursor connects with a bearer token. For a no-token, one-click sign-in use **claude.ai (web)** with OAuth — see [below](#connect-in-claudeai-web).)
</Note>

Or configure manually for your client:

<Tabs>
  <Tab title="Cursor">
    Add to `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global), then reload MCP servers:

    ```json theme={null}
    {
      "mcpServers": {
        "stealthgpt": {
          "url": "https://stealthgpt.ai/api/mcp/mcp",
          "headers": { "Authorization": "Bearer YOUR_API_TOKEN" }
        }
      }
    }
    ```
  </Tab>

  <Tab title="VS Code">
    Add to `.vscode/mcp.json`:

    ```json theme={null}
    {
      "servers": {
        "stealthgpt": {
          "type": "http",
          "url": "https://stealthgpt.ai/api/mcp/mcp",
          "headers": { "Authorization": "Bearer YOUR_API_TOKEN" }
        }
      }
    }
    ```
  </Tab>

  <Tab title="Windsurf">
    Add to your Windsurf MCP config (`~/.codeium/windsurf/mcp_config.json`):

    ```json theme={null}
    {
      "mcpServers": {
        "stealthgpt": {
          "serverUrl": "https://stealthgpt.ai/api/mcp/mcp",
          "headers": { "Authorization": "Bearer YOUR_API_TOKEN" }
        }
      }
    }
    ```
  </Tab>

  <Tab title="Claude Desktop">
    Add it as a custom connector (Settings → Connectors → Add custom connector) using the URL `https://stealthgpt.ai/api/mcp/mcp` and sign in with OAuth — same flow as [claude.ai (web)](#connect-in-claudeai-web).

    Alternatively, bridge over stdio with a bearer token using `mcp-remote`:

    ```json theme={null}
    {
      "mcpServers": {
        "stealthgpt": {
          "command": "npx",
          "args": [
            "mcp-remote",
            "https://stealthgpt.ai/api/mcp/mcp",
            "--header",
            "Authorization: Bearer YOUR_API_TOKEN"
          ]
        }
      }
    }
    ```
  </Tab>

  <Tab title="Other clients">
    Any client that supports a remote (Streamable HTTP) MCP server with custom headers:

    * **URL:** `https://stealthgpt.ai/api/mcp/mcp`
    * **Header:** `Authorization: Bearer YOUR_API_TOKEN`
  </Tab>
</Tabs>

Once connected, the three tools appear in the client and the agent calls them when relevant — for example:

> Humanize this paragraph: …

or

> Generate an SEO article about home solar energy.

## Example flow

1. The agent calls `humanize_text` with your text → receives `{ "runId": "…", "status": "queued" }`.
2. The agent polls `get_run_status` with that `runId`.
3. When `status` is `completed`, it returns the humanized `result`, `howLikelyToBeDetected`, and billing fields (`wordsSpent`, `creditsSpent`, `remainingCredits`, `billingMode`, `meteredChargedCredits`).

## Connect in claude.ai (web)

The MCP server is available as a **custom connector** inside claude.ai — connect once with one-click OAuth (no API token to paste):

<Steps>
  <Step title="Open connector settings">
    In claude.ai, go to **Settings → Connectors → Add custom connector**.
  </Step>

  <Step title="Add the server">
    Set a name (e.g. `StealthGPT`) and the URL:

    ```
    https://stealthgpt.ai/api/mcp/mcp
    ```
  </Step>

  <Step title="Sign in and approve">
    Click **Connect**, sign in with your StealthGPT account, and approve access on the consent screen. The connector switches to **Connected**.
  </Step>

  <Step title="Use the tools">
    Ask Claude to generate or humanize content, e.g. *"Humanize this paragraph…"* or *"Generate an SEO article about home solar energy."* Claude calls the tools and polls the run for you.
  </Step>
</Steps>

<Note>
  OAuth and the bearer token resolve to the same StealthGPT account, so runs are billed identically regardless of how you connect.
</Note>

### ChatGPT

A ChatGPT connector / app uses the same MCP server and OAuth. It's in progress and subject to ChatGPT's connector requirements (workspace tier and tool conventions) — this page will be updated when it's available.

## Notes & limits

* Runs are billed to the account that owns the API token, using the standard word-based billing.
* Generation can take from seconds (humanize-only, `lite`) to a few minutes (full `academic`/`seo` pipeline). Because it's async, the tool call returns quickly and the agent polls.
* See the [async workflow](/api-reference/endpoints/stealthify-runs) and [Stealth Agent async runs](/api-reference/endpoints/stealthify-agent-runs) pages for the underlying REST contract.
