# Linear MCP server: URL, tools and setup in Claude Code and Cursor

> Linear's official MCP server at mcp.linear.app: setup in Claude Code, Cursor, Codex and Claude, its 78 tools, the read-only address, fixes, and Upsy.

Updated 2026-11-02 · https://upsy.ai/guides/linear-mcp-server

## Short answer

Linear runs an official MCP server (a connector that lets an AI agent use your Linear) at `https://mcp.linear.app/mcp`. It works in any client that supports remote MCP: you add the address, sign in to Linear in your browser, and the agent can find, create and update issues, projects, documents and more. In Claude Code that's one command:

```
claude mcp add --transport http linear-server https://mcp.linear.app/mcp
```

Then run `/mcp` to sign in. It takes a minute, needs no API key, and Linear lists no plan requirement. For read-only access, use `https://mcp.linear.app/mcp/readonly`. Add Linear through Upsy instead if you want to allow only some actions, use several workspaces in one connection, or keep a history of what every agent did.

## Linear's MCP server

| | |
|---|---|
| Address | `https://mcp.linear.app/mcp` |
| Read-only address | `https://mcp.linear.app/mcp/readonly` |
| Transport | Streamable HTTP. The old `/sse` address now returns 404 |
| Sign-in | OAuth 2.1 with dynamic client registration, or a Linear API key or OAuth token as `Authorization: Bearer` |
| Workspaces | One per sign-in |
| Status | Part of "Linear API" on [linearstatus.com](https://linearstatus.com) |

Linear's [MCP docs](https://linear.app/docs/mcp) have the details. Because the server lets clients register themselves, any MCP client can sign in, with no app of your own to create.

### Connect it to your client

**Claude Code.** Run the command above, then `/mcp` and sign in. For read-only, use the `/mcp/readonly` address instead. More in [connect Linear to Claude](/guides/claude/linear#claude-code).

**Cursor.** Add Linear to `~/.cursor/mcp.json`, or use the install link in Linear's docs:

```json
{"mcpServers":{"linear":{"url":"https://mcp.linear.app/mcp"}}}
```

**Codex.** Run `codex mcp add linear --url https://mcp.linear.app/mcp` and sign in when asked, or run `codex mcp login linear` ([OpenAI's Linear page](https://learn.chatgpt.com/docs/third-party/linear)). The CLI, IDE extension and ChatGPT desktop app share it. Linear's page also mentions an `experimental_use_rmcp_client` setting, which current Codex doesn't need.

**VS Code, Windsurf and Zed.** Linear's docs run the server through `mcp-remote`: `npx -y mcp-remote https://mcp.linear.app/mcp` as a command (stdio) server.

**Claude.** Linear is in Claude's connector directory, on every plan, Free included. Open **Customize › Connectors** and add it. See [Linear in Claude](/guides/claude/linear).

**ChatGPT.** Linear's app in ChatGPT is made by Linear and was updated in March 2026 with actions that change things. See [Linear in ChatGPT](/guides/chatgpt/linear).

**Anything else.** Add a remote MCP server with the address and OAuth. A client without OAuth can send a Linear API key in an `Authorization: Bearer` header.

### Its tools

Linear doesn't publish a tool list. Through an OAuth sign-in on November 2, 2026, the server offered 78 tools, up from 46 in June. 41 are marked read-only.

| Area | Read | Change |
|---|---|---|
| Issues | `list_issues`, `get_issue`, `list_issue_statuses`, `get_issue_status`, `list_issue_labels`, `get_triage_responsibility` | `save_issue`, `share_issue`, `unshare_issue`, `save_issue_label`, `create_issue_label`, `retire_issue_label`, `restore_issue_label` |
| Comments and files | `list_comments`, `get_attachment`, `extract_images` | `save_comment`, `delete_comment`, `prepare_attachment_upload`, `prepare_file_upload`, `create_attachment_from_upload`, `create_attachment`, `delete_attachment` |
| Projects | `list_projects`, `get_project`, `list_project_labels`, `list_milestones`, `get_milestone` | `save_project`, `save_project_label`, `retire_project_label`, `restore_project_label`, `save_milestone` |
| Initiatives and updates | `list_initiatives`, `get_initiative`, `list_initiative_labels`, `get_status_updates` | `save_initiative`, `save_initiative_label`, `create_initiative_label`, `retire_initiative_label`, `restore_initiative_label`, `save_status_update`, `delete_status_update` |
| Documents and templates | `list_documents`, `get_document`, `list_templates`, `get_template` | `save_document` |
| Teams, people and views | `list_teams`, `get_team`, `list_users`, `get_user`, `list_cycles`, `list_custom_views`, `get_workspace`, `whoami` | |
| Releases | `list_release_pipelines`, `list_releases`, `get_release`, `list_release_notes`, `get_release_note` | `save_release`, `save_release_note` |
| Inbox | `get_notifications` | `mark_notification` |
| Code review (diffs) | `list_diffs`, `get_diff`, `get_diff_threads` | `save_diff_comment`, `resolve_diff_thread`, `delete_diff_comment`, `submit_diff_review`, `update_diff`, `merge_diff` |
| Other | `search_documentation`, `list_agent_skills`, `get_agent_skill` | |

- **No tool deletes an issue, project, document or initiative.** The only deletes are comments, attachments, diff comments and status updates.
- **`save_issue` both creates and updates issues,** since February 2026. Allowing one allows the other.
- **`merge_diff` merges code** through Linear's code review, or adds it to the merge queue.
- Your workspace may see a few more or fewer, such as customer-needs tools Linear added in October.

### Where Linear's server stops

- **Read-only is all or nothing.** The read-only address, the `read` scope, or an API key with only the Read permission each block every change. Anything in between, such as comments but no issue changes, depends on your client's own settings.
- **One workspace per sign-in.** Linear says "each workspace needs its own separate authentication context", so a second workspace means a second server entry, or with `mcp-remote` a separate `MCP_REMOTE_CONFIG_DIR`.
- **Many tool definitions.** 78 tools take room in the agent's context before it does anything. One community project, [streamlinear](https://github.com/prime-radiant-inc/streamlinear), claims they cost about 17,000 tokens.
- **No shared record.** What each agent did lives in each client.
- **No published MCP limits.** Users report Cloudflare's "Sorry, you have been blocked" after bursts of parallel `save_issue` calls ([issue #55521](https://github.com/anthropics/claude-code/issues/55521)).

For one workspace in one or two clients, Linear's server is enough.

## Linear MCP servers compared

| | Linear's server | Upsy | tacticlaunch/mcp-linear |
|---|---|---|---|
| Who runs it | Linear | Upsy, on top of Linear's server | You, on your machine |
| Sign-in | OAuth, or an API key | OAuth to Upsy; Upsy signs in to Linear | A Linear API key or OAuth token |
| Tools | 78 | Linear's 78, listed on request | About 230, including archiving issues and projects |
| Limits | Read-only or everything | Read-only, picked tools, or everything, per agent | None built in |
| Workspaces | One per sign-in | Up to 5 in one server | One per running server |
| Record of actions | In each client | History and alerts | Your own logs |

### Community servers

- **[jerhadf/linear-mcp-server](https://github.com/jerhadf/linear-mcp-server)** still ranks high, but its README says it "is now deprecated and is no longer being maintained", and it points to Linear's server.
- **[tacticlaunch/mcp-linear](https://github.com/tacticlaunch/mcp-linear)** is maintained, with a release in October 2026. It runs locally over stdio with an API key and covers far more of Linear's API, including archiving and webhooks.
- **[cline/linear-mcp](https://github.com/cline/linear-mcp)** describes itself as "a private MCP server", has no license, and hasn't changed since August 2025.

### Linear as an MCP client

Since April 2026, Linear Agent, Linear's own assistant, can use other MCP servers ([Linear's docs](https://linear.app/docs/connect-mcp-servers)). An admin turns on **Enable MCP servers**, and each person connects servers from a list, or a custom address, under **Settings › Agent personalization**.

## Upsy's Linear MCP server

Upsy connects to Linear's own MCP server with your Linear sign-in, so the tools are the same 78. It's the same address as Upsy's other apps, `https://upsy.ai/connect`, so one server also holds your Gmail, Slack, Notion and more.

What it adds:

- **Limits per agent, per tool.** **Read-only**, **Pick actions** (the Linear tools you tick) or **Full access**, set for each agent. Upsy refuses the rest on its side, whatever the client does.
- **A short tool list.** Linear comes through three Upsy tools, `app_tools`, `app_read` and `app_call`. Agents look up Linear's tools when they need them, instead of loading all 78 definitions up front.
- **Up to five Linear workspaces** in one server, each with its own access.
- **History and alerts:** every Linear tool an agent runs, refused attempts included, listed under that agent.
- **Any client:** Claude, Claude Code, Cursor, Codex, ChatGPT, Grok, Muse, or anything with remote MCP and OAuth.

### Connect Linear to Upsy

1. Go to [upsy.ai](https://upsy.ai) and click **Set up Upsy**.
2. Open **Apps**, click **Connect an app** and pick **Linear**. Approve access on Linear's consent screen for the workspace you want. For another workspace, click **Add account** next to Linear.
3. On the **Assistants** page, click **Add assistant** and choose your client under **Which assistant?** for its exact steps.

### Add the server to your client

Signing in opens an Upsy page: tick Linear, keep full access or pick **Read-only**, and click **Allow**. To allow only some actions, use **Pick actions** on the agent's page afterwards.

- **Claude Code:** `claude mcp add --transport http --scope user upsy https://upsy.ai/connect`, then `/mcp` to sign in.
- **Cursor:** add `{"mcpServers":{"upsy":{"url":"https://upsy.ai/connect"}}}` to `~/.cursor/mcp.json`, then click **Connect** next to upsy.
- **Codex:** `codex mcp add upsy --url https://upsy.ai/connect`, then `codex mcp login upsy`.
- **Claude and ChatGPT:** add `https://upsy.ai/connect` as a custom connector ([Claude](/guides/claude/custom-connector), [ChatGPT](/guides/chatgpt/custom-connector)).
- **Grok and Muse:** paste the setup prompt Upsy shows into a chat and approve the sign-in.

Server details, such as OAuth endpoints and token lifetimes, are in the [Gmail MCP server guide](/guides/gmail-mcp-server#server-details); they're the same for Linear.

### Check that it works

> Using Upsy, which Linear workspace am I connected to? Then list my open issues, highest priority first.

The agent should name your workspace, then list issues with identifiers such as ENG-142. Upsy's **History** shows "linear get workspace" and "linear list issues" under that agent.

### Picking Linear tools

With **Pick actions**, a sensible start is every read tool plus `save_comment`, so an agent can look things up and leave notes but not change issues. Tick `save_issue` to let it create and update issues, and leave out `merge_diff` unless it should merge code. A tool Linear adds later stays off until you tick it. **Read-only** allows only tools Linear marks read-only, and never one whose name says it changes something, such as save or delete.

## Troubleshooting

### "Your account was authorized, but no MCP server was found at the provided URL"

The client still uses Linear's old `/sse` address, which Linear removed in 2026 ([Linear's changelog](https://linear.app/changelog/2026-02-05-linear-mcp-for-product-management#deprecation-of-sse-mcp-endpoint)). In Claude Code, the same cause shows "DEPRECATED TRANSPORT". Remove the server and add it again with `https://mcp.linear.app/mcp`.

### "Internal server error" with `mcp-remote`

Linear's fix: delete the saved sign-ins with `rm -rf ~/.mcp-auth`, update Node.js, and connect again.

### The agent uses the wrong workspace

Ask it to run `get_workspace`. Signing in again doesn't switch workspaces. Remove the server and sign in to the other workspace, or keep one entry per workspace. Through Upsy, each workspace is its own account, and the agent picks one per request.

### Codex: "No authorization support detected"

A Codex sign-in bug that came back in recent versions ([issue #34427](https://github.com/openai/codex/issues/34427)). Until it's fixed, give Codex a Linear API key in an environment variable and set `bearer_token_env_var` to its name in the server's entry in `~/.codex/config.toml`.

### Linear shows as connected, but with no tools

Reconnect it: `/mcp` in Claude Code, or turn the server off and on in Cursor. In Cursor, "SSE error: undefined" has the same fix.

### "Sorry, you have been blocked"

Too many changes at once. Ask the agent to create issues one at a time, then try again after a few minutes.

### "The user hasn't allowed you to use Linear's "save_issue""

That's Upsy refusing a tool outside the agent's level, such as a create or update on Read-only. Change Linear's level on the agent's page in Upsy.

## Security and privacy

- **Every option acts as you.** Linear's server and Upsy use your Linear sign-in, so the agent sees only what you can see.
- **For a hard limit,** use the read-only address, an API key with only the Read permission, or Upsy's Read-only. Each one blocks changes no matter what the agent tries.
- **API keys** in config files or headers act with your full account until you revoke them in Linear's settings. Prefer OAuth where the client supports it.
- **Through Upsy,** agents never get your Linear token: they call Upsy, and Upsy calls Linear. Upsy emails you when one agent reads 100 or more items in 10 minutes or deletes 50 or more, and when a new agent or app connects.
- **Prompt injection.** An issue or comment can carry instructions aimed at your agent. Keep changes confirmed in your client, or give agents that read public issues Read-only.

## FAQ

### What is the Linear MCP server URL?

`https://mcp.linear.app/mcp`, over Streamable HTTP with OAuth. The read-only version is `https://mcp.linear.app/mcp/readonly`. The old `/sse` address no longer works.

### Is there an official Linear MCP server?

Yes. Linear hosts it, and any Linear account can use it. Claude's directory lists it as made by Linear.

### How do I add the Linear MCP server to Claude Code?

Run `claude mcp add --transport http linear-server https://mcp.linear.app/mcp`, then `/mcp` and sign in to Linear.

### Does Linear MCP work with Codex?

Yes. Run `codex mcp add linear --url https://mcp.linear.app/mcp` and sign in. If sign-in fails, use a Linear API key with `bearer_token_env_var`.

### Can I use a Linear API key instead of OAuth?

Yes. Send it as `Authorization: Bearer <key>`. An API key with only the Read permission gives read-only access.

### Can the Linear MCP server delete issues?

No. It can delete comments, attachments and status updates, but no tool deletes an issue, project, document or initiative.

### How many tools does the Linear MCP server have?

78 on November 2, 2026, 41 of them read-only. The full list is in [its tools](#its-tools).

### Can I connect two Linear workspaces?

Yes, with two separate sign-ins: two server entries in your client, or two accounts in one Upsy server.

---

Upsy connects personal AI assistants (Muse, Grok, ChatGPT, Claude, Cursor, Claude Code, Codex, Devin) to your Gmail, Google Calendar, Google Drive, Slack, Notion and other apps through one MCP server, with a shared memory, files and a cloud browser signed in to your sites. You choose what each assistant may do in each app, see everything it did, and turn it off in one click. Upsy is free. To add Upsy to an assistant, add a remote MCP server (Streamable HTTP) named Upsy at https://upsy.ai/connect. It signs in with OAuth; there is no API key.
