MCP Integration

Model Context Protocol Integration

Connect Horizon to Claude and ask the Superconsultant about your organization, with your Horizon permissions, audit logs, and SSO carried over. Built for enterprise teams that need transparency before adoption.

Overview

What is MCP?

The Model Context Protocol (MCP) is an open standard created by Anthropic that lets AI assistants connect to external tools and data sources in a controlled, auditable way. Instead of giving AI models direct access to your systems, MCP defines a structured protocol where each request is authenticated, scoped, and logged.

Horizon exposes its Superconsultant, an AI-powered organizational analysis agent, through MCP. Your team can query Horizon from compatible AI clients, such as Claude on the web or in the desktop app, while the same permission model, access controls, and audit logs as the Horizon web app stay in force. No new permission layer is introduced, and data never leaves Horizon's infrastructure.

MCP server URL

https://api.usehorizon.ai/mcp

Add this as a custom connector in Claude, on the web or in the desktop app. You sign in with your normal Horizon account. There is no configuration file to edit and no token to create.

Read the setup manual

Security & Architecture

Enterprise-grade by design

Authenticated access

There are two ways to connect, and both authenticate as a real Horizon user. Claude connects as a custom connector: you sign in to Horizon and approve the connection, and no token is created or handled. A client that cannot sign in itself uses a bearer token instead, generated from your authenticated Horizon session, cryptographically random, and revocable at any time by you or an administrator.

The same permissions as the web app

MCP does not introduce a separate permission model. The connection inherits the exact access scope of the person behind it: same companies, same workspaces, same data boundaries. No escalation path exists through MCP.

Encrypted transport

All communication between the AI client and Horizon's MCP server uses HTTPS with TLS 1.2 or later. Data in transit is encrypted end to end, with no intermediate cache and no third-party relay.

Audit logging

Every request made through MCP is logged with full context: user identity, company, workspace, timestamp, and request type. Those records go to the same access audit trail as the rest of Horizon, and Horizon can produce them for a compliance review on request.

How data flows

When a user sends a question through an MCP-compatible AI client, the request is forwarded to Horizon's MCP server over HTTPS. The Superconsultant processes the question using only the data the user is authorized to access, and the answer goes back to the AI client. At no point does the AI client receive direct database access or bulk data exports. Every request is scoped to one company, and to one workspace when your access is workspace-scoped.

Access is resolved per user. The connection authenticates as the person who signed in and never widens what they can see: company and workspace access are re-checked on every call.

The four tools Claude gets

Connecting Horizon adds four tools. Three of them only read, and run without asking. The fourth is the one that does the work, and your client confirms it every time.

  • get_prompting_guide returns Horizon's guidance on how to phrase a good question. Read-only.
  • list_companies lists the companies you can access. Read-only.
  • list_workspaces lists the workspaces you can access inside a company. Read-only.
  • superconsultant_ask asks the Superconsultant a question. Declared as able to change data, because a question that asks it to act (publishing an initiative, for example) does exactly that.

What MCP can and cannot do

It can ask the Superconsultant about processes, insights, discovery cycles, and organizational data the user has access to. It can also act on that data when a question asks it to, in the same ways it can from the web app, such as publishing an initiative.

Because of that, Horizon declares the ask as a tool that changes data, and the three supporting tools as read-only. Your client uses those declarations to decide when to ask your permission, so it confirms every question before sending it and runs the other three without asking.

On Team and Enterprise plans, an Owner can use the same declarations to allow reads and block writes across the organization, from Claude's own connector settings. It cannot:

  • Reach data outside the user's permission scope. Company and workspace access are re-checked on every request.
  • Bypass SSO, 2FA, or any identity provider control configured for the organization.
  • Export data in bulk or provide direct database connectivity.

Token lifecycle

This applies to the token route only. The Claude connector signs in instead, so there is no token to rotate or lose.

  • You generate tokens from your Horizon account settings after signing in.
  • One active token per user at a time. To rotate, revoke the current token first, then generate the replacement: Horizon refuses to mint a second one while an active token exists.
  • Tokens are shown once, at creation. If you lose one, revoke it and generate a new one.
  • Revoking a token is immediate and permanent. There is no grace period.
  • Tokens are independent of web sessions. Signing out of the Horizon web app does not invalidate an MCP token, and revoking a token does not sign you out.
  • Revoking a token does not disconnect the Claude connector, which signs in instead of holding a token. To cut a connector off, remove it in Claude's connector settings or deactivate the person's Horizon account.

Compliance

Built for regulated environments

  • SOC 2 Type II compliant infrastructure. Horizon's hosting, data handling, and access controls are independently audited.
  • GDPR-ready data handling. Personal data processing follows data minimization principles, and users and admins can control data retention.
  • Enterprise SSO support. MCP access inherits user identity from SSO-authenticated accounts (SAML, OIDC). No separate credentials are needed.
  • Rate limiting per user on the questions you ask, to prevent abuse. Listing your companies and workspaces is not metered.
  • No additional copies of your data. MCP requests are processed on the same infrastructure that serves the Horizon web application.

Setup manual

How to connect Horizon to Claude

There are two ways in, and which one you use depends on the client. Claude adds Horizon as a custom connector: you paste one URL and sign in, and there is no token to create or store. Any client that cannot sign in for itself uses a token instead.

The Horizon MCP server lets Claude ask the Superconsultant about the data in your Horizon account: companies, processes, insights, and initiatives. Your own permissions are applied on every request.

Recommended

Add Horizon as a custom connector

This is the route to use for Claude, on the web or in the desktop app. It takes about a minute and needs no configuration file, no Node.js, and no token.

Before you start

  • A Horizon account with access to at least one company.
  • Claude on the web or in the desktop app. Custom connectors work on every Claude plan, including Free, which is limited to one.
  • On a Team or Enterprise plan, an organization Owner has to add the connector once before members can connect. See the table further down.
1

Open your connector settings in Claude

  • In Claude, go to Settings, then Connectors.
  • This works the same in the web app and in the desktop app.
2

Add a custom connector

Click Add custom connector.

3

Enter the Horizon details

Name it "Horizon" and enter the MCP server URL:

https://api.usehorizon.ai/mcp

There is nothing to fill in under Advanced settings. Horizon supports dynamic client registration, so Claude registers itself. There is no client ID or secret to paste.

4

Sign in to Horizon

Click Connect. Horizon's sign-in page opens, and you sign in with your normal Horizon account.

5

Approve the connection

A consent screen shows which companies the connection will cover. Click Allow to let Claude ask the Superconsultant on your behalf.

The connection authenticates as you and never widens what you can see. Company and workspace access are re-checked on every call.

On a Team or Enterprise plan

Members cannot add a custom connector themselves. An organization Owner adds it once, and everyone else then connects to it individually with their own Horizon credentials, so each person keeps their own permission scope. On Pro and Max you add it yourself and none of this applies.

WhoWhereWhat they do
Owner, once per organizationOrganization settings, then ConnectorsAdd, then Custom, then Web. Paste https://api.usehorizon.ai/mcp and click Add.
Each member, afterwardsCustomize, then ConnectorsFind the connector labelled "Custom", click Connect, sign in to Horizon, and approve.

This is a Claude platform rule, not a Horizon one, and a directory listing does not change it: on Team and Enterprise plans an Owner always enables a connector for the organization before members can use it.

Owners can also limit what a connected service is allowed to do across the organization, including allowing reads while blocking writes. Horizon's tools declare which they are, so that control applies to Horizon without Horizon changing anything.

Claude asks before every question

Claude confirms each question before it sends it. That is intended, not a bug: superconsultant_ask can act on your data when a question asks it to, so Claude treats asking as an action worth confirming. The three tools that list your companies and workspaces and fetch the prompting guide are read-only and run without a prompt.

Check that it works

  • Open a new chat and confirm Horizon shows up in the connector list with its tools enabled.
  • Ask something about your organization and approve the call. The answer should be grounded in your own Horizon data.
Alternative

Connect another client with a token

Use this route for a client that cannot sign in for itself, or for a Claude Desktop setup you already run through a configuration file. It still works, and it is no longer the recommended way in.

Prerequisites

  • The Claude desktop app (Mac or Windows), or another MCP client that accepts a Bearer token.
  • Node.js and npx installed, which mcp-remote needs. If you don't have them, download the LTS version from nodejs.org/en/download.
  • A Horizon account with permission to generate an access token.
1

Open Settings

  • Open the Claude desktop app.
  • Go to Settings. On Mac you can also use the ⌘ + comma shortcut.
2

Go to the Developer section

  • Inside Settings, select the Developer tab in the side menu.
  • That is where the MCP server configuration lives.
3

Open the config file

Click Edit Config. This opens or creates the claude_desktop_config.json file, which you can edit with your text editor. The paths are:

Mac:      ~/Library/Application Support/Claude/claude_desktop_config.json
Windows:  %APPDATA%\Claude\claude_desktop_config.json
4

Paste the Horizon JSON

Paste the following block into the file. If the file is empty, paste the full structure:

{
  "mcpServers": {
    "horizon-production": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.usehorizon.ai/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer (TOKEN)"
      }
    }
  }
}

If you already have other MCPs configured, add horizon-production inside mcpServers, separated by a comma. Do not delete the existing ones.

5

Create the token in Horizon

The token authenticates Claude with Horizon. To generate it:

  • Go to app.usehorizon.ai/mcp with your account. You can also get there from your account menu (avatar, bottom left), under MCP Connection.
  • That screen shows two blocks: Server Information (with the MCP Server URL, the same one from the JSON) and API Tokens.
  • In API Tokens, click Generate Token.
  • Give it a name that identifies the client (for example Claude-Juan) and confirm.
  • Copy the token right away. It is shown only once.

Only one token can be active at a time, and Horizon refuses to mint a second one while an active token exists. To rotate, revoke the current token first, then generate the replacement.

Treat the token like a password. Do not share it or push it to public repositories. If it leaks, revoke it from the same screen and generate a new one.

6

Paste the token into the config

Go back to the claude_desktop_config.json file and replace (TOKEN) with the token you copied, keeping the word Bearer and the space before the token. Then save the file.

"env": {
  "AUTH_HEADER": "Bearer tok_your_real_token_here"
}

The value should read Bearer, a space, then the token. If you delete Bearer or the space, authentication fails.

7

Restart Claude

  • Quit the Claude app completely. Use Quit, closing the window is not enough.
  • Open it again. The app loads the configuration and starts the Horizon server via mcp-remote.
  • In a new conversation, open the tools menu and confirm the horizon-production tools show up.

Common errors

ProblemLikely causeFix
Authentication error (401)The token is invalid or expired, or the word Bearer was dropped.Regenerate the token and send the value as Bearer followed by the token.
npx or mcp-remote not foundNode.js is missing.Install Node.js and restart the client.
The Developer tab does not show upYou are on the web version.Use the desktop app, or connect Claude as a custom connector instead, which works on the web.
Changes have no effectThe app was not fully restarted.Quit completely and open it again.
The custom connector will not connect at allThe connector was added with a different URL.Remove it in Claude and add it again with the exact server URL above.

Documentation

Download the MCP guidelines

Get a complete reference document covering Horizon's MCP security model, data flow, capabilities, compliance posture, and access management. Ready to share with your procurement, legal, or IT security team.