Abscissa

io.github.KazKozDev由 GitHub 帳號 KazKozDev 發布v0.1.3更新於 Oct 24, 2026

Safety-aware MCP server for Linear issues, projects, cycles, and dependencies.

已驗證STDIO僅桌面效率與工作流開發者工具

概覽

AI 產生的概覽

本機 stdio MCP 伺服器,把 Linear 的問題、專案、週期、相依性與標籤以 42 個工具提供給 AI 助理。

可以做什麼
  • 建立、更新、搜尋、指派問題並新增留言、設定估點
  • 封存或刪除問題,需明確傳入 confirm 參數
  • 新增、列出與移除問題相依性、標籤及工作流程狀態
  • 建立、更新、封存與列出專案、專案標籤及專案更新
  • 建立、更新、封存與列出週期及其中的問題
  • 查詢目前驗證的使用者、團隊與使用者
適用情境
適合在 Linear 工作、希望助理直接從 MCP 用戶端讀取與修改問題、專案、週期和相依性的人;讀取支援分頁,破壞性操作有確認保護。
執行需求
需要 Python 3.10+,從 PyPI 或程式碼倉庫本機安裝,並在支援 MCP 的用戶端註冊為 stdio 指令。需要 Linear 個人 API 金鑰,透過環境變數 LINEAR_API_KEY 提供。僅限桌面用戶端,不提供 HTTP 服務。
安裝前請注意
API 金鑰擁有你 Linear 帳號的對應權限,請謹慎限定範圍,並透過用戶端環境變數或密鑰管理器傳入。封存與刪除工具在傳入 confirm=true 後會修改或刪除資料。伺服器本身不儲存憑證。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Abscissa,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[Abscissa]

Abscissa is a Python stdio MCP server for Linear. It turns Linear's GraphQL API into 42 tools for an MCP client: issues, projects, cycles, dependencies, comments, labels, workflow states, teams, and users.

The design priority is deliberate control over project data. Read operations return cursor-paginated results; get_user_issues() resolves the authenticated Linear user; archive and delete tools require an explicit confirm=true before they make a destructive API call. The server stores no credentials and reads LINEAR_API_KEY from its process environment.

Abscissa uses the stdio transport from the Model Context Protocol. Any client that supports stdio MCP can launch it as a local tool process.

Run it

You need Python 3.10+ and a Linear personal API key.

sh
git clone https://github.com/KazKozDev/abscissa.gitcd abscissapython3 -m venv .venv.venv/bin/pip install -e '.[dev]'export LINEAR_API_KEY='lin_api_…'.venv/bin/abscissa

You can also install Abscissa directly from PyPI:

sh
pip install abscissa

The final command starts the MCP server on standard input and output. Register .venv/bin/abscissa as a stdio command in your MCP client, and pass LINEAR_API_KEY through that client's environment or secret manager.

The key remains outside the repository. The .gitignore excludes common local environment files, including .env and .venv.

Example prompts

Once Abscissa is registered in your MCP client, try prompts like:

text
Show my open Linear issues grouped by project.Create an issue in ENG for fixing onboarding copy.List issues blocked by GEN-32.

Tools

AreaTools
Identityget_current_user
Issuescreate_issue, update_issue, search_issues, get_user_issues, get_issue, assign_issue, add_comment, set_issue_estimate
Issue lifecyclearchive_issue, delete_issue
Dependencieslist_issue_dependencies, add_issue_dependency, remove_issue_dependency
Labels and workflowlist_workflow_states, list_issue_labels, create_label, add_issue_label, remove_issue_label
Teams and peoplelist_teams, get_team, list_users
Projectscreate_project, get_project, list_projects, list_project_issues, set_issue_project, remove_issue_from_project, update_project, update_project_details, archive_project
Project labelslist_project_labels, create_project_label, add_project_label, remove_project_label
Project updatescreate_project_update, list_project_updates
Cyclescreate_cycle, update_cycle, archive_cycle, list_cycles, list_cycle_issues

Search and list tools accept limit and cursor. Their responses keep the same shape:

json
{  "items": [],  "next_cursor": null}

Pass a non-null next_cursor back as cursor to request the next page.

list_issue_dependencies returns separate blocks and blocked_by lists. Each item includes its relation_id; use it to remove that dependency. Its next_cursors object has separate cursors for each direction.

Destructive actions

archive_issue, archive_project, and delete_issue are marked with MCP's destructiveHint. They refuse to call Linear until the client invokes them with confirm=true.

text
Deletion requires explicit confirmation: set confirm=true

This prevents an accidental tool call from deleting or archiving data. It does not replace Linear's own access controls: the API key still determines which resources the server may read or change.

Verify the checkout

sh
.venv/bin/ruff check ..venv/bin/python -m pytest

The current checkout produces:

text
All checks passed!..........                                                               [100%]10 passed

The tests cover pagination bounds and response shape, authenticated-user issue resolution, project membership, cycle queries, dependency direction, confirmation guards, cycle lifecycle operations, and MCP tool registration. GitHub Actions runs the same lint and test commands on Python 3.10, 3.11, 3.12, and 3.13.

Limitations

Abscissa is a local stdio server, not an HTTP service. It needs a running MCP-capable client and a valid Linear API key. The automated suite avoids mutating a real Linear workspace; create, update, archive, and delete behavior is therefore protected by unit tests rather than a live write test.

License

MIT

來源:README.md,提交 386192e

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.3最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分