linear-mcp-fast 0.1.0__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.
Files changed (44) hide show
  1. linear_mcp_fast-0.1.0/PKG-INFO +160 -0
  2. linear_mcp_fast-0.1.0/README.md +136 -0
  3. linear_mcp_fast-0.1.0/pyproject.toml +54 -0
  4. linear_mcp_fast-0.1.0/setup.cfg +4 -0
  5. linear_mcp_fast-0.1.0/src/linear_mcp_fast/__init__.py +8 -0
  6. linear_mcp_fast-0.1.0/src/linear_mcp_fast/__main__.py +6 -0
  7. linear_mcp_fast-0.1.0/src/linear_mcp_fast/reader.py +433 -0
  8. linear_mcp_fast-0.1.0/src/linear_mcp_fast/server.py +367 -0
  9. linear_mcp_fast-0.1.0/src/linear_mcp_fast/store_detector.py +117 -0
  10. linear_mcp_fast-0.1.0/src/linear_mcp_fast.egg-info/PKG-INFO +160 -0
  11. linear_mcp_fast-0.1.0/src/linear_mcp_fast.egg-info/SOURCES.txt +42 -0
  12. linear_mcp_fast-0.1.0/src/linear_mcp_fast.egg-info/dependency_links.txt +1 -0
  13. linear_mcp_fast-0.1.0/src/linear_mcp_fast.egg-info/entry_points.txt +2 -0
  14. linear_mcp_fast-0.1.0/src/linear_mcp_fast.egg-info/requires.txt +2 -0
  15. linear_mcp_fast-0.1.0/src/linear_mcp_fast.egg-info/top_level.txt +4 -0
  16. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/__init__.py +2 -0
  17. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_cache.py +1335 -0
  18. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_filesystem.py +302 -0
  19. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_history.py +357 -0
  20. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_indexeddb.py +1060 -0
  21. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_localstorage.py +454 -0
  22. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_notifications.py +268 -0
  23. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_profile_folder.py +568 -0
  24. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_sessionstorage.py +368 -0
  25. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_chromium_snss2.py +332 -0
  26. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/ccl_shared_proto_db_downloads.py +189 -0
  27. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/common.py +19 -0
  28. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/download_common.py +78 -0
  29. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/profile_folder_protocols.py +276 -0
  30. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats/__init__.py +0 -0
  31. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats/ccl_blink_value_deserializer.py +401 -0
  32. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats/ccl_easy_chromium_pickle.py +133 -0
  33. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats/ccl_protobuff.py +276 -0
  34. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats/ccl_v8_value_deserializer.py +627 -0
  35. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/storage_formats/__init__.py +0 -0
  36. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/ccl_chromium_reader/storage_formats/ccl_leveldb.py +582 -0
  37. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/tools_and_utilities/Chromium_dump_local_storage.py +111 -0
  38. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/tools_and_utilities/Chromium_dump_session_storage.py +92 -0
  39. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/tools_and_utilities/benchmark.py +35 -0
  40. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/tools_and_utilities/ccl_chrome_audit.py +651 -0
  41. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/tools_and_utilities/dump_indexeddb_details.py +59 -0
  42. linear_mcp_fast-0.1.0/vendor/ccl_chromium_reader/tools_and_utilities/dump_leveldb.py +53 -0
  43. linear_mcp_fast-0.1.0/vendor/ccl_simplesnappy/ccl_simplesnappy/__init__.py +1 -0
  44. linear_mcp_fast-0.1.0/vendor/ccl_simplesnappy/ccl_simplesnappy/ccl_simplesnappy.py +306 -0
@@ -0,0 +1,160 @@
1
+ Metadata-Version: 2.4
2
+ Name: linear-mcp-fast
3
+ Version: 0.1.0
4
+ Summary: Fast MCP server for Linear - reads from Linear.app's local cache on macOS
5
+ Author: everything-chalna
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/everything-chalna/linear-mcp-fast
8
+ Project-URL: Repository, https://github.com/everything-chalna/linear-mcp-fast
9
+ Project-URL: Issues, https://github.com/everything-chalna/linear-mcp-fast/issues
10
+ Keywords: linear,mcp,cache,indexeddb,macos
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Operating System :: MacOS
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Requires-Python: >=3.10
21
+ Description-Content-Type: text/markdown
22
+ Requires-Dist: mcp>=1.0.0
23
+ Requires-Dist: brotli>=1.0.0
24
+
25
+ # linear-mcp-fast
26
+
27
+ Fast, read-only MCP server for Linear that reads from Linear.app's local cache on macOS.
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
33
+
34
+ **Use with**: Official Linear MCP for write operations (comments, updates).
35
+
36
+ ## Installation
37
+
38
+ ```bash
39
+ pip install linear-mcp-fast
40
+ # or
41
+ uv pip install linear-mcp-fast
42
+ ```
43
+
44
+ ## Setup
45
+
46
+ ### Claude Code
47
+
48
+ ```bash
49
+ # 1. Add linear-mcp-fast (reads from local cache)
50
+ claude mcp add linear-fast -- uvx linear-mcp-fast
51
+
52
+ # 2. Add official Linear MCP (for writes)
53
+ claude mcp add --transport http linear https://mcp.linear.app/mcp
54
+ ```
55
+
56
+ Now you have:
57
+ - `linear-fast` → Fast reads from local cache
58
+ - `linear` → Writes (comments, updates)
59
+
60
+ ### Claude Desktop
61
+
62
+ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
63
+
64
+ ```json
65
+ {
66
+ "mcpServers": {
67
+ "linear-fast": {
68
+ "command": "uvx",
69
+ "args": ["linear-mcp-fast"]
70
+ },
71
+ "linear": {
72
+ "command": "npx",
73
+ "args": ["-y", "mcp-remote", "https://mcp.linear.app/mcp"]
74
+ }
75
+ }
76
+ }
77
+ ```
78
+
79
+ ### Cursor / VS Code
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
+ ---
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
+ ---
104
+
105
+ ## Available Tools
106
+
107
+ ### Reading (linear-fast)
108
+
109
+ | Tool | Description |
110
+ |------|-------------|
111
+ | `list_issues` | List issues with filters (assignee, team, state, priority) |
112
+ | `get_issue` | Get issue details with comments |
113
+ | `search_issues` | Search issues by title |
114
+ | `get_my_issues` | Get issues assigned to a user |
115
+ | `list_teams` | List all teams |
116
+ | `list_projects` | List all projects |
117
+ | `get_summary` | Get cache summary |
118
+
119
+ ### Writing (official Linear MCP)
120
+
121
+ Use the official Linear MCP (`linear`) for:
122
+ - Creating/updating issues
123
+ - Adding comments
124
+ - Changing status
125
+
126
+ ---
127
+
128
+ ## Troubleshooting
129
+
130
+ ### "Linear database not found"
131
+
132
+ Linear.app needs to be installed and opened at least once:
133
+ ```bash
134
+ ls ~/Library/Application\ Support/Linear/IndexedDB/
135
+ ```
136
+
137
+ ### Data seems stale
138
+
139
+ Local cache is updated when Linear.app syncs. Open Linear.app to refresh.
140
+
141
+ ---
142
+
143
+ ## How It Works
144
+
145
+ ```
146
+ Linear.app (Electron)
147
+ ↓ syncs to
148
+ IndexedDB (LevelDB format)
149
+ ~/Library/Application Support/Linear/IndexedDB/...
150
+ ↓ read by
151
+ linear-mcp-fast
152
+ ↓ provides
153
+ Fast read-only access to issues, users, teams, comments
154
+ ```
155
+
156
+ ---
157
+
158
+ ## License
159
+
160
+ MIT
@@ -0,0 +1,136 @@
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
+ | `search_issues` | Search issues by title |
90
+ | `get_my_issues` | Get issues assigned to a user |
91
+ | `list_teams` | List all teams |
92
+ | `list_projects` | List all projects |
93
+ | `get_summary` | Get cache summary |
94
+
95
+ ### Writing (official Linear MCP)
96
+
97
+ Use the official Linear MCP (`linear`) for:
98
+ - Creating/updating issues
99
+ - Adding comments
100
+ - Changing status
101
+
102
+ ---
103
+
104
+ ## Troubleshooting
105
+
106
+ ### "Linear database not found"
107
+
108
+ Linear.app needs to be installed and opened at least once:
109
+ ```bash
110
+ ls ~/Library/Application\ Support/Linear/IndexedDB/
111
+ ```
112
+
113
+ ### Data seems stale
114
+
115
+ Local cache is updated when Linear.app syncs. Open Linear.app to refresh.
116
+
117
+ ---
118
+
119
+ ## How It Works
120
+
121
+ ```
122
+ Linear.app (Electron)
123
+ ↓ syncs to
124
+ IndexedDB (LevelDB format)
125
+ ~/Library/Application Support/Linear/IndexedDB/...
126
+ ↓ read by
127
+ linear-mcp-fast
128
+ ↓ provides
129
+ Fast read-only access to issues, users, teams, comments
130
+ ```
131
+
132
+ ---
133
+
134
+ ## License
135
+
136
+ MIT
@@ -0,0 +1,54 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "linear-mcp-fast"
7
+ version = "0.1.0"
8
+ description = "Fast MCP server for Linear - reads from Linear.app's local cache on macOS"
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.10"
12
+ authors = [
13
+ { name = "everything-chalna" }
14
+ ]
15
+ keywords = ["linear", "mcp", "cache", "indexeddb", "macos"]
16
+ classifiers = [
17
+ "Development Status :: 4 - Beta",
18
+ "Environment :: Console",
19
+ "Intended Audience :: Developers",
20
+ "Operating System :: MacOS",
21
+ "Programming Language :: Python :: 3",
22
+ "Programming Language :: Python :: 3.10",
23
+ "Programming Language :: Python :: 3.11",
24
+ "Programming Language :: Python :: 3.12",
25
+ "Programming Language :: Python :: 3.13",
26
+ ]
27
+ dependencies = [
28
+ "mcp>=1.0.0",
29
+ "brotli>=1.0.0",
30
+ ]
31
+
32
+ [project.urls]
33
+ Homepage = "https://github.com/everything-chalna/linear-mcp-fast"
34
+ Repository = "https://github.com/everything-chalna/linear-mcp-fast"
35
+ Issues = "https://github.com/everything-chalna/linear-mcp-fast/issues"
36
+
37
+ [project.scripts]
38
+ linear-mcp-fast = "linear_mcp_fast:main"
39
+
40
+ [tool.setuptools.packages.find]
41
+ where = ["src", "vendor/ccl_chromium_reader", "vendor/ccl_simplesnappy"]
42
+
43
+ [tool.setuptools.package-dir]
44
+ "" = "src"
45
+ "ccl_chromium_reader" = "vendor/ccl_chromium_reader/ccl_chromium_reader"
46
+ "ccl_chromium_reader.serialization_formats" = "vendor/ccl_chromium_reader/ccl_chromium_reader/serialization_formats"
47
+ "ccl_chromium_reader.storage_formats" = "vendor/ccl_chromium_reader/ccl_chromium_reader/storage_formats"
48
+ "ccl_simplesnappy" = "vendor/ccl_simplesnappy/ccl_simplesnappy"
49
+
50
+ [dependency-groups]
51
+ dev = [
52
+ "pytest>=7.0.0",
53
+ "ruff>=0.1.0",
54
+ ]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,8 @@
1
+ """
2
+ linear-mcp-fast - Fast MCP server for Linear via local cache.
3
+ """
4
+
5
+ from .server import main
6
+
7
+ __version__ = "0.1.0"
8
+ __all__ = ["main"]
@@ -0,0 +1,6 @@
1
+ """Entry point for running linear-mcp-fast as a module."""
2
+
3
+ from .server import main
4
+
5
+ if __name__ == "__main__":
6
+ main()