# MCP setup

> Connect your client to https://mcp.faxforagents.com/mcp/ with an API key. Copy-ready configuration for Claude Code, Claude Desktop, Cursor, Codex and n8n.

Page: https://faxforagents.com/docs/mcp-setup/
Last changed: 2026-10-30

Updated Oct 30, 2026

The server is at `https://mcp.faxforagents.com/mcp/`, with the trailing slash. It speaks Streamable HTTP and takes your API key as a bearer token on every request. A test key is the free sandbox. There is no OAuth yet.

## Claude Code

Shell

```
`claude mcp add --transport http faxforagents https://mcp.faxforagents.com/mcp/ \ --header "Authorization: Bearer ffa_test_..."`
```

Then in a session: "quote a two page fax to +15550000001 and send it". Claude calls `prepare_fax`, `quote_fax` and `send_approved_fax` and reads the state back with `get_fax_status`.

## Claude Desktop

Settings, Connectors, Add custom connector. Name `faxforagents`, URL `https://mcp.faxforagents.com/mcp/`. Claude Desktop asks for OAuth on a remote server and this server has none yet. Use the stdio bridge below until the OAuth release lands.

JSON

```
`{ "mcpServers": { "faxforagents": { "command": "npx", "args": ["-y", "mcp-remote", "https://mcp.faxforagents.com/mcp/", "--header", "Authorization: Bearer ${FFA_KEY}"], "env": { "FFA_KEY": "ffa_test_..." } } } }`
```

The file is `claude_desktop_config.json` under the Claude application support folder.

## Cursor

`.cursor/mcp.json` in the project, or the global one in `~/.cursor/`:

JSON

```
`{ "mcpServers": { "faxforagents": { "url": "https://mcp.faxforagents.com/mcp/", "headers": { "Authorization": "Bearer ffa_test_..." } } } }`
```

## Codex

Shell

```
`export FFA_KEY=ffa_test_... codex mcp add faxforagents --url https://mcp.faxforagents.com/mcp/ --bearer-token-env-var FFA_KEY`
```

Or in `~/.codex/config.toml`:

TOML

```
`[mcp_servers.faxforagents] url = "https://mcp.faxforagents.com/mcp/" bearer_token_env_var = "FFA_KEY"`
```

## n8n

Add an MCP Client Tool node to an agent workflow. Endpoint `https://mcp.faxforagents.com/mcp/`, transport HTTP Streamable, authentication Header Auth with name `Authorization` and value `Bearer ffa_test_...`. Keep the key in an n8n credential, not in the node.

## How do I check it works?

Ask the client to call `get_guide` with no arguments. The answer is the manual's overview and proves the key and the URL. Then `get_fax_capabilities` shows the limits, the formats and the prices in force for that key.

## What should I tell the agent?

Say what to fax and to whom. The tools do the rest in order: prepare, quote, send. A live API key needs an approval or a policy. The quote says so under `policy`, and `get_review_status` tells the agent when a person has decided. Do not paste an API key into a prompt. Put it in the client's configuration as above.

## From the blog

- [Send a fax with an MCP server: all 15 tools in order](https://faxforagents.com/blog/send-a-fax-with-mcp/)
