Skip to content →
Sign upOpen app

MCP server

The Model Context Protocol (MCP) server provides a standardized interface that allows any compatible AI model or agent to access your Linear data in a simple and secure way.

Connect to our MCP server natively in Claude, Cursor, and other clients or use the mcp-remote module for backwards compatibility with clients that do not support remote MCP.

Linear's MCP server follows the authenticated remote MCP spec, so the server is centrally hosted and managed. The Linear MCP server has tools available for finding, creating, and updating objects in Linear like issues, projects, and comments — with more functionality on the way, and feedback on its functionality is welcomed.

Setup Instructions

General

Our MCP server supports both Server-Sent Events (SSE) and Streamable HTTP transports. Both transports use OAuth 2.1 with dynamic client registration for authentication at the following addresses:

  • HTTP: https://mcp.linear.app/mcp
  • SSE: https://mcp.linear.app/sse

We recommend using the streamable HTTP endpoint where supported for increased reliability. For instructions for specific clients, read on…

Claude

Team, Enterprise (Claude.ai)

  • Navigate to Settings in the sidebar on web or desktop
  • Scroll to Integrations at the bottom and click Add more
  • In the prompt enter:
    • Integration name: Linear
    • Integration URL: https://mcp.linear.app/sse
  • Make sure to enable the tools in any new chats

Free, Pro (Claude desktop)

  1. Open the file ~/Library/Application Support/Claude/claude_desktop_config.json
  2. Add the following and restart the Claude desktop app:
{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.linear.app/sse"]
    }
  }
}

Claude Code

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

Then run /mcp once you've opened a Claude Code session to go through the authentication flow.

Cursor

Install here, or from Cursor's MCP tools page.

Visual Studio Code

{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.linear.app/sse"]
    }
  }
}
  1. CTRL/CMD P and search for MCP: Add Server.
  2. Select Command (stdio)
  3. Enter the following configuration, and hit enter.

npx mcp-remote https://mcp.linear.app/sse

  1. Enter the name Linear and hit enter.
  2. Activate the server using MCP: List Servers and selecting Linear, and selecting Start Server.

Windsurf

  1. CTRL/CMD , to open Windsurf settings.
  2. Under Scroll to Cascade -> MCP servers
  3. Select Add Server -> Add custom server
  4. Add the following:
{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.linear.app/sse"]
    }
  }
}

Zed

  1. CMD , to open Zed settings.
  2. Add the following:
{
  "context_servers": {
    "linear": {
      "command": {
        "path": "npx",
        "args": ["-y", "mcp-remote", "https://mcp.linear.app/sse"],
        "env": {}
      },
      "settings": {}
    }
  }
}

Others

Hundreds of other tools now support MCP servers, you can configure them to use Linear's MCP server with the following settings:

  • Command: npx
  • Arguments: -y mcp-remote https://mcp.linear.app/sse
  • Environment: None

FAQ

Enter the following in the Terminal to clear saved auth info: rm -rf ~/.mcp-auth then try again to connect.

Additionally you may need to update to a newer version of node if required.

Try instead to connect using:
{"mcpServers": {"linear": {"command": "wsl","args": ["npx","-y","mcp-remote","https://mcp.linear.app/sse","--transport sse-only"]}}}

Yes, at the https://mcp.linear.app/mcp endpoint

Not currently.

Our MCP server follows the spec for authentication using OAuth with dynamic client registration. That auth flow is not explicitly supported by most client libraries. FastMCP is an example of one that does support it; if your client supports stdio MCPs, you can also use mcp-remote.

Either one will open a browser window for authentication, so they aren't a great fit for deployed applications. Manually copying around tokens obtained by these tools into headers may work, but these tokens will expire regularly, it's not recommended. Allowing you to pass through your own OAuth access tokens / API keys is something we're exploring, but it's not specced or implemented at the moment.