MCP setup

Updated

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.