linear-mcp-fast 0.2.1__py3-none-any.whl → 0.2.3__py3-none-any.whl

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/reader.py CHANGED
@@ -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
- return wrapper[db_id.name, db_id.origin]
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.1
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
- **Why?**
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
- **Use with**: Official Linear MCP for write operations (comments, updates).
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
 
@@ -23,7 +23,7 @@ ccl_simplesnappy/__init__.py,sha256=OqArK0MfdVl2oMw1MwpWSYWWVLFT-VLIWnEXXCsacJo,
23
23
  ccl_simplesnappy/ccl_simplesnappy.py,sha256=dLv1wejr2vCa2b_ZinozXVfcSsZIzJrt5ZkyxA3cQXA,10461
24
24
  linear_mcp_fast/__init__.py,sha256=T-ioPzoZXC3a_zLilZuDBCXUn8nDjvITS7svk7BwWmY,138
25
25
  linear_mcp_fast/__main__.py,sha256=2wkhXADcE2oGdtEpGrIvvEe9YGKjpwnJ3DBWghkVQKk,124
26
- linear_mcp_fast/reader.py,sha256=SefUC45D26BrvbOqHI4eGBzQWRHgRYY1R-RpMdwPB24,16367
26
+ linear_mcp_fast/reader.py,sha256=FQithUV-F2SwMTyi61JlA2YjrlUgVrGme1yiDZQFTvY,16492
27
27
  linear_mcp_fast/server.py,sha256=Ha9kCLb_-V7c0HTSz3navb9EEWNmsTh320vRhI8ppmw,12757
28
28
  linear_mcp_fast/store_detector.py,sha256=5cnTwS-LPsgS9NivNxKa3bPv4mwAnZsi40-kXszejMI,4142
29
29
  tools_and_utilities/Chromium_dump_local_storage.py,sha256=gG-pKFFk6lo332LQy2JvInlQh9Zldm5zAsuibb-dBkQ,4337
@@ -32,8 +32,8 @@ tools_and_utilities/benchmark.py,sha256=fyD5U6yI7Y0TkyhYtvvaHyk9Y2jJe2yxYWoFPQWy
32
32
  tools_and_utilities/ccl_chrome_audit.py,sha256=irGyYJae0apZDZCn23jMKmY3tYQgWyZEL8vdUBcHLZk,24695
33
33
  tools_and_utilities/dump_indexeddb_details.py,sha256=ipNWLKPQoSNhCtPHKWvMWpKu8FhCnvc4Rciyx-90boI,2298
34
34
  tools_and_utilities/dump_leveldb.py,sha256=hj7QnOHG64KK2fKsZ9qQOVqUUmHUtxUZqPYl4EZJO9U,1882
35
- linear_mcp_fast-0.2.1.dist-info/METADATA,sha256=Drqt5Jk8GBcPEvb_cvk96d4YsdhDR47rl05rI4Q5B-c,3812
36
- linear_mcp_fast-0.2.1.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
37
- linear_mcp_fast-0.2.1.dist-info/entry_points.txt,sha256=Aa98tAkWz_08mS_SRyfyx0k3PuMBQoMygT88HCKMyWk,57
38
- linear_mcp_fast-0.2.1.dist-info/top_level.txt,sha256=j-O2BoBpFBpGyTl2V1cp0ZjxZAQwpkweeNxG4BcQ7io,73
39
- linear_mcp_fast-0.2.1.dist-info/RECORD,,
35
+ linear_mcp_fast-0.2.3.dist-info/METADATA,sha256=O0IJ9D9EFWcFs1bkvFBg0hVJYXHrKilNwP6OSH_QP9E,4536
36
+ linear_mcp_fast-0.2.3.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
37
+ linear_mcp_fast-0.2.3.dist-info/entry_points.txt,sha256=Aa98tAkWz_08mS_SRyfyx0k3PuMBQoMygT88HCKMyWk,57
38
+ linear_mcp_fast-0.2.3.dist-info/top_level.txt,sha256=j-O2BoBpFBpGyTl2V1cp0ZjxZAQwpkweeNxG4BcQ7io,73
39
+ linear_mcp_fast-0.2.3.dist-info/RECORD,,