mcpField
L
Linear MCP Server

Linear MCP Server

ローカル
github.com/magarciaバージョン管理183 週間前に更新

Linear MCP Server について

Linear MCP Serverは、LLMからLinearの課題管理機能を利用できるようにします。課題、チーム、プロジェクト、ラベル、添付ファイル、関連付け、マイルストーンを操作できます。

主な機能

  1. 01課題の検索・作成・更新
  2. 02コメントと添付ファイルの管理
  3. 03チームとプロジェクトの参照
  4. 04ラベルとマイルストーンの管理
  5. 05課題や組織のリソース参照

活用シーン

  1. 01ステータスや担当者、優先度で課題を検索
  2. 02Linearの課題を作成・修正
  3. 03プロジェクトの進捗とマイルストーンを確認
  4. 04コメント追加や関連課題のリンク

MCP 対応

ツールとリソースを通じて、MCPクライアントにLinearのデータと操作機能を公開します。Linearの個人APIキーが必要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"linearapp": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
起動コマンドnpx -y @smithery/cli

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@smithery/cli

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Linear MCP Server

npm version smithery badge

Linear API 用の Model Context Protocol サーバーです。

このサーバーは、MCP を通じて Linear の課題追跡システムと連携し、LLM が Linear の課題を操作できるようにします。

インストール

自動インストール

Smithery 経由で Claude Desktop 用の Linear MCP サーバーを自動的にインストールするには:

npx @smithery/cli install mcp-server-linearapp --client claude
手動インストール
  1. Linear の個人用 API キーを作成するか、取得します:https://linear.app/settings/account/security

  2. Claude Desktop にサーバー設定を追加します:

    • MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": ["-y", "mcp-server-linearapp"],
      "env": {
        "LINEAR_API_KEY": "your_linear_api_key_here"
      }
    }
  }
}

コンポーネント

ツール
ユーザー関連ツール
  1. linear_get_viewer:認証済みユーザーの情報を取得します

    • 入力は不要です
    • ID、名前、メールアドレス、有効状態などのユーザープロフィール情報を返します
  2. linear_get_user_issues:ユーザーに割り当てられた課題を取得します

    • 任意の入力:
      • userId (string):ユーザー ID(認証済みユーザーの場合は省略)
      • includeArchived (boolean):アーカイブ済みの課題を含めます
      • limit (number, default: 50):結果の最大数
  3. linear_get_user_teams:ユーザーに関連付けられたチームを取得します

    • 任意の入力:
      • userId (string):チームを取得するユーザーの ID(認証済みユーザーの場合は省略)
      • includeArchived (boolean):アーカイブ済みのチームを含めます
      • limit (number, default: 50):返すチームの最大数
    • ユーザーが所属するチームの一覧を返します
  4. linear_get_user_projects:ユーザーに関連付けられたプロジェクトを取得します

    • 任意の入力:
      • userId (string):プロジェクトを取得するユーザーの ID(認証済みユーザーの場合は省略)
      • includeArchived (boolean):アーカイブ済みのプロジェクトを含めます
      • limit (number, default: 50):返すプロジェクトの最大数
      • status (string):プロジェクトのステータスで絞り込みます(例:'completed'、'in progress')
    • ユーザーがリードまたはメンバーを務めるプロジェクトの一覧を返します
チーム関連ツール
  1. linear_get_teams:組織内のチームを取得します

    • 任意の入力:
      • includeArchived (boolean):アーカイブ済みのチームを含めます
      • limit (number, default: 50):返すチームの最大数
  2. linear_get_team:特定のチームの詳細を取得します

    • 必須の入力:
      • teamId (string):詳細を取得するチームの ID
    • 名前、キー、メンバー、設定などのチーム情報を返します
  3. linear_get_team_issues:特定のチームの課題を取得します

    • 必須の入力:
      • teamId (string):課題を取得するチームの ID
    • 任意の入力:
      • includeArchived (boolean):アーカイブ済みの課題を含めます
      • limit (number, default: 50):返す課題の最大数
      • status (string):課題のステータスで絞り込みます
      • priority (number):優先度で絞り込みます
      • assigneeId (string):担当者で絞り込みます
プロジェクト関連ツール
  1. linear_get_projects:組織内のプロジェクトを取得します

    • 任意の入力:
      • teamId (string):チームでプロジェクトを絞り込みます
      • includeArchived (boolean):アーカイブ済みのプロジェクトを含めます
      • limit (number, default: 50):返すプロジェクトの最大数
      • status (string):プロジェクトのステータスで絞り込みます
  2. linear_get_project:特定のプロジェクトの詳細を取得します

    • 必須の入力:
      • projectId (string):詳細を取得するプロジェクト ID
    • 進捗、ステータス、チーム、リード、日付など、プロジェクトの詳細情報を返します
  3. linear_get_project_issues:特定のプロジェクトの課題を取得します

    • 必須の入力:
      • projectId (string):課題を取得するプロジェクト ID
    • 任意の入力:
      • includeArchived (boolean):アーカイブ済みの課題を含めます
      • limit (number, default: 50):返す課題の最大数
      • status (string):課題のステータスで絞り込みます
      • priority (number):優先度で絞り込みます
課題関連ツール
  1. linear_create_issue:新しい Linear の課題を作成します

    • 必須の入力:
      • title (string):課題のタイトル
      • teamId (string):課題を作成するチーム ID
    • 任意の入力:
      • description (string):課題の説明(Markdown に対応)
      • priority (number, 0-4):優先度(1=緊急、4=低)
      • status (string):初期ステータス名
  2. linear_update_issue:既存の課題を更新します

    • 必須の入力:
      • id (string):更新する課題 ID
    • 任意の入力:
      • title (string):新しいタイトル
      • description (string):新しい説明
      • priority (number, 0-4):新しい優先度
      • status (string):新しいステータス名
  3. linear_search_issues:柔軟な条件で課題を検索します

    • 任意の入力:
      • query (string):タイトル/説明を検索するテキスト
      • teamId (string):チームで絞り込みます
      • status (string):ステータスで絞り込みます
      • assigneeId (string):担当者で絞り込みます
      • labels (string[]):ラベルで絞り込みます
      • priority (number):優先度で絞り込みます
      • limit (number, default: 10):結果の最大数
  4. linear_add_comment:課題にコメントを追加します

    • 必須の入力:
      • issueId (string):コメントを追加する課題 ID
      • body (string):コメント本文(Markdown に対応)
    • 任意の入力:
      • createAsUser (string):カスタムユーザー名
      • displayIconUrl (string):カスタムアバター URL
ラベル管理ツール
  1. linear_get_labels:組織内のラベルを取得します

    • 任意の入力:
      • teamId (string):チームでラベルを絞り込みます
      • includeArchived (boolean):アーカイブ済みのラベルを含めます
      • limit (number, default: 50):返すラベルの最大数
  2. linear_create_label:新しいラベルを作成します

    • 必須の入力:
      • name (string):ラベル名
      • teamId (string):ラベルを作成するチーム ID
    • 任意の入力:
      • color (string):カラーコード(例:「#FF0000」)
      • description (string):ラベルの説明
  3. linear_update_label:既存のラベルを更新します

    • 必須の入力:
      • id (string):更新するラベル ID
    • 任意の入力:
      • name (string):新しいラベル名
      • color (string):新しいカラーコード
      • description (string):新しい説明
添付ファイル管理ツール
  1. linear_add_attachment:課題に添付ファイルを追加します

    • 必須の入力:
      • issueId (string):添付ファイルを追加する課題 ID
      • url (string):添付ファイルの URL
      • title (string):添付ファイルのタイトル
    • 任意の入力:
      • subtitle (string):添付ファイルのサブタイトル
      • icon (string):添付ファイルのアイコン URL
  2. linear_get_attachments:課題の添付ファイルを取得します

    • 必須の入力:
      • issueId (string):添付ファイルを取得する課題 ID
Issue Relationship Tools
  1. linear_link_issues:イシュー間の関係を作成します

    • 必須入力:
      • issueId (string):元のイシュー ID
      • relatedIssueId (string):対象のイシュー ID
      • type (string):関係の種類(例:"blocks"、"related"、"duplicate")
  2. linear_get_issue_relations:イシューの関係を取得します

    • 必須入力:
      • issueId (string):関係を取得するイシュー ID
    • 任意入力:
      • type (string):関係の種類で絞り込みます
Milestone Management Tools
  1. linear_get_milestones:プロジェクトのマイルストーンを取得します

    • 任意入力:
      • projectId (string):プロジェクトでマイルストーンを絞り込みます
      • includeArchived (boolean):アーカイブ済みのマイルストーンを含めます
      • limit (number, default: 50):返すマイルストーンの最大数
  2. linear_create_milestone:新しいマイルストーンを作成します

    • 必須入力:
      • name (string):マイルストーン名
      • projectId (string):マイルストーンを作成するプロジェクト ID
      • targetDate (string):目標完了日(ISO 形式)
    • 任意入力:
      • description (string):マイルストーンの説明
      • sortOrder (number):マイルストーン一覧での位置
  3. linear_update_milestone:既存のマイルストーンを更新します

    • 必須入力:
      • id (string):更新するマイルストーン ID
    • 任意入力:
      • name (string):新しいマイルストーン名
      • targetDate (string):新しい目標日
      • description (string):新しい説明
      • status (string):新しいステータス(例:"planned"、"inProgress"、"completed")
リソース
  • linear-issue:///{issueId}:個別のイシューの詳細を表示します

    • タイトル、説明、コメント、メタデータなどのイシュー情報を返します
  • linear-team:///{teamId}:チームの詳細を表示します

    • 名前、キー、説明、メンバーなどのチーム情報を返します
  • linear-team:///{teamId}/issues:チームのイシューを表示します

    • ステータスと優先度の情報を含む、特定のチームのすべてのイシューを返します
  • linear-project:///{projectId}:プロジェクトの詳細を表示します

    • 名前、説明、進捗、ステータス、リード、チーム、タイムラインなどのプロジェクト情報を返します
  • linear-project:///{projectId}/issues:プロジェクトのイシューを表示します

    • ステータスと割り当ての情報を含む、特定のプロジェクトのすべてのイシューを返します
  • linear-project:///{projectId}/milestones:プロジェクトのマイルストーンを表示します

    • 進捗とステータスの情報を含む、特定のプロジェクトのすべてのマイルストーンを返します
  • linear-user:///{userId}/assigned:ユーザーに割り当てられたイシューを表示します

    • プロジェクトとチームのコンテキストを含む、特定のユーザーに割り当てられたイシューを返します
  • linear-organization::組織情報を表示します

    • 名前や設定などの組織レベルの情報を返します
  • linear-viewer::現在のユーザーのコンテキストを表示します

    • 認証済みユーザーの情報を返します
  • linear-viewer:///teams:認証済みユーザーのチームを表示します

    • 現在のユーザーがメンバーであるすべてのチームを返します
  • linear-viewer:///projects:認証済みユーザーのプロジェクトを表示します

    • 現在のユーザーがリードまたはメンバーとして関与しているすべてのプロジェクトを返します
  • linear-viewer:///assigned:認証済みユーザーに割り当てられたイシューを表示します

    • プロジェクトとチームのコンテキストを含む、現在のユーザーに割り当てられたすべてのイシューを返します
  • linear-label:///{labelId}:ラベルの詳細を表示します

    • 名前、色、関連するイシューなどのラベル情報を返します

使用例

以下は、Claude Desktop で Linear を操作する際に使用できるプロンプトの例です:

課題管理
  • 「認証システムの新しいバグ報告を作成して」→ linear_create_issue を使用して、適切な詳細を含む新しい課題を作成します

  • 「チケット FRONT-123 の優先度を緊急に変更して」→ linear_update_issue を使用して、既存の課題の優先度を変更します

  • 「ログインページのバグに、根本原因を説明するコメントを追加して」→ linear_add_comment を使用して、既存の課題に情報を追加します

課題の検索とフィルタリング
  • 「優先度の高い自分の課題をすべて表示して」→ linear_get_user_issues または linear-viewer:///assigned を使用して、自分に割り当てられた優先度の高い課題を検索します

  • 「進行中のフロントエンドタスクをすべて検索して」→ linear_search_issues を使用して、「進行中」ステータスのフロントエンド関連の課題を検索します

  • 「現在、Sarah に割り当てられている課題は?」→ Sarah の ID を指定して linear_get_user_issues を使用し、Sarah に割り当てられている課題を確認します

チームとプロジェクトの管理
  • 「自分が所属しているチームは?」→ linear_get_user_teams または linear-viewer:///teams を使用して、認証済みユーザーが所属するすべてのチームを一覧表示します

  • 「自分がリードまたは貢献しているプロジェクトを表示して」→ linear_get_user_projects または linear-viewer:///projects を使用して、現在のユーザーに関連付けられたすべてのプロジェクトを取得します

  • 「モバイルアプリプロジェクトの現在の進捗は?」→ linear_get_project を使用して、進捗を含むプロジェクトの詳細情報を取得します

  • 「Frontend チームのアクティブなプロジェクトをすべて一覧表示して」→ linear_get_team でチーム ID を検索し、チームフィルターを指定した linear_get_projects を組み合わせて、アクティブなプロジェクトを検索します

ステータスと作業負荷の分析
  • 「請求システムの課題に関する最近の更新を要約して」→ linear_search_issues で該当する課題を特定し、linear-issue:///{issueId} で課題の詳細を取得します

  • 「モバイルチームの現在の作業負荷は?」→ linear-team:///{teamId}/issues または linear_get_team_issues を使用して、チーム内の課題の分布を分析します

  • 「組織内での自分の役割と責任を表示して」→ linear_get_viewer と linear-viewer:///teams を使用して、チームへの所属状況と役割を分析します

ラベルと分類
  • 「優先度の高いセキュリティ課題向けに「security」ラベルを作成して」→ linear_create_label を使用して、適切な設定で新しいラベルを作成します

  • 「Frontend チームで利用できるラベルは?」→ Frontend チームの ID を指定して linear_get_labels を使用し、利用可能な分類を確認します

  • 「すべての API 課題に「needs-documentation」ラベルを適用して」→ linear_search_issues で API 関連の課題を検索し、それぞれを linear_update_issue で更新します

マイルストーン管理
  • 「ベータリリースのマイルストーンを作成して」→ linear_create_milestone を使用して、目標日を設定したプロジェクトのマイルストーンを作成します

  • 「モバイルアプリプロジェクトで今後予定されているマイルストーンは?」→ プロジェクト ID を指定して linear_get_milestones を使用し、予定されているリリースポイントを確認します

  • 「API v2 マイルストーンのステータスを完了に更新して」→ linear_update_milestone を使用して、マイルストーンのステータスを変更します

課題の関連付け
  • 「課題 FRONT-123 が API-456 をブロックしていると設定して」→ linear_link_issues を使用して、課題間にブロック関係を作成します

  • 「このバグによってブロックされている課題は?」→ linear_get_issue_relations を使用して、依存関係を検索します

  • 「認証システムに関連する課題をすべて表示して」→ 適切なフィルターを指定して linear_search_issues を使用し、その後 linear_get_issue_relations で関連性を確認します

開発

  1. 依存関係をインストールします:
npm install
  1. .env で Linear API キーを設定します:
LINEAR_API_KEY=your_api_key_here
  1. サーバーをビルドします:
npm run build

自動再ビルドを有効にして開発する場合:

npm run watch

ライセンス

この MCP サーバーは MIT ライセンスの下でライセンスされています。つまり、MIT ライセンスの利用規約に従う限り、このソフトウェアを自由に使用、変更、配布できます。詳細については、プロジェクトリポジトリの LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。