---
title: "Connect to Fluveo MCP"
description: "Add Fluveo MCP to Claude Code, Cursor, Codex, VS Code or any client."
url: https://docs.fluveo.com/agents/mcp/connect/
---

> Index of every page: https://docs.fluveo.com/llms.txt. Integrating Fluveo? Read https://docs.fluveo.com/agents/integrate.md first.

> Too long? This page with code in one language only: https://docs.fluveo.com/agents/mcp/connect.curl.md (cURL), https://docs.fluveo.com/agents/mcp/connect.node.md (Node.js), https://docs.fluveo.com/agents/mcp/connect.python.md (Python), https://docs.fluveo.com/agents/mcp/connect.php.md (PHP).

# Connect to Fluveo MCP

Add Fluveo MCP to Claude Code, Cursor, Codex, VS Code or any client.

The Fluveo MCP server is not available in production yet.

## Before you start

For OAuth, you need a Dashboard sign-in with the owner, admin or developer role in the store the agent will use. [MCP sign-in with OAuth](https://docs.fluveo.com/agents/mcp/oauth.md) shows the consent page and how to revoke a connection.

For an agent key, you need a restricted test key (`rk_test_...`) made in the [Dashboard](https://dash.fluveo.com) under **Settings > Developers > API keys**, with **This key is for an AI agent** checked. [Authentication](https://docs.fluveo.com/agents/mcp/authentication.md#agent-keys) shows how to make one.

Put the key in `FLUVEO_MCP_KEY` in the shell that starts your client. `read -s` takes the key without showing it on screen or saving it in the shell history.

*Terminal*

```bash
read -rs FLUVEO_MCP_KEY && export FLUVEO_MCP_KEY
```

Start the client from that same shell. Each command and file on this page names the variable, never the key, so no file holds a secret and you can commit it with your project.

> **For AI agents:**
>
> Read the agent key only from `FLUVEO_MCP_KEY`. Never ask the person to paste the key into the chat, and never write a key into a configuration file. Write the variable in its place.
> With OAuth, the person signs in only in the browser. Never ask for a password, a code or a token in the chat.

## Add Fluveo MCP to your client

The Fluveo MCP server is not available in production yet.

## Check the connection

Ask the agent to call `get_account_info`. It answers the store the key belongs to, or the store you picked on the consent page. `account_id` starts with `mch_`, and `livemode` is `false`, because the server works in test mode only.

*get_account_info (first fields)*

```json
{
  "account_id": "mch_...",
  "livemode": false,
  "permissions": { "account": "read" }
}
```

When `get_account_info` is not in the agent's tools, the key or the connection has no **Read** permission on **Account**. [Tools](https://docs.fluveo.com/agents/mcp/tools.md) lists every tool and the permission it needs.

## When it does not connect

The server answers a refused request with an HTTP status, and a 401 also carries a JSON body with a `code`.

| Answer | Why | What to do |
| --- | --- | --- |
| 401 `api_key_required` | The request carried no key or token. With an agent key, `FLUVEO_MCP_KEY` was empty in the shell that started the client. With OAuth, the client has not signed in yet. | Export the key in that shell and start the client again, or start the client's sign-in. |
| 401 `authorization_repeated` | The request carried two or more `Authorization` headers, so the server read none. | Send exactly one: Bearer and an OAuth access token or an agent key. |
| 401 `invalid_token` | The OAuth access token expired, or the connection was revoked or ended. | Start the client's sign-in again, such as `/mcp` in Claude Code. |
| 401 `agent_key_required` | The key is a secret, publishable or live key, or a restricted test key made without **This key is for an AI agent**. | Make an agent key in the Dashboard with **This key is for an AI agent** checked, or sign in with OAuth. |
| 401 `api_key_invalid` | No store has this key. | Copy the key again from the Dashboard, or make a new one. |
| 401 `api_key_expired` | The key expired or was revoked. | Make a new agent key in the Dashboard. |
| 403 | The request came with a browser `Origin` the server does not allow. | Connect from a client that runs outside the browser. |
| 406 | The `Accept` header leaves out `application/json`. | Send `Accept: application/json`, or no `Accept` header. |

[Security](https://docs.fluveo.com/agents/mcp/security.md) explains what the server refuses and why.

## Next

- [Tools](https://docs.fluveo.com/agents/mcp/tools.md): Every tool with its arguments and answers.
- [MCP sign-in with OAuth](https://docs.fluveo.com/agents/mcp/oauth.md): The consent page, the connection it makes, and how to revoke it.
- [Authentication](https://docs.fluveo.com/agents/mcp/authentication.md): Make, use and revoke an agent key.
- [Fluveo MCP](https://docs.fluveo.com/agents/mcp.md): What an agent can and cannot do.
