OhMyLinearMCP - unified Linear MCP (local-fast reads + official fallback/writes) on macOS
Project description
oh-my-linearmcp
Unified MCP server for Linear on macOS.
- Fast reads from Linear local cache
- Automatic fallback to official Linear MCP for unsupported/degraded reads
- Write support via official Linear MCP (through the same auth flow)
Name Change
This project name is now oh-my-linearmcp.
- New package/command:
oh-my-linearmcp - Legacy executable alias:
linear-mcp-fast(compatibility only)
Read/Write Policy
| Operation | Path |
|---|---|
| Read | local cache first, then official MCP fallback |
| Write | official MCP only |
| Post-write read window | temporary remote-first window (default 30s) |
Requirements
- macOS (Linear.app local cache path is macOS-specific)
- Linear.app installed and opened at least once
- Node.js/npm (
npx) for default official bridge (mcp-remote) - Network access for official fallback/write calls
Setup
Use only this server. It handles both local-fast reads and official MCP bridge.
Claude Code
claude mcp add oh-my-linearmcp -- uvx oh-my-linearmcp
From local checkout:
claude mcp add oh-my-linearmcp -- uvx --from /path/to/oh-my-linearmcp oh-my-linearmcp
Module run:
python -m oh_my_linearmcp
Claude Desktop / Cursor / VS Code / Windsurf
{
"mcpServers": {
"oh-my-linearmcp": {
"command": "uvx",
"args": ["oh-my-linearmcp"]
}
}
}
Write Support (Official MCP)
Writes are supported by routing to official Linear MCP.
- Use
list_official_toolsto discover official MCP tool names - Use
official_call_toolto execute those official tools
Example flow:
list_official_tools()
official_call_tool(name="create_issue", args={...})
official_call_tool(name="update_issue", args={...})
Available Tools
Local Read Tools (cache-first)
list_issuesget_issuelist_teamsget_teamlist_projectsget_projectlist_usersget_userlist_issue_statusesget_issue_statuslist_commentslist_issue_labelslist_initiativesget_initiativelist_cycleslist_documentsget_documentlist_milestonesget_milestonelist_project_updatesget_status_updates(local supports onlytype="project")
Unified/Official Bridge Tools
official_call_tool(call any official MCP tool)list_official_toolsrefresh_cacheget_cache_health
Environment Variables
LINEAR_OFFICIAL_MCP_TRANSPORT(stdiodefault, orhttp)LINEAR_OFFICIAL_MCP_COMMAND(default:npx, used when transport=stdio)LINEAR_OFFICIAL_MCP_ARGS(default:-y mcp-remote https://mcp.linear.app/mcp, used when transport=stdio)LINEAR_OFFICIAL_MCP_ENV(JSON object, optional env for stdio child process)LINEAR_OFFICIAL_MCP_CWD(optional working directory for stdio child process)LINEAR_OFFICIAL_MCP_URL(default:https://mcp.linear.app/mcp)LINEAR_OFFICIAL_MCP_HEADERS(JSON headers, used when transport=http)LINEAR_FAST_COHERENCE_WINDOW_SECONDS(default:30)LINEAR_FAST_ACCOUNT_EMAILS(comma-separated; limit local cache to orgs for these account emails)LINEAR_FAST_USER_ACCOUNT_IDS(comma-separated; direct account-id scope override)
How It Works
Linear.app (Electron)
-> local IndexedDB cache
-> oh-my-linearmcp
-> read: local-first
-> unsupported/degraded reads: official MCP fallback
-> write: official MCP
Notes
- Local reads can be stale; post-write remote-first window reduces mismatch risk.
- If local parsing is degraded, reads fall back to official MCP.
- Local
get_status_updatessupports onlytype="project"; others fall back to official MCP. - With account scope env vars set, local IndexedDB is filtered to organizations of that account only.
Troubleshooting
npx: command not found
- Install Node.js/npm, or switch to
LINEAR_OFFICIAL_MCP_TRANSPORT=http.
Official calls unauthorized
- Re-run official Linear MCP auth in your client (existing OAuth process).
Local data seems stale
- Open Linear.app to sync, or run
refresh_cache.
Linear local DB not found
ls ~/Library/Application\ Support/Linear/IndexedDB/
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file oh_my_linearmcp-0.5.0.tar.gz.
File metadata
- Download URL: oh_my_linearmcp-0.5.0.tar.gz
- Upload date:
- Size: 104.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97992aac9c631e6f233eb8cbb5ac402fdb97cc15d4bcf2b39d7f640ee9b2037b
|
|
| MD5 |
20d216cf1d76f5948b93f891074e0e71
|
|
| BLAKE2b-256 |
5154189bbc91b02a4a65ec43ce3c0dfa9a76d357bac68dd47685cbc9e06620a9
|
File details
Details for the file oh_my_linearmcp-0.5.0-py3-none-any.whl.
File metadata
- Download URL: oh_my_linearmcp-0.5.0-py3-none-any.whl
- Upload date:
- Size: 124.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7fc9b731a3f3d8680a6865641a20898673bccaa58386173d420055f526be874a
|
|
| MD5 |
094ff0dddcf24a0a7d14f7c9907b63e9
|
|
| BLAKE2b-256 |
98d9916c27892f43d00946bb46107b8b4af6c10c12072d7acf157e8234f0fe08
|