mcpField
L
linear

linear

github.com/magnus919生産性15759 回インストール1 日前に更新
リポジトリ

linear について

linearは、Linearの公開GraphQL APIを操作する、依存関係のないコマンドラインスキルです。範囲を限定した読み取りやissue・プロジェクトの変更に対応し、JSON出力と、変更前のdry-run・確認手順を備えています。

主な機能

  1. 01依存関係のないLinear CLIラッパー
  2. 02issueとドキュメントの検索・読み取り
  3. 03issue、プロジェクト、サイクルの管理
  4. 04JSON出力と範囲指定読み取り
  5. 05dry-runと確認後の変更

活用シーン

  1. 01識別子や語句によるissue検索
  2. 02チームのワークフロー状態の確認
  3. 03プレビュー後のissue作成・更新
  4. 04ターミナルからのプロジェクト読み取り・更新

MCP 対応

このスキルはMCPサーバーではなく、公開GraphQL APIを通じてLinearを操作します。Linear内にライブエージェントを組み込む場合、READMEはLinearネイティブのMCPまたはagent-session/webhook APIを案内しています。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/magnus919/agent-skills --skill linear

インストール後、Claude Code で/linearを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
evals/
evals.json
references/
domain-and-workflows.md
graphql-contract.md
integration-boundaries.md
sources.md
scripts/
linear
tests/
test_linear.py

詳細

Linear

このスキルディレクトリの scripts/linear を使用してください。これは依存関係のない、Linear の公開 GraphQL API 用の小さなラッパーであり、MCP サーバーではありません。回答にコマンドリファレンス全体をコピーするのではなく、コマンドごとの --help を使用してください。

セットアップ

  1. 利用可能なコマンドと関連する名詞を確認します:scripts/linear --help と scripts/linear issue --help。
  2. ライブリクエストでは、プロセス環境に認証情報をちょうど1つ設定します。個人用キーには LINEAR_API_KEY、OAuth には LINEAR_ACCESS_TOKEN を使用してください。どちらも表示、永続化、コマンドの記録への記載はしないでください。
  3. 範囲を限定して調査を始めます。読み取りのデフォルトは --limit 10 で、最大値は100です。
  4. 出力は常に JSON です。--json を指定するとコンパクトになり、指定しない場合はインデントされます。--dry-run はネットワークリクエストを行わず、操作をプレビューします。

コマンド一覧

必要な操作コマンド
現在のユーザーを確認するscripts/linear whoami --json
チームを確認するscripts/linear team list --limit 20 --json
チームのワークフロー状態を一覧表示するscripts/linear state list --team ENG --json
既知の課題セットを絞り込むscripts/linear issue list --team ENG --state "In Progress" --json
キーワードで課題を検索するscripts/linear issue search "customer import" --json
既知の課題を1件読み取るscripts/linear issue get ENG-42 --json
プロジェクト、サイクル、階層、コメント、関連情報とともに課題を読み取るscripts/linear issue get ENG-42 --detail --json
プロジェクト、親課題、担当者、ラベル、状態、期日を指定して課題を作成するscripts/linear issue create --team ENG --title "Fix login" --project "Platform" --parent ENG-1 --assignee "Ada Lovelace" --label bug --state "In Progress" --due 2026-08-31
課題の担当者、ラベル、期日、プロジェクトを更新するscripts/linear issue update ENG-42 --assignee "Ada Lovelace" --label bug --remove-label p2 --due 2026-08-31 --project "Platform"
課題をアーカイブまたはアーカイブ解除するscripts/linear issue archive ENG-42 または scripts/linear issue unarchive ENG-42
プロジェクトを一覧表示または読み取るscripts/linear project list --team ENG --json または scripts/linear project get "Roadmap" --json
プロジェクトを更新するscripts/linear project update "Roadmap" --description "Q3 plan" --status started
サイクルを一覧表示または読み取るscripts/linear cycle list --team ENG --json または scripts/linear cycle get UUID --json
キーワードでドキュメントを検索するscripts/linear document search roadmap --json
UUID、スラッグ、URLでドキュメントを読み取るscripts/linear document get REF --json
ドキュメント化された未対応の GraphQL 操作を使用するscripts/linear raw 'query { viewer { id } }' --json

必要最小限の読み取りを選ぶ

状況使用するコマンド
課題の識別子または UUID がわかっているissue get
識別子はわからないがキーワードがあるissue search または document search
フィルターを使って範囲を限定した一覧が必要issue list、document list、project list、または cycle list
チームのワークフロー状態が必要state list --team ENG
集中型 CLI の範囲外にある、ドキュメント化された操作が必要明示的な GraphQL クエリを指定して raw

raw は通常のコマンドの代わりではなく、最後の手段です。クエリの範囲を限定し、フィールド名と権限は公式の GraphQL ドキュメントで確認してください。

状態の変更

操作する前に、対象、範囲、ロールバック方法を確認してください。読み取り専用の調査は確認なしで進められます。

issue create、issue update、issue move、issue comment、issue archive、issue unarchive、 project update、および GraphQL の生のミューテーションを実行する場合:

  1. 読み取りコマンドを使って、課題/チーム/プロジェクト/状態を特定します。
  2. 実行する変更内容と復旧方法をユーザーに正確に伝えます。
  3. 同じコマンドを --dry-run --json 付きで実行します。これには認証情報もネットワークも必要ありません。
  4. 確認を得た後、--confirm --json 付きで再実行します。
  5. 認証情報を公開せずに、返された識別子と結果を報告します。

課題、プロジェクト、サイクルの一覧で --team を使う場合は、チームキーを正確に指定する必要があります。issue create は作成前にチームキーまたは完全一致する名前を解決し、コメント、更新、アーカイブの前に課題の識別子を解決します。また、UUID または完全一致する名前でプロジェクトを解決し、完全一致する名前またはメールアドレスで担当者を解決します。ラベルは課題のチーム内で、移動先のワークフロー状態はその課題のチーム内でのみ解決します。project update は UUID または完全一致する名前でプロジェクトを、名前または種類でステータスを解決します。ID、ワークフロー状態、ラベル、プロジェクトのステータスを推測することはありません。安全なミューテーションの手順と Linear のワークフローの仕様については、references/domain-and-workflows.md を読み込んでください。

エラーと復旧

  • 認証情報がない場合:サポート対象の環境変数を1つだけコマンド実行中に設定するか、--dry-run でリクエストを確認します。
  • GraphQL エラー:CLI は最初に見つかった有用な Linear のエラーメッセージを stderr に書き込み、HTTP ステータスが 200 の場合も含めて、ゼロ以外の終了コードで終了します。権限、識別子の正確さ、ドキュメントに記載されたフィールドの利用可否を確認してください。
  • チームが特定できない場合:team list で正確なキーまたは名前を選びます。ID を推測して再試行しないでください。
  • 状態を特定できない場合:まず state list --team でチームの状態一覧を取得し、その中から正確な名前を使います。このエラーには、課題のチームで利用可能な状態も表示されます。
  • ラベルを特定できない場合:このエラーには、課題のチームで利用可能なラベルが表示されます。その中から正確な名前を使います。
  • プロジェクトのステータスを特定できない場合:このエラーには、利用可能なステータスが表示されます。正確な名前または種類(例:planned、started、paused、completed、canceled)を使います。
  • プロジェクトの説明が拒否された場合:Linear の projectUpdate では、255文字を超える説明は拒否されます。プロジェクトの説明は255文字以内にしてください。
  • 上限エラー:1〜100の値を指定します。CLI は意図的に自動ページネーションを行いません。
  • レート制限または通信エラー:待ってから、同じ範囲を限定した読み取りを再試行します。リトライループを追加せず、Linear のレート制限に関するガイダンスに従ってください。

参考資料

必要な情報...読み込むファイル...
Linear のデータモデル、ワークフローの仕様、安全なミューテーションの手順references/domain-and-workflows.md
GraphQL エンドポイント、認証、フィルター、ページネーション、エラー、レート制限references/graphql-contract.md
CLI、MCP、生の GraphQL、Agent Session の選択基準references/integration-boundaries.md
ソース URL、アクセス日、スキーマの検証手順references/sources.md

検証

変更後にオフラインテストとリポジトリ検証ツールを実行します。

python3 -m unittest linear/tests/test_linear.py
ruby scripts/validate-skills.rb

使用しない場合

ターミナルから Linear を操作するのではなく、Linear 内にライブエージェントを組み込むタスクには、Linear のネイティブ MCP またはエージェントセッション/Webhook API を使用してください。

コメント