forked from linear/linear
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmcp-server
More file actions
158 lines (114 loc) · 5.58 KB
/
mcp-server
File metadata and controls
158 lines (114 loc) · 5.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# 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`](https://github.com/geelen/mcp-remote) module for backwards compatibility with clients that do not support remote MCP.
Linear's MCP server follows the authenticated remote [MCP spec](https://modelcontextprotocol.io/specification/2025-03-26), 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](https://linear.app/contact/support) 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:
```json
{
"mcpServers": {
"linear": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.linear.app/sse"]
}
}
}
```
**Claude Code**
```json
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](cursor://anysphere.cursor-deeplink/mcp/install?name=Linear&config=eyJ1cmwiOiJodHRwczovL21jcC5saW5lYXIuYXBwL3NzZSJ9), or from Cursor's [MCP tools page](https://docs.cursor.com/tools).
### Visual Studio Code
```json
{
"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:
```json
{
"mcpServers": {
"linear": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.linear.app/sse"]
}
}
}
```
### Zed
1. `CMD + ,` to open Zed settings.
2. Add the following:
```json
{
"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
<details>
<summary>Why am I seeing an internal server error when trying to connect?</summary>
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.
</details>
<details>
<summary>I'm using WSL on Windows, and seeing an error</summary>
Try instead to connect using:
{"mcpServers": {"linear": {"command": "wsl","args": ["npx","-y","mcp-remote","[https://mcp.linear.app/sse](https://mcp.linear.app/sse)","--transport sse-only"]}}}
</details>
<details>
<summary>Does the MCP support Streamable HTTP?</summary>
Yes, at the [`https://mcp.linear.app/mcp`](https://mcp.linear.app/mcp) endpoint
</details>
<details>
<summary>Can I authenticate with my own API keys or OAuth access tokens?</summary>
Not currently.
Our MCP server follows the [spec](https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization) 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](https://github.com/jlowin/fastmcp/blob/9bbca0886226e61c06fd553ab8164296139f4b9a/docs/python-sdk/fastmcp-client-auth-oauth.mdx#L54) 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.
</details>