mcpField
S
Sentry MCP Server

Sentry MCP Server

ローカル
github.com/srcgrp開発ツール281 週間前に更新

Sentry MCP Server について

Sentry MCP Serverは、MCP対応環境からSentryのリリース健全性と問題の詳細を参照できる開発チーム向けのサーバーです。Sentry.ioとセルフホスト型Sentryに対応しています。

主な機能

  1. 01プロジェクトの最近のリリース一覧
  2. 02リリースのクラッシュフリー率とセッション数の確認
  3. 03IDによる問題詳細の取得
  4. 04リリースに紐づく問題の一覧
  5. 05サーバー設定と接続の検査

活用シーン

  1. 01リリースで発生した問題の確認
  2. 02リリースのクラッシュフリー状況の確認
  3. 03開発中のSentry問題の調査
  4. 04Sentryサーバー設定の検証

MCP 対応

MCPクライアントにSentryのリリース、健全性、問題を照会するツールを提供します。設定したAPIエンドポイントとトークンでSentryに接続します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

Sentry MCP サーバー

この Model Context Protocol(MCP)サーバーを使って、Sentry のエラートラッキングを開発ワークフローに直接統合できます。

MCP 対応環境(Cline 拡張機能を使った VS Code など)を離れることなく、Sentry のリリースヘルスデータやイシューの詳細にアクセスして、アプリケーションの安定性を把握できます。

主な機能

  • リリースの監視: 最近のリリースを一覧表示し、それぞれに関連付けられた新規イシュー数を確認できます。
  • リリースヘルス: クラッシュフリー率やセッション数など、特定のリリースに関する詳細な統計情報を取得できます。
  • イシューの調査: ID を指定して、特定の Sentry イシューの詳細情報を取得できます。
  • 対象を絞ったイシューの一覧表示: 特定のリリースバージョンに関連付けられたすべてのイシューを取得できます。
  • 柔軟な接続: Sentry.io(クラウド)とセルフホストの Sentry インスタンスの両方で動作します。
  • サーバーの検査: 設定とサーバーの状態を確認するツールが含まれています。

セットアップ

  1. リポジトリをクローンする: このリポジトリをローカルマシンにクローンします。

    git clone https://github.com/srcgrp/sentry-mcp-server.git
    cd sentry-mcp-server
    
  2. 依存関係をインストールしてビルドする: 必要な依存関係をインストールし、サーバーをビルドします。

    npm install
    npm run build 
    

    これにより、実行可能なサーバースクリプトが build/ ディレクトリに作成されます。

  3. MCP クライアントを設定する: サーバーを MCP クライアントの設定ファイル(Cline の場合は cline_mcp_settings.json など)に追加します。ビルドされた index.js ファイルへの絶対パスを必ず指定してください。

    {
      "mcpServers": {
        "sentry-local": { // ここには任意の名前を指定できます
          "command": "node", 
          "args": [
            "/path/to/your/cloned/sentry-mcp-server/build/index.js" // <-- 重要:ここでは絶対パスを指定してください
          ],
          "env": {
            // 環境変数はここで設定するか、.env ファイルから読み込めます(次の手順を参照)
          },
          "disabled": false, // 有効になっていることを確認してください
          "autoApprove": [] 
        }
        // ... その他のサーバー
      }
    }
    

    設定を変更した後は、MCP クライアントを再起動してください(例:VS Code を再読み込み)。

  4. .env ファイルを作成する: クローンした sentry-mcp-server プロジェクトのルートディレクトリに、次の必須変数を含む .env ファイルを作成します。

    # Sentry の認証情報と設定(必須)
    SENTRY_AUTH_TOKEN="YOUR_SENTRY_AUTH_TOKEN"  # Sentry > User Settings > API Keys から生成
    SENTRY_BASE_URL="YOUR_SENTRY_API_ENDPOINT" # 例:https://sentry.io/api/0/ または https://your-sentry-instance.com/api/0/
    SENTRY_ORG_SLUG="your-organization-slug"   # Sentry の組織スラッグ
    

    プレースホルダーの値を実際の Sentry 情報に置き換えてください。

設定の詳細

サーバーは次の環境変数を使用します(通常は .env ファイルで設定します)。

  • SENTRY_AUTH_TOKEN(必須): Sentry API の認証トークンです。サーバーに Sentry データへのアクセス権を付与します。
  • SENTRY_BASE_URL(必須): Sentry API のベース URL です。Sentry.io のクラウドユーザーの場合、通常は https://sentry.io/api/0/ です。セルフホストのインスタンスでは、そのインスタンスの API エンドポイントを使用してください。
  • SENTRY_ORG_SLUG(必須): Sentry 内で組織を識別する一意の識別子(スラッグ)です。個別のツール引数で上書きされない限り、API 呼び出し時のデフォルトの組織として使用されます。

利用可能なツール

このサーバーが提供するツールの概要と使用例を以下に示します。

1. inspect_sentry
  • 説明: サーバーの現在の設定を確認し、Sentry への接続を検証し(指定されたトークンと URL を使用)、利用可能な機能を一覧表示して、基本的な環境情報を表示します。セットアップの問題のデバッグに役立ちます。
  • 入力スキーマ: なし(引数は不要です)。
  • 使用例(MCP クライアント):
    {
      "tool_name": "inspect_sentry",
      "arguments": {}
    }
    
  • 出力例:
    {
      "configuration": {
        "baseUrl": "https://sentry.io/api/0/",
        "authTokenConfigured": true,
        "defaultOrg": "your-organization-slug"
      },
      "capabilities": [
        "list_recent_releases",
        "get_releases",
        "get_release_health",
        "get_issue",
        "get_release_issues"
        // inspect_sentry is excluded from this list
      ],
      "environment": {
        "nodeVersion": "v18.12.0",
        "platform": "linux",
        "memoryUsage": { /* ... */ }
      }
    }
    
2. list_recent_releases
  • 説明: 指定したプロジェクトの最新リリースを日付順(新しい順)に取得します。各リリースで新たに発生した問題の数も含まれます。
  • 入力スキーマ:
    • project_slug(文字列、必須):Sentry プロジェクトのスラッグ。
    • org_slug(文字列、任意):組織のスラッグ。デフォルトは .env の SENTRY_ORG_SLUG です。
    • count(数値、任意):返すリリースの最大数。デフォルトは 5 です。
  • 使用例(MCP クライアント):
    {
      "tool_name": "list_recent_releases",
      "arguments": {
        "project_slug": "your-frontend-project",
        "count": 3 
      }
    }
    
  • 出力例:
    [
      {
        "version": "[email protected]",
        "date": "2023-10-27T10:30:00Z",
        "new_issues": 2,
        "type": "desktop" 
      },
      {
        "version": "[email protected]",
        "date": "2023-10-26T15:00:00Z",
        "new_issues": 0,
        "type": "desktop"
      },
      {
        "version": "[email protected]",
        "date": "2023-10-25T09:00:00Z",
        "new_issues": 5,
        "type": "mobile" 
      }
    ]
    
3. get_releases
  • 説明: プロジェクトのすべてのリリースを日付順(新しい順)に取得します。
  • 入力スキーマ:
    • project_slug(文字列、必須):Sentry プロジェクトのスラッグ。
    • org_slug(文字列、任意):組織のスラッグ。デフォルトは SENTRY_ORG_SLUG です。
  • 使用例(MCP クライアント):
    {
      "tool_name": "get_releases",
      "arguments": {
        "project_slug": "your-backend-service"
      }
    }
    
  • 出力例:(list_recent_releases と同様の構造ですが、エントリー数が大幅に多くなる場合があります)
4. get_release_health
  • 説明: 特定のリリースバージョン(バージョンを指定しない場合は最新リリース)の健全性統計を提供します。クラッシュフリー率、セッション数、新たに発生した問題の数が含まれます。
  • 入力スキーマ:
    • project_slug(文字列、必須):Sentry プロジェクトのスラッグ。
    • org_slug(文字列、任意):組織のスラッグ。デフォルトは SENTRY_ORG_SLUG です。
    • release_version(文字列、任意):特定のリリースバージョン文字列。省略すると、最新リリースのデータを取得します。
  • 使用例(MCP クライアント):
    {
      "tool_name": "get_release_health",
      "arguments": {
        "project_slug": "your-frontend-project",
        "release_version": "[email protected]"
      }
    }
    
  • 出力例:
    {
      "version": "[email protected]",
      "new_issues": 2,
      "crash_free_rate": 99.5, // Example value
      "sessions": 15000,      // Example value
      "stats": { /* Detailed Sentry stats object */ } 
    }
    
5. get_issue
  • 説明: ID を使用して、特定の Sentry issue の基本情報(ID、タイトル、パーマリンク)を取得します。
  • 入力スキーマ:
    • issue_id (string, required):Sentry issue の数値 ID です。
    • org_slug (string, required):issue が存在する組織のスラッグです。
    • project_slug (string, required):issue が存在するプロジェクトのスラッグです。
  • 使用例(MCP クライアント):
    {
      "tool_name": "get_issue",
      "arguments": {
        "issue_id": "123456789",
        "org_slug": "your-organization-slug",
        "project_slug": "your-frontend-project"
      }
    }
    
  • 出力例:
    {
      "id": "123456789",
      "title": "TypeError: Cannot read properties of undefined (reading 'map')",
      "permalink": "https://your-organization-slug.sentry.io/issues/123456789/"
    }
    
6. get_release_issues
  • 説明: 特定のリリースバージョン(バージョンが指定されていない場合は最新リリース)に関連付けられたすべての issue の一覧を取得します。
  • 入力スキーマ:
    • project_slug (string, required):Sentry プロジェクトのスラッグです。
    • org_slug (string, optional):組織のスラッグです。デフォルトは SENTRY_ORG_SLUG です。
    • release_version (string, optional):特定のリリースバージョン文字列です。省略すると、最新リリースの issue を取得します。
  • 使用例(MCP クライアント):
    {
      "tool_name": "get_release_issues",
      "arguments": {
        "project_slug": "your-backend-service",
        "release_version": "[email protected]"
      }
    }
    
  • 出力例:(issue オブジェクトの一覧。get_issue の出力と同様の構造です)
    [
      { "id": "987654321", "title": "Database connection timeout", "permalink": "..." },
      { "id": "987654322", "title": "NullPointerException in UserServic", "permalink": "..." }
      // ... more issues
    ]
    

ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください(MIT ライセンスファイルを追加することを前提としています)。

サポートとコントリビューション

問題、質問、機能リクエストについては、GitHub リポジトリで issue を作成してください。

コントリビューションを歓迎します!標準的なフォークおよびプルリクエストのワークフローに従ってください。

コメント

MCP は初めてですか?

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

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