/mcp, shown on its
Deployments page, of the form
https://<server-name>.fastmcp.app/mcp. The examples below use
https://weather-mcp.fastmcp.app/mcp; substitute your own.
Horizon’s dashboard generates ready-to-paste configuration for each supported
client. Open a server, choose Connect, and pick your client to get the exact
snippet with your URL and any required credentials already filled in. This page
explains what those snippets contain so you can read, adapt, and troubleshoot
them.
Authentication
How a client proves its identity depends on the server’s authentication mode and on what the client supports. For the full model, see Authentication. A server with Horizon authentication enabled requires every caller to authenticate, and there are two ways a client does so:- Interactive sign-in. Clients that support authenticated MCP connections open a Horizon sign-in flow the first time they connect. The user signs in, and the client holds the resulting credential. This is the smoothest path for desktop and CLI clients that prompt for authorization.
-
API key. Clients that cannot sign in interactively send a Horizon
API key as a bearer token. Keys start with
fmcp_and go in theAuthorizationheader:
Desktop clients
Claude Desktop and Cursor read MCP servers from a JSON config. Add your server undermcpServers with its URL. Include an Authorization header only when the
server needs an API key; clients that sign in interactively leave it out.
For Claude Desktop, open Settings → Developer → Edit Config, add the
server, and restart Claude:
transport field:
cursor:// deeplink that adds the server without editing config by hand.
CLI clients
Command-line clients add a server with a single command. Each takes a name, the URL, and the HTTP transport, and accepts--env flags for values your client
passes through.
Claude Code authenticates interactively: run the command, then type /mcp
in Claude Code to complete sign-in.
ChatGPT
ChatGPT connects to MCP servers from its web interface rather than a config file. Enable Developer mode in settings, create a new app, choose OAuth for authentication, and paste your server URL into the MCP Server URL field. ChatGPT then runs the Horizon sign-in flow and authorizes the requested permissions.When a connection fails
A failed connection usually stops at the gateway before reaching your server code. The status tells you where:401 Unauthorized
401 Unauthorized
403 Forbidden
403 Forbidden
The caller authenticated, but access settings do not allow them to use the
server or the requested capability. Check organization membership, server
access, and capability policy in Authorization.
404 Not Found
404 Not Found
The URL maps to no live server, or Horizon is concealing a server from a
caller without discovery access. Confirm the URL on the
Deployments page and the caller’s access.
The client connects but tools are missing
The client connects but tools are missing
Some clients cache the server’s tool list. Reconnect or refresh the client’s
capabilities. If a tool is still absent, confirm the live deployment selects
the build whose manifest contains it.