mcpField
S
sentry

sentry

github.com/letta-aiクラウド・DevOps152109 回インストール4 週間前に更新
リポジトリ

sentry について

Sentry API から課題やイベントの詳細を取得する読み取り専用スキルです。組織、プロジェクト、期間、検索条件を指定して調査できます。

主な機能

  1. 01課題の一覧と絞り込み
  2. 02課題の詳細取得
  3. 03課題イベントの一覧取得
  4. 04イベント詳細の取得
  5. 05ページネーションと一時エラーの再試行

活用シーン

  1. 01本番環境の未解決課題を確認する
  2. 02短縮 ID から課題を特定する
  3. 03生のスタックトレースを出さずにイベント情報を調べる

インストール

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

$npx skills add https://github.com/letta-ai/skills --skill sentry

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

同梱ファイル

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

LICENSE.txt
agents/
openai.yaml
assets/
sentry-small.svg
scripts/
sentry_api.py

詳細

Sentry(読み取り専用のオブザーバビリティ)

クイックスタート

  • まだ認証されていない場合は、コマンドを実行する前に、有効な SENTRY_AUTH_TOKEN(project:read、event:read などの読み取り専用スコープ)を提示するか、ログインしてトークンを作成するようユーザーに依頼します。
  • SENTRY_AUTH_TOKEN を環境変数として設定します。
  • 任意のデフォルト値:SENTRY_ORG、SENTRY_PROJECT、SENTRY_BASE_URL。
  • デフォルト値:組織/プロジェクトは {your-org}/{your-project}、期間は 24h、環境は prod、上限は 20(最大 50)。
  • 必ず Sentry API を呼び出します(ヒューリスティックやキャッシュは使用しません)。

トークンがない場合は、次の手順を案内します。

  1. Sentry 認証トークンを作成します:https://sentry.io/settings/account/api/auth-tokens/
  2. project:read、event:read、org:read などの読み取り専用スコープを指定してトークンを作成します。
  3. システムの環境変数として SENTRY_AUTH_TOKEN を設定します。
  4. 必要であれば、使用している OS/シェルでの環境変数の設定方法を案内します。
  • トークン全体をチャットに貼り付けるよう求めてはいけません。ローカルで設定してもらい、準備ができたら確認してもらいます。

コアタスク(同梱スクリプトを使用)

決定的な API 呼び出しには scripts/sentry_api.py を使用します。ページネーションを処理し、一時的なエラーが発生した場合は 1 回再試行します。

スキルのパス(一度だけ設定)

# Set to the directory containing this SKILL.md
export SENTRY_API="<path-to-skill>/scripts/sentry_api.py"

<path-to-skill> を実際のスキルのインストールディレクトリ(例:.skills/sentry または ~/.letta/skills/sentry)に置き換えます。

1)イシューの一覧表示(最新順)
python3 "$SENTRY_API" \
  list-issues \
  --org {your-org} \
  --project {your-project} \
  --environment prod \
  --time-range 24h \
  --limit 20 \
  --query "is:unresolved"
2)イシューの短縮 ID をイシュー ID に解決
python3 "$SENTRY_API" \
  list-issues \
  --org {your-org} \
  --project {your-project} \
  --query "ABC-123" \
  --limit 1

返された id をイシューの詳細またはイベントに使用します。

3)イシューの詳細
python3 "$SENTRY_API" \
  issue-detail \
  1234567890
4)イシューのイベント
python3 "$SENTRY_API" \
  issue-events \
  1234567890 \
  --limit 20
5)イベントの詳細(デフォルトではスタックトレースなし)
python3 "$SENTRY_API" \
  event-detail \
  --org {your-org} \
  --project {your-project} \
  abcdef1234567890

API の要件

常に次のエンドポイントを使用します(GET のみ)。

  • イシュー一覧:/api/0/projects/{org_slug}/{project_slug}/issues/
  • イシューの詳細:/api/0/issues/{issue_id}/
  • イシューのイベント:/api/0/issues/{issue_id}/events/
  • イベントの詳細:/api/0/projects/{org_slug}/{project_slug}/events/{event_id}/

入力とデフォルト値

  • org_slug、project_slug:デフォルトは {your-org}/{your-project}(本番環境以外の組織は避けます)。
  • time_range:デフォルトは 24h(statsPeriod として渡します)。
  • environment:デフォルトは prod。
  • limit:デフォルトは 20、最大 50(上限に達するまでページネーションします)。
  • search_query:任意の query パラメーター。
  • issue_short_id:まずイシュー一覧のクエリで解決します。

出力形式のルール

  • イシュー一覧:タイトル、short_id、ステータス、first_seen、last_seen、count、環境、top_tags を表示し、最新順に並べます。
  • イベントの詳細:culprit、タイムスタンプ、環境、リリース、URL を含めます。
  • 結果がない場合は、その旨を明示します。
  • 出力内の PII(メールアドレス、IP アドレス)はマスキングします。生のスタックトレースは出力しません。
  • 認証トークンをそのまま出力してはいけません。

ゴールデンテストの入力

  • 組織:{your-org}
  • プロジェクト:{your-project}
  • イシューの短縮 ID:{ABC-123}

プロンプトの例:「過去 24 時間に prod で発生した未解決のイシューを、上位 10 件一覧表示してください。」 期待される結果:タイトル、短縮 ID、件数、最終確認日時を含む順序付きリスト。

コメント