Skip to content

Commit f81c734

Browse files
committed
Initial commit
0 parents  commit f81c734

File tree

5 files changed

+1277
-0
lines changed

5 files changed

+1277
-0
lines changed

Diff for: README.md

+123
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
# Linear MCP Server
2+
3+
A [Model Context Protocol](https://github.com/modelcontextprotocol) server for the [Linear API](https://developers.linear.app/docs/graphql/working-with-the-graphql-api).
4+
5+
This server provides integration with Linear's issue tracking system through MCP, allowing LLMs to interact with Linear issues.
6+
7+
## Installation
8+
9+
1. Create or get a Linear API key for your team: https://linear.app/YOUR-TEAM/settings/api
10+
11+
2. Add server config to Claude Desktop:
12+
- MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
13+
14+
```json
15+
{
16+
"mcpServers": {
17+
"linear": {
18+
"command": "npx",
19+
"args": [
20+
"-y",
21+
"@modelcontextprotocol/server-linear"
22+
],
23+
"env": {
24+
"LINEAR_API_KEY": "your_linear_api_key_here"
25+
}
26+
}
27+
}
28+
}
29+
```
30+
31+
## Components
32+
33+
### Tools
34+
35+
1. **`linear_create_issue`**: Create a new Linear issues
36+
- Required inputs:
37+
- `title` (string): Issue title
38+
- `teamId` (string): Team ID to create issue in
39+
- Optional inputs:
40+
- `description` (string): Issue description (markdown supported)
41+
- `priority` (number, 0-4): Priority level (1=urgent, 4=low)
42+
- `status` (string): Initial status name
43+
44+
2. **`linear_update_issue`**: Update existing issues
45+
- Required inputs:
46+
- `id` (string): Issue ID to update
47+
- Optional inputs:
48+
- `title` (string): New title
49+
- `description` (string): New description
50+
- `priority` (number, 0-4): New priority
51+
- `status` (string): New status name
52+
53+
3. **`linear_search_issues`**: Search issues with flexible filtering
54+
- Optional inputs:
55+
- `query` (string): Text to search in title/description
56+
- `teamId` (string): Filter by team
57+
- `status` (string): Filter by status
58+
- `assigneeId` (string): Filter by assignee
59+
- `labels` (string[]): Filter by labels
60+
- `priority` (number): Filter by priority
61+
- `limit` (number, default: 10): Max results
62+
63+
4. **`linear_get_user_issues`**: Get issues assigned to a user
64+
- Optional inputs:
65+
- `userId` (string): User ID (omit for authenticated user)
66+
- `includeArchived` (boolean): Include archived issues
67+
- `limit` (number, default: 50): Max results
68+
69+
5. **`linear_add_comment`**: Add comments to issues
70+
- Required inputs:
71+
- `issueId` (string): Issue ID to comment on
72+
- `body` (string): Comment text (markdown supported)
73+
- Optional inputs:
74+
- `createAsUser` (string): Custom username
75+
- `displayIconUrl` (string): Custom avatar URL
76+
77+
### Resources
78+
79+
- `linear-issue:///{issueId}` - View individual issue details
80+
- `linear-team:///{teamId}/issues` - View team issues
81+
- `linear-user:///{userId}/assigned` - View user's assigned issues
82+
- `linear-organization:` - View organization info
83+
- `linear-viewer:` - View current user context
84+
85+
## Usage examples
86+
87+
Some example prompts you can use with Claude Desktop to interact with Linear:
88+
89+
1. "Show me all my high-priority issues" → execute the `search_issues` tool and/or `linear-user:///{userId}/assigned` to find issues assigned to you with priority 1
90+
91+
2. "Based on what I've told you about this bug already, make a bug report for the authentication system" → use `create_issue` to create a new high-priority issue with appropriate details and status tracking
92+
93+
3. "Find all in progress frontend tasks" → use `search_issues` to locate frontend-related issues with in progress task
94+
95+
4. "Give me a summary of recent updates on the issues for mobile app development" → use `search_issues` to identify the relevant issue(s), then `linear-issue:///{issueId}` fetch the issue details and show recent activity and comments
96+
97+
5. "What's the current workload for the mobile team?" → combine `linear-team:///{teamId}/issues` and `search_issues` to analyze issue distribution and priorities across the mobile team
98+
99+
## Development
100+
101+
1. Install dependencies:
102+
```bash
103+
npm install
104+
```
105+
106+
2. Configure Linear API key in `.env`:
107+
```
108+
LINEAR_API_KEY=your_api_key_here
109+
```
110+
111+
3. Build the server:
112+
```bash
113+
npm run build
114+
```
115+
116+
For development with auto-rebuild:
117+
```bash
118+
npm run watch
119+
```
120+
121+
## License
122+
123+
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

0 commit comments

Comments
 (0)