---
title: "Remote MCP server"
description: "Add MySpec as a connector in Claude or ChatGPT, or connect any HTTP MCP client with OAuth or an API token."
---

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

# Remote MCP server

The remote MySpec MCP server is hosted for you. There is nothing to install.

```text title="MCP server URL"
https://mcp.myspec.dev/mcp
```

Paste the URL exactly as shown, including `/mcp`. Sign-in is tied to this
address, so a different URL will not work.

## Add MySpec to your client

When you connect, your browser opens a MySpec consent page. Sign in if you need
to, then choose:

- **Organization**: the app can only see and change this organization's projects.
- **Access**: read only, or tick **Also make changes** to let the app create,
  edit and delete projects, spec files and comments.

Select **Allow access** to finish.

### Claude

Works in claude.ai, Claude Desktop and the mobile apps.

1. Open **Settings → Connectors**.
2. Select **Add custom connector**.
3. Paste `https://mcp.myspec.dev/mcp` and confirm.
4. Sign in to MySpec and approve access.

### Claude Code

```bash
claude mcp add --transport http myspec https://mcp.myspec.dev/mcp
```

Then run `/mcp` inside Claude Code, choose **myspec** and authenticate.
Your browser opens the consent page.

### ChatGPT

1. Open **Settings → Apps & Connectors** and turn on developer mode.
2. Select **Create**.
3. Paste `https://mcp.myspec.dev/mcp` and choose **OAuth** for authentication.
4. Sign in to MySpec and approve access.

### Other clients

Any client that implements the MCP authorization specification can connect
with OAuth: point it at `https://mcp.myspec.dev/mcp` and follow its sign-in
flow. Clients that cannot do OAuth can use an
[API token](#connect-with-an-api-token) instead.

## Connect with an API token

Use an API token when the client cannot open a browser, for example on a server
or in CI. [Create a token](/mcp/api-tokens/), then send it as a bearer token on
every request:

```http
POST /mcp HTTP/1.1
Host: mcp.myspec.dev
Authorization: Bearer msp_pat_…
Content-Type: application/json
Accept: application/json, text/event-stream
```

For example, in a client configuration file:

```json title="mcp.json"
{
  "mcpServers": {
    "myspec": {
      "type": "http",
      "url": "https://mcp.myspec.dev/mcp",
      "headers": { "Authorization": "Bearer msp_pat_…" }
    }
  }
}
```

Or with Claude Code:

```bash
claude mcp add --transport http myspec https://mcp.myspec.dev/mcp \
  --header "Authorization: Bearer msp_pat_…"
```

## Limit the tools your agent sees

By default the server offers all its tools. To offer fewer, send the optional
`X-MCP-Tools` header with a comma-separated list of tool names:

```http
X-MCP-Tools: list_projects,get_project,list_spec_file,read_spec_file
```

- Unknown names are ignored. If none of the names are known, the agent gets no
  tools at all, never the full set.
- The list applies to both listing and calling tools.
- A header with more than 64 names, or longer than 4,096 bytes, is rejected
  with an HTTP 400 error.

## How it differs from the local server

The remote server has no access to your file system, so a few tools behave
differently:

- There is no `download_spec_file`. Use `read_spec_file`, which pages through a
  file 2,000 lines at a time.
- `upload_attachment` takes the file content as base64 (up to 10 MiB), not a
  local path.
- `update_spec_file` always requires `expected_version`, so a concurrent edit is
  reported as a conflict instead of being overwritten. Read the file first and
  pass the `content_version` you got back.
- `list_spec_sessions` returns at most 20 sessions per page.
- Brownfield sessions need the local server's `reverse` command to read your
  code. See [Local MCP server](/mcp/local-server/#share-a-local-folder-for-brownfield-projects).

## Disconnect an app

Open the avatar menu in MySpec and choose **Connected apps**. It lists every app
you have connected, with its organization and access. Select **Disconnect** to
remove one; it loses access within about a minute.

> **Removing the connector in Claude or ChatGPT is not enough**
>
> Removing MySpec from the app's own settings does not revoke its access to
> MySpec. Always disconnect it under **Connected apps** as well.

Leaving an organization, or being removed from it, also ends the connection.
The app will ask you to connect again.

## Troubleshooting

| Problem | What to do |
|---|---|
| The client never opens a browser to sign in | Check that you pasted `https://mcp.myspec.dev/mcp` exactly, including `/mcp`. |
| "The app asking for access is not recognised" | Start the connection again from the app. If it keeps happening, the app may not support MCP sign-in; use an API token. |
| A tool fails because the app lacks write access | The connection is read only. Disconnect it under **Connected apps**, connect again and tick **Also make changes**. Claude asks for write access by itself; ChatGPT needs you to reconnect. |
| Every call fails right after signing in | Make sure the URL in the client matches `https://mcp.myspec.dev/mcp` exactly. |
| A revoked token or disconnected app still works briefly | Expected. Access ends within about a minute. |

Source: https://docs.myspec.dev/mcp/remote-server/index.mdx
