Skip to main content
Glama
pydantic

Logfire MCP Server

Official
by pydantic

Сервер Logfire MCP

Этот репозиторий содержит сервер Model Context Protocol (MCP) с инструментами, которые могут получить доступ к трассировкам и метрикам OpenTelemetry, отправленным вами в Logfire.

Этот сервер MCP позволяет LLM извлекать данные телеметрии вашего приложения, анализировать распределенные трассировки и использовать результаты произвольных SQL-запросов, выполненных с использованием API Logfire.

Доступные инструменты

  • find_exceptions — Получить количество исключений из трассировок, сгруппированных по файлу

    • Требуемые аргументы:

      • age (int): Количество минут для просмотра (например, 30 для последних 30 минут, максимум 7 дней)

  • find_exceptions_in_file — получение подробной информации о трассировке исключений в определенном файле

    • Требуемые аргументы:

      • filepath (строка): Путь к файлу для анализа.

      • age (int): Количество минут, на которые нужно оглянуться назад (макс. 7 дней)

  • arbitrary_query — выполнение пользовательских SQL-запросов по вашим трассировкам и метрикам OpenTelemetry

    • Требуемые аргументы:

      • query (строка): SQL-запрос для выполнения

      • age (int): Количество минут, на которые нужно оглянуться назад (макс. 7 дней)

  • get_logfire_records_schema — получить схему OpenTelemetry для помощи с пользовательскими запросами

    • Нет требуемых аргументов

Related MCP server: Observe MCP Server

Настраивать

Установить uv

Первое, что нужно сделать, это убедиться, что установлен uv , так как uv используется для запуска сервера MCP.

Инструкции по установке см. в документации по установке uv .

Если у вас уже установлена старая версия uv , вам может потребоваться обновить ее с помощью uv self update .

Получите токен чтения Logfire

Для выполнения запросов к API Logfire серверу Logfire MCP требуется «токен чтения».

Вы можете создать его в разделе «Read Tokens» настроек вашего проекта в Logfire: https://logfire.pydantic.dev/-/redirect/latest-project/settings/read-tokens

[!ВАЖНО] Токены чтения Logfire специфичны для проекта, поэтому вам необходимо создать один для конкретного проекта, который вы хотите предоставить серверу Logfire MCP.

Запустите сервер вручную

После установки uv и получения токена чтения Logfire вы можете вручную запустить сервер MCP с помощью uvx (который предоставляется uv ).

Вы можете указать свой токен чтения с помощью переменной среды 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 Desktop

Добавьте в настройки Клода:

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

Настроить для Клайна

Добавьте к настройкам Cline в cline_mcp_settings.json :

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

Настройка - Базовый URL

По умолчанию сервер подключается к Logfire API по адресу https://logfire-api.pydantic.dev . Вы можете переопределить это следующим образом:

  1. Использование аргумента --base-url :

uvx logfire-mcp --base-url=https://your-logfire-instance.com
  1. Установка переменной среды:

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
  }
]
  1. Получите подробную информацию об исключениях из трассировок в определенном файле:

{
  "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"
  }
]
  1. Запустите пользовательский запрос по трассировкам:

{
  "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. «Какие исключения произошли в трассировках за последний час по всем службам?»

  2. «Покажите мне последние ошибки в файле 'app/api.py' с контекстом их трассировки»

  3. «Сколько ошибок было за последние 24 часа в каждой службе?»

  4. «Каковы наиболее распространенные типы исключений в моих трассировках, сгруппированные по имени службы?»

  5. «Дайте мне схему OpenTelemetry для трассировок и метрик»

  6. «Найти все ошибки за вчерашний день и показать их контексты трассировки»

Начиная

  1. Сначала получите токен чтения Logfire по ссылке: https://logfire.pydantic.dev/-/redirect/latest-project/settings/read-tokens

  2. Запустите сервер MCP:

    uvx logfire-mcp --read-token=YOUR_TOKEN
  3. Настройте предпочитаемый вами клиент (Cursor, Claude Desktop или Cline), используя примеры конфигурации выше.

  4. Начните использовать сервер MCP для анализа трассировок и метрик OpenTelemetry!

Внося вклад

Мы приветствуем вклады, которые помогут улучшить сервер Logfire MCP. Хотите ли вы добавить новые инструменты анализа трассировки, улучшить функциональность запросов метрик или улучшить документацию, ваш вклад будет ценным.

Примеры других серверов MCP и шаблонов реализации см. в репозитории серверов Model Context Protocol .

Лицензия

Logfire MCP лицензирован по лицензии MIT. Это означает, что вы можете свободно использовать, изменять и распространять программное обеспечение в соответствии с условиями лицензии MIT.

Available Tools

4 tools
arbitrary_queryB

Run an arbitrary query on the Pydantic Logfire database.

The SQL reference is available via the `sql_reference` tool.
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe query to run, as a SQL string.
ageYesNumber of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 30 days.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYesThe path to the file to find exceptions in.
ageYesNumber of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 30 days.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

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.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 2 tool updatesv0.8.0
    • Changedarbitrary_query1 field changed
      • changedInput schema / properties / age / description
        Previous 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."
    • Changedfind_exceptions_in_file1 field changed
      • changedInput schema / properties / age / description
        Previous 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."
  2. 6 tool updatesv1.0.0
    • Changedarbitrary_query3 fields changed
      • addedInput schema / properties / age / description
        Added value: +"Number of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 7 days."
      • addedInput schema / properties / query / description
        Added value: +"The query to run, as a SQL string."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "items": {},
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "arbitrary_queryOutput",
        +  "type": "object"
        +}
    • Removedfind_exceptions
    • Changedfind_exceptions_in_file3 fields changed
      • addedInput schema / properties / age / description
        Added value: +"Number of minutes to look back, e.g. 30 for last 30 minutes. Maximum allowed value is 7 days."
      • addedInput schema / properties / filepath / description
        Added value: +"The path to the file to find exceptions in."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "items": {},
        +      "title": "Result",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "find_exceptions_in_fileOutput",
        +  "type": "object"
        +}
    • Removedget_logfire_records_schema
    • Addedlogfire_link
    • Addedschema_reference
  3. 4 tool updates
    • First observedarbitrary_query
    • First observedfind_exceptions
    • First observedfind_exceptions_in_file
    • First observedget_logfire_records_schema

TDQS

A4/5.0
Disambiguation5/5

Each tool serves a unique purpose: querying, exception viewing, link generation, and schema reference. No overlap or ambiguity.

Naming Consistency5/5

All tools use consistent snake_case naming with clear verbs (arbitrary_query, find_exceptions_in_file, logfire_link, schema_reference).

Tool Count5/5

With 4 tools, the set is concise and well-scoped for querying and debugging Logfire databases, covering key workflows without bloat.

Completeness4/5

The set covers querying, schema exploration, exception analysis, and UI linking. Missing explicit write operations, but that may be by design.

Maintenance

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    B
    quality
    Not graded
    maintenance
    A Model Context Protocol server that enables AI assistants to interact with Datadog's observability platform through natural language.
    72
    -
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    A 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
    -
  • A
    license
    A
    quality
    A
    maintenance
    A 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.
    40
    15
    MIT

Latest Blog Posts

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