MCP ExplorerExplorer

Logfire MCP Server

@pydanticon 2 months ago
76 MIT
FreeOfficial
Dev Tools
#OpenTelemetry#traces#metrics#logging#monitoring
This repository contains a Model Context Protocol (MCP) server with tools that can access the OpenTelemetry traces and

Overview

What is Logfire MCP Server

Logfire MCP Server is a Model Context Protocol server that allows users to access and analyze OpenTelemetry traces and metrics sent to Logfire. It provides a way for large language models (LLMs) to retrieve telemetry data, analyze distributed traces, and execute SQL queries using Logfire APIs.

Use cases

The server can be utilized to find exceptions in traces, analyze specific files for errors, execute custom SQL queries to extract relevant telemetry data, and obtain the OpenTelemetry schema. It supports use cases such as monitoring application performance, troubleshooting errors, and generating insights from distributed systems.

How to use

To use the Logfire MCP Server, first install the required uv tool. Next, obtain a Logfire read token and run the MCP server with the token configured either via an environment variable or a command-line flag. Additionally, the server can be configured with various clients like Cursor, Claude Desktop, or Cline, to facilitate interaction with the server.

Key features

Key features include tools to find exception counts, detailed trace information for specific files, the ability to run arbitrary SQL queries on telemetry data, and access to the OpenTelemetry schema for custom queries. The server is designed for flexibility and integrates easily with existing tools.

Where to use

Logfire MCP Server is ideal for developers and operators needing to analyze telemetry data from applications instrumented with OpenTelemetry. It can be used in monitoring and debugging processes in production environments, as well as in staging setups, to ensure application reliability and performance.

Content

Logfire MCP Server

This repository contains a Model Context Protocol (MCP) server with tools that can access the OpenTelemetry traces and
metrics you’ve sent to Logfire.

This MCP server enables LLMs to retrieve your application’s telemetry data, analyze distributed
traces, and make use of the results of arbitrary SQL queries executed using the Logfire APIs.

Available Tools

  • find_exceptions - Get exception counts from traces grouped by file

    • Required arguments:
      • age (int): Number of minutes to look back (e.g., 30 for last 30 minutes, max 7 days)
  • find_exceptions_in_file - Get detailed trace information about exceptions in a specific file

    • Required arguments:
      • filepath (string): Path to the file to analyze
      • age (int): Number of minutes to look back (max 7 days)
  • arbitrary_query - Run custom SQL queries on your OpenTelemetry traces and metrics

    • Required arguments:
      • query (string): SQL query to execute
      • age (int): Number of minutes to look back (max 7 days)
  • get_logfire_records_schema - Get the OpenTelemetry schema to help with custom queries

    • No required arguments

Setup

Install uv

The first thing to do is make sure uv is installed, as uv is used to run the MCP server.

For installation instructions, see the uv installation docs.

If you already have an older version of uv installed, you might need to update it with uv self update.

Obtain a Logfire read token

In order to make requests to the Logfire APIs, the Logfire MCP server requires a “read token”.

You can create one under the “Read Tokens” section of your project settings in Logfire:
https://logfire.pydantic.dev/-/redirect/latest-project/settings/read-tokens

[!IMPORTANT]
Logfire read tokens are project-specific, so you need to create one for the specific project you want to expose to the Logfire MCP server.

Manually run the server

Once you have uv installed and have a Logfire read token, you can manually run the MCP server using uvx (which is provided by uv).

You can specify your read token using the LOGFIRE_READ_TOKEN environment variable:

LOGFIRE_READ_TOKEN=YOUR_READ_TOKEN uvx logfire-mcp

or using the --read-token flag:

uvx logfire-mcp --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, you do
NOT
need to manually run the server yourself. The next section will show you how to configure these clients to make
use of the Logfire MCP server.

Configuration with well-known MCP clients

Configure for Cursor

Create a .cursor/mcp.json file in your project root:

{
  "mcpServers": {
    "logfire": {
      "command": "uvx",
      "args": [
        "logfire-mcp",
        "--read-token=YOUR-TOKEN"
      ]
    }
  }
}

The Cursor doesn’t accept the env field, so you need to use the --read-token flag instead.

Configure for Claude Desktop

Add to your Claude settings:

{
  "command": [
    "uvx"
  ],
  "args": [
    "logfire-mcp"
  ],
  "type": "stdio",
  "env": {
    "LOGFIRE_READ_TOKEN": "YOUR_TOKEN"
  }
}

Configure for Cline

Add to your Cline settings in cline_mcp_settings.json:

{
  "mcpServers": {
    "logfire": {
      "command": "uvx",
      "args": [
        "logfire-mcp"
      ],
      "env": {
        "LOGFIRE_READ_TOKEN": "YOUR_TOKEN"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Customization - Base URL

By default, the server connects to the Logfire API at https://logfire-api.pydantic.dev. You can override this by:

  1. Using the --base-url argument:
uvx logfire-mcp --base-url=https://your-logfire-instance.com
  1. Setting the environment variable:
LOGFIRE_BASE_URL=https://your-logfire-instance.com uvx logfire-mcp

Example Interactions

  1. Find all exceptions in traces from the last hour:
{
  "name": "find_exceptions",
  "arguments": {
    "age": 60
  }
}

Response:

[
  {
    "filepath": "app/api.py",
    "count": 12
  },
  {
    "filepath": "app/models.py",
    "count": 5
  }
]
  1. 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"
  }
]
  1. 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
  }
}

Examples of Questions for Claude

  1. “What exceptions occurred in traces from the last hour across all services?”
  2. “Show me the recent errors in the file ‘app/api.py’ with their trace context”
  3. “How many errors were there in the last 24 hours per service?”
  4. “What are the most common exception types in my traces, grouped by service name?”
  5. “Get me the OpenTelemetry schema for traces and metrics”
  6. “Find all errors from yesterday and show their trace contexts”

Getting Started

  1. First, obtain a Logfire read token from:
    https://logfire.pydantic.dev/-/redirect/latest-project/settings/read-tokens

  2. Run the MCP server:

    uvx logfire-mcp --read-token=YOUR_TOKEN
    
  3. Configure your preferred client (Cursor, Claude Desktop, or Cline) using the configuration examples above

  4. Start using the MCP server to analyze your OpenTelemetry traces and metrics!

Contributing

We welcome contributions to help improve the 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 the Model Context Protocol servers repository.

License

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.

Tools

find_exceptions
Get the exceptions on a file. Args: age: Number of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 7 days.
find_exceptions_in_file
Get the details about the 10 most recent exceptions on the file. Args: filepath: The path to the file to find exceptions in. age: Number of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 7 days.
arbitrary_query
Run an arbitrary query on the Logfire database. The schema is available via the `get_logfire_records_schema` tool. Args: query: The query to run, as a SQL string. age: Number of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 7 days.
get_logfire_records_schema
Get the records schema from Logfire. To perform the `arbitrary_query` tool, you can use the `schema://records` to understand the schema.

Comments

Recommend MCP Servers

View All MCP Servers