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

# Networking

> How hosted and external MCP traffic crosses the Horizon network boundary, including static egress addresses and allowlisting.

export const staticIpsPlans = "Developer and Enterprise";

Horizon exposes public HTTPS endpoints to MCP clients and makes outbound
connections when hosted server code or the gateway calls another system. The
direction of the connection determines which network control to configure.

| Traffic                                   | Direction                     | Network boundary                                                                            |
| ----------------------------------------- | ----------------------------- | ------------------------------------------------------------------------------------------- |
| MCP client to Horizon                     | Inbound to Horizon            | The client connects to a Horizon server URL or [custom domain](/custom-domains) over HTTPS. |
| Hosted server to an upstream API          | Outbound from Horizon compute | The upstream system sees a Horizon egress address.                                          |
| Horizon gateway to an external MCP server | Outbound from the gateway     | The remote endpoint must accept HTTPS connections initiated by Horizon.                     |

## Static egress addresses

Static egress addresses let an upstream system allowlist traffic from Horizon
without opening access to the wider internet. They are available on
{staticIpsPlans}.

The addresses are shared Horizon infrastructure rather than dedicated addresses
for one server. Allowlist every address for each applicable traffic path so
traffic remains available across Horizon's runtime capacity.

Once static IPs are enabled, hosted and external servers receive static egress on their next deployment.

| Traffic path                        | Region                      | Egress addresses                      |
| ----------------------------------- | --------------------------- | ------------------------------------- |
| Hosted and external server runtimes | United States (`us-east-1`) | `52.71.188.148`<br />`54.243.154.171` |
| Horizon gateway and build jobs      | United States (`us-east-1`) | `3.226.68.95`<br />`18.213.238.230`   |
| Horizon web app requests to GitHub  | United States               | `35.173.11.78`<br />`54.174.250.177`  |

For a GitHub organization with an IP allowlist, allowlist both the **Horizon
gateway and build jobs** addresses and the **Horizon web app requests to
GitHub** addresses. Contact
[horizon-support@prefect.io](mailto:horizon-support@prefect.io) if you need help
determining which traffic paths apply.

Static egress is useful when:

* hosted tools call an API that restricts callers by source address
* Horizon connects to an external MCP endpoint behind an IP allowlist
* a build needs to reach a restricted GitHub Enterprise endpoint

A static egress address identifies Horizon as the network source. Horizon
[authentication](/platform/authentication) and
[authorization](/platform/authorization) still identify and govern the actor
inside each MCP request.

## External endpoints

The Horizon gateway initiates connections to external MCP servers. The remote
endpoint must therefore be reachable from Horizon over public HTTPS. An endpoint
that accepts only connections from its own private network cannot be registered
directly.

To keep a publicly reachable endpoint restricted, expose HTTPS on port 443 and
allowlist Horizon's static egress addresses. Continue to require OAuth or an API
key at the remote endpoint because an IP allowlist complements application
credentials rather than replacing them. An outbound-only firewall rule does not
make the remote server reachable from Horizon.

## Related docs

<CardGroup cols={2}>
  <Card title="External servers" icon="plug" href="/servers/external">
    Register an MCP endpoint that runs outside Horizon.
  </Card>

  <Card title="Custom domains" icon="globe" href="/custom-domains">
    Serve a hosted server from a subdomain you control.
  </Card>

  <Card title="Gateway" icon="route" href="/gateway">
    Follow an MCP request through routing and access checks.
  </Card>
</CardGroup>
