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

# ETL: Connect Any Other MCP Client

> Connect any MCP-capable client to the Integrate.io ETL MCP server, using a native remote transport or the mcp-remote bridge.

MCP is an open standard, so the per-client pages are just specific cases of the same thing. Any MCP-compatible client or agent, on any LLM provider, connects to the same endpoint:

```text theme={null}
https://api.xplenty.com/YOUR_ACCOUNT_ID/api/mcp
```

Replace `YOUR_ACCOUNT_ID` with your account subdomain or numeric id (the value in your dashboard URL). For token and OAuth detail, see [Authentication](https://www.integrate.io/docs/etl/mcp-authentication.md).

To connect a client not covered by its own page, answer two questions about it.

## 1. Native remote, or local (stdio) only?

* **Native remote (Streamable HTTP) support:** point the client straight at the endpoint URL. No bridge needed.
* **Local / stdio only:** run the [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) bridge in front of the URL. `mcp-remote` turns the remote HTTP endpoint into the local stdio server these clients expect.

The generic bridge command is:

```bash theme={null}
npx -y mcp-remote https://api.xplenty.com/YOUR_ACCOUNT_ID/api/mcp \
  --header "Authorization: Bearer YOUR_ACCESS_TOKEN"
```

Most stdio clients let you set a `command` and `args` in their config. Use `npx` as the command and the arguments `-y mcp-remote https://api.xplenty.com/YOUR_ACCOUNT_ID/api/mcp --header "Authorization: Bearer YOUR_ACCESS_TOKEN"`.

## 2. How does it authenticate?

* **Supports OAuth:** add the server with no credentials and let the client run browser sign-in. It self-registers and stores its own tokens. This is the same flow Claude Code and ChatGPT use.
* **Needs a static credential:** create a Personal Access Token (see [Authentication](https://www.integrate.io/docs/etl/mcp-authentication.md)) and send it as an `Authorization: Bearer YOUR_ACCESS_TOKEN` header. For stdio clients, pass it through `mcp-remote` with `--header` as shown above. If you omit `--header`, `mcp-remote` falls back to OAuth browser sign-in.

Once connected, every client sees the identical set of tools and obeys the same per-account permissions, regardless of which client or model is calling. If your client supports the [Streamable HTTP MCP transport](https://modelcontextprotocol.io/specification/2024-11-05/basic/transports#streamable-http) but still won't connect, see [Troubleshooting](https://www.integrate.io/docs/etl/mcp-troubleshooting.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.