# Quick start

The Saasco MCP server lets an AI agent read and change data in the projects you belong to. You sign in as yourself. There is no API key to create.

It is a remote MCP server with OAuth, hosted at:

```
https://www.saasco.com/api/mcp
```

That URL is your account: every project you belong to, and the same reads and writes you can do there. To pin one server entry to a single project, add its id as a query parameter. Agents tell connections apart by the URL, so a scoped entry and the account entry can sit side by side.

```
https://www.saasco.com/api/mcp?projectId=YOUR-PROJECT-ID
```

On a scoped URL the tools do not take a `projectId` argument — the server applies the one from the URL. On the account URL, project tools ask for `projectId`, and `projects_listProjects` lists the projects you belong to.

A connection lists three tools: `saasco_search_tools`, `saasco_execute_tool`, and `read_saasco_documentation`. The agent looks up a tool by what it does, then runs it, and can read these docs without opening each page. To load every tool into the client instead, add `codemode=off` to that same URL (`?codemode=off`, or `&codemode=off` next to `projectId`) and reconnect.

## Connect a client

Follow the steps for the client you are running in. Add `?projectId=YOUR-PROJECT-ID` to the server URL when the connection should stay on one project.

<Tabs items={["Cursor", "Claude Code", "Claude", "ChatGPT", "Codex CLI", "VS Code", "Windsurf", "Gemini CLI", "Other clients"]}>

<Tab value="Cursor">

<Steps>
<Step>

**Add the server**

<McpInstallButton client="cursor" />

Or add Saasco to your project's `.cursor/mcp.json`, or to `~/.cursor/mcp.json` to have it everywhere:

```json title=".cursor/mcp.json"
{
  "mcpServers": {
    "saasco": {
      "url": "https://www.saasco.com/api/mcp"
    }
  }
}
```

</Step>

<Step>

**Sign in**

Cursor connects and shows **Needs login** next to Saasco in **Settings → MCP**. Click it to open the authorization page in your browser.

</Step>

<Step>

**Allow access**

Check the permissions and click **Allow access**. The connection can use every project you belong to. Cursor reloads the tool list on its own.

</Step>
</Steps>

</Tab>

<Tab value="Claude Code">

<Steps>
<Step>

**Add the server**

```bash
claude mcp add --transport http saasco https://www.saasco.com/api/mcp
```

Add `--scope user` to make it available in every directory instead of just this project.

</Step>

<Step>

**Authenticate**

Start Claude Code and run:

```
/mcp
```

Select **saasco**, then **Authenticate**. Your browser opens on the Saasco authorization page.

</Step>

<Step>

**Allow access**

Review the permissions and click **Allow access**. Run `/mcp` again to confirm the tools are listed.

</Step>
</Steps>

</Tab>

<Tab value="Claude">

<Callout type="info">
  Custom connectors are available on Claude Pro, Max, Team and Enterprise plans.
  On Team and Enterprise an organization admin adds the connector.
</Callout>

<Steps>
<Step>

**Add a custom connector**

In Claude, open **Settings → Connectors** and choose **Add custom connector**:

- **Name:** `Saasco`
- **URL:** `https://www.saasco.com/api/mcp`

</Step>

<Step>

**Connect**

Find Saasco in the connector list and click **Connect**. Claude opens the Saasco authorization page in your browser.

</Step>

<Step>

**Allow access**

Review the permissions and click **Allow access**. Saasco's tools then show up in the composer's tool menu.

</Step>
</Steps>

</Tab>

<Tab value="ChatGPT">

<Callout type="info">
  Connectors need a Plus, Pro or Business account, and developer mode has to be
  turned on before the connector form appears.
</Callout>

<Steps>
<Step>

**Turn on developer mode**

Go to **Settings → Connectors → Advanced settings** and enable **Developer mode**.

</Step>

<Step>

**Create the connector**

Back in the **Connectors** tab, create a new connector:

- **Name:** `Saasco`
- **MCP server URL:** `https://www.saasco.com/api/mcp`
- **Authentication:** `OAuth`

</Step>

<Step>

**Allow access**

ChatGPT sends you to the Saasco authorization page. Review the permissions and click **Allow access**.

</Step>
</Steps>

</Tab>

<Tab value="Codex CLI">

<Steps>
<Step>

**Add the server**

```bash
codex mcp add saasco --url https://www.saasco.com/api/mcp
```

</Step>

<Step>

**Authenticate**

Start `codex`. It detects that the server uses OAuth and opens your browser on the Saasco authorization page.

</Step>

<Step>

**Allow access**

Review the permissions and click **Allow access**.

</Step>
</Steps>

</Tab>

<Tab value="VS Code">

<Steps>
<Step>

**Add the server**

<McpInstallButton client="vscode" />

Or open the Command Palette (`Cmd+Shift+P` / `Ctrl+Shift+P`), run **MCP: Add Server**, choose **HTTP**, and enter:

- **URL:** `https://www.saasco.com/api/mcp`
- **Name:** `Saasco`

Or commit it to the workspace yourself:

```json title=".vscode/mcp.json"
{
  "servers": {
    "saasco": {
      "type": "http",
      "url": "https://www.saasco.com/api/mcp"
    }
  }
}
```

</Step>

<Step>

**Start the server and authorize**

Run **MCP: List Servers**, select **Saasco**, then **Start Server**. When VS Code asks whether the server may authenticate, click **Allow**, then complete sign-in in your browser.

</Step>

<Step>

**Allow access**

Review the permissions and click **Allow access**. Saasco's tools appear in Copilot Chat's agent mode tool picker.

</Step>
</Steps>

</Tab>

<Tab value="Windsurf">

<Steps>
<Step>

**Add the server**

Add Saasco to `~/.codeium/windsurf/mcp_config.json`:

```json title="mcp_config.json"
{
  "mcpServers": {
    "saasco": {
      "serverUrl": "https://www.saasco.com/api/mcp"
    }
  }
}
```

</Step>

<Step>

**Authorize**

Reload the server list from **Settings → Cascade → MCP servers**. Windsurf prompts you to sign in and opens the Saasco authorization page.

</Step>

<Step>

**Allow access**

Review the permissions and click **Allow access**.

</Step>
</Steps>

</Tab>

<Tab value="Gemini CLI">

<Steps>
<Step>

**Add the server**

Gemini CLI and Gemini Code Assist share one config. Add Saasco to `~/.gemini/settings.json` through the `mcp-remote` bridge:

```json title="~/.gemini/settings.json"
{
  "mcpServers": {
    "saasco": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://www.saasco.com/api/mcp"]
    }
  }
}
```

</Step>

<Step>

**Authorize**

Restart the CLI (or your IDE) and run `/mcp list`. The bridge opens the Saasco authorization page in your browser on first use.

</Step>

<Step>

**Allow access**

Review the permissions and click **Allow access**.

</Step>
</Steps>

</Tab>

<Tab value="Other clients">

<Steps>
<Step>

**If your client speaks remote MCP**

Add a remote MCP server with:

- **Name:** `Saasco`
- **URL:** `https://www.saasco.com/api/mcp`
- **Transport:** Streamable HTTP
- **Authentication:** OAuth (dynamic client registration; nothing to create in Saasco first)

</Step>

<Step>

**If it only speaks stdio**

Bridge it with [`mcp-remote`](https://www.npmjs.com/package/mcp-remote):

```json
{
  "mcpServers": {
    "saasco": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://www.saasco.com/api/mcp"]
    }
  }
}
```

`mcp-remote` caches its credentials in `~/.mcp-auth`. Clear that folder if you want it to forget the connection locally as well as revoking it in Saasco.

</Step>

<Step>

**Allow access**

Review the permissions and click **Allow access**.

</Step>
</Steps>

</Tab>

</Tabs>

<Callout type="info">
  MCP support is moving quickly and menus get renamed between releases. The URL
  and the browser flow don't change, so if a step above doesn't match what you
  see, check your client's own documentation for where it keeps remote MCP
  servers.
</Callout>

Sign in, then allow access. When the job writes data, allow "Create and change data in your projects". [Authorization](/docs/mcp/connect) walks through those screens.

## Install with add-mcp

[`add-mcp`](https://www.npmjs.com/package/add-mcp) writes a server entry for every agent it finds on the machine. Use the client steps above when you know which client is installing Saasco.

```bash
npx -y add-mcp https://www.saasco.com/api/mcp?projectId=YOUR-PROJECT-ID
```

Leave `?projectId=` off to reach every project on the account. `-y` skips the confirmation prompt. Add `-g` to install the entry globally, across projects, instead of only in the current directory.
