# Connect to the FlowCP MCP server

FlowCP runs its own hosted MCP server so you can drive the whole platform from an AI client — connect an app, import its API, enable tools, configure OAuth, publish a server, and read back the final config — without clicking through the dashboard. This is the hosted counterpart to [Agent-driven onboarding](/guides/agent-driven-onboarding.md): instead of running the bootstrap script yourself, you point your AI client at the URL below.

**MCP server URL:**

```
https://mcp.flowcp.ai/mcp/cmq3c1f9100000ln8lg3jhqf4
```

The server uses the standard MCP OAuth 2.1 flow (authorization code + PKCE with dynamic client registration), so there is no API key to paste. On first use your client opens a browser, you log in to FlowCP and approve, and the client receives a workspace-scoped token it presents on every call. Every tool acts **only** within the workspace bound to that token.

***

## Add it to your AI client

The exact UI varies by client, but the config is the same — use the URL above with an HTTP transport.

### Claude Desktop

Edit `claude_desktop_config.json`:

| OS      | Path                                                              |
| ------- | ----------------------------------------------------------------- |
| macOS   | `~/Library/Application Support/Claude/claude_desktop_config.json` |
| Windows | `%APPDATA%\Claude\claude_desktop_config.json`                     |

```json
{
  "mcpServers": {
    "flowcp": {
      "url": "https://mcp.flowcp.ai/mcp/cmq3c1f9100000ln8lg3jhqf4",
      "type": "http"
    }
  }
}
```

Quit and relaunch Claude Desktop. On the first tool call you'll be prompted to authorize.

### Cursor

Create or edit `.cursor/mcp.json` (project-level) or the global `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "flowcp": {
      "url": "https://mcp.flowcp.ai/mcp/cmq3c1f9100000ln8lg3jhqf4",
      "transport": "http"
    }
  }
}
```

Restart Cursor after saving.

### Claude Code

```bash
claude mcp add --transport http flowcp https://mcp.flowcp.ai/mcp/cmq3c1f9100000ln8lg3jhqf4
```

### ChatGPT

In the ChatGPT desktop app: **Settings → Tools & integrations → Add MCP server**, then enter the URL above with the **Streamable HTTP** transport.

***

## Using it

Once connected, ask your agent to build an MCP server in plain language — for example:

> Connect my OpenAPI app at `https://my.api/openapi.json`, enable the read-only tools, and publish it.

The agent calls the FlowCP tools to carry that out. The available tools mirror FlowCP's control-plane operations:

| Tool                                   | What it does                                                           |
| -------------------------------------- | ---------------------------------------------------------------------- |
| `get_context`                          | Show the user and workspace the token is bound to.                     |
| `connect_app`                          | Connect a new app (Bubble or generic OpenAPI).                         |
| `initiate_verification` / `verify_app` | Bubble ownership verification.                                         |
| `import_api`                           | Provision server versions and import the Swagger document.             |
| `get_import_status`                    | Poll an import until it is `valid`.                                    |
| `list_tools`                           | List the tools generated from the import.                              |
| `enable_tool`                          | Enable/disable or rename a generated tool.                             |
| `configure_oauth`                      | Set the OAuth provider config for the app.                             |
| `publish_server`                       | Publish the server (runs safety checks).                               |
| `get_mcp_config`                       | Return the hosted MCP server URL and a ready-to-paste client config.   |
| `get_app_stats`                        | Read usage stats for an app (invocations, users, success/error rates). |
| `list_app_logs`                        | List an app's execution logs, newest first, with optional filters.     |

A typical run:

```
get_context
→ connect_app  (provider: "openapi", swaggerUrl: "https://my.api/openapi.json")
→ import_api   (then get_import_status until valid)
→ list_tools
→ enable_tool  (for each tool you want exposed)
→ configure_oauth
→ publish_server
→ get_mcp_config
```

**Default-deny still applies:** imported tools always start disabled, so the agent must `enable_tool` each one explicitly. For Bubble apps there is one human-in-the-loop step — ownership verification — described in [Agent-driven onboarding](/guides/agent-driven-onboarding.md).

***

## Verifying the connection

Look for the FlowCP tools in your client's tools list (e.g. the wrench icon in Claude Desktop). If the server doesn't appear:

1. Confirm the URL exactly matches the one above.
2. Complete the OAuth prompt — tools stay hidden until the client holds a token.
3. Restart the AI client; most clients only reload MCP config on startup.

See [Troubleshooting](/support/troubleshooting.md) for more.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flowcp.ai/guides/connect-to-flowcp-mcp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
