Logfire MCP Server
OfficialLogfire 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: Observe MCP 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
[!IMPORTANT] 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ライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。
Available Tools
4 toolsarbitrary_queryB
Run an arbitrary query on the Pydantic Logfire database.
The SQL reference is available via the `sql_reference` tool.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The query to run, as a SQL string. | |
| age | Yes | Number of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 30 days. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It fails to disclose behavioral traits such as potential for destructive actions, permissions, rate limits, or what happens on error. Given the power of arbitrary SQL, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the purpose concisely, the second points to a related tool for SQL reference. It is front-loaded and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description lacks important context for an arbitrary query tool, such as safety considerations, read-only vs write capability, or behavior on failure. It is not complete enough for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents both parameters (query string and age integer). The description does not add any extra meaning beyond what the schema provides, hence a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Run an arbitrary query on the Pydantic Logfire database,' with a specific verb and resource. It distinguishes from siblings like find_exceptions_in_file, logfire_link, and schema_reference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that SQL reference is available via the sql_reference tool, implying a prerequisite. However, it does not explicitly state when to use this tool vs alternatives or provide exclusions, so guidance is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_exceptions_in_fileA
Get the details about the 10 most recent exceptions on the file.
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | Yes | The path to the file to find exceptions in. | |
| age | Yes | Number of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 30 days. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not reveal behavioral traits such as read-only nature, side effects, or permissions. Only implies retrieval but lacks explicit assurance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence with no filler, front-loaded with key action and result. Every word serves purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with schema documentation and output schema, description is adequate but lacks completeness on sorting of 'most recent' or interaction between age and filepath.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage; description adds nuance '10 most recent' beyond schema, but does not detail age interpretation or other edge cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and resource '10 most recent exceptions on the file', distinguishing it from siblings like 'arbitrary_query' and 'logfire_link'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any conditions or exclusions. The description merely states function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logfire_linkA
Creates a link to help the user to view the trace in the Logfire UI.
| Name | Required | Description | Default |
|---|---|---|---|
| trace_id | Yes | The trace ID to link to. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It indicates a non-destructive action, but does not disclose return format, side effects, or permissions. Minimal disclosure beyond the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded purpose, zero unnecessary words. Efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given single parameter and output schema (not shown but indicated as present), description covers basic usage. Could mention return value format (e.g., URL) but not critical since output schema likely covers it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter 'trace_id' already described. The description 'trace ID to link to' adds no new information beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (creates), resource (link), and purpose (view trace in Logfire UI). Distinguishes from sibling tools like arbitrary_query and find_exceptions_in_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage context (when you have a trace_id and want a UI link), but no explicit when-to-use or when-not-to-use guidance. No mention of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schema_referenceA
The database schema for the Logfire DataFusion database.
This includes all tables, columns, and their types as well as descriptions.
For example:
```sql
-- The records table contains spans and logs.
CREATE TABLE records (
message TEXT, -- The message of the record
span_name TEXT, -- The name of the span, message is usually templated from this
trace_id TEXT, -- The trace ID, identifies a group of spans in a trace
exception_type TEXT, -- The type of the exception
exception_message TEXT, -- The message of the exception
-- other columns...
);
```
The SQL syntax is similar to Postgres, although the query engine is actually Apache DataFusion.
To access nested JSON fields e.g. in the `attributes` column use the `->` and `->>` operators.
You may need to cast the result of these operators e.g. `(attributes->'cost')::float + 10`.
You should apply as much filtering as reasonable to reduce the amount of data queried.
Filters on `start_timestamp`, `service_name`, `span_name`, `metric_name`, `trace_id` are efficient.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the SQL syntax is similar to Postgres but uses Apache DataFusion, explains how to access nested JSON, and advises on efficient filtering. No destructive actions are mentioned, which is appropriate for a read-only schema tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and provides detailed examples. While the SQL example takes space, it is relevant and informative. Could be slightly more concise, but overall well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's purpose (providing schema), the description covers all necessary context: database type, SQL dialect, nested JSON access, and filtering advice. The output schema exists, so return values need not be detailed further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters and 100% schema_description_coverage, so baseline is 4. The description adds value by explaining SQL syntax and operators for querying nested data, which aids in interpreting the schema output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states that the tool provides the database schema for the Logfire DataFusion database, including tables, columns, types, and descriptions. This is a specific verb+resource combination that clearly distinguishes its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is used to understand the schema for crafting queries, but it does not explicitly state when to use it versus alternatives like arbitrary_query. No direct exclusions or alternative tool names are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v0.8.0- Changed
arbitrary_query1 field changed- changed
Input schema / properties / age / descriptionPrevious value: -"Number of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 7 days."New value: +"Number of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 30 days."
- Changed
find_exceptions_in_file1 field changed- changed
Input schema / properties / age / descriptionPrevious value: -"Number of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 7 days."New value: +"Number of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 30 days."
6 tool updates
v1.0.0- Changed
arbitrary_query3 fields changed- added
Input schema / properties / age / descriptionAdded value: +"Number of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 7 days." - added
Input schema / properties / query / descriptionAdded value: +"The query to run, as a SQL string." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "items": {}, + "title": "Result", + "type": "array" + } + }, + "required": [ + "result" + ], + "title": "arbitrary_queryOutput", + "type": "object" +}
- Removed
find_exceptions - Changed
find_exceptions_in_file3 fields changed- added
Input schema / properties / age / descriptionAdded value: +"Number of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 7 days." - added
Input schema / properties / filepath / descriptionAdded value: +"The path to the file to find exceptions in." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "items": {}, + "title": "Result", + "type": "array" + } + }, + "required": [ + "result" + ], + "title": "find_exceptions_in_fileOutput", + "type": "object" +}
- Removed
get_logfire_records_schema - Added
logfire_link - Added
schema_reference
4 tool updates
- First observed
arbitrary_query - First observed
find_exceptions - First observed
find_exceptions_in_file - First observed
get_logfire_records_schema
TDQS
Each tool serves a unique purpose: querying, exception viewing, link generation, and schema reference. No overlap or ambiguity.
All tools use consistent snake_case naming with clear verbs (arbitrary_query, find_exceptions_in_file, logfire_link, schema_reference).
With 4 tools, the set is concise and well-scoped for querying and debugging Logfire databases, covering key workflows without bloat.
The set covers querying, schema exploration, exception analysis, and UI linking. Missing explicit write operations, but that may be by design.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Query application logs, traces, and metrics from your AI coding assistant via Foam's MCP server.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- FlicenseBqualityNot gradedmaintenanceA Model Context Protocol server that enables AI assistants to interact with Datadog's observability platform through natural language.72-
- AlicenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol server that provides access to Observe API functionality, enabling LLMs to execute OPAL queries, manage datasets/monitors, and leverage vector search for documentation and troubleshooting runbooks.1-
- AlicenseBqualityDmaintenanceModel Context Protocol server for Langfuse observability. Query traces, analyze accuracy, detect failures, track costs, debug latency, manage prompts and datasets.582MIT
- AlicenseAqualityAmaintenanceA Model Context Protocol server that enables LLMs to interact with MLflow tracking servers, allowing users to query experiments, analyze runs, compare metrics, manage the model registry, and promote models through natural language.4015MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pydantic/logfire-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server