mcpField
L
logfire-ui

logfire-ui

github.com/pydanticクラウド・DevOps1451.6k 回インストール2 週間前に更新
リポジトリ

logfire-ui について

logfire-ui は、ブラウザーで Logfire のプロジェクトビュー、ライブビュー、Explore ページを開くためのスキルです。プロジェクトリンクの解決、フィルター設定、Codex のアプリ内ブラウザーへの引き渡し方法を定めています。

主な機能

  1. 01正規プロジェクト URL の解決
  2. 02ライブビューのフィルターと期間設定
  3. 03Codex アプリ内ブラウザーでのリンク表示
  4. 04開いているライブビューの操作
  5. 05ブラウザーハンドオフとクリーン URL の処理

活用シーン

  1. 01プロジェクトのライブテレメトリビューを開く
  2. 02フィルターを使ってエラーやスパンを表示
  3. 03既知のトレースやスパンにフォーカス
  4. 04表示中のライブビューのフィルター変更

MCP 対応

利用可能な Logfire MCP のプロジェクト・リンク用ヘルパーで、プロジェクト URL の解決や UI リンクの作成を行います。特定の未知の項目を先に見つける必要がある場合を除き、テレメトリのクエリではなく UI 表示に案内します。

インストール

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

$npx skills add https://github.com/pydantic/skills --skill logfire-ui

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

詳細

Logfire UI を開く

Logfire UI、ブラウザー、ライブビュー、リンク、Explore ページに直接関するリクエストには、このスキルを使用します。

ユーザー向けの進捗報告

進捗報告は控えめにしてください。このスキルを選択した理由を説明したり、ルーティングルールを言い直したり、ローカルの指示を引用したり、トークンの適用範囲を説明したり、通常のヘルパー呼び出しを逐一知らせたりしないでください。報告が必要な場合は、「エラーフィルターを適用して Logfire を開いています」のように、実行する操作に焦点を絞った短い一文にしてください。

Logfire を開いた後、ブラウザーが停止しているように見える場合、ログインを求められた場合、またはユーザーから明示的にページの確認を求められた場合を除き、追加のページ状態チェックを実行したり、その旨を伝えたりしないでください。

ブラウザーの指定

Codex Desktop では、可能な限り Browser プラグインの Codex アプリ内ブラウザー(iab)と、現在選択されているタブを使用してください。

ブラウザーには間接的にアクセスします。ブラウザー名の MCP ツールがあるとは限りません。Browser プラグインが利用可能な場合は、browser:browser スキルを読み込み、Node REPL の js/mcp__node_repl__js ブートストラップを使って agent.browsers.get("iab") にバインドしてください。js が表示されない場合は、アプリ内ブラウザーが利用できないと判断する前に、ツール検索で node_repl js を探してください。

ユーザーから外部ブラウザーを明示的に求められた場合を除き、agent-browser、chrome-devtools、mcp__chrome_devtools__*、mcp__playwright__*、macOS の open、xdg-open、単独の Playwright/Chromium、シェルから起動したブラウザー、ウェブプレビューカード、新たに作成した外部ブラウザーウィンドウは使用しないでください。Logfire のライブビューがすでに選択されていて、その場で更新できる場合は、新しいアプリ内タブを作成しないでください。

Browser プラグインが表示されない場合、そのスキルを読み込めない場合、ツール検索後も Node REPL の js 実行ツールを利用できない場合、またはブラウザーのスキルのブートストラップがナビゲーション開始前に失敗した場合に限り、アプリ内ブラウザーを利用できないと報告してください。その場合は、クリーンな Logfire URL を返し、アプリ内ブラウザーを操作できなかったことを説明してください。chrome-devtools、Playwright MCP、単独の Playwright、ウェブプレビューカードを「ブラウザーが利用できない」場合の代替手段として扱ってください。外部ブラウザーや専用ブラウザーウィンドウに、黙って切り替えないでください。

基本ルール

プロジェクト単位または集約された UI リクエストでは、URL から直接 Logfire を開くか、URL を返してください。

最初にテレメトリを照会しないでください。

  • query_run を呼び出さないでください。
  • Logfire に照会する、または先にスパンを取得するとは言わないでください。

「最も遅いトレースを開く」「最新のエラートレースを開く」のように、まず特定の未知の項目を見つける必要がある場合に限り、最初に照会してください。

「最近のエラーを表示して」「ログを確認して」のようにリクエストが曖昧な場合は、Logfire を UI で開きたいのか、チャットでクエリ分析を行いたいのかを確認してください。ユーザーから両方を明示的に求められない限り、両方を行わないでください。

プロジェクトの特定

組織またはプロジェクトが明示されていない UI リクエストでは、まず Logfire MCP の認証情報または現在のプロジェクトのメタデータを通じて、正規のプロジェクト URL の解決を試みてください。利用可能な MCP サーバーにプロジェクトリンクまたは現在のプロジェクトを取得するヘルパーがある場合は、それを使用してください。これはプロジェクトの特定であり、テレメトリの照会ではありません。

MCP が現在のプロジェクトを 1 つに特定できた場合は、そのプロジェクト URL を使用してください。プロジェクトを特定できない場合、候補が複数ある場合、または認証/エラー状態が返された場合は、組織名とプロジェクト名、または Logfire プロジェクトの完全な URL をユーザーに尋ねてください。

LOGFIRE_BASE_URL、LOGFIRE_URL、エクスポーターの設定、リポジトリ名、ローカルホストへの接続可否から、プロジェクト URL を推測しないでください。環境変数や設定値から Logfire プラットフォーム/API のベース URL を特定できる場合はありますが、それだけで対象の組織/プロジェクトが特定できるわけではありません。

URL ワークフロー

  1. プロジェクトの完全な URL がすでにわかっている場合は、それを直接使用します。
  2. ユーザーがプロジェクトを指定しない場合は、前述のとおり MCP を通じて現在のプロジェクトを解決します。
  3. ユーザーがプロジェクト名を指定したものの、組織またはベース URL を指定していない場合は、デフォルトのクリーンリンク動作で project_logfire_ui_link(project=project) を呼び出し、正規のプロジェクト URL を導き出します。これは URL の検出を補助するものであり、テレメトリのクエリではありません。
  4. プロジェクトのライブビュー/フィルター URL を使って Codex Browser ですぐにリンクを開く場合は、project_logfire_ui_link(project=project, query=query, since=since, until=until, handoff=True) を呼び出します。長期利用または共有できる URL を返す場合は、デフォルトのクリーンリンク動作を使用します。ユーザーが既存のクリーンな Logfire プロジェクト URL を提示してハンドオフを求めた場合は、プロジェクト、q、since、until の値を解析し、このツールに渡します。
  5. ユーザーが実際の trace_id を指定した場合、またはクエリのワークフローですでに見つかっている場合は、Codex Browser ですぐにリンクを開く際に project_logfire_link(trace_id=trace_id, project=project, handoff=True) を呼び出します。長期利用または共有できる URL を返す場合は、デフォルトのクリーンリンク動作を使用します。
  6. 役立つ場合は、project_logfire_ui_link を通じて query、since、until を追加します。クリーン URL を手動で組み立てる場合は、q、since、until を URL エンコードします。
  7. ユーザーが URL を開くよう求めており、Browser が利用可能な場合は、Codex のアプリ内ブラウザーで開きます。それ以外の場合は、外部ブラウザーを起動せずに URL を返します。

すでに開いているライブビューの操作

Codex Browser で Logfire プロジェクトのライブビューがすでに開いている場合は、JSON コマンドブリッジを使用します。ドキュメント全体を再読み込みせずにビューを更新し、エージェントがページを操作していることをユーザーに示せるため、これがサポートされている唯一のアプリ内操作方法です。

Codex Browser からページ全体に適用される JavaScript API を使用しようとしないでください。エージェントが操作できるサポート対象のインターフェースは、JSON コマンド入力だけです。

Codex Browser/iab では、Logfire live view agent command 入力欄に {"q":"level='error'","last":"1h","since":null,"until":null} のような JSON パッチを入力し、Enter キーを押します。非表示の送信ボタンはフォームの送信先にすぎないため、ボタンが見た目上クリックできないことを理由に、この手順を省略しないでください。

ブリッジのフォーム入力欄が存在しない、または送信できない場合に限り、URL/検索パラメーターを直接更新します。ブリッジのフォームが利用可能な場合は、URL を直接更新しないでください。

直接 URL を更新するフォールバックを使用し、ブラウザーの制御インターフェースでページスクリプトによる URL 更新が可能な場合は、window.history を更新して popstate イベントをディスパッチします。ユーザーに見える重要なナビゲーションには pushState を、クリーンアップや再試行には replaceState を使用します。ページ内で URL を更新できない場合は、クリーン URL を開きます。

/api/auth/handoff?ticket=... URL を変更しないでください。ハンドオフ URL は一度だけ使用するエントリーポイントです。リダイレクト後は、最終的なクリーンなプロジェクト URL を操作します。

ライブビューの検索パラメーター:

  • q:SQL に似た Logfire のフィルター式。例:level='error'、kind='span'、service_name='api'。URL 文字列を作成する際は URL エンコードします。
  • last:5m、1h、14d などのローリングライブ期間、またはミリ秒の数値。ライブモードではこれを使用し、since/until は削除します。
  • since と until:ISO 8601 形式のタイムスタンプで指定する固定の過去期間。期間を指定する場合に使用し、last は削除します。
  • env:デプロイ環境のフィルター。複数の環境には、env パラメーターを繰り返し使用します。すべての環境を対象にする場合は省略します。
  • traceId と spanId:わかっている場合に、特定のトレース/スパンにフォーカスします。メインクエリまたは期間を変更する際は、ユーザーがフォーカス中のレコードを維持するよう求めていない限り、traceId、spanId、focusTraceId、focusTraceTimestamp などの古いフォーカスパラメーターをクリアします。

ブラウザーへの引き継ぎ URL

MCP リンクツールが handoff: bool = False に対応している場合、handoff=True を使うのは、ブラウザーで直ちに開く URL に限ります。引き継ぎ URL は有効期間が短く、一度しか使用できず、プラットフォームが発行した宛先に紐づいています。

  • 引き継ぎの結果が文字列の場合は、その URL を変更せず、すぐに開いてください。/api/auth/handoff?ticket=... の形式の場合もあります。クエリパラメーターを追加したり、書き換えたり、保存したり、ドキュメントに引用したり、共有可能な URL として扱ったりしないでください。
  • 引き継ぎの結果が handoff: false を含むオブジェクトの場合は、その url の値をクリーンな代替 URL として使用してください。API キー認証や再認証の必要性など、ブラウザーで引き続きログインを求められる理由をユーザーが理解するのに役立つ場合に限り、reason に言及してください。
  • 再認証の理由が Logfire MCP 接続に関するものである場合、MCP OAuth リフレッシュトークンに UI セッションの発行に必要なメタデータがないことを説明してください。これをブラウザーセッションの更新として説明しないでください。ユーザーは Logfire MCP 認証フローを再接続または再認証する必要があります。
  • 利用可能な MCP サーバーが handoff を公開していない場合は、通常どおりリンクツールを呼び出し、クリーンな URL を使用してください。
  • 引き継ぎ URL にフィルターや時間のパラメーターを手動で追加しないでください。最終的なプロジェクトフィルターの宛先を project_logfire_ui_link に指定し、その宛先のチケットはプラットフォームに発行させてください。

Codex ブラウザーで開く際の安定性

Codex ブラウザーで Logfire の引き継ぎ URL を開く際は、同じ宛先の永続的なクリーン URL を代替手段として保持してください。必要であれば、ブラウザーでのオープンに失敗したと報告する前に、同じリンクツールを handoff=False で呼び出してください。

Browser スキルのアプリ内ブラウザーワークフローを使用し、ナビゲーションの試行時間に上限を設けてください。networkidle、WebSocket の完了、またはライブビュー画面が完全に静止するまで待たないでください。ナビゲーション後に待機する場合は、URL の確定、最終的なクリーンなプロジェクト URL、または Logfire ページの視覚的な表示シグナルのみを待ってください。

ブラウザーが灰色の about:blank 画面のままの場合、またはブラウザーのナビゲーション呼び出しがタイムアウトした場合は、待機を中止してクリーンな URL を返してください。これは、ブラウザーのオープンがナビゲーション前に停止した状態として説明し、Logfire の認証エラーとして説明しないでください。使用済みまたは期限切れの引き継ぎ URL を公開しないでください。

Codex ブラウザーの停止から復旧するために、別のブラウザーウィンドウを起動しないでください。ユーザーが外部ブラウザーでの試行を明示的に依頼した場合を除き、クリーンな URL を返してください。

一般的なフィルター

  • スパン:q=kind%3D%27span%27
  • ログ:q=kind%3D%27log%27
  • 例外:q=is_exception%3Dtrue
  • エラー:q=level%3D%27error%27
  • サービス:service_name='api' のようなフィルターを URL エンコードします

例

「Codex で、starter-project の直近 1 時間分のスパンの Logfire ライブビューを開いて」と依頼された場合:

  1. 既知の、または導出した starter-project の Logfire URL を直接開きます。
  2. q=kind%3D%27span%27 を追加します。
  3. since=<one-hour-ago> と until=<now> を追加します。
  4. Codex ブラウザーで URL を開きます。
  5. 最初に SQL を実行しないでください。

「最も遅いトレースを探して開いて」と依頼された場合は、クエリーワークフローでトレースを特定するだけにとどめ、その後 project_logfire_link(trace_id=trace_id, project=project, handoff=True) を使用してリンクを開きます。

「開いているライブビューを直近 1 時間のエラーに変更して」と依頼された場合は、{"q":"level='error'","last":"1h","since":null,"until":null} を Logfire live view agent command 入力から送信してください。新しい引き継ぎ URL を発行しないでください。

認証の境界

MCP 認証トークンをブラウザーや Logfire UI に渡そうとしないでください。ベアラートークン、API トークン、読み取りトークン、書き込みトークンを URL のクエリパラメーター、フラグメント、ブラウザーへの指示文、ログ、メモに含めないでください。MCP/ツールの認証と、ブラウザーの Web セッションは別々のセキュリティコンテキストです。

すぐに開く UI リンクには、上記のプラットフォーム引き継ぎを優先してください。引き継ぎを利用できない場合は、クリーンな URL に切り替え、役立つ場合は具体的な代替理由を説明してください。ブラウザーの Cookie がない場合は通常のブラウザーログインが必要になることがあります。一方、MCP OAuth 接続が古くなっている場合は、MCP の再認証が必要です。

コメント