Logfire MCP サーバー
このリポジトリには、Logfire に送信した OpenTelemetry トレースおよびメトリックにアクセスできるツールを備えた Model Context Protocol (MCP) サーバーが含まれています。
この MCP サーバーにより、LLM はアプリケーションのテレメトリ データを取得し、分散トレースを分析し、Logfire API を使用して実行された任意の SQL クエリの結果を利用できるようになります。
利用可能なツール
find_exceptions- ファイルごとにグループ化されたトレースから例外数を取得します必要な引数:
age(int): 過去30分を参照する分数(例:過去30分の場合は30、最大7日間)
find_exceptions_in_file- 特定のファイル内の例外に関する詳細なトレース情報を取得します必要な引数:
filepath(文字列): 分析するファイルへのパスage(int): 過去を振り返る分数(最大7日間)
arbitrary_query- OpenTelemetry のトレースとメトリックに対してカスタム SQL クエリを実行します必要な引数:
query(文字列): 実行するSQLクエリage(int): 過去を振り返る分数(最大7日間)
get_logfire_records_schema- カスタムクエリに役立つ OpenTelemetry スキーマを取得します必須の引数はありません
Related MCP server: MCP File Context Server
設定
uvをインストールする
まず最初に、 uvがインストールされていることを確認します。UV uv MCP サーバーの実行に使用されるためです。
インストール手順については、 uvを参照してください。
すでに古いバージョンのuvがインストールされている場合は、 uv self updateを使用して更新する必要がある場合があります。
Logfireの読み取りトークンを取得する
Logfire API にリクエストを行うには、Logfire MCP サーバーに「読み取りトークン」が必要です。
Logfire のプロジェクト設定の「読み取りトークン」セクションで作成できます: https://logfire.pydantic.dev/-/redirect/latest-project/settings/read-tokens
Logfire 読み取りトークンはプロジェクト固有であるため、Logfire MCP サーバーに公開する特定のプロジェクトごとに作成する必要があります。
サーバーを手動で実行する
uvをインストールし、Logfire 読み取りトークンを取得したら、 uvx ( uvによって提供) を使用して MCP サーバーを手動で実行できます。
LOGFIRE_READ_TOKEN環境変数を使用して読み取りトークンを指定できます。
LOGFIRE_READ_TOKEN=YOUR_READ_TOKEN uvx logfire-mcpまたは--read-tokenフラグを使用します:
uvx logfire-mcp --read-token=YOUR_READ_TOKEN[!注記]
Cursor、Claude Desktop、Cline、またはMCPサーバーを管理するその他のMCPクライアントを使用している場合は、サーバーを手動で実行する必要はありません。次のセクションでは、これらのクライアントをLogfire MCPサーバーに接続するための設定方法について説明します。
よく知られているMCPクライアントとの構成
カーソルの設定
プロジェクト ルートに.cursor/mcp.jsonファイルを作成します。
{
"mcpServers": {
"logfire": {
"command": "uvx",
"args": ["logfire-mcp", "--read-token=YOUR-TOKEN"]
}
}
}カーソルはenvフィールドを受け入れないため、代わりに--read-tokenフラグを使用する必要があります。
Claudeデスクトップ用の設定
Claude 設定に追加:
{
"command": ["uvx"],
"args": ["logfire-mcp"],
"type": "stdio",
"env": {
"LOGFIRE_READ_TOKEN": "YOUR_TOKEN"
}
}Cline 用の設定
cline_mcp_settings.jsonに Cline 設定を追加します:
{
"mcpServers": {
"logfire": {
"command": "uvx",
"args": ["logfire-mcp"],
"env": {
"LOGFIRE_READ_TOKEN": "YOUR_TOKEN"
},
"disabled": false,
"autoApprove": []
}
}
}カスタマイズ - ベースURL
デフォルトでは、サーバーはhttps://logfire-api.pydantic.devにあるLogfire APIに接続します。これをオーバーライドするには、次の操作を行います。
--base-url引数を使用する:
uvx logfire-mcp --base-url=https://your-logfire-instance.com環境変数の設定:
LOGFIRE_BASE_URL=https://your-logfire-instance.com uvx logfire-mcpやり取りの例
過去 1 時間のトレースですべての例外を検索します。
{
"name": "find_exceptions",
"arguments": {
"age": 60
}
}応答:
[
{
"filepath": "app/api.py",
"count": 12
},
{
"filepath": "app/models.py",
"count": 5
}
]特定のファイル内のトレースの例外に関する詳細を取得します。
{
"name": "find_exceptions_in_file",
"arguments": {
"filepath": "app/api.py",
"age": 1440
}
}応答:
[
{
"created_at": "2024-03-20T10:30:00Z",
"message": "Failed to process request",
"exception_type": "ValueError",
"exception_message": "Invalid input format",
"function_name": "process_request",
"line_number": "42",
"attributes": {
"service.name": "api-service",
"code.filepath": "app/api.py"
},
"trace_id": "1234567890abcdef"
}
]トレースに対してカスタム クエリを実行します。
{
"name": "arbitrary_query",
"arguments": {
"query": "SELECT trace_id, message, created_at, attributes->>'service.name' as service FROM records WHERE severity_text = 'ERROR' ORDER BY created_at DESC LIMIT 10",
"age": 1440
}
}クロードへの質問例
「過去 1 時間のトレースで、すべてのサービスにわたってどのような例外が発生しましたか?」
「ファイル 'app/api.py' 内の最近のエラーとそのトレースコンテキストを表示します」
「過去 24 時間にサービスごとにエラーがいくつありましたか?」
「サービス名別にグループ化された、トレース内で最も一般的な例外タイプは何ですか?」
「トレースとメトリックの OpenTelemetry スキーマを取得してください」
「昨日のすべてのエラーを検索し、そのトレースコンテキストを表示します」
はじめる
まず、Logfire 読み取りトークンを次の場所から取得します: https://logfire.pydantic.dev/-/redirect/latest-project/settings/read-tokens
MCP サーバーを実行します。
uvx logfire-mcp --read-token=YOUR_TOKEN上記の設定例を使用して、優先クライアント(Cursor、Claude Desktop、またはCline)を設定します。
MCP サーバーを使用して OpenTelemetry のトレースとメトリックを分析し始めましょう。
貢献
Logfire MCPサーバーの改善に向けた貢献を歓迎いたします。新しいトレース分析ツールの追加、メトリクスクエリ機能の強化、ドキュメントの改善など、皆様からの貴重なご意見をお待ちしております。
その他の MCP サーバーおよび実装パターンの例については、モデル コンテキスト プロトコル サーバー リポジトリを参照してください。
ライセンス
Logfire MCPはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。