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

# Tools

> Connect external tools so your agents can take actions

Tools let agents take actions in external systems. Send emails, update CRMs, create tickets, post messages, and more.

<Note>
  **Tools vs Data sources:** Data sources sync knowledge *into* Realm so agents
  can search and reference it. Tools let agents act *outward* by performing
  actions in external systems.
</Note>

To manage tools, go to **Agents** > **Tools** or **Settings** > **Tools** in the sidebar.

<Frame caption="Tools page overview">
  <img src="https://mintcdn.com/realm/Qm6Eir5Q8Rj5_NIa/images/admin/tools-overview.png?fit=max&auto=format&n=Qm6Eir5Q8Rj5_NIa&q=85&s=7a30c729acd10b093b3c628d753225c9" alt="Tools page overview" width="1727" height="779" data-path="images/admin/tools-overview.png" />
</Frame>

## Available tools

Realm includes tools for popular workplace apps:

<CardGroup cols={3}>
  <Card title="HubSpot" icon="hubspot" />

  <Card title="Salesforce" icon="salesforce" />

  <Card title="GitHub" icon="github" />

  <Card title="Slack" icon="slack" />

  <Card title="Freshdesk" icon="headset" />

  <Card title="Gong" icon="phone" />

  <Card title="Zendesk" icon="ticket" />

  <Card title="Google BigQuery" icon="database" />

  <Card title="Google Sheets" icon="table" />

  <Card title="Google Drive" icon="google-drive" />

  <Card title="Microsoft 365" icon="microsoft" />

  <Card title="Vitally" icon="chart-line" />

  <Card title="Gmail" icon="envelope" />

  <Card title="Google Calendar" icon="calendar" />

  <Card title="Outlook" icon="envelope" />
</CardGroup>

### Built-in tools

Two tools are available out of the box with no setup required:

| Tool             | Description                                                                                                                        |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| **Email**        | Send emails to Realm users                                                                                                         |
| **HTTP Request** | Send HTTP requests to external APIs and webhooks. Target APIs may still require their own authentication (e.g. headers or tokens). |

### Connection scope

Each tool uses one of two connection scopes. For organization-scoped tools, everyone in the workspace uses the same connection with the same permissions as whoever authenticated the tool. If you want specific access rights, you can create a dedicated account for Realm.

| Scope            | Description                                                                                                               |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------- |
| **Organization** | A single shared connection used by everyone in the workspace. An admin authenticates once and all users can use the tool. |
| **Personal**     | Each user connects their own account. Actions are performed on behalf of the individual user.                             |

<Note>
  Some tools support only one scope. **Gmail**, **Google Calendar**, and
  **Outlook** are personal-only (each user connects their own account).
  **Slack** and **Vitally** are organization-only (one shared connection for the
  whole workspace).
</Note>

## Enabling a Tool

<Steps>
  <Step title="Navigate to Tools">
    Go to **Agents** > **Tools** or **Settings** > **Tools** in the sidebar.
  </Step>

  <Step title="Find the tool">
    Browse the **Available** section for the tool you want to enable.

    <Frame caption="Available tools section">
      <img src="https://mintcdn.com/realm/Qm6Eir5Q8Rj5_NIa/images/admin/tools-available.png?fit=max&auto=format&n=Qm6Eir5Q8Rj5_NIa&q=85&s=654893f4a20a461f25f0a977d95f6fb3" alt="Available tools section" width="1098" height="410" data-path="images/admin/tools-available.png" />
    </Frame>
  </Step>

  <Step title="Configure the tool">
    Click **Configure** or **Enable** on the tool.
  </Step>

  <Step title="Choose scope">
    Select **Organization** or **Personal** as the connection scope. Some tools support only one scope, so the selector is hidden. Gmail, Google Calendar, and Outlook are personal-only. Slack and Vitally are organization-only.

    <Frame caption="Scope selection">
      <img src="https://mintcdn.com/realm/Qm6Eir5Q8Rj5_NIa/images/admin/tools-scope-selection.png?fit=max&auto=format&n=Qm6Eir5Q8Rj5_NIa&q=85&s=8a0ca69d178ffa10f84d49ab1773fd8c" alt="Tool scope selection" width="1556" height="633" data-path="images/admin/tools-scope-selection.png" />
    </Frame>
  </Step>

  <Step title="Authenticate">
    Click **Connect** or **Connect for everyone** to connect the tool.

    For GitHub, GitHub may show **Request** or **Install and request** when an organization owner must approve the Realm GitHub Agent. Realm remains disconnected while approval is pending. After an owner installs the app, return to Realm and connect GitHub again.

    <Frame caption="Authentication step">
      <img src="https://mintcdn.com/realm/Qm6Eir5Q8Rj5_NIa/images/admin/tools-authenticate.png?fit=max&auto=format&n=Qm6Eir5Q8Rj5_NIa&q=85&s=b9719a7d46dcb5eb5ade5e57b243972c" alt="Tool authentication step" width="1556" height="633" data-path="images/admin/tools-authenticate.png" />
    </Frame>
  </Step>
</Steps>

## Managing tools

Once a tool is enabled, click **Configure** to manage its actions, settings, and connections.

### Actions

Each tool exposes individual actions (e.g. "Create Ticket", "Update Contact"). You can toggle specific actions on or off to control exactly what agents are allowed to do with a tool.

<Frame caption="Toggle individual actions on or off">
  <img src="https://mintcdn.com/realm/Qm6Eir5Q8Rj5_NIa/images/admin/tools-actions.png?fit=max&auto=format&n=Qm6Eir5Q8Rj5_NIa&q=85&s=24204715403abf830a0d188336a16122" alt="Actions toggle" width="1506" height="1059" data-path="images/admin/tools-actions.png" />
</Frame>

### Per-agent configuration

<Note>
  For more details on how tools work within agents, see the [User guide:
  Agents](/agents/creating-agents#tools).
</Note>

You can also configure actions and parameters per agent. To access this, go to **Agents** in the sidebar, click on an agent, then click **Edit** in the header. In the **Tools** section, click **Set rules...** on a connected tool.

<Frame caption="Per-agent action and parameter configuration in the agent editor">
  <img src="https://mintcdn.com/realm/4YtIicUROvGb5MzJ/images/admin/tools-per-agent-config.png?fit=max&auto=format&n=4YtIicUROvGb5MzJ&q=85&s=b26113d4fa43d11654668aeca9b64f12" alt="Per-agent action and parameter configuration" width="1360" height="1052" data-path="images/admin/tools-per-agent-config.png" />
</Frame>

**Action modes** control whether each action is allowed:

| Mode          | Behavior                                                       |
| ------------- | -------------------------------------------------------------- |
| **On**        | The agent can use this action freely                           |
| **Off**       | The action is disabled for this agent                          |
| **Ask first** | The agent must get user confirmation before running the action |

**Parameter overrides** let you lock down specific parameters:

| Override              | Behavior                                                                            |
| --------------------- | ----------------------------------------------------------------------------------- |
| **Preset parameters** | Lock a parameter to a specific value (e.g. always send to a specific Slack channel) |
| **Hidden parameters** | Hide a parameter from the model so it can't be changed or seen by the agent         |

Some actions also include behavior settings. For Slack's post-message action,
turn off **Summary thread for long messages** if you want long messages posted
directly instead of as a short parent message with the full content in a thread.

### Settings

Each tool has a **Settings** section with configuration options.

<Frame caption="Tool settings">
  <img src="https://mintcdn.com/realm/Qm6Eir5Q8Rj5_NIa/images/admin/tools-settings.png?fit=max&auto=format&n=Qm6Eir5Q8Rj5_NIa&q=85&s=f55eae6eb3893d4242792a503570cf28" alt="Tool settings with Admin Only toggle and Microsoft Admin Consent" width="1107" height="280" data-path="images/admin/tools-settings.png" />
</Frame>

**Admin Only** toggles the tool so only admins can see and use it. This is useful for tools that perform sensitive operations.

**Microsoft Admin Consent** is available for Microsoft tools like Outlook and Microsoft 365. Click **Grant Admin Consent** to grant consent for all users in your Microsoft tenant. This removes individual consent prompts, so users can connect the tool without going through Microsoft's approval flow themselves.

### Changing scope

You can switch a tool between **Organization** and **Personal** scope after it's been enabled.

<Warning>
  Changing scope may remove existing connections. Users will need to
  re-authenticate after the change.
</Warning>

### Disabling a Tool

Disabling a tool removes all connections and makes it unavailable across the workspace. You can re-enable it at any time.

### Connections

View all active connections for a tool, including:

* Who is connected
* Connection status
* Option to remove individual connections

For **Salesforce**, the list shows the Salesforce account that authorized the
connection, with the Realm user who ran the connect flow shown as
**Connected by**. Agent actions run with that Salesforce account's permissions,
not the Realm user's.

<Note>
  An organization-scope connection is shared by everyone in the workspace and
  runs on a single Salesforce login. Consider authenticating with a dedicated
  Salesforce integration user with a scoped permission set rather than a
  personal account. The **Connections** list is where you verify which account
  is in use.
</Note>

<Frame caption="Connections list">
  <img src="https://mintcdn.com/realm/Qm6Eir5Q8Rj5_NIa/images/admin/tools-connections.png?fit=max&auto=format&n=Qm6Eir5Q8Rj5_NIa&q=85&s=eac68399add5c141beb244525c0734e0" alt="Tool connections list" width="1554" height="841" data-path="images/admin/tools-connections.png" />
</Frame>

### Google file picker

For **Google Drive** and **Google Sheets** tool connections, the **Connections** list includes a **Pick files** button.

Use this when you want to authorize specific Google files for an existing tool connection.

When you click **Pick files**, Realm opens the Google Picker using the credentials from that connection. You can choose one or more files from Google Drive, and Realm stores those selections on the connector for later tool use.

For the **Google Sheets** tool, pick every spreadsheet that agents need to read or update. Connecting Google Sheets authorizes the account, but the spreadsheets still need to be selected with **Pick files** before agents can update them through the Google Sheets tool.

<Note>
  The picker uses the permissions of the connected Google account. It does not
  grant access to files the account cannot already open in Google Drive.
</Note>

To use it:

<Steps>
  <Step title="Open the tool">
    Go to **Agents** > **Tools** or **Settings** > **Tools**, then open **Google Drive** or **Google Sheets**.
  </Step>

  <Step title="Find the connection">
    In the **Connections** section, locate the connection you want to update.
  </Step>

  <Step title="Pick files">
    Click **Pick files**. Google Picker will open in a popup window.
  </Step>

  <Step title="Choose files">
    Select one or more files from Google Drive, then confirm the selection. For Google Sheets updates, select the spreadsheets the agent should be allowed to update.
  </Step>

  <Step title="Save to the connection">
    Realm adds the selected files to that connection immediately. If you use the picker again later, the new selection is merged with the files already stored on the connector.
  </Step>
</Steps>

## MCP Servers

MCP (Model Context Protocol) is a protocol for connecting agents to external tools and data sources. You can add custom MCP servers to extend what your agents can do.

<Note>MCP servers are not available on trial plans.</Note>

### Adding a Server

<Steps>
  <Step title="Open MCP settings">
    Click **Add MCP Server** from the Tools page. You can either connect a **Featured MCP Server** with one click, or add a custom server manually.

    <Frame caption="Add MCP Server button">
      <img src="https://mintcdn.com/realm/Qm6Eir5Q8Rj5_NIa/images/admin/tools-add-mcp-server.png?fit=max&auto=format&n=Qm6Eir5Q8Rj5_NIa&q=85&s=25c1c6d0915ddd2e1f305f3feac36001" alt="Add MCP Server button" width="1508" height="300" data-path="images/admin/tools-add-mcp-server.png" />
    </Frame>

    <Frame caption="Featured MCP Servers">
      <img src="https://mintcdn.com/realm/Qm6Eir5Q8Rj5_NIa/images/admin/tools-featured-mcp.png?fit=max&auto=format&n=Qm6Eir5Q8Rj5_NIa&q=85&s=55a2e56ba48d180ccf6c20819c05a231" alt="Featured MCP Servers" width="1470" height="457" data-path="images/admin/tools-featured-mcp.png" />
    </Frame>
  </Step>

  <Step title="Enter server URL">
    Provide the URL of the MCP server.
  </Step>

  <Step title="Choose transport type">
    Select **HTTP** or **SSE** (Server-Sent Events).
  </Step>

  <Step title="Configure authentication">
    Choose **OAuth** or **Bearer Token** and enter the required credentials. You can also add **custom headers** (e.g. `x-api-key` or vendor version headers). The `Authorization` header is managed separately by the authentication type.
  </Step>

  <Step title="Name the connection">
    Optionally give the connection a descriptive name. This is useful when connecting to the same server multiple times with different credentials.
  </Step>

  <Step title="Add the server">
    Click **Connect** to complete the setup.

    <Frame caption="Add MCP Server form">
      <img src="https://mintcdn.com/realm/Qm6Eir5Q8Rj5_NIa/images/admin/tools-add-mcp-form.png?fit=max&auto=format&n=Qm6Eir5Q8Rj5_NIa&q=85&s=addc4aaf9f59236015428bc419383c3f" alt="Add MCP Server form" width="1506" height="1080" data-path="images/admin/tools-add-mcp-form.png" />
    </Frame>
  </Step>
</Steps>

### Featured servers

Realm highlights these featured MCP servers for quick one-click setup:

<CardGroup cols={3}>
  <Card title="Asana" icon="server" />

  <Card title="Atlassian" icon="confluence" />

  <Card title="Intercom" icon="intercom" />

  <Card title="Linear" icon="diagram-project" />

  <Card title="Notion" icon="n" />

  <Card title="Sentry" icon="bug" />

  <Card title="Stripe" icon="stripe" />

  <Card title="Webflow" icon="server" />
</CardGroup>

### Managing servers

Once added, you can **reconnect** or **delete** MCP servers from the Tools page.

## Troubleshooting

### Salesforce: OAuth Error When Connecting

When connecting the Salesforce tool, you may see an OAuth error page like this:

<Frame caption="Salesforce OAuth error page">
  <img src="https://mintcdn.com/realm/zMIgV_phWf3QF7Fs/images/admin/salesforce-oauth-error.png?fit=max&auto=format&n=zMIgV_phWf3QF7Fs&q=85&s=ef32f0ef44827384a8d5035712bf91d6" alt="Salesforce OAuth error page" width="552" height="446" data-path="images/admin/salesforce-oauth-error.png" />
</Frame>

This is typically caused by a recent Salesforce security change that requires connected apps to be explicitly installed before they can be used. You can confirm this is the issue by checking the URL in your browser's address bar. If it contains `error=invalid_client&error_description=app+must+be+installed+into+org`, then the Realm app needs to be installed in your Salesforce org.

**To fix this:**

<Steps>
  <Step title="Open Salesforce Setup">
    Log in to Salesforce as an admin and go to **Setup** > **Connected Apps OAuth Usage**.
  </Step>

  <Step title="Install the Realm app">
    Find the **Realm** app in the list and click **Install**.

    <Frame caption="Connected Apps OAuth Usage page with Install button for Realm">
      <img src="https://mintcdn.com/realm/zMIgV_phWf3QF7Fs/images/admin/salesforce-connected-apps-install.png?fit=max&auto=format&n=zMIgV_phWf3QF7Fs&q=85&s=46c8445019820ffcc69f6d05549aa318" alt="Salesforce Connected Apps OAuth Usage page showing the Realm app with an Install button" width="909" height="367" data-path="images/admin/salesforce-connected-apps-install.png" />
    </Frame>
  </Step>

  <Step title="Reconnect in Realm">
    Return to Realm and try connecting the Salesforce tool again.
  </Step>
</Steps>

For more details, see [this Salesforce article](https://help.salesforce.com/s/articleView?id=005132365\&type=1).

## Admin vs user permissions

| Capability                    | Admin | Regular User |
| ----------------------------- | ----- | ------------ |
| Enable/disable tools          | Yes   | No           |
| Change connection scope       | Yes   | No           |
| Set admin-only restriction    | Yes   | No           |
| Grant Microsoft Admin Consent | Yes   | No           |
| View all connections          | Yes   | No           |
| Connect personal-auth tools   | Yes   | Yes          |
| View enabled tools            | Yes   | Yes          |
| Manage own connections        | Yes   | Yes          |
