Skip to content

feat: add Linear MCP server integration - #357

Merged
keito4 merged 2 commits into
mainfrom
feat/add-linear-mcp-integration
Jan 22, 2026
Merged

feat: add Linear MCP server integration#357
keito4 merged 2 commits into
mainfrom
feat/add-linear-mcp-integration

Conversation

@keito4

@keito4 keito4 commented Jan 22, 2026

Copy link
Copy Markdown
Owner
  • Add @mseep/linear-mcp@78.0.1 to npm/global.json
  • Create mcp.json with Linear MCP server configuration
  • Add LINEAR_API_KEY to mcp.env.template for 1Password integration

Summary

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • CI/CD changes
  • Dependencies update

Related Issues

Changes Made

Testing

  • Unit tests pass (npm test)
  • Integration tests pass (npm run test:integration)
  • Linting passes (npm run lint)
  • Format check passes (npm run format:check)

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my code
  • I have commented my code where necessary
  • I have updated the documentation accordingly
  • My changes generate no new warnings
  • I have added tests that prove my fix/feature works
  • All existing tests still pass
  • This PR has a clear, descriptive title

Screenshots (if applicable)

Additional Notes

Summary by CodeRabbit

  • New Features

    • Added integrations for Linear and n8n to enable workflow automation and issue tracking connections.
  • Documentation

    • Updated guides to list the new services and added credential setup instructions and examples for storing required environment variables.

✏️ Tip: You can customize this high-level summary in your review settings.

- Add @mseep/linear-mcp@78.0.1 to npm/global.json
- Create mcp.json with Linear MCP server configuration
- Add LINEAR_API_KEY to mcp.env.template for 1Password integration
@github-actions github-actions Bot added the size/XS PR サイズ Extra Small label Jan 22, 2026
@coderabbitai

coderabbitai Bot commented Jan 22, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

Adds Linear and n8n MCP server configurations, corresponding npm dependency, and environment variable templates and documentation entries for those services; introduces a new mcp.json and updates MCP server templates and credential docs.

Changes

Cohort / File(s) Summary
MCP server configs
mcp.json, .mcp.json.template
Adds linear and n8n MCP server entries (stdio commands invoked via npx) including env var references (LINEAR_API_KEY, N8N_API_URL, N8N_API_KEY).
Credentials templates & docs
credentials/templates/mcp.env.template, credentials/README.md, README.md
Adds declarations/comments for LINEAR_API_KEY, N8N_API_URL, N8N_API_KEY in env template and documents supported MCP servers and 1Password setup in credentials docs and README service list.
Package dependency manifest
npm/global.json
Adds @mseep/linear-mcp@78.0.1 to global npm dependencies.

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐰 I hopped through configs, keen and spry,
Added Linear and n8n to the sky,
Env keys tucked safe in a vault so deep,
MCPs awake from their quiet sleep,
Hooray — a carrot-coded leap! 🥕

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Title check ⚠️ Warning The PR title 'feat: add Linear MCP server integration' describes only one of the main changes (Linear), but the changeset also adds n8n MCP server support, template updates, and documentation—making the title incomplete. Consider updating the title to reflect all major additions, such as 'feat: add Linear and n8n MCP server integrations with templates and docs' or similar, to accurately represent the full scope of changes.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@claude

claude Bot commented Jan 22, 2026

Copy link
Copy Markdown
Contributor

PR Review: Linear MCP Server Integration

概要

Linear MCP サーバー統合の追加を確認しました。全体的に良好な実装ですが、いくつかの重要な問題と改善提案があります。


🔴 重大な問題

1. mcp.json.mcp.json.template の不整合

問題点:

  • PR で追加された mcp.json (mcp.json:1-12) は本番用の設定ファイルのように見えますが、既存のセットアップスクリプト script/setup-mcp.sh.mcp.json.template から .mcp.json を生成する仕組みになっています
  • .mcp.json.template (既存ファイル) には Linear MCP サーバーの設定が含まれていません
  • mcp.json というファイル名は、このリポジトリの命名規則(.mcp.json または .mcp.json.template)と一致していません

影響:

  • setup-mcp.sh を実行すると、mcp.json に追加された Linear 設定が上書きされて失われる可能性があります
  • 環境変数の置換が正しく機能しない可能性があります

推奨対応:

# .mcp.json.template に Linear 設定を追加すべきです
{
  "mcpServers": {
    "playwright": { ... },
    "o3": { ... },
    "linear": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@mseep/linear-mcp"],
      "env": {
        "LINEAR_API_KEY": "${LINEAR_API_KEY}"
      }
    }
  }
}

そして mcp.json ファイルは削除し、代わりに .gitignore.mcp.json が含まれていることを確認してください。


⚠️ 中程度の問題

2. setup-mcp.sh の環境変数チェックロジック更新が必要

問題点:

  • script/setup-mcp.sh:67-71 では OPENAI_API_KEY の存在チェックがありますが、LINEAR_API_KEY のチェックがありません
  • 新しい環境変数を追加した場合、セットアップスクリプトも更新するのがベストプラクティスです

推奨対応:

# LINEAR_API_KEY のチェックも追加
if [[ -z "${LINEAR_API_KEY:-}" ]]; then
    print_warning "LINEAR_API_KEY が設定されていません"
    print_info "Linear MCP 機能は利用できません"
fi

3. MCP サーバー設定の type フィールドが欠落

問題点:

  • mcp.json:4-10 の Linear 設定には "type": "stdio" フィールドがありません
  • .mcp.json.template の既存設定(playwright, o3)にはすべて type フィールドが含まれています

推奨対応:

"linear": {
  "type": "stdio",  // 追加
  "command": "npx",
  "args": ["-y", "@mseep/linear-mcp"],
  "env": {
    "LINEAR_API_KEY": "${LINEAR_API_KEY}"
  }
}

✅ 良い点

  1. 適切なコミットメッセージ: feat: プレフィックスを使用し、npm/global.json の変更に対してリリーストリガー型を使用している(CLAUDE.md の要件に準拠)
  2. 1Password 統合: credentials/templates/mcp.env.templateop:// 参照を使用しているのは、セキュリティのベストプラクティスに沿っています
  3. 依存関係の追加: npm/global.json@mseep/linear-mcp@78.0.1 を適切に追加しています

📝 改善提案

4. ドキュメント更新が必要

推奨対応:

  • README.md または関連ドキュメントに Linear MCP サーバーの使用方法を追加
  • どのような機能が利用可能か、どのように設定するかを記載

5. PR Description の完成度

現状の問題:

  • "Type of Change" セクションでチェックボックスが選択されていません
  • "Changes Made" セクションが空です
  • "Testing" チェックリストが未完了です
  • "Checklist" が未完了です

推奨対応:
PR の品質基準(.claude/CLAUDE.md:2.3 参照)に従って、すべてのセクションを完成させてください。


🔒 セキュリティ

  • ✅ API キーが環境変数として適切に管理されています
  • ✅ テンプレートファイルに実際の認証情報が含まれていません
  • ✅ 1Password 統合により、機密情報の安全な管理が実現されています

📊 テストカバレッジ

懸念事項:

  • MCP サーバー統合のテストが含まれていません
  • セットアップスクリプトの動作確認が必要です

推奨対応:
以下を確認・テストしてください:

  1. bash script/setup-env.sh が正常に動作すること
  2. bash script/setup-mcp.sh が Linear 設定を含む .mcp.json を正しく生成すること
  3. Claude Code で Linear MCP サーバーが正しく認識され、動作すること

🎯 推奨アクション(優先順位順)

  1. [必須] mcp.json を削除し、.mcp.json.template に Linear 設定を追加
  2. [必須] Linear 設定に "type": "stdio" を追加
  3. [推奨] setup-mcp.shLINEAR_API_KEY の環境変数チェックを追加
  4. [推奨] PR Description のすべてのセクションを完成させる
  5. [推奨] セットアップスクリプトの動作確認を実施し、結果を PR に記載
  6. [任意] ドキュメントに Linear MCP の使用方法を追加

総合評価

コンセプトとセキュリティ対応は良好ですが、既存のセットアップフローとの統合に問題があります。上記の修正を行えば、マージ可能な状態になります。

ステータス: 🔶 変更が必要(Changes Requested)


レビュー by Claude Sonnet 4.5 🤖

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@mcp.json`:
- Around line 5-7: The mcp.json entry currently runs npx with an unpinned
package "@mseep/linear-mcp"; update the args array element in mcp.json to pin
the package to the version specified in npm/global.json (78.0.1) so it becomes
"@mseep/linear-mcp@78.0.1", ensuring deterministic installs and matching the
global.json version.

Comment thread mcp.json
Comment on lines +5 to +7
"command": "npx",
"args": ["-y", "@mseep/linear-mcp"],
"env": {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, find the relevant files
git ls-files | grep -E "(mcp\.json|global\.json)"

Repository: keito4/config

Length of output: 100


🏁 Script executed:

# Also check if there's a package.json or similar that might contain version info
git ls-files | head -20

Repository: keito4/config

Length of output: 815


🏁 Script executed:

# Read mcp.json to verify the content
cat -n mcp.json

Repository: keito4/config

Length of output: 405


🏁 Script executed:

# Read npm/global.json to find `@mseep/linear-mcp` version
cat -n npm/global.json

Repository: keito4/config

Length of output: 2165


Pin the npx package version to match npm/global.json for consistency and determinism.

The mcp.json config uses npx @mseep/linear-mcp`` without a version pin, which will always pull the latest release from the npm registry. However, npm/global.json specifies version 78.0.1. To prevent behavior drift and supply-chain risk, pin the version in mcp.json to match:

🔧 Proposed fix
-      "args": ["-y", "@mseep/linear-mcp"],
+      "args": ["-y", "@mseep/linear-mcp@78.0.1"],
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"command": "npx",
"args": ["-y", "@mseep/linear-mcp"],
"env": {
"command": "npx",
"args": ["-y", "@mseep/linear-mcp@78.0.1"],
"env": {
🤖 Prompt for AI Agents
In `@mcp.json` around lines 5 - 7, The mcp.json entry currently runs npx with an
unpinned package "@mseep/linear-mcp"; update the args array element in mcp.json
to pin the package to the version specified in npm/global.json (78.0.1) so it
becomes "@mseep/linear-mcp@78.0.1", ensuring deterministic installs and matching
the global.json version.

- Add Linear MCP server (@mseep/linear-mcp@78.0.1)
- Add n8n MCP server (@leonardsellem/n8n-mcp-server@0.1.8)
- Update .mcp.json.template with all supported MCP servers
- Add environment variable templates for Linear and n8n
- Update documentation (README.md, credentials/README.md)
- Document all supported MCP servers and their configuration
@github-actions github-actions Bot added size/S PR サイズ Small and removed size/XS PR サイズ Extra Small labels Jan 22, 2026
@claude

claude Bot commented Jan 22, 2026

Copy link
Copy Markdown
Contributor

PRレビュー

このPRは Linear MCP サーバーと n8n MCP サーバーの統合を追加するものです。以下の観点からレビューを実施しました。


✅ 良い点

1. 適切な構成管理

  • .mcp.json.template にテンプレートを追加し、機密情報をテンプレート化
  • 1Password連携を使用した安全な認証情報管理
  • 環境変数のテンプレート(mcp.env.template)で必要な値を明確化

2. 包括的なドキュメント

  • credentials/README.md にMCPサーバー一覧表を追加
  • 各サーバーの必要な環境変数を明示
  • 1Passwordボールトでの保存方法を説明

3. 一貫性のある実装

  • 既存のPlaywright、o3と同様のパターンで実装
  • npm/global.json に適切にパッケージを追加

⚠️ 重大な問題

1. mcp.json がコミットされている

ファイル: mcp.json
問題: このファイルは .gitignore に登録されており、本来コミットすべきではありません。

.gitignore:64mcp.json は除外対象になっています。このファイルには環境変数の参照が含まれており、ユーザーごとに異なる可能性があるため、テンプレートファイルのみをバージョン管理すべきです。

推奨対応:

git rm --cached mcp.json

2. PRの説明が不完全

PR本文のチェックリストやセクションがほぼ空欄です。CLAUDE.mdのルールに従い、以下を記載すべきです:

  • Type of Change: どのタイプの変更か(New feature にチェック推奨)
  • Related Issues: 関連するIssue番号
  • Changes Made: 詳細な変更内容のリスト
  • Testing: 実施したテストの説明
  • Checklist: すべての項目にチェック

3. テストカバレッジの欠如

CLAUDE.mdでは「TDD: Red → Green → Refactor」および「70%+ 行カバレッジ」が要求されています。

推奨対応:

  • MCP統合の動作確認テストを追加
  • Linear APIキーが設定されていない場合のフォールバック動作を確認
  • script/setup-mcp.sh が新しいサーバー設定を正しく処理できることを検証

📋 軽微な改善提案

1. .mcp.json.template の一貫性

linearn8n の設定で "type": "stdio" が含まれていますが、mcp.json には含まれていません。テンプレートと実ファイルで形式を統一すべきです。

2. コミットメッセージ

CLAUDE.mdの「Release Types Required for Tooling Changes」ルールに従うと、npm/global.json の変更があるため、feat タイプは正しい選択です。ただし、n8nサーバーも追加されているため、コミットメッセージで両方に言及すると良いでしょう。

推奨: feat: add Linear and n8n MCP server integration

3. ドキュメントの改善提案

credentials/README.md の表に「バージョン」列を追加すると、将来のメンテナンス時に有用です。

4. n8nサーバーの位置づけ

PRタイトルは「Linear MCP server integration」となっていますが、実際にはn8nサーバーも追加されています。PRタイトルを更新するか、n8n関連の変更を別PRに分離することを検討してください。


🔒 セキュリティ

チェック済み

  • ✅ 認証情報がハードコードされていない
  • ✅ 環境変数参照を使用
  • ✅ 1Password連携で機密情報を保護

🎯 次のステップ

  1. Blocker: mcp.json をリポジトリから削除
  2. Blocker: PRの説明を完成させる(チェックリスト、テスト結果)
  3. 推奨: 統合テストを追加(特にMCP設定の自動生成プロセス)
  4. 推奨: CI/CDパイプラインでのチェックが全てパスすることを確認

📊 総評

全体的な評価: 構成は良好ですが、Git管理とテストカバレッジに改善が必要です。

承認条件:

  • mcp.json の削除
  • PRの説明の完成
  • CI/CDパイプラインの通過

上記対応後、再レビュー依頼をお願いします。

@keito4
keito4 merged commit ba52138 into main Jan 22, 2026
19 checks passed
@keito4
keito4 deleted the feat/add-linear-mcp-integration branch January 29, 2026 00:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/S PR サイズ Small

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant