This repository contains a Model Context Protocol (MCP) server with tools that can access the OpenTelemetry traces andmetrics you've sent to Pydantic Logfire.
This MCP server enables LLMs to retrieve your application's telemetry data, analyze distributedtraces, and make use of the results of arbitrary SQL queries executed using the Pydantic Logfire APIs.
find_exceptions_in_file
- Get the details about the 10 most recent exceptions on the file.- Arguments:
filepath
(string) - The path to the file to find exceptions in.age
(integer) - Number of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 7 days.
- Arguments:
arbitrary_query
- Run an arbitrary query on the Pydantic Logfire database.- Arguments:
query
(string) - The query to run, as a SQL string.age
(integer) - Number of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 7 days.
- Arguments:
logfire_link
- Creates a link to help the user to view the trace in the Logfire UI.- Arguments:
trace_id
(string) - The trace ID to link to.
- Arguments:
schema_reference
- The database schema for the Logfire DataFusion database.
The first thing to do is make sureuv
is installed, asuv
is used to run the MCP server.
For installation instructions, see theuv
installation docs.
If you already have an older version ofuv
installed, you might need to update it withuv self update
.
In order to make requests to the Pydantic Logfire APIs, the Pydantic Logfire MCP server requires a "read token".
You can create one under the "Read Tokens" section of your project settings in Pydantic Logfire:https://logfire.pydantic.dev/-/redirect/latest-project/settings/read-tokens
Important
Pydantic Logfire read tokens are project-specific, so you need to create one for the specific project you want to expose to the Pydantic Logfire MCP server.
Once you haveuv
installed and have a Pydantic Logfire read token, you can manually run the MCP server usinguvx
(which is provided byuv
).
You can specify your read token using theLOGFIRE_READ_TOKEN
environment variable:
LOGFIRE_READ_TOKEN=YOUR_READ_TOKEN uvx logfire-mcp@latest
You can also setLOGFIRE_READ_TOKEN
in a.env
file:
LOGFIRE_READ_TOKEN=pylf_v1_us_...
NOTE: for this to work, the MCP server needs to run with the directory containing the.env
file in its working directory.
or using the--read-token
flag:
uvx logfire-mcp@latest --read-token=YOUR_READ_TOKEN
Note
If you are using Cursor, Claude Desktop, Cline, or other MCP clients that manage your MCP servers for you, youdoNOT need to manually run the server yourself. The next section will show you how to configure these clients to makeuse of the Pydantic Logfire MCP server.
If you are running Logfire in a self hosted environment, you need to specify the base URL.This can be done using theLOGFIRE_BASE_URL
environment variable:
LOGFIRE_BASE_URL=https://logfire.my-company.com uvx logfire-mcp@latest --read-token=YOUR_READ_TOKEN
You can also use the--base-url
argument:
uvx logfire-mcp@latest --base-url=https://logfire.my-company.com --read-token=YOUR_READ_TOKEN
Create a.cursor/mcp.json
file in your project root:
{"mcpServers": {"logfire": {"command":"uvx","args": ["logfire-mcp@latest","--read-token=YOUR-TOKEN"] } }}
The Cursor doesn't accept theenv
field, so you need to use the--read-token
flag instead.
Run the following command:
claude mcp add logfire -e LOGFIRE_READ_TOKEN=YOUR_TOKEN -- uvx logfire-mcp@latest
Add to your Claude settings:
{"command": ["uvx"],"args": ["logfire-mcp@latest"],"type":"stdio","env": {"LOGFIRE_READ_TOKEN":"YOUR_TOKEN" }}
Add to your Cline settings incline_mcp_settings.json
:
{"mcpServers": {"logfire": {"command":"uvx","args": ["logfire-mcp@latest"],"env": {"LOGFIRE_READ_TOKEN":"YOUR_TOKEN" },"disabled":false,"autoApprove": [] } }}
Make sure youenabled MCP support in VS Code.
Create a.vscode/mcp.json
file in your project's root directory:
{"servers": {"logfire": {"type":"stdio","command":"uvx",// or the absolute /path/to/uvx"args": ["logfire-mcp@latest"],"env": {"LOGFIRE_READ_TOKEN":"YOUR_TOKEN" } } }}
Create a.zed/settings.json
file in your project's root directory:
{"context_servers": {"logfire": {"source":"custom","command":"uvx","args": ["logfire-mcp@latest"],"env": {"LOGFIRE_READ_TOKEN":"YOUR_TOKEN" },"enabled":true } }}
- Get details about exceptions from traces in a specific file:
{"name":"find_exceptions_in_file","arguments": {"filepath":"app/api.py","age":1440 }}
Response:
[ {"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" }]
- Run a custom query on traces:
{"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 }}
- "What exceptions occurred in traces from the last hour across all services?"
- "Show me the recent errors in the file 'app/api.py' with their trace context"
- "How many errors were there in the last 24 hours per service?"
- "What are the most common exception types in my traces, grouped by service name?"
- "Get me the OpenTelemetry schema for traces and metrics"
- "Find all errors from yesterday and show their trace contexts"
First, obtain a Pydantic Logfire read token from:https://logfire.pydantic.dev/-/redirect/latest-project/settings/read-tokens
Run the MCP server:
uvx logfire-mcp@latest --read-token=YOUR_TOKEN
Configure your preferred client (Cursor, Claude Desktop, or Cline) using the configuration examples above
Start using the MCP server to analyze your OpenTelemetry traces and metrics!
We welcome contributions to help improve the Pydantic Logfire MCP server. Whether you want to add new trace analysis tools, enhance metrics querying functionality, or improve documentation, your input is valuable.
For examples of other MCP servers and implementation patterns, see theModel Context Protocol servers repository.
Pydantic Logfire MCP is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License.