# MCP Gateway Quickstart

This quickstart creates a gateway endpoint, adds the Linear MCP server to it, and connects Claude Code to the gateway by URL. Every Linear tool call from Claude Code then runs through the gateway, which authenticates the caller, checks access, and logs the call.

## Prerequisites

- A Speakeasy account. [Sign up](https://ai.speakeasy.com/sign-up) for free.
- Gateway endpoints enabled for the organization. Gateways are enabled per organization. To turn them on, contact Speakeasy.
- [Claude Code](https://docs.claude.com/en/docs/claude-code/overview) installed.
- A Linear account.

## Step 1: Create a gateway

Open [**MCP Gateway > MCP**](https://ai.speakeasy.com/@self/projects/default/mcp) in the dashboard. Select **Add new**, then **New gateway**, and name the gateway, for example `Engineering`.

The platform creates a hosted address and a dedicated sign-in for the gateway, so callers must authenticate before they can connect.

## Step 2: Add the Linear MCP server

On the gateway's **Overview** tab, select **Add servers**. In the sheet that opens, create a new server from the catalog:

- Search the catalog for **Linear**.
- Open the Linear entry and select **Add**.
- Skip the upstream headers step. Linear authenticates with OAuth, which the platform configures automatically.

The platform registers Linear as a [remote MCP server](/docs/ai-control-plane/mcp-gateway/remote-servers) and adds it to the gateway. Linear keeps running the server, and the gateway proxies each session to it.

> The Linear server joins the gateway when it is created. It also gets its own URL, which keeps working if the server is later removed from the gateway.

## Step 3: Copy the gateway URL

On the gateway's page, copy its connection URL. This is the only address Claude Code needs.

## Step 4: Connect Claude Code

Add the gateway to Claude Code as an HTTP MCP server. Replace `` with the URL from step 3:

```bash
claude mcp add --transport http --scope user speakeasy-gateway '<gateway URL>'
```

The `--scope user` flag makes the gateway available in every project on the machine. To limit it to the current project, use `--scope project` instead.

Start Claude Code, run `/mcp`, select **speakeasy-gateway**, and choose **Authenticate**. A browser window opens:

- Sign in with the Speakeasy account.
- On the consent screen, connect Linear and approve access.

The gateway collects every upstream grant on one consent screen, so later members added to the gateway appear in the same flow.

## Step 5: Test the connection

In Claude Code, ask:

```text
List the servers available through the speakeasy-gateway MCP server.
```

Claude Code calls the gateway's `list_servers` tool, which returns Linear. Then ask for something from Linear:

```text
Show my open Linear issues.
```

Claude Code finds the Linear tools through the gateway, then calls them. If Linear reports that it is not connected, ask Claude Code to check the gateway connection status, follow the **Connect** link, and ask again.

To confirm the calls went through the gateway, open [**Observability > Tool Logs**](https://ai.speakeasy.com/@self/projects/default/logs) in the dashboard. Each call is listed with the person and client that made it, tagged with the gateway that routed it.

## Next steps

- Add more servers on the gateway's **Overview** tab. They appear in Claude Code without a new URL or a new `claude mcp add` command.
- Control who can connect and which tools they get on the **Team Access** tab. See [Team access](/docs/ai-control-plane/mcp-gateway/access/team-access).
- Read [Gateway Endpoints](/docs/ai-control-plane/mcp-gateway/gateway-endpoints) for member status, custom instructions, and observability.
- Roll the gateway out to a team with [plugins](/docs/ai-control-plane/mcp-gateway/plugins) instead of a per-person command.

---

Index of every Speakeasy page for agents: [llms.txt](https://www.speakeasy.com/llms.txt). AI control plane and MCP gateway content in one file: [llms-full.txt](https://www.speakeasy.com/llms-full.txt). Any page is available as markdown by appending `.md` to its URL or by requesting it with `Accept: text/markdown`.
