Skip to main content
Glama

mcp-linear

Linear の課題操作を公開する MCP サーバー。スタンドアロンで動作し、組み込みの Claude Linear MCP への依存はありません。

課題は人間が読める識別子(GOV-123)で指定します。ステート、チーム、ラベル、担当者は名前で指定し、サーバーが Linear UUID に解決します。名前が一致しない場合は、有効な選択肢を列挙したエラーを返します。

ツール

ツール

説明

get_issue

識別子で課題を取得する

list_my_issues

API キーの所有者に割り当てられた課題

search_issues

チーム/ステート/担当者フィルター付きの全文検索

create_issue

チームに課題を作成する

update_issue

既存の課題のフィールドを更新する

get_comments

課題のコメント

add_comment

コメントを投稿する

list_teams

チームのキーと名前

list_states

チームのワークフローステート

list_labels

チームのラベルとワークスペースラベル(チームは任意)

list_users

アクティブなユーザー

セットアップ

python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
cp .env.example .env
# Edit .env — set LINEAR_API_KEY

API キーを取得する: Linear → 設定 → セキュリティとアクセス → 個人用 API キー。書き込み操作には書き込みアクセス権のあるキーが必要です。

Claude Code に追加

{
  "mcpServers": {
    "linear": {
      "command": "/Users/piuschungath/Workspace/mcp-linear/.venv/bin/mcp-linear",
      "env": { "LINEAR_API_KEY": "lin_api_..." }
    }
  }
}

テスト

.venv/bin/pytest

すべての HTTP は respx でモック化されています。API キーもネットワークアクセスも不要です。

mcp-pr-assistant との連携

2 つのサーバーは相互にインポートせずに連携できます。get_issue でチケットを取得し、そのフィールドを create_pr_from_ticket に渡し、PR の URL を add_comment で投稿します。

スキーマ検証

src/mcp_linear/queries.py の GraphQL フィールド名は、2026-08-21 に実在の Linear API に対して検証済みです。ツールが実際に使用するクエリ文字列(コピーではなく)を実在のワークスペースに対して実行して確認しました。

検証済みの項目:

  • Float! の課題番号コンパレータ

  • team { labels } によるチームスコープのラベル

  • ルートの issueLabels コネクション

  • viewer.assignedIssues(orderBy: updatedAt)

  • 3 つのミューテーションが送信するすべてのフィールド — IssueCreateInputIssueUpdateInputCommentCreateInput はすべて、使用されている teamIdtitledescriptionstateIdassigneeIdprioritylabelIdsissueIdbody を受け入れます

1 つの相違が見つかり、修正されました:

  • 全文検索。 issueSearchquery 引数を非推奨として拒否します。検索は現在 searchIssues(term: ...) を使用します。これは IssueSearchPayload を返し、そのノードは IssueSearchResult であり、Issue ではありません。そのため IssueFields フラグメントを展開できません。queries.py は、その型に対して同一の選択セットを持つ 2 つ目のフラグメント SearchFields を宣言しています。イントロスペクションにより、IssueSearchResultIssueFields が選択するすべてのフィールドを備えていることが確認されました。一方のフラグメントを変更したら、もう一方も変更してください。

1 つの項目が未確認のままです:

  • ワークスペースラベル。 ルートの issueLabels コネクションは解決されますが、ワークスペース全体のラベルのみを返すのか、他のチームに属するチームスコープのラベルも返すのかは確認されていません。ラベル解決はまずチーム自身のラベルを参照するため、チームのラベルは常に同名のワークスペースラベルより優先されます。

Linear スキーマの変更後に再検証するには:

LINEAR_API_KEY=lin_api_... .venv/bin/python scripts/probe_schema.py <team-key> <issue-number> <issue-uuid>

チームキー、そのチームの既存の課題番号、その課題の UUID が必要です(最初のプローブが出力するチーム UUID を対話的に 1 回だけ求めます)。プローブは読み取り専用です。ミューテーションは入力型のイントロスペクションによってチェックされ、トラッカーへの書き込みは行いません。

注意事項

  • Linear の個人用 API キーは Authorization: <key> として送信され、Bearer プレフィックスはありません

  • Linear はほとんどの失敗を HTTP 200 とトップレベルの errors 配列で報告するため、クライアントはステータスコードではなくレスポンスボディをチェックします。

  • チーム、ステート、ラベル、ユーザーのメタデータはサーバープロセスの存続期間中キャッシュされます。チームのワークフローステートやラベルを変更した場合は、サーバーを再起動してください。

-
license - not tested
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Shortcut project management. Create, update, search stories and manage workflows.

  • Connect to Atlassian Jira, Confluence, and Compass to search, create, and manage your work.

  • Manage projects, tasks, time tracking, and team collaboration through natural language.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pius-grainger/mcp-linear'

If you have feedback or need assistance with the MCP directory API, please join our Discord server