linear-mcp-fast 0.2.2__tar.gz → 0.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/PKG-INFO +64 -55
- linear_mcp_fast-0.2.4/README.md +148 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/pyproject.toml +1 -1
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/src/linear_mcp_fast.egg-info/PKG-INFO +64 -55
- linear_mcp_fast-0.2.2/README.md +0 -139
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/setup.cfg +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/src/linear_mcp_fast/__init__.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/src/linear_mcp_fast/__main__.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/src/linear_mcp_fast/reader.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/src/linear_mcp_fast/server.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/src/linear_mcp_fast/store_detector.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/src/linear_mcp_fast.egg-info/SOURCES.txt +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/src/linear_mcp_fast.egg-info/dependency_links.txt +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/src/linear_mcp_fast.egg-info/entry_points.txt +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/src/linear_mcp_fast.egg-info/requires.txt +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/src/linear_mcp_fast.egg-info/top_level.txt +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/__init__.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_cache.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_filesystem.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_history.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_indexeddb.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_localstorage.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_notifications.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_profile_folder.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_sessionstorage.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_snss2.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_shared_proto_db_downloads.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/common.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/download_common.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/profile_folder_protocols.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats/__init__.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats/ccl_blink_value_deserializer.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats/ccl_easy_chromium_pickle.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats/ccl_protobuff.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats/ccl_v8_value_deserializer.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/storage_formats/__init__.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/ccl_chromium_reader/storage_formats/ccl_leveldb.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/tools_and_utilities/Chromium_dump_local_storage.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/tools_and_utilities/Chromium_dump_session_storage.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/tools_and_utilities/benchmark.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/tools_and_utilities/ccl_chrome_audit.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/tools_and_utilities/dump_indexeddb_details.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_chromium_reader/tools_and_utilities/dump_leveldb.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_simplesnappy/ccl_simplesnappy/__init__.py +0 -0
- {linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_simplesnappy/ccl_simplesnappy/ccl_simplesnappy.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: linear-mcp-fast
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.4
|
|
4
4
|
Summary: Fast MCP server for Linear - reads from Linear.app's local cache on macOS
|
|
5
5
|
Author: everything-chalna
|
|
6
6
|
License-Expression: MIT
|
|
@@ -26,36 +26,45 @@ Requires-Dist: brotli>=1.0.0
|
|
|
26
26
|
|
|
27
27
|
Fast, read-only MCP server for Linear that reads from Linear.app's local cache on macOS.
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
- **Instant**: No API calls, reads directly from local IndexedDB cache
|
|
31
|
-
- **Offline**: Works without internet
|
|
32
|
-
- **Lower context**: Smaller responses for AI assistants
|
|
29
|
+
## Why I Built This
|
|
33
30
|
|
|
34
|
-
|
|
31
|
+
While using the official Linear MCP with Claude Code, I noticed that **read operations consumed too much context**. Every issue query returned verbose responses with metadata I didn't need, eating into the AI's context window.
|
|
35
32
|
|
|
36
|
-
|
|
33
|
+
The problem:
|
|
34
|
+
- Official Linear MCP makes API calls for every read
|
|
35
|
+
- Responses include excessive metadata (full user objects, workflow states, etc.)
|
|
36
|
+
- Context window fills up quickly when exploring issues
|
|
37
|
+
- Slower response times due to network latency
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
My solution: **Read directly from Linear.app's local cache.**
|
|
40
|
+
|
|
41
|
+
Linear.app (Electron) syncs all your data to a local IndexedDB. This MCP server reads from that cache, giving you:
|
|
42
|
+
|
|
43
|
+
- **Zero API calls** - Instant reads from disk
|
|
44
|
+
- **Smaller responses** - Only the fields you need
|
|
45
|
+
- **Offline access** - Works without internet
|
|
46
|
+
- **Faster iteration** - No rate limits, no latency
|
|
47
|
+
|
|
48
|
+
## Requirements
|
|
49
|
+
|
|
50
|
+
- **macOS only** - Linear.app stores its cache at `~/Library/Application Support/Linear/`
|
|
51
|
+
- **Linear.app** installed and opened at least once (to populate the cache)
|
|
43
52
|
|
|
44
53
|
## Setup
|
|
45
54
|
|
|
55
|
+
Use `linear-fast` for reads and the official Linear MCP for writes.
|
|
56
|
+
|
|
46
57
|
### Claude Code
|
|
47
58
|
|
|
48
59
|
```bash
|
|
49
|
-
#
|
|
60
|
+
# Fast reads (this package)
|
|
50
61
|
claude mcp add linear-fast -- uvx linear-mcp-fast
|
|
51
62
|
|
|
52
|
-
#
|
|
63
|
+
# Writes via official Linear MCP
|
|
53
64
|
claude mcp add --transport http linear https://mcp.linear.app/mcp
|
|
54
65
|
```
|
|
55
66
|
|
|
56
|
-
|
|
57
|
-
- `linear-fast` → Fast reads from local cache
|
|
58
|
-
- `linear` → Writes (comments, updates)
|
|
67
|
+
Run `/mcp` to authenticate with Linear.
|
|
59
68
|
|
|
60
69
|
### Claude Desktop
|
|
61
70
|
|
|
@@ -76,7 +85,22 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
|
76
85
|
}
|
|
77
86
|
```
|
|
78
87
|
|
|
79
|
-
### Cursor
|
|
88
|
+
### Cursor
|
|
89
|
+
|
|
90
|
+
Install Linear MCP from [Cursor's MCP tools page](https://cursor.com/mcp), then add linear-fast:
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"mcpServers": {
|
|
95
|
+
"linear-fast": {
|
|
96
|
+
"command": "uvx",
|
|
97
|
+
"args": ["linear-mcp-fast"]
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### VS Code / Windsurf / Others
|
|
80
104
|
|
|
81
105
|
```json
|
|
82
106
|
{
|
|
@@ -93,24 +117,16 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
|
93
117
|
}
|
|
94
118
|
```
|
|
95
119
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
## Prerequisites
|
|
99
|
-
|
|
100
|
-
- **macOS** (Linear.app stores cache in `~/Library/Application Support/Linear/`)
|
|
101
|
-
- **Linear.app** installed and opened at least once
|
|
102
|
-
|
|
103
|
-
---
|
|
120
|
+
See [Linear MCP docs](https://developers.linear.app/docs/ai/mcp-server) for Zed, Codex, v0, and other clients.
|
|
104
121
|
|
|
105
122
|
## Available Tools
|
|
106
123
|
|
|
107
|
-
|
|
124
|
+
Tools mirror the official Linear MCP for easy switching:
|
|
108
125
|
|
|
109
126
|
| Tool | Description |
|
|
110
127
|
|------|-------------|
|
|
111
|
-
| `list_issues` | List issues with filters (
|
|
112
|
-
| `get_issue` | Get issue details
|
|
113
|
-
| `list_my_issues` | List issues assigned to a user |
|
|
128
|
+
| `list_issues` | List issues with filters (team, state, assignee, priority) |
|
|
129
|
+
| `get_issue` | Get issue details by identifier (e.g., `UK-123`) |
|
|
114
130
|
| `list_teams` | List all teams |
|
|
115
131
|
| `get_team` | Get team details |
|
|
116
132
|
| `list_projects` | List all projects |
|
|
@@ -119,44 +135,37 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
|
119
135
|
| `get_user` | Get user details |
|
|
120
136
|
| `list_issue_statuses` | List workflow states for a team |
|
|
121
137
|
|
|
122
|
-
|
|
138
|
+
For writes (create issue, add comment, update status), use the official Linear MCP.
|
|
123
139
|
|
|
124
|
-
|
|
125
|
-
- Creating/updating issues
|
|
126
|
-
- Adding comments
|
|
127
|
-
- Changing status
|
|
140
|
+
## How It Works
|
|
128
141
|
|
|
129
|
-
|
|
142
|
+
```
|
|
143
|
+
Linear.app (Electron)
|
|
144
|
+
↓ syncs data to local cache
|
|
145
|
+
IndexedDB (LevelDB)
|
|
146
|
+
~/Library/Application Support/Linear/IndexedDB/...
|
|
147
|
+
↓ read by
|
|
148
|
+
linear-mcp-fast
|
|
149
|
+
↓
|
|
150
|
+
Fast, offline access to issues, teams, users, projects
|
|
151
|
+
```
|
|
130
152
|
|
|
131
153
|
## Troubleshooting
|
|
132
154
|
|
|
133
|
-
|
|
155
|
+
**"Linear database not found"**
|
|
134
156
|
|
|
135
|
-
Linear.app
|
|
157
|
+
Linear.app must be installed and opened at least once:
|
|
136
158
|
```bash
|
|
137
159
|
ls ~/Library/Application\ Support/Linear/IndexedDB/
|
|
138
160
|
```
|
|
139
161
|
|
|
140
|
-
|
|
162
|
+
**Data seems stale**
|
|
141
163
|
|
|
142
|
-
|
|
164
|
+
The local cache updates when Linear.app syncs. Open Linear.app to refresh.
|
|
143
165
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
## How It Works
|
|
147
|
-
|
|
148
|
-
```
|
|
149
|
-
Linear.app (Electron)
|
|
150
|
-
↓ syncs to
|
|
151
|
-
IndexedDB (LevelDB format)
|
|
152
|
-
~/Library/Application Support/Linear/IndexedDB/...
|
|
153
|
-
↓ read by
|
|
154
|
-
linear-mcp-fast
|
|
155
|
-
↓ provides
|
|
156
|
-
Fast read-only access to issues, users, teams, comments
|
|
157
|
-
```
|
|
166
|
+
**Returns 0 issues**
|
|
158
167
|
|
|
159
|
-
|
|
168
|
+
Multiple IndexedDB databases may exist. Version 0.2.2+ automatically finds the correct one.
|
|
160
169
|
|
|
161
170
|
## License
|
|
162
171
|
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# linear-mcp-fast
|
|
2
|
+
|
|
3
|
+
Fast, read-only MCP server for Linear that reads from Linear.app's local cache on macOS.
|
|
4
|
+
|
|
5
|
+
## Why I Built This
|
|
6
|
+
|
|
7
|
+
While using the official Linear MCP with Claude Code, I noticed that **read operations consumed too much context**. Every issue query returned verbose responses with metadata I didn't need, eating into the AI's context window.
|
|
8
|
+
|
|
9
|
+
The problem:
|
|
10
|
+
- Official Linear MCP makes API calls for every read
|
|
11
|
+
- Responses include excessive metadata (full user objects, workflow states, etc.)
|
|
12
|
+
- Context window fills up quickly when exploring issues
|
|
13
|
+
- Slower response times due to network latency
|
|
14
|
+
|
|
15
|
+
My solution: **Read directly from Linear.app's local cache.**
|
|
16
|
+
|
|
17
|
+
Linear.app (Electron) syncs all your data to a local IndexedDB. This MCP server reads from that cache, giving you:
|
|
18
|
+
|
|
19
|
+
- **Zero API calls** - Instant reads from disk
|
|
20
|
+
- **Smaller responses** - Only the fields you need
|
|
21
|
+
- **Offline access** - Works without internet
|
|
22
|
+
- **Faster iteration** - No rate limits, no latency
|
|
23
|
+
|
|
24
|
+
## Requirements
|
|
25
|
+
|
|
26
|
+
- **macOS only** - Linear.app stores its cache at `~/Library/Application Support/Linear/`
|
|
27
|
+
- **Linear.app** installed and opened at least once (to populate the cache)
|
|
28
|
+
|
|
29
|
+
## Setup
|
|
30
|
+
|
|
31
|
+
Use `linear-fast` for reads and the official Linear MCP for writes.
|
|
32
|
+
|
|
33
|
+
### Claude Code
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Fast reads (this package)
|
|
37
|
+
claude mcp add linear-fast -- uvx linear-mcp-fast
|
|
38
|
+
|
|
39
|
+
# Writes via official Linear MCP
|
|
40
|
+
claude mcp add --transport http linear https://mcp.linear.app/mcp
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Run `/mcp` to authenticate with Linear.
|
|
44
|
+
|
|
45
|
+
### Claude Desktop
|
|
46
|
+
|
|
47
|
+
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"mcpServers": {
|
|
52
|
+
"linear-fast": {
|
|
53
|
+
"command": "uvx",
|
|
54
|
+
"args": ["linear-mcp-fast"]
|
|
55
|
+
},
|
|
56
|
+
"linear": {
|
|
57
|
+
"command": "npx",
|
|
58
|
+
"args": ["-y", "mcp-remote", "https://mcp.linear.app/mcp"]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Cursor
|
|
65
|
+
|
|
66
|
+
Install Linear MCP from [Cursor's MCP tools page](https://cursor.com/mcp), then add linear-fast:
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"mcpServers": {
|
|
71
|
+
"linear-fast": {
|
|
72
|
+
"command": "uvx",
|
|
73
|
+
"args": ["linear-mcp-fast"]
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### VS Code / Windsurf / Others
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"mcpServers": {
|
|
84
|
+
"linear-fast": {
|
|
85
|
+
"command": "uvx",
|
|
86
|
+
"args": ["linear-mcp-fast"]
|
|
87
|
+
},
|
|
88
|
+
"linear": {
|
|
89
|
+
"command": "npx",
|
|
90
|
+
"args": ["-y", "mcp-remote", "https://mcp.linear.app/mcp"]
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
See [Linear MCP docs](https://developers.linear.app/docs/ai/mcp-server) for Zed, Codex, v0, and other clients.
|
|
97
|
+
|
|
98
|
+
## Available Tools
|
|
99
|
+
|
|
100
|
+
Tools mirror the official Linear MCP for easy switching:
|
|
101
|
+
|
|
102
|
+
| Tool | Description |
|
|
103
|
+
|------|-------------|
|
|
104
|
+
| `list_issues` | List issues with filters (team, state, assignee, priority) |
|
|
105
|
+
| `get_issue` | Get issue details by identifier (e.g., `UK-123`) |
|
|
106
|
+
| `list_teams` | List all teams |
|
|
107
|
+
| `get_team` | Get team details |
|
|
108
|
+
| `list_projects` | List all projects |
|
|
109
|
+
| `get_project` | Get project details |
|
|
110
|
+
| `list_users` | List all users |
|
|
111
|
+
| `get_user` | Get user details |
|
|
112
|
+
| `list_issue_statuses` | List workflow states for a team |
|
|
113
|
+
|
|
114
|
+
For writes (create issue, add comment, update status), use the official Linear MCP.
|
|
115
|
+
|
|
116
|
+
## How It Works
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
Linear.app (Electron)
|
|
120
|
+
↓ syncs data to local cache
|
|
121
|
+
IndexedDB (LevelDB)
|
|
122
|
+
~/Library/Application Support/Linear/IndexedDB/...
|
|
123
|
+
↓ read by
|
|
124
|
+
linear-mcp-fast
|
|
125
|
+
↓
|
|
126
|
+
Fast, offline access to issues, teams, users, projects
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Troubleshooting
|
|
130
|
+
|
|
131
|
+
**"Linear database not found"**
|
|
132
|
+
|
|
133
|
+
Linear.app must be installed and opened at least once:
|
|
134
|
+
```bash
|
|
135
|
+
ls ~/Library/Application\ Support/Linear/IndexedDB/
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Data seems stale**
|
|
139
|
+
|
|
140
|
+
The local cache updates when Linear.app syncs. Open Linear.app to refresh.
|
|
141
|
+
|
|
142
|
+
**Returns 0 issues**
|
|
143
|
+
|
|
144
|
+
Multiple IndexedDB databases may exist. Version 0.2.2+ automatically finds the correct one.
|
|
145
|
+
|
|
146
|
+
## License
|
|
147
|
+
|
|
148
|
+
MIT
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: linear-mcp-fast
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.4
|
|
4
4
|
Summary: Fast MCP server for Linear - reads from Linear.app's local cache on macOS
|
|
5
5
|
Author: everything-chalna
|
|
6
6
|
License-Expression: MIT
|
|
@@ -26,36 +26,45 @@ Requires-Dist: brotli>=1.0.0
|
|
|
26
26
|
|
|
27
27
|
Fast, read-only MCP server for Linear that reads from Linear.app's local cache on macOS.
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
- **Instant**: No API calls, reads directly from local IndexedDB cache
|
|
31
|
-
- **Offline**: Works without internet
|
|
32
|
-
- **Lower context**: Smaller responses for AI assistants
|
|
29
|
+
## Why I Built This
|
|
33
30
|
|
|
34
|
-
|
|
31
|
+
While using the official Linear MCP with Claude Code, I noticed that **read operations consumed too much context**. Every issue query returned verbose responses with metadata I didn't need, eating into the AI's context window.
|
|
35
32
|
|
|
36
|
-
|
|
33
|
+
The problem:
|
|
34
|
+
- Official Linear MCP makes API calls for every read
|
|
35
|
+
- Responses include excessive metadata (full user objects, workflow states, etc.)
|
|
36
|
+
- Context window fills up quickly when exploring issues
|
|
37
|
+
- Slower response times due to network latency
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
My solution: **Read directly from Linear.app's local cache.**
|
|
40
|
+
|
|
41
|
+
Linear.app (Electron) syncs all your data to a local IndexedDB. This MCP server reads from that cache, giving you:
|
|
42
|
+
|
|
43
|
+
- **Zero API calls** - Instant reads from disk
|
|
44
|
+
- **Smaller responses** - Only the fields you need
|
|
45
|
+
- **Offline access** - Works without internet
|
|
46
|
+
- **Faster iteration** - No rate limits, no latency
|
|
47
|
+
|
|
48
|
+
## Requirements
|
|
49
|
+
|
|
50
|
+
- **macOS only** - Linear.app stores its cache at `~/Library/Application Support/Linear/`
|
|
51
|
+
- **Linear.app** installed and opened at least once (to populate the cache)
|
|
43
52
|
|
|
44
53
|
## Setup
|
|
45
54
|
|
|
55
|
+
Use `linear-fast` for reads and the official Linear MCP for writes.
|
|
56
|
+
|
|
46
57
|
### Claude Code
|
|
47
58
|
|
|
48
59
|
```bash
|
|
49
|
-
#
|
|
60
|
+
# Fast reads (this package)
|
|
50
61
|
claude mcp add linear-fast -- uvx linear-mcp-fast
|
|
51
62
|
|
|
52
|
-
#
|
|
63
|
+
# Writes via official Linear MCP
|
|
53
64
|
claude mcp add --transport http linear https://mcp.linear.app/mcp
|
|
54
65
|
```
|
|
55
66
|
|
|
56
|
-
|
|
57
|
-
- `linear-fast` → Fast reads from local cache
|
|
58
|
-
- `linear` → Writes (comments, updates)
|
|
67
|
+
Run `/mcp` to authenticate with Linear.
|
|
59
68
|
|
|
60
69
|
### Claude Desktop
|
|
61
70
|
|
|
@@ -76,7 +85,22 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
|
76
85
|
}
|
|
77
86
|
```
|
|
78
87
|
|
|
79
|
-
### Cursor
|
|
88
|
+
### Cursor
|
|
89
|
+
|
|
90
|
+
Install Linear MCP from [Cursor's MCP tools page](https://cursor.com/mcp), then add linear-fast:
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"mcpServers": {
|
|
95
|
+
"linear-fast": {
|
|
96
|
+
"command": "uvx",
|
|
97
|
+
"args": ["linear-mcp-fast"]
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### VS Code / Windsurf / Others
|
|
80
104
|
|
|
81
105
|
```json
|
|
82
106
|
{
|
|
@@ -93,24 +117,16 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
|
93
117
|
}
|
|
94
118
|
```
|
|
95
119
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
## Prerequisites
|
|
99
|
-
|
|
100
|
-
- **macOS** (Linear.app stores cache in `~/Library/Application Support/Linear/`)
|
|
101
|
-
- **Linear.app** installed and opened at least once
|
|
102
|
-
|
|
103
|
-
---
|
|
120
|
+
See [Linear MCP docs](https://developers.linear.app/docs/ai/mcp-server) for Zed, Codex, v0, and other clients.
|
|
104
121
|
|
|
105
122
|
## Available Tools
|
|
106
123
|
|
|
107
|
-
|
|
124
|
+
Tools mirror the official Linear MCP for easy switching:
|
|
108
125
|
|
|
109
126
|
| Tool | Description |
|
|
110
127
|
|------|-------------|
|
|
111
|
-
| `list_issues` | List issues with filters (
|
|
112
|
-
| `get_issue` | Get issue details
|
|
113
|
-
| `list_my_issues` | List issues assigned to a user |
|
|
128
|
+
| `list_issues` | List issues with filters (team, state, assignee, priority) |
|
|
129
|
+
| `get_issue` | Get issue details by identifier (e.g., `UK-123`) |
|
|
114
130
|
| `list_teams` | List all teams |
|
|
115
131
|
| `get_team` | Get team details |
|
|
116
132
|
| `list_projects` | List all projects |
|
|
@@ -119,44 +135,37 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
|
119
135
|
| `get_user` | Get user details |
|
|
120
136
|
| `list_issue_statuses` | List workflow states for a team |
|
|
121
137
|
|
|
122
|
-
|
|
138
|
+
For writes (create issue, add comment, update status), use the official Linear MCP.
|
|
123
139
|
|
|
124
|
-
|
|
125
|
-
- Creating/updating issues
|
|
126
|
-
- Adding comments
|
|
127
|
-
- Changing status
|
|
140
|
+
## How It Works
|
|
128
141
|
|
|
129
|
-
|
|
142
|
+
```
|
|
143
|
+
Linear.app (Electron)
|
|
144
|
+
↓ syncs data to local cache
|
|
145
|
+
IndexedDB (LevelDB)
|
|
146
|
+
~/Library/Application Support/Linear/IndexedDB/...
|
|
147
|
+
↓ read by
|
|
148
|
+
linear-mcp-fast
|
|
149
|
+
↓
|
|
150
|
+
Fast, offline access to issues, teams, users, projects
|
|
151
|
+
```
|
|
130
152
|
|
|
131
153
|
## Troubleshooting
|
|
132
154
|
|
|
133
|
-
|
|
155
|
+
**"Linear database not found"**
|
|
134
156
|
|
|
135
|
-
Linear.app
|
|
157
|
+
Linear.app must be installed and opened at least once:
|
|
136
158
|
```bash
|
|
137
159
|
ls ~/Library/Application\ Support/Linear/IndexedDB/
|
|
138
160
|
```
|
|
139
161
|
|
|
140
|
-
|
|
162
|
+
**Data seems stale**
|
|
141
163
|
|
|
142
|
-
|
|
164
|
+
The local cache updates when Linear.app syncs. Open Linear.app to refresh.
|
|
143
165
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
## How It Works
|
|
147
|
-
|
|
148
|
-
```
|
|
149
|
-
Linear.app (Electron)
|
|
150
|
-
↓ syncs to
|
|
151
|
-
IndexedDB (LevelDB format)
|
|
152
|
-
~/Library/Application Support/Linear/IndexedDB/...
|
|
153
|
-
↓ read by
|
|
154
|
-
linear-mcp-fast
|
|
155
|
-
↓ provides
|
|
156
|
-
Fast read-only access to issues, users, teams, comments
|
|
157
|
-
```
|
|
166
|
+
**Returns 0 issues**
|
|
158
167
|
|
|
159
|
-
|
|
168
|
+
Multiple IndexedDB databases may exist. Version 0.2.2+ automatically finds the correct one.
|
|
160
169
|
|
|
161
170
|
## License
|
|
162
171
|
|
linear_mcp_fast-0.2.2/README.md
DELETED
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
# linear-mcp-fast
|
|
2
|
-
|
|
3
|
-
Fast, read-only MCP server for Linear that reads from Linear.app's local cache on macOS.
|
|
4
|
-
|
|
5
|
-
**Why?**
|
|
6
|
-
- **Instant**: No API calls, reads directly from local IndexedDB cache
|
|
7
|
-
- **Offline**: Works without internet
|
|
8
|
-
- **Lower context**: Smaller responses for AI assistants
|
|
9
|
-
|
|
10
|
-
**Use with**: Official Linear MCP for write operations (comments, updates).
|
|
11
|
-
|
|
12
|
-
## Installation
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
pip install linear-mcp-fast
|
|
16
|
-
# or
|
|
17
|
-
uv pip install linear-mcp-fast
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Setup
|
|
21
|
-
|
|
22
|
-
### Claude Code
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
# 1. Add linear-mcp-fast (reads from local cache)
|
|
26
|
-
claude mcp add linear-fast -- uvx linear-mcp-fast
|
|
27
|
-
|
|
28
|
-
# 2. Add official Linear MCP (for writes)
|
|
29
|
-
claude mcp add --transport http linear https://mcp.linear.app/mcp
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Now you have:
|
|
33
|
-
- `linear-fast` → Fast reads from local cache
|
|
34
|
-
- `linear` → Writes (comments, updates)
|
|
35
|
-
|
|
36
|
-
### Claude Desktop
|
|
37
|
-
|
|
38
|
-
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
39
|
-
|
|
40
|
-
```json
|
|
41
|
-
{
|
|
42
|
-
"mcpServers": {
|
|
43
|
-
"linear-fast": {
|
|
44
|
-
"command": "uvx",
|
|
45
|
-
"args": ["linear-mcp-fast"]
|
|
46
|
-
},
|
|
47
|
-
"linear": {
|
|
48
|
-
"command": "npx",
|
|
49
|
-
"args": ["-y", "mcp-remote", "https://mcp.linear.app/mcp"]
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
### Cursor / VS Code
|
|
56
|
-
|
|
57
|
-
```json
|
|
58
|
-
{
|
|
59
|
-
"mcpServers": {
|
|
60
|
-
"linear-fast": {
|
|
61
|
-
"command": "uvx",
|
|
62
|
-
"args": ["linear-mcp-fast"]
|
|
63
|
-
},
|
|
64
|
-
"linear": {
|
|
65
|
-
"command": "npx",
|
|
66
|
-
"args": ["-y", "mcp-remote", "https://mcp.linear.app/mcp"]
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## Prerequisites
|
|
75
|
-
|
|
76
|
-
- **macOS** (Linear.app stores cache in `~/Library/Application Support/Linear/`)
|
|
77
|
-
- **Linear.app** installed and opened at least once
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## Available Tools
|
|
82
|
-
|
|
83
|
-
### Reading (linear-fast)
|
|
84
|
-
|
|
85
|
-
| Tool | Description |
|
|
86
|
-
|------|-------------|
|
|
87
|
-
| `list_issues` | List issues with filters (assignee, team, state, priority) |
|
|
88
|
-
| `get_issue` | Get issue details with comments |
|
|
89
|
-
| `list_my_issues` | List issues assigned to a user |
|
|
90
|
-
| `list_teams` | List all teams |
|
|
91
|
-
| `get_team` | Get team details |
|
|
92
|
-
| `list_projects` | List all projects |
|
|
93
|
-
| `get_project` | Get project details |
|
|
94
|
-
| `list_users` | List all users |
|
|
95
|
-
| `get_user` | Get user details |
|
|
96
|
-
| `list_issue_statuses` | List workflow states for a team |
|
|
97
|
-
|
|
98
|
-
### Writing (official Linear MCP)
|
|
99
|
-
|
|
100
|
-
Use the official Linear MCP (`linear`) for:
|
|
101
|
-
- Creating/updating issues
|
|
102
|
-
- Adding comments
|
|
103
|
-
- Changing status
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Troubleshooting
|
|
108
|
-
|
|
109
|
-
### "Linear database not found"
|
|
110
|
-
|
|
111
|
-
Linear.app needs to be installed and opened at least once:
|
|
112
|
-
```bash
|
|
113
|
-
ls ~/Library/Application\ Support/Linear/IndexedDB/
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### Data seems stale
|
|
117
|
-
|
|
118
|
-
Local cache is updated when Linear.app syncs. Open Linear.app to refresh.
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
## How It Works
|
|
123
|
-
|
|
124
|
-
```
|
|
125
|
-
Linear.app (Electron)
|
|
126
|
-
↓ syncs to
|
|
127
|
-
IndexedDB (LevelDB format)
|
|
128
|
-
~/Library/Application Support/Linear/IndexedDB/...
|
|
129
|
-
↓ read by
|
|
130
|
-
linear-mcp-fast
|
|
131
|
-
↓ provides
|
|
132
|
-
Fast read-only access to issues, users, teams, comments
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
## License
|
|
138
|
-
|
|
139
|
-
MIT
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/src/linear_mcp_fast.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/src/linear_mcp_fast.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{linear_mcp_fast-0.2.2 → linear_mcp_fast-0.2.4}/vendor/ccl_simplesnappy/ccl_simplesnappy/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|