linear-mcp-fast 0.2.1__tar.gz → 0.2.3__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.1 → linear_mcp_fast-0.2.3}/PKG-INFO +20 -6
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/README.md +19 -5
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/pyproject.toml +1 -1
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/src/linear_mcp_fast/reader.py +5 -2
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/src/linear_mcp_fast.egg-info/PKG-INFO +20 -6
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/setup.cfg +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/src/linear_mcp_fast/__init__.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/src/linear_mcp_fast/__main__.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/src/linear_mcp_fast/server.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/src/linear_mcp_fast/store_detector.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/src/linear_mcp_fast.egg-info/SOURCES.txt +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/src/linear_mcp_fast.egg-info/dependency_links.txt +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/src/linear_mcp_fast.egg-info/entry_points.txt +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/src/linear_mcp_fast.egg-info/requires.txt +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/src/linear_mcp_fast.egg-info/top_level.txt +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/__init__.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_cache.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_filesystem.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_history.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_indexeddb.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_localstorage.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_notifications.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_profile_folder.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_sessionstorage.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_snss2.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_shared_proto_db_downloads.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/common.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/download_common.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/profile_folder_protocols.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats/__init__.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats/ccl_blink_value_deserializer.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats/ccl_easy_chromium_pickle.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats/ccl_protobuff.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats/ccl_v8_value_deserializer.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/storage_formats/__init__.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/ccl_chromium_reader/storage_formats/ccl_leveldb.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/tools_and_utilities/Chromium_dump_local_storage.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/tools_and_utilities/Chromium_dump_session_storage.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/tools_and_utilities/benchmark.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/tools_and_utilities/ccl_chrome_audit.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/tools_and_utilities/dump_indexeddb_details.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_chromium_reader/tools_and_utilities/dump_leveldb.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/vendor/ccl_simplesnappy/ccl_simplesnappy/__init__.py +0 -0
- {linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/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.3
|
|
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,12 +26,26 @@ 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.
|
|
32
|
+
|
|
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
|
|
38
|
+
|
|
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
|
+
**Use with**: Official Linear MCP for write operations (comments, status updates, issue creation).
|
|
35
49
|
|
|
36
50
|
## Installation
|
|
37
51
|
|
|
@@ -2,12 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
Fast, read-only MCP server for Linear that reads from Linear.app's local cache on macOS.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
- **Instant**: No API calls, reads directly from local IndexedDB cache
|
|
7
|
-
- **Offline**: Works without internet
|
|
8
|
-
- **Lower context**: Smaller responses for AI assistants
|
|
5
|
+
## Why I Built This
|
|
9
6
|
|
|
10
|
-
|
|
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
|
+
**Use with**: Official Linear MCP for write operations (comments, status updates, issue creation).
|
|
11
25
|
|
|
12
26
|
## Installation
|
|
13
27
|
|
|
@@ -75,10 +75,13 @@ class LinearLocalReader:
|
|
|
75
75
|
def _find_linear_db(
|
|
76
76
|
self, wrapper: ccl_chromium_indexeddb.WrappedIndexDB
|
|
77
77
|
) -> ccl_chromium_indexeddb.WrappedDatabase:
|
|
78
|
-
"""Find the main Linear database."""
|
|
78
|
+
"""Find the main Linear database with data."""
|
|
79
79
|
for db_id in wrapper.database_ids:
|
|
80
80
|
if "linear_" in db_id.name and db_id.name != "linear_databases":
|
|
81
|
-
|
|
81
|
+
db = wrapper[db_id.name, db_id.origin]
|
|
82
|
+
# Skip empty databases
|
|
83
|
+
if list(db.object_store_names):
|
|
84
|
+
return db
|
|
82
85
|
raise ValueError("Could not find Linear database in IndexedDB")
|
|
83
86
|
|
|
84
87
|
def _to_str(self, val: Any) -> str:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: linear-mcp-fast
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
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,12 +26,26 @@ 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.
|
|
32
|
+
|
|
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
|
|
38
|
+
|
|
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
|
+
**Use with**: Official Linear MCP for write operations (comments, status updates, issue creation).
|
|
35
49
|
|
|
36
50
|
## Installation
|
|
37
51
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/src/linear_mcp_fast.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{linear_mcp_fast-0.2.1 → linear_mcp_fast-0.2.3}/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.1 → linear_mcp_fast-0.2.3}/vendor/ccl_simplesnappy/ccl_simplesnappy/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|