Linear MCP Server

by magarcia
Verified
MIT License
  • Apple

Integrations

  • Interfaces with Linear's GraphQL API, enabling structured queries and mutations for accessing and manipulating data in the Linear platform.

  • Provides integration with Linear's issue tracking system, allowing management of issues, teams, projects, labels, milestones, and attachments. Supports creating and updating issues, adding comments, searching and filtering issues, managing relationships between issues, and accessing detailed information about teams, projects, and users.

リニアMCPサーバー

Linear API用のモデル コンテキスト プロトコルサーバー。

このサーバーは、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 (文字列): ユーザーID (認証されたユーザーの場合は省略)
      • includeArchived (boolean): アーカイブされた問題を含める
      • limit (数値、デフォルト:50):最大結果数
  3. linear_get_user_teams : ユーザーに関連付けられたチームを取得する
    • オプション入力:
      • userId (文字列): チームを取得するユーザーID(認証されたユーザーの場合は省略)
      • includeArchived (boolean): アーカイブされたチームを含める
      • limit (数値、デフォルト:50):返されるチームの最大数
    • ユーザーが所属するチームのリストを返します
  4. linear_get_user_projects : ユーザーに関連付けられたプロジェクトを取得する
    • オプション入力:
      • userId (文字列): プロジェクトを取得するユーザーID(認証されたユーザーの場合は省略)
      • includeArchived (boolean): アーカイブされたプロジェクトを含める
      • limit (数値、デフォルト:50):返されるプロジェクトの最大数
      • status (文字列):プロジェクトのステータスでフィルタリングします(例:「完了」、「進行中」)
    • ユーザーがリーダーまたはメンバーであるプロジェクトのリストを返します

チーム関連ツール

  1. linear_get_teams : 組織内のチームを取得する
    • オプション入力:
      • includeArchived (boolean): アーカイブされたチームを含める
      • limit (数値、デフォルト:50):返されるチームの最大数
  2. linear_get_team : 特定のチームの詳細を取得する
    • 必要な入力:
      • teamId (文字列): 詳細を取得するチームID
    • 名前、キー、メンバー、設定などのチーム情報を返します
  3. linear_get_team_issues : 特定のチームの問題を取得する
    • 必要な入力:
      • teamId (文字列): 問題を取得するチームID
    • オプション入力:
      • includeArchived (boolean): アーカイブされた問題を含める
      • limit (数値、デフォルト:50):返される問題の最大数
      • status (文字列):問題のステータスでフィルタリング
      • priority (数値):優先度でフィルタリング
      • assigneeId (文字列): 担当者によるフィルタリング

プロジェクト関連ツール

  1. linear_get_projects : 組織内のプロジェクトを取得する
    • オプション入力:
      • teamId (文字列): チーム別にプロジェクトをフィルタリング
      • includeArchived (boolean): アーカイブされたプロジェクトを含める
      • limit (数値、デフォルト:50):返されるプロジェクトの最大数
      • status (文字列): プロジェクトのステータスでフィルタリング
  2. linear_get_project : 特定のプロジェクトの詳細を取得する
    • 必要な入力:
      • projectId (文字列): 詳細を取得するプロジェクトID
    • 進捗、ステータス、チーム、リーダー、日付などの詳細なプロジェクト情報を返します
  3. linear_get_project_issues : 特定のプロジェクトの問題を取得する
  • 必要な入力:
    • projectId (文字列): 問題を取得するプロジェクトID
  • オプション入力:
    • includeArchived (boolean): アーカイブされた問題を含める
    • limit (数値、デフォルト:50):返される問題の最大数
    • status (文字列):問題のステータスでフィルタリング
    • priority (数値):優先度でフィルタリング

問題関連ツール

  1. linear_create_issue : 新しいLinear問題を作成する
  • 必要な入力:
    • title (文字列): 問題のタイトル
    • teamId (文字列): 問題を作成するチームID
  • オプション入力:
    • description (文字列): 問題の説明 (マークダウン対応)
    • priority (数字、0~4):優先度レベル(1=緊急、4=低)
    • status (文字列):初期ステータス名
  1. linear_update_issue : 既存の問題を更新する
  • 必要な入力:
    • id (文字列): 更新する問題ID
  • オプション入力:
    • title (文字列): 新しいタイトル
    • description (文字列): 新しい説明
    • priority (数字、0~4):新しい優先度
    • status (文字列): 新しいステータス名
  1. linear_search_issues : 柔軟なフィルタリングによる問題の検索
  • オプション入力:
    • query (文字列): タイトル/説明で検索するテキスト
    • teamId (文字列): チームでフィルタリング
    • status (文字列):ステータスでフィルタリング
    • assigneeId (文字列): 担当者によるフィルタリング
    • labels (文字列[]): ラベルでフィルタリング
    • priority (数値):優先度でフィルタリング
    • limit (数値、デフォルト:10):最大結果数
  1. linear_add_comment : 問題にコメントを追加する
  • 必要な入力:
    • issueId (文字列): コメントする問題ID
    • body (文字列): コメントテキスト(マークダウン対応)
  • オプション入力:
    • createAsUser (文字列): カスタムユーザー名
    • displayIconUrl (文字列): カスタムアバターURL

ラベル管理ツール

  1. linear_get_labels : 組織内のラベルを取得する
  • オプション入力:
    • teamId (文字列): チームでラベルをフィルタリング
    • includeArchived (boolean): アーカイブされたラベルを含める
    • limit (数値、デフォルト: 50): 返されるラベルの最大数
  1. linear_create_label : 新しいラベルを作成する
  • 必要な入力:
    • name (文字列): ラベル名
    • teamId (文字列): ラベルを作成するチームID
  • オプション入力:
    • color (文字列): 色の16進コード(例: "#FF0000")
    • description (文字列): ラベルの説明
  1. linear_update_label : 既存のラベルを更新する
  • 必要な入力:
    • id (文字列): 更新するラベルID
  • オプション入力:
    • name (文字列): 新しいラベル名
    • color (文字列): 新しい色の16進コード
    • description (文字列): 新しい説明

添付ファイル管理ツール

  1. linear_add_attachment : 問題に添付ファイルを追加する
  • 必要な入力:
    • issueId (文字列): 添付ファイルを追加する問題ID
    • url (文字列): 添付ファイルのURL
    • title (文字列): 添付ファイルのタイトル
  • オプション入力:
    • subtitle (文字列): 添付ファイルのサブタイトル
    • icon (文字列): 添付ファイルのアイコンURL
  1. linear_get_attachments : 問題の添付ファイルを取得する
  • 必要な入力:
    • issueId (文字列): 添付ファイルを取得する問題ID

問題関係ツール

  1. linear_link_issues : 問題間の関係を作成する
  • 必要な入力:
    • issueId (文字列): ソースの問題ID
    • relatedIssueId (文字列): 対象の問題ID
    • type (文字列): 関係の種類 (例: "blocks"、"related"、"duplicate")
  1. linear_get_issue_relations : 問題の関係を取得する
  • 必要な入力:
    • issueId (文字列): 関係を取得する問題ID
  • オプション入力:
    • type (文字列): 関係の種類でフィルタリング

マイルストーン管理ツール

  1. linear_get_milestones : プロジェクトのマイルストーンを取得する
  • オプション入力:
    • projectId (文字列): プロジェクト別にマイルストーンをフィルタリング
    • includeArchived (boolean): アーカイブされたマイルストーンを含める
    • limit (数値、デフォルト:50):返されるマイルストーンの最大数
  1. linear_create_milestone : 新しいマイルストーンを作成する
  • 必要な入力:
    • name (文字列): マイルストーン名
    • projectId (文字列): マイルストーンを作成するプロジェクトID
    • targetDate (文字列): 目標完了日 (ISO 形式)
  • オプション入力:
    • description (文字列): マイルストーンの説明
    • sortOrder (数値): マイルストーンリスト内の位置
  1. linear_update_milestone : 既存のマイルストーンを更新する
  • 必要な入力:
    • id (文字列): 更新するマイルストーンID
  • オプション入力:
    • name (文字列): 新しいマイルストーン名
    • targetDate (文字列): 新しい目標日
    • description (文字列): 新しい説明
    • status (文字列):新しいステータス(例:「計画中」、「進行中」、「完了」)

リソース

  • 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を使用して、「進行中」ステータスのフロントエンド関連の問題を検索します。
  • 「現在サラに割り当てられている課題は何ですか?」→ サラのIDを指定してlinear_get_user_issues実行すると、サラの課題が表示されます。

チームとプロジェクト管理

  • 「私はどのチームのメンバーですか?」→ 認証されたユーザーが所属するすべてのチームを一覧表示するには、 linear_get_user_teamsまたはlinear-viewer:///teamsを使用します。
  • 「自分が主導または貢献しているプロジェクトを表示」→ linear_get_user_projectsまたはlinear-viewer:///projectsを使用して、現在のユーザーに関連付けられているすべてのプロジェクトを取得します。
  • 「モバイルアプリプロジェクトの現在の進捗状況は?」→ linear_get_projectを使用して、進捗状況を含むプロジェクトの詳細情報を取得します。
  • 「フロントエンドチームのアクティブなプロジェクトをすべて一覧表示する」→ linear_get_teamを組み合わせてチーム ID を見つけ、 linear_get_projectsとチームフィルターを組み合わせてアクティブなプロジェクトを見つけます。

ステータスとワークロード分析

  • 「課金システムの問題に関する最近の更新の概要を教えてください」→ linear_search_issuesを使用して関連する問題を特定し、 linear-issue:///{issueId}使用して問題の詳細を取得します
  • 「モバイルチームの現在の作業負荷はどれくらいですか?」→ チーム全体の課題の分布を分析するにはlinear-team:///{teamId}/issuesまたはlinear_get_team_issuesを使用します。
  • 「組織内での自分の役割と責任を教えてください」→ linear_get_viewerlinear-viewer:///teamsを使用して、チームのメンバーシップと役割を分析します。

ラベルと分類

  • 「優先度の高いセキュリティ問題に「セキュリティ」ラベルを作成する」→ linear_create_labelを使用して適切な設定で新しいラベルを作成します
  • 「フロントエンドチームで利用できるラベルは何ですか?」→ フロントエンドチーム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ファイルをご覧ください。

-
security - not tested
A
license - permissive license
-
quality - not tested

大規模な言語モデルが Linear の問題追跡システムと対話できるようにし、問題、プロジェクト、チーム、およびその他の Linear リソースの管理を可能にするモデル コンテキスト プロトコル サーバー。

  1. Installation
    1. Automatic Installation
    2. Manual Installation
  2. Components
    1. Tools
    2. Resources
  3. Usage examples
    1. Issue Management
    2. Finding and Filtering Issues
    3. Team and Project Management
    4. Status and Workload Analysis
    5. Label and Categorization
    6. Milestone Management
    7. Issue Relationships
  4. Development
    1. License
      ID: hb4oc9s50d