小中高決済基盤開発グループの @y0n3yama です。
普段は決済基盤のサービス開発や運用業務に従事しています。
今回は、チームで運用作業の一環として行っているエラー調査に、Sentry MCP を活用した事例をご紹介します。
DevSupport の一環としてのエラー調査
私が所属している小中高決済基盤開発グループでは、DevSupport という活動を日替わり当番制で実施しています。
DevSupport は、以前のブログ記事でも紹介されているように、チームメンバーが持ち回りで技術的なサポートや問題解決にあたる仕組みです。
具体的には以下のような活動を行っています。
- Sentry に上がってくるエラーの調査と対応
- システムアラートの監視と初期対応
- ユーザーからの技術的な問い合わせ対応
- 問題の根本原因調査と恒久対策の検討
その中で「Sentry に上がってくるエラーの調査と対応」においては、各エラーについて以下のプロセスで対応しています。
- Slack 上に Sentry 通知がされる
- 1のエラーを Sentry Web UI で確認
- スタックトレースを読み解く
- 関連するコードを GitHub or ローカルで検索
- ログを確認してエラーの前後の状況を把握
- エラーの発生頻度やユーザーへの影響度を調査
- 必要に応じて関連チームに確認
決済ドメインという性質上、特に丁寧なエラー調査が必要ですが、中には調査に時間がかかってしまうものもしばしばありました。
そこで、Sentry MCP の活用に白羽の矢がたったという運びです。
Sentry MCP とは
MCP (Model Context Protocol) は、AI モデルが外部のツールやデータソースと安全に連携するためのプロトコルです。
Sentry MCP は、このプロトコルを使って Claude Code などの AI アシスタントから直接 Sentry の API にアクセスし、エラー調査を効率化できるツールです。
公式から MCP サーバーがリリースされているので安心して利用することができます。
https://docs.sentry.io/product/sentry-mcp/
主な機能(公式ドキュメントより引用)
- エラー検索: プロジェクトやタイムフレームを指定したエラーの検索
- 詳細情報取得: 特定のエラーのスタックトレースやコンテキスト情報の取得
- 関連情報の分析: エラーの頻度、影響範囲、関連するリリースの特定
Claude Code でのセットアップ
Claude Code での Sentry MCP のセットアップは概ね以下のコマンド一つで完了します。
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
このコマンドを実行すると、Sentry への OAuth 認証が求められます。
認証完了後は、Claude Code 内で直接 Sentry の情報にアクセスできるようになります。
実践デモ:エラーを発生させてSentry MCPで調査してみる
実際にエラーを発生させて、Sentry MCP を使って調査してみましょう。
今回はサンプルとしてバリデーションエラーを例に取り上げます。
デモ用エラーの準備
まず、意図的にバリデーションエラーを発生させるエンドポイントを作成しました。
# app/controllers/demo/payment_validation_controller.rb class Demo::PaymentValidationController < ApplicationController class PaymentValidationError < StandardError; end def create_subscription begin amount = params[:amount] course = params[:course] validate_payment_amount!(amount) validate_course!(course) # 正常処理... render json: { status: 'success', message: '決済処理が正常に完了しました' } rescue PaymentValidationError => e # Sentryにエラーを送信 Sentry.capture_exception(e, tags: { demo: true, controller: 'demo_payment_validation', feature: 'sentry_mcp_blog_demo' }) render json: { error: 'バリデーションエラーが発生しました', details: e.message }, status: 400 end end private def validate_payment_amount!(amount) raise PaymentValidationError, "決済金額が指定されていません" if amount.nil? raise PaymentValidationError, "決済金額は正の値である必要があります" if amount.to_i <= 0 end end
エラーの発生
ローカルサーバーを起動して、意図的にエラーを発生させます。
# サーバー起動
cd /quipper/monorepo/sentry-mcp-demo
bundle exec rails server
# バリデーションエラーを発生
curl -X POST http://localhost:3000/demo/payment_validation \
-H "Content-Type: application/json" \
-d '{"course": "high_school"}' # 必須の amountパラメータを意図的に省略
レスポンス:
{ "error": "バリデーションエラーが発生しました", "details": "決済金額が指定されていません (amount parameter is required)" }
Sentry MCP を使った調査
以下が Claude Code へのプロンプトと成果物です。
私: 「https://studysapuri-staging.sentry.io/issues/7100633605/?project=XXXX&query=is%3Aunresolved&referrer=issue-stream
エラーの原因を調査してください。」
Claude Code:
「## エラー調査結果
### 🔍 エラーの詳細
- **エラータイプ**: Demo::PaymentValidationController::PaymentValidationError
- **発生箇所**: app/controllers/demo/payment_validation_controller.rb:104
- **エラーメッセージ**: "決済金額が指定されていません (amount parameter is required)"
- **発生件数**: 3回(2025-12-10T07:29:52〜08:09:49の間)
### 📍 原因分析
1. **直接的原因**: APIリクエストで`amount`パラメータが送信されていない
2. **リクエスト詳細**:
- URL: http://localhost:3001/demo/payment_validation
- メソッド: POST
- 送信されたパラメータ: {"course" => "high_school"}
- 欠落パラメータ: amount
3. **コードレベルの発生箇所**:
# app/controllers/demo/payment_validation_controller.rb:104
def validate_payment_amount!(amount)
if amount.nil?
raise PaymentValidationError, "決済金額が指定されていません (amount parameter is required)"
end
### 📊 影響度評価
- **緊急度**: 低(デモ環境のテストエラー)
- **ユーザー影響**: なし(デモ機能)
- **ビジネス影響**: なし
### 💡 推奨対応(通常の本番エラーの場合)
1. **APIクライアント側でのバリデーション追加**
2. **OpenAPI仕様書でのrequired項目明記**
3. **フロントエンド側でのform validation強化**
4. **より詳細なエラーメッセージの提供**
成果物を踏まえて
以下の点において有用な結果が得られることがわかると思います。
- 簡単なプロンプトでもエラーの詳細情報、発生箇所、原因分析が一度に取得できる
- スタックトレースの情報を元にローカルのコードを参照し、推奨対応まで含めた包括的な調査結果が得られる
今回は簡易的な例でしたが、より複雑で従来だと時間がかかる調査でも一定は筋のいい結果が得られることが多いです。
一方で、AI の出力結果については最終的な判断は作業者が行い、一次調査の効率化ツールとして活用することも念頭に置いておく必要があります。
今後の展望
Sentry MCP の利用により、エラー調査の効率化が実現できましたが、さらなる活用を検討しています。
- GitHub Issues に蓄積されたエラー対応ナレッジを整備し、参照 & 自動で随時追記していく仕組み
- Sentry 通知をフックし、Claude Code Action で自動で一次調査する仕組み
まとめ
Sentry MCP を活用することで、エラー調査の効率化を実現できました。
生成 AI の活用はコード生成に焦点が当たりがちですが、 運用作業にも AI ツールを組み合わせることで作業の効率化を図り、さらに開発にフォーカスできるような取り組みを引き続き行っていきたいです。
【お知らせ】RECRUIT TECH CONFERENCE 2026を開催します!(オンライン配信/参加無料)
リクルート主催の技術カンファレンス。第3回目となる今回は「AI×プロダクト開発」をテーマに、急速な技術進化の中で生まれた多様な領域のナレッジから、技術者の活躍を引き出す土壌づくりまで、豊富なセッションをお届けします。是非お気軽にご参加ください!
▼お申し込みはこちらから
https://recruit-event.connpass.com/event/371908/
===
RECRUIT TECH CONFERENCE 2026
・開催日時
2026年2月27日(金) 12:00~19:30 (オンライン配信/途中入退場自由)
・社外ゲスト
和田 卓人 氏(タワーズ・クエスト株式会社 取締役社長)/岡野原 大輔 氏(株式会社Preferred Networks 共同創業者 代表取締役社長)※ご登壇順
===