Skip to main content
Glama

Log Analyzer MCP

CI codecov PyPI - Version

Overview: Analyze Logs with Ease

Log Analyzer MCP is a powerful Python-based toolkit designed to streamline the way you interact with log files. Whether you're debugging complex applications, monitoring test runs, or simply trying to make sense of verbose log outputs, this tool provides both a Command-Line Interface (CLI) and a Model-Context-Protocol (MCP) server to help you find the insights you need, quickly and efficiently.

Why use Log Analyzer MCP?

  • Simplify Log Analysis: Cut through the noise with flexible parsing, advanced filtering (time-based, content, positional), and configurable context display.

  • Integrate with Your Workflow: Use it as a standalone loganalyzer CLI tool for scripting and direct analysis, or integrate the MCP server with compatible clients like Cursor for an AI-assisted experience.

  • Extensible and Configurable: Define custom log sources, patterns, and search scopes to tailor the analysis to your specific needs.

Key Features

  • Core Log Analysis Engine: Robust backend for parsing and searching various log formats.

  • loganalyzer CLI: Intuitive command-line tool for direct log interaction.

  • MCP Server: Exposes log analysis capabilities to MCP clients, enabling features like:

    • Test log summarization (analyze_tests).

    • Execution of test runs with varying verbosity.

    • Targeted unit test execution (run_unit_test).

    • On-demand code coverage report generation (create_coverage_report).

    • Advanced log searching: all records, time-based, first/last N records.

  • Hatch Integration: For easy development, testing, and dependency management.

Installation

This package can be installed from PyPI (once published) or directly from a local build for development purposes.

Once the package is published to PyPI.

pip install log-analyzer-mcp

This will install the loganalyzer CLI tool and make the MCP server package available for integration.

From Local Build (For Developers or Testing)

If you have cloned the repository and want to use your local changes:

  1. Ensure Hatch is installed. (See Developer Guide)

  2. Build the package:

    hatch build

    This creates wheel and sdist packages in the dist/ directory.

  3. Install the local build into your Hatch environment (or any other virtual environment): Replace <version> with the actual version from the generated wheel file (e.g., 0.2.7).

    # If using Hatch environment:
    hatch run pip uninstall log-analyzer-mcp -y && hatch run pip install dist/log_analyzer_mcp-<version>-py3-none-any.whl
    
    # For other virtual environments:
    # pip uninstall log-analyzer-mcp -y # (If previously installed)
    # pip install dist/log_analyzer_mcp-<version>-py3-none-any.whl

    For IDEs like Cursor to pick up changes to the MCP server, you may need to manually reload the server in the IDE. See the Developer Guide for details.

Getting Started: Using Log Analyzer MCP

There are two primary ways to use Log Analyzer MCP:

  1. As a Command-Line Tool (loganalyzer):

  2. As an MCP Server (e.g., with Cursor):

    • Integrates log analysis capabilities directly into your AI-assisted development environment.

    • For installation, see the Installation section. The MCP server component is included when you install the package.

    • For configuration with a client like Cursor and details on running the server, see Configuring and Running the MCP Server below and the Developer Guide.

Configuring and Running the MCP Server

Configuration

Configuration of the Log Analyzer MCP (for both CLI and Server) is primarily handled via environment variables or a .env file in your project root.

  • Environment Variables: Set variables like LOG_DIRECTORIES, LOG_PATTERNS_ERROR, LOG_CONTEXT_LINES_BEFORE, LOG_CONTEXT_LINES_AFTER, etc., in the environment where the tool or server runs.

  • .env File: Create a .env file by copying .env.template (this template file needs to be created and added to the repository) and customize the values.

For a comprehensive list of all configuration options and their usage, please refer to the (Upcoming) Configuration Guide. (Note: The .env.template file should be created and added to the repository to provide a starting point for users.)

Running the MCP Server

The MCP server can be launched in several ways:

  1. Via an MCP Client (e.g., Cursor): Configure your client to launch the log-analyzer-mcp executable (often using a helper like uvx). This is the typical way to integrate the server.

    Example Client Configuration (e.g., in .cursor/mcp.json):

    {
      "mcpServers": {
        "log_analyzer_mcp_server_prod": {
          "command": "uvx", // uvx is a tool to run python executables from venvs
          "args": [
            "log-analyzer-mcp" // Fetches and runs the latest version from PyPI
            // Or, for a specific version: "log-analyzer-mcp==0.2.0"
          ],
          "env": {
            "PYTHONUNBUFFERED": "1",
            "PYTHONIOENCODING": "utf-8",
            "MCP_LOG_LEVEL": "INFO", // Recommended for production
            // "MCP_LOG_FILE": "/path/to/your/logs/mcp/log_analyzer_mcp_server.log", // Optional
            // --- Configure Log Analyzer specific settings via environment variables ---
            // These are passed to the analysis engine used by the server.
            // Example: "LOG_DIRECTORIES": "[\"/path/to/your/app/logs\"]",
            // Example: "LOG_PATTERNS_ERROR": "[\"Exception:.*\"]"
            // (Refer to the (Upcoming) docs/configuration.md for all options)
          }
        }
        // You can add other MCP servers here
      }
    }

    Notes:

  2. Directly (for development/testing): You can run the server directly using its entry point if needed. The log-analyzer-mcp command (available after installation) can be used:

    log-analyzer-mcp --transport http --port 8080
    # or for stdio transport
    # log-analyzer-mcp --transport stdio

    Refer to log-analyzer-mcp --help for more options. For development, using Hatch scripts defined in pyproject.toml or the methods described in the Developer Guide is also common.

Documentation

  • API Reference: Detailed reference for MCP server tools and CLI commands.

  • Getting Started Guide: For users and integrators. This guide provides a general overview.

  • Developer Guide: For contributors, covering environment setup, building, detailed testing procedures (including coverage checks), and release guidelines.

  • (Upcoming) Configuration Guide: Detailed explanation of all .env and environment variable settings. (This document needs to be created.)

  • (Upcoming) CLI Usage Guide: Comprehensive guide to all loganalyzer commands and options. (This document needs to be created.)

  • .env.template: A template file for configuring environment variables. (This file needs to be created and added to the repository.)

  • Refactoring Plan: Technical details on the ongoing evolution of the project.

Testing

To run tests and generate coverage reports, please refer to the comprehensive Testing Guidelines in the Developer Guide. This section covers using hatch test, running tests with coverage, generating HTML reports, and targeting specific tests.

Contributing

We welcome contributions! Please see CONTRIBUTING.md and the Developer Guide for guidelines on how to set up your environment, test, and contribute.

License

Log Analyzer MCP is licensed under the MIT License with Commons Clause. See LICENSE.md for details.

Available Tools

12 tools
analyze_testsC

Analyze the most recent test run and provide detailed information about failures.

Args: summary_only: Whether to return only a summary of the test results

ParametersJSON Schema
NameRequiredDescriptionDefault
summary_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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 mentions analyzing failures but doesn't disclose behavioral traits such as whether this is a read-only operation, if it requires specific permissions, what happens if no test run exists, or how results are structured. The description is minimal and lacks critical operational context.

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 appropriately sized and front-loaded: the first sentence states the core purpose, followed by a brief parameter explanation. There's minimal waste, though it could be slightly more structured (e.g., separating usage notes).

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?

Given the tool's moderate complexity (analyzing test runs), no annotations, and an output schema (which reduces need to explain return values), the description is partially complete. It covers the basic purpose and parameter but lacks context on when to use it, behavioral details, and differentiation from siblings, making it adequate but with clear gaps.

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 0%, so the description must compensate. It adds meaning for the single parameter 'summary_only' by explaining it controls whether to 'return only a summary of the test results,' which clarifies its purpose beyond the schema's title. However, it doesn't cover other potential aspects like default behavior or interactions, leaving some gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Analyze the most recent test run and provide detailed information about failures.' It specifies the verb ('analyze'), resource ('most recent test run'), and output focus ('detailed information about failures'). However, it doesn't explicitly differentiate from siblings like 'run_tests_*' tools, which might perform tests rather than analyze results.

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 is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., whether a test run must exist), exclusions, or comparisons to sibling tools like 'create_coverage_report' or 'run_tests_*'. Usage is implied but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_coverage_reportC

Run the coverage report script and generate HTML and XML reports.

Args: force_rebuild: Whether to force rebuilding the report even if it exists

Returns: Dictionary containing execution results and report paths

ParametersJSON Schema
NameRequiredDescriptionDefault
force_rebuildNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool 'runs a script' and 'generates reports,' implying a potentially resource-intensive or time-consuming operation, but doesn't disclose critical traits like execution time, permissions needed, side effects (e.g., file creation), error handling, or rate limits. This leaves significant gaps in understanding how the tool behaves.

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 well-structured and concise, with a clear purpose statement followed by separate 'Args' and 'Returns' sections. Every sentence adds value: the first explains the action, and the subsequent sections detail inputs and outputs. It's front-loaded with the main functionality, making it efficient to parse.

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?

Given the tool's complexity (involves running scripts and generating files), no annotations, and an output schema (which handles return values), the description is partially complete. It covers the basic purpose and parameters but lacks behavioral details (e.g., execution context, file paths, errors). With an output schema, it doesn't need to explain return values, but other gaps remain, making it adequate but not fully informative.

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?

The description includes an 'Args' section that explains the 'force_rebuild' parameter, adding meaning beyond the input schema (which has 0% description coverage). However, with only 1 parameter and the schema providing basic type info, the description compensates adequately but not richly—it doesn't detail default behavior or implications of the parameter. Given the low schema coverage, this is a minimal improvement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Run the coverage report script and generate HTML and XML reports.' It specifies the action (run script, generate reports) and outputs (HTML and XML reports), making it easy to understand what the tool does. However, it doesn't differentiate from sibling tools like 'analyze_tests' or 'run_tests_*', which might also relate to testing/reporting, so it doesn't fully distinguish from alternatives.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context (e.g., after running tests), or comparisons to sibling tools like 'analyze_tests' or 'run_tests_*', leaving the agent to guess based on tool names alone. This lack of explicit when/when-not instructions reduces its helpfulness.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_server_env_detailsA

Returns sys.path and sys.executable from the running MCP server.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It clearly indicates this is a read-only operation ('Returns') and specifies what data is retrieved, but doesn't disclose other behavioral traits like potential performance impact, whether it requires specific permissions, or how frequently it can be called. The description doesn't contradict annotations since none exist.

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 a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose and provides exactly the information needed to understand what the tool does without any unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no annotations, but has output schema), the description is reasonably complete. It clearly states what information is returned, and since an output schema exists, the description doesn't need to explain return values. However, it could benefit from more context about why someone would need this information.

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?

With 0 parameters and 100% schema description coverage, the baseline would be 4. The description appropriately doesn't discuss parameters since none exist, and the schema already fully documents the empty input structure.

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 specific action ('Returns') and the exact resources being returned ('sys.path and sys.executable from the running MCP server'). It distinguishes itself from sibling tools by focusing on server environment details rather than testing, logging, or coverage operations.

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 is provided about when to use this tool versus alternatives. While the purpose is clear, there's no indication of typical use cases, prerequisites, or how this tool relates to the sibling tools (like whether it should be used before running tests or for debugging).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pingB

Check if the MCP server is alive.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/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 of behavioral disclosure. While 'Check' implies a read-only operation, it doesn't specify whether this is a lightweight health check, what response format to expect, or any potential side effects like logging or performance impact. For a tool with zero annotation coverage, this leaves significant gaps.

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 a single, clear sentence with no wasted words. It's front-loaded with the core purpose and efficiently communicates the essential function without unnecessary elaboration.

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?

Given the tool's simplicity (0 parameters, no annotations, but with an output schema), the description is minimally adequate. It states what the tool does but lacks details on behavioral traits or output interpretation. The presence of an output schema reduces the need to describe return values, but more context on usage would improve completeness.

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 tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to explain any parameters, which is appropriate. It implicitly confirms no inputs are required by not mentioning any, aligning with the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Check if the MCP server is alive.' It uses a specific verb ('Check') and identifies the resource ('MCP server'), but it doesn't explicitly differentiate from sibling tools like 'get_server_env_details' which might provide more detailed server status information.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for usage, or comparisons to sibling tools like 'get_server_env_details' that might offer overlapping or complementary functionality.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_tests_no_verbosityB

Run all tests with minimal output (verbosity level 0).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 full burden. It mentions the verbosity level (0) which indicates behavioral output characteristics, but doesn't disclose other important traits like whether tests run sequentially/parallel, timeouts, error handling, or what 'minimal output' actually contains. For a test execution tool with zero annotation coverage, 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 a single, efficient sentence that communicates the core purpose and key behavioral characteristic (verbosity level). Every word earns its place - 'Run all tests' establishes the action, 'with minimal output' describes the output characteristic, and '(verbosity level 0)' provides specific technical detail.

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?

Given that an output schema exists, the description doesn't need to explain return values. However, for a test execution tool with no annotations, the description should provide more behavioral context about what 'running tests' entails, what happens on failure, or how results are structured. The presence of an output schema helps but doesn't fully compensate for the lack of operational transparency.

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 tool has 0 parameters with 100% schema description coverage. The description appropriately doesn't discuss parameters since none exist. It focuses on the tool's behavior rather than parameter semantics, which is correct for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Run all tests') and specifies the operational mode ('with minimal output (verbosity level 0)'). It distinguishes from siblings like 'run_tests_verbose' and 'run_tests_very_verbose' by indicating this is the minimal-output version. However, it doesn't explicitly contrast with 'run_unit_test' which might run a subset of tests.

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 usage context by specifying 'minimal output' and 'verbosity level 0', suggesting this should be used when detailed test output isn't needed. However, it doesn't provide explicit guidance on when to choose this over alternatives like 'run_tests_verbose' or 'run_unit_test', nor does it mention any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_tests_verboseB

Run all tests with verbose output (verbosity level 1).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/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 of behavioral disclosure. It mentions 'Run all tests' but doesn't clarify what 'all tests' entails (e.g., unit, integration, or specific test suites), whether it's a read-only or destructive operation, or any performance implications like execution time or resource usage. This leaves significant gaps in understanding the tool's behavior.

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 extremely concise and front-loaded, consisting of a single sentence that directly states the tool's purpose without any unnecessary words. Every part of the sentence ('Run all tests with verbose output (verbosity level 1)') contributes essential information, making it efficient and well-structured.

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?

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally adequate. However, it lacks details on behavioral aspects like what 'all tests' includes or execution context, which could be important for an agent. With no annotations and a simple operation, the description meets basic needs but doesn't provide full context.

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 with 100% coverage, meaning no parameters are documented in the schema. The description doesn't add parameter details, but since there are no parameters, this is acceptable. A baseline of 4 is appropriate as the description doesn't need to compensate for missing parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Run all tests') and specifies the verbosity level ('with verbose output (verbosity level 1)'), making the purpose immediately understandable. However, it doesn't explicitly distinguish this tool from its siblings like 'run_tests_no_verbosity' or 'run_tests_very_verbose' beyond the verbosity level, which prevents a perfect score.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over 'run_tests_no_verbosity' or 'run_tests_very_verbose', nor does it specify any prerequisites or contexts for usage. This lack of comparative guidance leaves the agent without clear direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_tests_very_verboseB

Run all tests with very verbose output (verbosity level 2).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 mentions 'very verbose output' but doesn't disclose behavioral traits such as execution time, side effects, error handling, or output format details. The description is minimal and lacks necessary context for a tool that likely performs operations.

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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured.

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?

Given the tool has an output schema, the description doesn't need to explain return values. However, with no annotations and a potentially complex operation (running tests), the description is too minimal—it lacks context on what 'tests' entail, execution behavior, or error scenarios. It's adequate but has clear gaps.

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 tool has 0 parameters, and schema description coverage is 100%. The description doesn't need to add parameter semantics, so it appropriately avoids discussing inputs. Baseline is 4 for zero parameters, as no compensation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Run all tests') and specifies the verbosity level ('very verbose output (verbosity level 2)'). It distinguishes from siblings like 'run_tests_no_verbosity' and 'run_tests_verbose' by indicating a specific verbosity level, though it doesn't explicitly contrast with all alternatives.

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 usage for running tests with high verbosity, but it doesn't explicitly state when to use this tool versus alternatives like 'run_tests_verbose' or 'run_tests_no_verbosity'. No guidance on prerequisites, exclusions, or specific contexts is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_unit_testA

Run tests for a specific agent only.

This tool runs tests that match the agent's patterns including both main agent tests and healthcheck tests, significantly reducing test execution time compared to running all tests. Use this tool when you need to focus on testing a specific agent component.

Args: agent: The agent to run tests for (e.g., 'qa_agent', 'backlog_agent') verbosity: Verbosity level (0=minimal, 1=normal, 2=detailed), default is 1

Returns: Dictionary containing test results and analysis

ParametersJSON Schema
NameRequiredDescriptionDefault
agentYes
verbosityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It explains what the tool does (runs tests matching agent patterns) and mentions performance characteristics (reduced execution time), but doesn't disclose other behavioral traits like whether it's read-only vs. destructive, authentication requirements, rate limits, error handling, or what happens if tests fail. The description adds some context but leaves gaps in behavioral disclosure.

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 well-structured and front-loaded with the core purpose. Every sentence adds value: first states what it does, second explains scope and benefit, third gives usage guidance, and the Args/Returns sections efficiently document parameters and output. There's no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 parameters with 0% schema coverage, no annotations, but an output schema exists, the description does a good job explaining parameters and purpose. However, for a test execution tool, it could better address what happens during test failures, timeouts, or other edge cases. The existence of an output schema means it doesn't need to explain return values in detail.

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?

Schema description coverage is 0%, so the description must compensate. It provides clear semantics for both parameters: 'agent' is explained as 'The agent to run tests for' with examples, and 'verbosity' is defined with specific levels and default. This adds substantial value beyond the bare schema, though it doesn't explain parameter constraints or validation rules.

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 specific action ('run tests for a specific agent only') and resource ('agent's patterns including both main agent tests and healthcheck tests'). It explicitly distinguishes this tool from running all tests, which helps differentiate it from potential sibling tools like 'run_tests_no_verbosity' that might run broader test suites.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('when you need to focus on testing a specific agent component') and mentions the benefit ('significantly reducing test execution time compared to running all tests'). However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools (like 'run_tests_verbose' or 'analyze_tests').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_log_all_recordsC

Search for all log records, optionally filtering by scope and content patterns, with context.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNodefault
context_beforeNo
context_afterNo
log_dirs_overrideNo
log_content_patterns_overrideNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/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 of behavioral disclosure. It mentions 'with context' but doesn't explain what that entails (e.g., how context_before and context_after affect results), nor does it cover permissions, rate limits, or error handling. This is inadequate for a search tool with multiple parameters.

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 a single, efficient sentence that front-loads the core purpose. However, it could be more structured by explicitly listing key parameters or use cases, but it avoids unnecessary verbosity.

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?

Given 5 parameters with 0% schema coverage, no annotations, and an output schema (which reduces need to describe returns), the description is minimally adequate. It hints at filtering and context but lacks details on parameter usage, behavioral traits, or sibling differentiation, leaving gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions filtering by 'scope and content patterns, with context,' which loosely maps to some parameters (scope, log_content_patterns_override, context_before/after) but doesn't explain their semantics, defaults, or interactions. It omits log_dirs_override entirely, failing to add meaningful value beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search for all log records' with optional filtering by 'scope and content patterns, with context.' It specifies the verb (search) and resource (log records) but doesn't explicitly differentiate from sibling tools like search_log_first_n_records or search_log_time_based, which would require a 5.

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?

The description provides no guidance on when to use this tool versus alternatives. It mentions optional filtering but doesn't specify scenarios, prerequisites, or exclusions compared to sibling tools like search_log_first_n_records or search_log_time_based, leaving the agent without usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_log_first_n_recordsC

Search for the first N (oldest) records, optionally filtering, with context.

ParametersJSON Schema
NameRequiredDescriptionDefault
countYes
scopeNodefault
context_beforeNo
context_afterNo
log_dirs_overrideNo
log_content_patterns_overrideNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/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 mentions 'search' (implying read-only) and 'with context', but doesn't disclose critical behavioral traits: whether it's safe/destructive, authentication needs, rate limits, pagination, error handling, or what 'context' entails. For a search tool with 6 parameters, this leaves significant gaps in understanding how it behaves.

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 a single, efficient sentence that front-loads the core purpose. It avoids redundancy and wastes no words, though it could be more structured by separating purpose from features. Every part earns its place, but it's slightly dense due to packing multiple concepts into one clause.

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?

Given the tool's complexity (6 parameters, search functionality) and the presence of an output schema (which alleviates need to explain return values), the description is minimally adequate. However, with no annotations and 0% schema coverage, it should do more to explain behavioral aspects and parameter meanings. It covers the basic 'what' but lacks depth on 'how' and 'when'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only vaguely references 'optionally filtering' and 'with context', which loosely maps to some parameters (e.g., 'log_content_patterns_override' for filtering, 'context_before/after' for context). However, it doesn't explain what parameters like 'scope', 'log_dirs_override', or the exact meaning of 'context' are, failing to add sufficient meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search for the first N (oldest) records, optionally filtering, with context.' It specifies the verb (search), resource (records), scope (first N oldest), and optional features (filtering, context). However, it doesn't explicitly differentiate from its sibling 'search_log_first_n_records' beyond the 'first N (oldest)' vs 'last N' distinction, which is implied but not stated.

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?

The description provides no explicit guidance on when to use this tool versus alternatives. It mentions optional filtering and context but doesn't specify scenarios, prerequisites, or compare it to siblings like 'search_log_all_records' or 'search_log_time_based'. The agent must infer usage from the tool name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_log_last_n_recordsC

Search for the last N (newest) records, optionally filtering, with context.

ParametersJSON Schema
NameRequiredDescriptionDefault
countYes
scopeNodefault
context_beforeNo
context_afterNo
log_dirs_overrideNo
log_content_patterns_overrideNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions 'with context' but doesn't explain what that means operationally. No information about permissions, rate limits, side effects, or what 'search' entails is provided.

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 a single, efficient sentence that gets straight to the point. However, it could be more front-loaded with critical information given the complexity of the tool.

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?

For a tool with 6 parameters, 0% schema coverage, no annotations, and multiple sibling alternatives, the description is inadequate. While an output schema exists, the description doesn't provide enough context about behavior, usage scenarios, or parameter meaning to guide effective tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and 6 parameters, the description adds minimal value. It mentions 'optionally filtering' and 'with context' which loosely relate to some parameters, but doesn't explain what 'scope', 'context_before/after', or the override parameters actually do or how they interact.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for the last N records with optional filtering and context. It specifies the verb 'search' and resource 'records', but doesn't explicitly differentiate from siblings like 'search_log_first_n_records' or 'search_log_time_based' beyond the 'last N' qualifier.

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?

The description provides no guidance on when to use this tool versus alternatives like 'search_log_first_n_records' or 'search_log_time_based'. It mentions optional filtering but doesn't specify what filtering is available or when to use this versus other search tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_log_time_basedC

Search logs within a time window, optionally filtering, with context.

ParametersJSON Schema
NameRequiredDescriptionDefault
minutesNo
hoursNo
daysNo
scopeNodefault
context_beforeNo
context_afterNo
log_dirs_overrideNo
log_content_patterns_overrideNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/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 of behavioral disclosure. It mentions 'with context' but doesn't explain what that entails (e.g., how context_before/after parameters affect results). It lacks details on permissions, rate limits, output format, or error handling, which are critical for a search tool with 8 parameters.

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 a single, efficient sentence that front-loads the core functionality. It avoids redundancy and wastes no words, though it could be slightly more structured by explicitly listing key parameters. Overall, it's appropriately concise for the tool's complexity.

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?

Given the tool has 8 parameters with 0% schema coverage and an output schema exists, the description is incomplete. It doesn't explain parameter interactions, default behaviors, or what 'context' means, leaving gaps. The output schema mitigates some need for return value details, but the description lacks sufficient guidance for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It only vaguely references 'time window', 'filtering', and 'context', without explaining the 8 parameters (e.g., minutes/hours/days for time, scope, overrides). This adds minimal semantic value beyond the schema's property names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as searching logs within a time window with optional filtering and context. It specifies the verb 'search' and resource 'logs', distinguishing it from siblings like 'search_log_all_records' by emphasizing time-based scope. However, it doesn't explicitly differentiate from other time-based siblings (if any), keeping it from a perfect score.

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?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'search_log_all_records', 'search_log_first_n_records', and 'search_log_last_n_records', there is no indication of scenarios where this time-based search is preferred over those record-count-based searches, leaving the agent without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.1/5.0
Disambiguation3/5

The tools have clear distinctions in some areas, like different search methods (time-based, first/last N records) and test verbosity levels. However, there is significant overlap between 'analyze_tests' and the 'run_tests_*' tools, as they all relate to test execution and analysis, which could cause confusion about when to use each. The 'ping' and 'get_server_env_details' tools are distinct but minor compared to the core testing/log analysis focus.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (e.g., 'analyze_tests', 'create_coverage_report', 'search_log_all_records'), which is clear and predictable. There are minor deviations, such as 'run_tests_no_verbosity' using 'no_verbosity' instead of a more standard modifier like 'minimal', but overall the naming is coherent and easy to understand.

Tool Count4/5

With 12 tools, the count is reasonable for a log analyzer and test runner server, covering key operations like test execution, log searching, and system checks. It's slightly on the higher side but well-scoped, as each tool serves a specific purpose without obvious bloat. The tools are focused on the domain, making the count appropriate for the server's purpose.

Completeness3/5

The tool set covers core areas like test running (with various verbosity levels and targeted runs), log searching (with multiple methods), and basic server checks. However, there are notable gaps: for a 'Log Analyzer', there's no tool for aggregating or summarizing logs, and for test analysis, there's no tool for updating or deleting test results. This limits the lifecycle coverage and may require workarounds for full agent workflows.

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

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/Darkstar326/log_analyzer_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server