Log Analyzer MCP
Enables on-demand code coverage report generation for analysis of test coverage metrics
Supports configuration through environment variables for customizing log analysis behavior
Integrates with GitHub Actions for CI workflows and test validation
Allows deployment and version management of the MCP server through the Python Package Index
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Log Analyzer MCPanalyze the last hour of application logs for errors"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Log Analyzer MCP
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
loganalyzerCLI 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.
Related MCP server: Log Analyzer MCP Server
Key Features
Core Log Analysis Engine: Robust backend for parsing and searching various log formats.
loganalyzerCLI: 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.
From PyPI (Recommended for Users)
Once the package is published to PyPI.
pip install log-analyzer-mcpThis 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:
Ensure Hatch is installed. (See Developer Guide)
Build the package:
hatch buildThis creates wheel and sdist packages in the
dist/directory.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.whlFor 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:
As a Command-Line Tool (
loganalyzer):Ideal for direct analysis, scripting, or quick checks.
Requires Python 3.9+.
For installation, see the Installation section above.
For detailed usage, see the CLI Usage Guide (upcoming) or the API Reference for CLI commands.
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..envFile: Create a.envfile 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:
Via an MCP Client (e.g., Cursor): Configure your client to launch the
log-analyzer-mcpexecutable (often using a helper likeuvx). 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:
Replace placeholder paths and consult the Getting Started Guide, the (Upcoming) Configuration Guide, and the Developer Guide for more on configuration options and environment variables.
The actual package name on PyPI is
log-analyzer-mcp.
Directly (for development/testing): You can run the server directly using its entry point if needed. The
log-analyzer-mcpcommand (available after installation) can be used:log-analyzer-mcp --transport http --port 8080 # or for stdio transport # log-analyzer-mcp --transport stdioRefer to
log-analyzer-mcp --helpfor more options. For development, using Hatch scripts defined inpyproject.tomlor 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
.envand environment variable settings. (This document needs to be created.)(Upcoming) CLI Usage Guide: Comprehensive guide to all
loganalyzercommands 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 toolsanalyze_testsB
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
| Name | Required | Description | Default |
|---|---|---|---|
| summary_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions analyzing 'the most recent test run' and providing 'detailed information about failures', but lacks critical details: whether this is a read-only operation, what happens if no test run exists, the format of the output (though an output schema exists), or any rate limits or permissions required. For a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a clear purpose statement followed by a parameter explanation. Both sentences earn their place by providing essential information without redundancy. However, it could be slightly more front-loaded by integrating the parameter info into the main flow, but this is minor.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (analyzing test runs with failures), no annotations, and an existing output schema, the description is partially complete. It covers the purpose and parameter semantics adequately, but lacks behavioral context (e.g., error handling, dependencies on other tools). The output schema mitigates the need to describe return values, but gaps in usage and transparency remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter 'summary_only' by explaining it controls whether to 'return only a summary of the test results'. This goes beyond the schema's minimal title ('Summary Only') and default value. With 0% schema description coverage, the description effectively compensates by clarifying the parameter's purpose, though it doesn't detail edge cases or interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the 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 sibling tools like 'run_tests_*' or 'create_coverage_report', which would be needed for 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.
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 prerequisites (e.g., whether a test run must exist), nor does it compare to siblings like 'run_tests_verbose' or 'create_coverage_report'. The only implied usage is analyzing failures, but this is too vague for effective tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_coverage_reportB
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
| Name | Required | Description | Default |
|---|---|---|---|
| force_rebuild | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions generating reports but lacks details on execution behavior, such as whether it runs tests, requires specific permissions, has side effects (e.g., file creation), or handles errors. The description is minimal and doesn't compensate for the absence of annotations, leaving key behavioral traits unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured, with three sentences that efficiently cover the tool's purpose, parameter, and return value. Each sentence earns its place: the first states the action, the second explains the parameter, and the third describes the output. There is no wasted text, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (generating reports with one parameter) and the presence of an output schema (which handles return values), the description is partially complete. It covers the basic purpose and parameter semantics but lacks behavioral details and usage guidelines. Without annotations, it should do more to explain execution behavior and context, but the output schema reduces the need to describe returns, keeping it at a minimal viable level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter 'force_rebuild' by explaining it as 'Whether to force rebuilding the report even if it exists.' This clarifies the parameter's purpose beyond the schema's title ('Force Rebuild') and default value. With 0% schema description coverage and only one parameter, the description effectively compensates by providing essential semantics, though it could include more detail on when to use this option.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Run the coverage report script and generate HTML and XML reports.' It specifies the verb ('Run'), resource ('coverage report script'), and outputs ('HTML and XML reports'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'analyze_tests' or 'run_tests_*', which might also involve test-related operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as whether tests need to be run first, or compare it to sibling tools like 'analyze_tests' for test analysis. The only implied usage is generating coverage reports, but without context on timing or alternatives, this is insufficient for informed tool selection.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 clearly describes what the tool returns (sys.path and sys.executable), which is helpful. However, it doesn't mention potential side effects, performance characteristics, authentication requirements, or error conditions. The description provides basic behavioral information but lacks depth for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately states the tool's purpose without any unnecessary words. It's front-loaded with the core functionality and contains zero redundant information. Every word earns its place in this compact description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has zero parameters, 100% schema coverage, and an output schema exists, the description provides adequate context. It clearly states what information will be returned (sys.path and sys.executable). The existence of an output schema means the description doesn't need to detail return values. However, with no annotations, it could benefit from mentioning that this is a read-only, non-destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema description coverage is 100% (though there are no parameters to cover). The description appropriately doesn't discuss parameters since none exist. It focuses instead on what the tool returns, which is the correct emphasis for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Returns') and the exact resources being returned ('sys.path and sys.executable from the running MCP server'). It precisely distinguishes this tool from sibling tools that perform testing, logging, or coverage operations by focusing exclusively on server environment details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (when you need to inspect the server's Python environment) but doesn't explicitly state when to use this tool versus alternatives. No exclusions or specific prerequisites are mentioned, leaving the agent to infer appropriate usage scenarios from the tool's purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingA
Check if the MCP server is alive.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It clearly indicates a read-only check operation ('Check if... is alive') which implies non-destructive behavior, but doesn't specify what 'alive' means (e.g., network reachability, service responsiveness), response format, or timeout behavior. It meets minimum requirements but lacks operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, perfectly focused sentence with zero wasted words. It immediately communicates the core function without any unnecessary elaboration, making it optimally concise for such a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema (which handles return value documentation), the description provides adequate context about what the tool does. The main gap is lack of differentiation from sibling tools that might serve similar diagnostic purposes, but overall it's reasonably complete for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters and 100% schema description coverage, the baseline is 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Check') and target ('MCP server'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_server_env_details' which might also provide server status information, preventing 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.
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 sibling tools like 'get_server_env_details' that might offer more detailed server information, there's no indication whether 'ping' should be used for simple liveness checks or as a preliminary diagnostic step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_tests_no_verbosityA
Run all tests with minimal output (verbosity level 0).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the output verbosity level, which is useful, but lacks details on what 'run all tests' entails (e.g., test types, execution environment, success/failure handling, or any side effects like timeouts or resource usage). This leaves 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key information ('Run all tests') and adds necessary detail ('with minimal output (verbosity level 0)'). There is no wasted text, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, an output schema, and no annotations, the description is adequate but minimal. It covers the purpose and verbosity level, which is sufficient for basic use, but lacks details on test scope, execution behavior, or output format, which could be important for an agent to use it correctly in complex scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds value by explaining the verbosity level, which is not captured in the schema, making it helpful for understanding the tool's configuration despite the lack of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Run all tests') and specifies the execution mode ('with minimal output (verbosity level 0)'). It distinguishes from siblings like 'run_tests_verbose' and 'run_tests_very_verbose' by indicating the verbosity level, though it doesn't explicitly mention what 'tests' refers to or the scope beyond 'all'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'minimal output (verbosity level 0)', which suggests this tool is for quick, concise test runs compared to verbose alternatives. However, it doesn't explicitly state when to use this versus other test-running tools or provide exclusions, such as not using it for debugging detailed failures.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 the verbosity level but fails to describe what 'verbose output' entails, whether it affects performance, if it's read-only or destructive, or any other behavioral traits like error handling or output format. 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.
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 any unnecessary words or fluff. It is front-loaded and wastes no space, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description's job is simplified. It covers the basic action and verbosity but lacks details on behavioral aspects like what 'verbose' means or how it differs from siblings. This makes it minimally viable but with clear gaps in context, especially with no annotations to supplement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter information is needed. The description appropriately adds no parameter details, focusing solely on the tool's action and verbosity level, which aligns with the schema's completeness. A baseline of 4 is applied as it compensates adequately for the lack of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Run all tests') and specifies the verbosity level ('verbose output (verbosity level 1)'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools 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.
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, such as 'run_tests_no_verbosity' or 'run_tests_very_verbose', nor does it mention any prerequisites or context for usage. This lack of comparative or contextual information limits its helpfulness for an AI agent.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the output verbosity level but does not disclose other behavioral traits such as execution time, side effects, error handling, or what 'run all tests' entails (e.g., test types, scope). This leaves significant gaps for a tool with potential operational impacts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Run all tests') and adds necessary detail ('with very verbose output (verbosity level 2)'). There is no wasted text, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description's focus on verbosity is adequate. However, with no annotations and potential complexity in test execution, it could benefit from more context on what 'tests' include or behavioral expectations, leaving some gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, focusing instead on the tool's behavior, which aligns with the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Run all tests') and specifies the output characteristic ('with 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through 'very verbose output,' suggesting it's for detailed debugging or logging scenarios. However, it lacks explicit guidance on when to choose this over alternatives like 'run_tests_verbose' or 'run_tests_no_verbosity,' and does not mention 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_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
| Name | Required | Description | Default |
|---|---|---|---|
| agent | Yes | ||
| verbosity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it runs tests matching the agent's patterns (including main and healthcheck tests) and reduces execution time. However, it lacks details on permissions, error handling, or execution environment, which are important for a test-running tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded: the first sentence states the core purpose, followed by elaboration on scope and efficiency, then usage guidance, and finally parameter and return details. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no annotations, but with an output schema), the description is mostly complete. It explains purpose, usage, parameters, and returns, though it could benefit from more behavioral context (e.g., side effects). The output schema existence means return values don't need detailed explanation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics: 'agent' is explained with examples (e.g., 'qa_agent'), and 'verbosity' is clarified with levels (0=minimal, 1=normal, 2=detailed) and a default. This goes beyond the bare schema, though it doesn't fully document all parameter nuances.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('run tests for a specific agent only') and distinguishes it from siblings by mentioning it focuses on 'agent's patterns' and reduces execution time compared to running all tests. It explicitly contrasts with broader testing approaches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('when you need to focus on testing a specific agent component') and implies alternatives by mentioning it reduces time 'compared to running all tests', which helps differentiate from sibling tools like run_tests_no_verbosity that likely run broader 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.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | default | |
| context_before | No | ||
| context_after | No | ||
| log_dirs_override | No | ||
| log_content_patterns_override | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 'with context' which hints at the context_before/after parameters, but doesn't explain what 'context' means, how results are returned, whether there are rate limits, authentication needs, or what 'search' entails (e.g., regex, exact match). This is a significant gap for a search tool with 5 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. However, it could be more structured by separating key features (e.g., 'Searches all log records. Optional filters: scope, content patterns. Includes context lines.'), but it avoids unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters with 0% schema coverage, no annotations, but an output schema exists, the description is incomplete. It hints at some parameters but doesn't fully explain their semantics or usage. The output schema mitigates the need to describe return values, but the lack of behavioral and parameter details leaves gaps for effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions filtering by 'scope and content patterns' and 'with context', which loosely maps to some parameters (scope, log_content_patterns_override, context_before/after), but doesn't explain what 'scope' means, what 'log_dirs_override' does, or how patterns work. This adds minimal 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('search') and resource ('all log records'), and mentions optional filtering by scope and content patterns. It distinguishes from some siblings like 'search_log_first_n_records' by specifying 'all' records, but doesn't fully differentiate from other search siblings like 'search_log_time_based' in terms of when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_log_first_n_records', 'search_log_last_n_records', or 'search_log_time_based'. It mentions optional filtering but doesn't specify use cases or exclusions, leaving the agent to guess based on tool names alone.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| count | Yes | ||
| scope | No | default | |
| context_before | No | ||
| context_after | No | ||
| log_dirs_override | No | ||
| log_content_patterns_override | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'with context' but doesn't explain what context means, how filtering works, or behavioral aspects like pagination, rate limits, or error handling. This is inadequate for a tool with 6 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. However, it could be more structured by explicitly mentioning the resource (logs) and separating filtering from context aspects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters with 0% schema coverage, no annotations, and an output schema (which reduces need for return value explanation), the description is incomplete. It lacks details on parameter meanings, behavioral traits, and usage distinctions from siblings, making it insufficient for effective tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'filtering' and 'context' but doesn't explain any of the 6 parameters (e.g., what 'scope' or 'log_dirs_override' mean). The description adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for records with filtering and context, specifying 'first N (oldest)' which distinguishes it from siblings like search_log_last_n_records. However, it doesn't explicitly mention logs as the resource, though this is implied by the name and sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving oldest records with optional filtering and context, but doesn't explicitly state when to use this vs. alternatives like search_log_last_n_records or search_log_time_based. No guidance on prerequisites or exclusions is provided.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| count | Yes | ||
| scope | No | default | |
| context_before | No | ||
| context_after | No | ||
| log_dirs_override | No | ||
| log_content_patterns_override | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 'with context' and 'optionally filtering', but doesn't explain what 'context' means (e.g., surrounding log entries), how filtering works, whether this is a read-only operation, potential performance impacts, or output format. For a search tool with 6 parameters, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence that front-loads the core purpose. Every word earns its place, with no redundancy or fluff. It efficiently communicates the tool's essence without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (6 parameters, no annotations, but with an output schema), the description is incomplete. It lacks details on filtering mechanics, context behavior, and how parameters interact. The output schema may cover return values, but the description doesn't provide enough operational context for effective use, especially compared to siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only vaguely references 'filtering' and 'context', without explaining how parameters like 'scope', 'log_dirs_override', or 'log_content_patterns_override' relate to these concepts. The description adds minimal meaning beyond the schema's parameter names and types, failing to clarify usage or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search for the last N (newest) records, optionally filtering, with context.' It specifies the verb ('search'), resource ('records'), and scope ('last N/newest'), which distinguishes it from siblings like 'search_log_first_n_records' (first N) and 'search_log_time_based' (time-based). However, it doesn't explicitly differentiate from 'search_log_all_records' in terms of filtering capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions 'optionally filtering' but doesn't specify what filtering entails or when to choose this over siblings like 'search_log_first_n_records' or 'search_log_time_based'. There's no mention of prerequisites, exclusions, or typical use cases.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| minutes | No | ||
| hours | No | ||
| days | No | ||
| scope | No | default | |
| context_before | No | ||
| context_after | No | ||
| log_dirs_override | No | ||
| log_content_patterns_override | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions 'optionally filtering' and 'with context,' it doesn't explain what 'context' means in practice, what format results are returned in, whether this is a read-only operation, or any performance characteristics. For an 8-parameter tool with no 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that efficiently communicates the core functionality. Every word earns its place: 'Search logs' (action), 'within a time window' (primary constraint), 'optionally filtering' (additional capability), 'with context' (extra feature). No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no annotations, but has output schema), the description is minimally adequate. The output schema existence means return values don't need explanation in the description. However, for a search tool with multiple sibling alternatives and no behavioral annotations, the description should provide more guidance on usage scenarios and result interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for all 8 parameters, the description provides minimal help. It mentions 'time window,' 'filtering,' and 'context,' which loosely map to some parameters (minutes/hours/days for time, log_content_patterns_override for filtering, context_before/after for context), but doesn't explain parameter relationships, defaults, or how overrides work. The description doesn't adequately compensate for the complete lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search logs within a time window, optionally filtering, with context.' This specifies the verb (search), resource (logs), and key features (time-based, filtering, context). However, it doesn't explicitly differentiate from siblings like search_log_all_records or search_log_first_n_records beyond the time-based aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like search_log_all_records and search_log_first_n_records available, there's no indication of when time-based searching is preferable over other log search methods. The description only states what the tool does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
There is significant overlap between the test-running tools (run_tests_no_verbosity, run_tests_verbose, run_tests_very_verbose, run_unit_test) which could cause confusion about which to select for different verbosity needs. However, the search_log_* tools are well-differentiated by their temporal focus, and analyze_tests vs. create_coverage_report serve distinct purposes.
Most tools follow a consistent verb_noun pattern (analyze_tests, create_coverage_report, search_log_all_records, etc.). The main deviation is get_server_env_details which uses a get_ prefix instead of a more descriptive verb, and ping which is a single word outlier, but overall the naming is quite predictable.
12 tools is reasonable for a log analyzer server that also handles testing. While the count is appropriate, the distribution feels slightly imbalanced with many test-running tools and fewer log analysis tools, but it's still within a well-scoped range.
For log analysis, the search tools provide good temporal coverage but lack operations like log ingestion, filtering by severity, or aggregation. For testing, there are multiple execution tools but no tools for test setup, teardown, or result comparison. The surface covers core workflows but has notable gaps in both domains.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server for building and testing AI agents with multi-model experimentation and insights.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Cloud-hosted MCP server for durable AI memory
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server for AI-powered log analysis that enables parsing, searching, and debugging across nine log formats directly within Claude. It features automated error extraction, sensitive data scanning, and streaming support for large log files.145MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for intelligent log analysis providing semantic search, error pattern clustering, and smart error detection. It enables users to process, vectorize, and query local logs to efficiently identify issues and generate AI-powered summaries.MIT
- AlicenseAqualityCmaintenanceMCP server that automatically logs AI coding assistant activities such as command executions and code generation, saving them as JSON files for later search and analysis.325MIT
- AlicenseAqualityDmaintenanceMCP server for log file analysis. Gives LLMs the ability to efficiently analyze large log files without loading them into context.799MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/djm81/log_analyzer_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server