> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aperium.apps.hillspire.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom integrations

> Add a remote MCP server to Aperium so its tools become available to agents.

## What is an MCP server

An **MCP (Model Context Protocol) server** is a small service that exposes a set of tools, resources, or prompts over a standard protocol. Aperium's agents call those tools at runtime to read data, run actions, and integrate with whatever system the server is wired to. Anything an agent can do beyond pure reasoning (querying a database, sending an email, looking up a record in your internal app) is, under the hood, an MCP tool call.

## How Aperium uses custom MCP servers

Aperium ships with built-in MCP servers for common SaaS systems (Google Workspace, Microsoft 365, Slack, Salesforce, NetSuite, BigQuery, Onyx, and so on). When you have a system that isn't on that list, the typical answer is: stand up your own MCP server in front of it, and register it in Aperium as a **custom integration**. The server can be hosted anywhere your agents can reach over HTTPS, and can implement whatever auth model fits your environment (no auth for an internal-only network, or per-user bearer tokens for systems that need user identity).

Once you've registered a custom MCP server, Aperium's agents see its tools the same way they see tools from any built-in connector. Permissions, audit logs, and tenant isolation all work the same way too.

## Adding a custom MCP server

There are two places an admin can add a remote MCP server: the **Admin Console** (any time after first sign-in) and the **admin onboarding flow** (the first time you sign in).

## From the Admin Console

<Steps>
  <Step title="Open the MCP Servers tab">
    In the Admin Console, switch to the **MCP Servers** tab. The tab lists every configured server. Click **+ Add MCP Server** in the top-right corner of the **MCP Servers Management** panel.

    <div
      style={{
  overflow: "hidden",
  borderRadius: "8px",
  border: "1px solid rgba(0, 0, 0, 0.1)",
  position: "relative",
  marginTop: "1rem",
  marginBottom: "0.5rem"
}}
    >
      <img
        src="https://mintcdn.com/aperium/x4v11wsVYDMV_kKG/images/admins/integrations/custom/admin-console-add-button.png?fit=max&auto=format&n=x4v11wsVYDMV_kKG&q=85&s=05d086508580466c63e6a3894b4f3eb9"
        alt="Admin Console MCP Servers tab with the Add MCP Server button highlighted in the top right of the MCP Servers Management panel."
        style={{
      width: "100%",
      display: "block",
      transformOrigin: "87% 41%",
      animation: "aperiumAddMcpZoom 9s ease-in-out infinite"
    }}
        width="2000"
        height="1212"
        data-path="images/admins/integrations/custom/admin-console-add-button.png"
      />

      <style>
        {`
                      @keyframes aperiumAddMcpZoom {
                        0%, 25% { transform: scale(1); }
                        50%, 70% { transform: scale(2.4); }
                        100% { transform: scale(1); }
                      }
                    `}
      </style>
    </div>

    Here's a closer look at the button:

    <Frame>
      <img src="https://mintcdn.com/aperium/x4v11wsVYDMV_kKG/images/admins/integrations/custom/admin-console-add-button-zoom.png?fit=max&auto=format&n=x4v11wsVYDMV_kKG&q=85&s=c4df6f1330378f0b8ef4cfefadae1675" alt="Close-up of the Add Integration and Add MCP Server buttons in the MCP Servers Management header." width="710" height="150" data-path="images/admins/integrations/custom/admin-console-add-button-zoom.png" />
    </Frame>
  </Step>

  <Step title="Fill in the Basics section">
    The **Basics** section describes how the server appears across Aperium.

    * **Display Name.** What admins and agent builders see (for example `My Amazing MCP`).
    * **Name (ID).** A short, stable identifier used internally (for example `AmazingMCP`). Pick something you won't want to rename later.
    * **Description.** Optional one-liner describing what the server is good for.
    * **Enabled toggle.** Decides whether the server's tools load into agent context immediately. Leave it on for normal use; flip it off if you want to register the server but keep its tools out of agent reach for now.

    <Frame caption="The empty Add New MCP Server dialog.">
      <img src="https://mintcdn.com/aperium/x4v11wsVYDMV_kKG/images/admins/integrations/custom/admin-modal-empty.png?fit=max&auto=format&n=x4v11wsVYDMV_kKG&q=85&s=ad036493b39493c889017f10241e834d" alt="Add New MCP Server dialog with empty Display Name, Name (ID), Description, Supported Template, and Remote URL fields, plus an Enabled toggle." width="1840" height="1546" data-path="images/admins/integrations/custom/admin-modal-empty.png" />
    </Frame>
  </Step>

  <Step title="Fill in the Connection section">
    The **Connection** section tells Aperium where the MCP server lives and how to authenticate to it.

    * **Supported Template.** The auth shape Aperium should use when calling the server:
      * **Remote HTTP MCP – No Auth.** For servers that live on a private network and don't require any token. Aperium reaches the server with no `Authorization` header. Best for in-cluster services that are already protected by NetworkPolicy.
      * **Remote HTTP MCP – User Bearer Token.** Aperium attaches each user's per-user token as a `Bearer` token. Use this when your MCP server expects user identity, for example to enforce upstream permissions per user.
    * **Remote URL.** The MCP endpoint URL. The path usually ends in `/mcp` (for example `https://my-amazing-mcp.com/mcp`). Validation runs when the server is saved, so the URL must be reachable from Aperium when you click **Create**.

    <Frame caption="The Add New MCP Server dialog filled out for a User Bearer Token server.">
      <img src="https://mintcdn.com/aperium/x4v11wsVYDMV_kKG/images/admins/integrations/custom/admin-modal-filled.png?fit=max&auto=format&n=x4v11wsVYDMV_kKG&q=85&s=c06f2b9d0860e966ec812b2f3c3cc9d7" alt="Add New MCP Server dialog with Display Name 'My Amazing MCP', Name (ID) 'AmazingMCP', a description, Supported Template set to Remote HTTP MCP - User Bearer Token, and Remote URL set to https://my-amazing-mcp.com/mcp." width="1834" height="1544" data-path="images/admins/integrations/custom/admin-modal-filled.png" />
    </Frame>
  </Step>

  <Step title="Click Create">
    Aperium validates the endpoint, registers the server against your tenant, and reloads the MCP Servers list. The new server appears with its display name, identifier, status pill, and tool count once tools are discovered.

    From there it behaves like any other connector: agents can call its tools, the **Permissions** tab can grant group-level access, and the **Pencil** icon next to the row lets you edit or rotate settings later.
  </Step>
</Steps>

## From the admin onboarding flow

If you're setting Aperium up for the first time, you can register custom MCP servers during the onboarding flow without leaving it.

<Steps>
  <Step title="Click the Remote MCP Servers tile">
    On the **Set your company's tools** screen, click the **Remote MCP Servers** tile.

    <Frame caption="The Set your company's tools screen with a Remote MCP Servers tile.">
      <img src="https://mintcdn.com/aperium/x4v11wsVYDMV_kKG/images/admins/integrations/custom/onboarding-tools-grid.png?fit=max&auto=format&n=x4v11wsVYDMV_kKG&q=85&s=96f54d8e3b92df7491af6250d396875d" alt="Set your company's tools screen with a grid of category tiles including Email, Calendar, Messaging, ERP, CRM, Analytics, and a Remote MCP Servers tile in the bottom row." width="1856" height="1618" data-path="images/admins/integrations/custom/onboarding-tools-grid.png" />
    </Frame>
  </Step>

  <Step title="Open the Add remote MCP server form">
    A modal opens listing every custom server you've added so far. Click **Add remote MCP server** to open the form. You can repeat this step to add as many servers as you need.

    <Frame caption="The Remote MCP Servers modal with an entry to add a new server.">
      <img src="https://mintcdn.com/aperium/x4v11wsVYDMV_kKG/images/admins/integrations/custom/onboarding-add-server-card.png?fit=max&auto=format&n=x4v11wsVYDMV_kKG&q=85&s=b5880d53472ff1ac29e94f2d3dd4916b" alt="Remote MCP Servers modal with copy explaining customer-hosted servers and an Add remote MCP server entry with a plus button." width="1066" height="606" data-path="images/admins/integrations/custom/onboarding-add-server-card.png" />
    </Frame>
  </Step>

  <Step title="Fill in the form">
    The fields are the same as in the Admin Console flow, with one extra: the onboarding form also accepts a free-form **Description** that admins and users will see alongside the server.

    * **Display name.** Shown across the UI.
    * **Server key.** Stable identifier. Use lowercase with underscores (for example `customer_data_mcp`).
    * **Remote URL.** The MCP endpoint, typically ending in `/mcp`.
    * **Authentication.** Pick **Remote HTTP MCP – No Auth** or **Remote HTTP MCP – User Bearer Token**, matching what your server expects.
    * **Description.** Optional context shown to admins and users.

    <Frame caption="The Add remote MCP server form in the onboarding flow.">
      <img src="https://mintcdn.com/aperium/x4v11wsVYDMV_kKG/images/admins/integrations/custom/onboarding-add-server-form.png?fit=max&auto=format&n=x4v11wsVYDMV_kKG&q=85&s=c39bb0038a7a65649f4187b1b19b6bda" alt="Add remote MCP server form with fields for Display name, Server key, Remote URL, Authentication, and Description, plus Cancel and Add server buttons." width="1062" height="1518" data-path="images/admins/integrations/custom/onboarding-add-server-form.png" />
    </Frame>

    Click **Add server** and the server is saved immediately so Aperium can validate the endpoint. When you're done adding servers, click **Done** on the previous modal to return to the onboarding flow.
  </Step>
</Steps>

## Editing a custom server later

Whether you registered the server through onboarding or the Admin Console, you can edit it at any point from the **Admin Console, MCP Servers tab** by clicking the pencil icon next to the row. Aperium asks for confirmation before saving changes that would invalidate connected users (for example switching the auth template).

Custom servers are non-system, so they can also be deleted from the same row when you no longer need them.
