Skip to main content
Glama
simseksem

MCP Container Tools

by simseksem

🐳 MCP Container Tools

PyPI version Python 3.11+ License: MIT MCP

A Model Context Protocol (MCP) server for Docker, Kubernetes, and Azure Application Insights with advanced log filtering and monitoring capabilities.

✨ Features

  • 🐳 Docker β€” Container logs, inspect, exec, list containers

  • πŸ™ Docker Compose β€” Service logs, start/stop/restart services

  • ☸️ Kubernetes β€” Pod logs, deployment logs, events, exec into pods

  • ☁️ Azure Application Insights β€” Exceptions, traces, requests, metrics

  • πŸ” Log Filtering β€” Filter by log level, regex patterns, exclude patterns

  • 🌐 Remote Support β€” Connect to remote Docker hosts via SSH or TCP

Related MCP server: debugpy-mcp

πŸ“‹ Requirements

Requirement

Version

Required For

🐍 Python

3.11+

All

🐳 Docker

Latest

Docker tools

☸️ kubectl

Latest

Kubernetes tools

☁️ Azure CLI

Latest

Azure tools (optional)

πŸš€ Installation

# Basic installation
pip install mcp-container-tools

# With Azure Application Insights support
pip install mcp-container-tools[azure]

πŸ™ Install from GitHub

# Latest version from GitHub
pip install git+https://github.com/simseksem/mcp-container-tools.git

# With Azure support
pip install "mcp-container-tools[azure] @ git+https://github.com/simseksem/mcp-container-tools.git"

πŸ”§ Install from source (for development)

git clone https://github.com/simseksem/mcp-container-tools.git
cd mcp-container-tools
pip install -e ".[all]"

βœ… Verify installation

mcp-server --help

βš™οΈ Configuration

πŸ–₯️ Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "container-tools": {
      "command": "/path/to/mcp-container-tools/.venv/bin/python",
      "args": ["-m", "mcp_server.server"],
      "env": {
        "AZURE_LOG_ANALYTICS_WORKSPACE_ID": "your-workspace-id",
        "AZURE_APP_INSIGHTS_RESOURCE_ID": "/subscriptions/.../resourceGroups/.../providers/microsoft.insights/components/..."
      }
    }
  }
}

πŸ’» Claude Code

Add to ~/.claude/settings.json or create .mcp.json in your project:

{
  "mcpServers": {
    "container-tools": {
      "command": "/path/to/mcp-container-tools/.venv/bin/python",
      "args": ["-m", "mcp_server.server"]
    }
  }
}

☁️ Azure Authentication

Azure tools use DefaultAzureCredential which supports:

  • Azure CLI (az login)

  • Environment variables

  • Managed Identity

  • Visual Studio Code

# Easiest: Login with Azure CLI
az login

πŸ“– Usage Examples

🐳 Docker

# Read container logs
docker_logs(container="my-app", tail=100)

# Read logs from last 30 minutes
docker_logs(container="my-app", since="30m")

# Filter by log level (only errors and above)
docker_logs(container="my-app", min_level="error")

# Search for patterns
docker_logs(container="my-app", pattern="timeout|connection refused")

# Exclude health checks
docker_logs(container="my-app", exclude_pattern="GET /health")

# Remote Docker host via SSH
docker_logs(container="my-app", host="ssh://user@server.com")

# List containers
docker_ps(all=True)

πŸ™ Docker Compose

# Read service logs
compose_logs(service="api", tail=200)

# Read all services logs
compose_logs(project_dir="/path/to/project")

# Service management
compose_up(service="api", project_dir="/path/to/project")
compose_down(project_dir="/path/to/project")
compose_restart(service="api")

☸️ Kubernetes

# Read pod logs
k8s_logs(pod="api-7d4b8c6f9-x2k4m", namespace="production")

# Read logs from all pods in a deployment
k8s_deployment_logs(deployment="api", namespace="production")

# Filter logs
k8s_logs(pod="api-*", min_level="warn", pattern="database")

# Use different context
k8s_logs(pod="my-pod", context="production-cluster", namespace="backend")

# List pods
k8s_pods(namespace="all", selector="app=api")

# Get events
k8s_events(namespace="production")

# Execute command in pod
k8s_exec(pod="api-xyz", command="printenv", namespace="production")

☁️ Azure Application Insights

# Query exceptions from last hour
azure_exceptions(timespan="PT1H", limit=50)

# Get only critical exceptions
azure_exceptions(severity="critical", search="NullReference")

# Query application traces
azure_traces(timespan="PT1H", severity="error")

# Query HTTP requests
azure_requests(timespan="PT1H", failed_only=True)

# Get slow requests (>1 second)
azure_requests(min_duration_ms=1000, limit=20)

# Query external dependencies (SQL, HTTP, etc.)
azure_dependencies(timespan="PT1H", failed_only=True, type_filter="SQL")

# Get metrics
azure_metrics(metric_name="requests/count", timespan="P1D", interval="PT1H")

# Query availability test results
azure_availability(timespan="P1D", failed_only=True)

# Run custom Kusto query
azure_query(query="""
    requests
    | where success == false
    | summarize count() by bin(timestamp, 1h), resultCode
    | order by timestamp desc
""", timespan="P1D")

πŸ” Log Filtering Options

All log tools support these filtering options:

Option

Description

Example

min_level

Minimum log level

"error", "warn", "info"

pattern

Regex to include

"error|exception"

exclude_pattern

Regex to exclude

"health.*check"

context_lines

Lines around matches

5

Supported log levels: trace β†’ debug β†’ info β†’ warn β†’ error β†’ fatal

⏱️ Timespan Format (Azure)

Azure tools use ISO 8601 duration format:

Format

Duration

PT1H

1 hour

PT30M

30 minutes

P1D

1 day

P7D

7 days

πŸ› οΈ Available Tools

🐳 Docker Tools

Tool

Description

docker_logs

πŸ“„ Read container logs with filtering

docker_ps

πŸ“‹ List containers

docker_inspect

πŸ”Ž Get container details

docker_exec

⚑ Execute command in container

πŸ™ Docker Compose Tools

Tool

Description

compose_logs

πŸ“„ Read service logs

compose_ps

πŸ“‹ List services

compose_up

▢️ Start services

compose_down

⏹️ Stop services

compose_restart

πŸ”„ Restart services

☸️ Kubernetes Tools

Tool

Description

k8s_logs

πŸ“„ Read pod logs

k8s_deployment_logs

πŸ“š Read deployment logs

k8s_pods

πŸ“‹ List pods

k8s_describe

πŸ”Ž Describe pod

k8s_exec

⚑ Execute in pod

k8s_events

πŸ“’ Get events

k8s_contexts

🌐 List contexts

☁️ Azure Application Insights Tools

Tool

Description

azure_query

πŸ” Run custom Kusto queries

azure_exceptions

❌ Query application exceptions

azure_traces

πŸ“ Query application traces

azure_requests

🌐 Query HTTP requests

azure_dependencies

πŸ”— Query external dependencies

azure_metrics

πŸ“Š Query metrics

azure_availability

βœ… Query availability tests

πŸ‘¨β€πŸ’» Development

Install dev dependencies

pip install -e ".[all]"

Run tests

pytest

Linting and type checking

ruff check .
mypy src/

πŸ“ Project Structure

mcp-container-tools/
β”œβ”€β”€ πŸ“‚ src/mcp_server/
β”‚   β”œβ”€β”€ πŸ“„ __init__.py
β”‚   β”œβ”€β”€ πŸ“„ server.py               # Main server entry point
β”‚   β”œβ”€β”€ πŸ“‚ tools/
β”‚   β”‚   β”œβ”€β”€ 🐳 docker.py           # Docker tools
β”‚   β”‚   β”œβ”€β”€ πŸ™ docker_compose.py   # Compose tools
β”‚   β”‚   β”œβ”€β”€ ☸️ kubernetes.py        # K8s tools
β”‚   β”‚   β”œβ”€β”€ ☁️ azure_insights.py    # Azure App Insights
β”‚   β”‚   └── πŸ“ file_operations.py  # File tools
β”‚   β”œβ”€β”€ πŸ“‚ resources/
β”‚   β”‚   β”œβ”€β”€ βš™οΈ config.py           # Config resources
β”‚   β”‚   └── πŸ“Š data.py             # Data resources
β”‚   β”œβ”€β”€ πŸ“‚ prompts/
β”‚   β”‚   └── πŸ“ templates.py        # Prompt templates
β”‚   └── πŸ“‚ utils/
β”‚       └── πŸ” log_filter.py       # Log filtering
β”œβ”€β”€ πŸ“‚ tests/
β”œβ”€β”€ πŸ“„ pyproject.toml
└── πŸ“„ README.md

πŸ” Environment Variables

Variable

Description

AZURE_LOG_ANALYTICS_WORKSPACE_ID

Azure Log Analytics workspace ID

AZURE_APP_INSIGHTS_RESOURCE_ID

Azure Application Insights resource ID

πŸ“„ License

MIT License - see LICENSE for details.


Available Tools

7 tools
azure_availabilityB

Query availability test results

ParametersJSON Schema
NameRequiredDescriptionDefault
timespanNoISO 8601 durationP1D
limitNoMaximum number of results
test_nameNoFilter by test name
failed_onlyNoShow only failed tests

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits like read-only nature or required permissions. It only states the basic purpose, offering no transparency.

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 concise sentence, but it lacks details that could be included without significant bloat. It is front-loaded but minimal.

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?

Given the tool has 4 parameters, no output schema, and no annotations, the description is incomplete. It does not explain return values, pagination, or error handling.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add any extra meaning beyond the schema, merely restating the tool's function.

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 'Query availability test results' uses a specific verb and resource, clearly distinguishing this tool from siblings like azure_dependencies or azure_metrics.

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, nor does it mention any prerequisites or context.

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

azure_dependenciesC

Query external dependencies (HTTP, SQL, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
timespanNoISO 8601 durationPT1H
limitNoMaximum number of results
failed_onlyNoShow only failed dependencies
type_filterNoFilter by type (HTTP, SQL, Azure, etc.)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose any behavioral traits such as whether the query is read-only, expected response format, or any side effects. The description carries the full burden but fails to provide this 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 very short (one phrase) and directly conveys the core purpose. It is not overly verbose, but could benefit from a bit more detail without becoming lengthy. It strikes a reasonable balance.

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?

The description lacks information about output format, pagination, or any prerequisites. Given the absence of an output schema and annotations, the agent may struggle to use the tool effectively. More context is needed for completeness.

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?

All four parameters have descriptions in the input schema (100% coverage), so the baseline is 3. The tool description does not add additional semantics beyond what the schema already provides, which is acceptable given the schema coverage.

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 verb 'Query' and the resource 'external dependencies (HTTP, SQL, etc.)', distinguishing it from sibling tools like azure_requests or azure_traces which focus on other aspects. However, it could be more specific about the context (e.g., Application Insights dependencies).

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 like azure_requests or azure_traces. The agent is left to infer the appropriate context 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.

azure_exceptionsB

Query application exceptions and errors

ParametersJSON Schema
NameRequiredDescriptionDefault
timespanNoISO 8601 durationPT1H
limitNoMaximum number of results
severityNoFilter by severity level
searchNoSearch in exception messages

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as pagination behavior, rate limits, or result ordering. The description merely repeats the basic purpose without additional transparency.

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 concise sentence with no unnecessary words. It is front-loaded and efficient, though slightly under-specified.

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 4 well-described parameters and no output schema, the description is minimally adequate. It does not explain return format or behavior, but the schema covers inputs adequately.

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 coverage is 100% with all parameters having descriptions (timespan, limit, severity, search). The description adds no extra meaning beyond the schema, so a baseline score of 3 is appropriate.

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 uses a specific verb 'Query' and clearly identifies the resource 'application exceptions and errors'. It distinguishes from sibling tools like azure_availability, azure_traces, etc., which focus on other telemetry types.

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 vs. alternatives (e.g., azure_traces for distributed traces). There is no mention of prerequisites, context, or exclusions.

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

azure_metricsC

Query Application Insights metrics

ParametersJSON Schema
NameRequiredDescriptionDefault
metric_nameYesMetric name (e.g., requests/count, exceptions/count)
timespanNoISO 8601 durationPT1H
intervalNoAggregation intervalPT5M
aggregationNoAggregation typeavg
resource_idNoAzure resource ID (uses AZURE_APP_INSIGHTS_RESOURCE_ID env if not set)

TDQS

C2.6/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of disclosing behavioral traits. The minimal description 'Query Application Insights metrics' does not state whether the tool is read-only, has side effects, requires permissions, or has rate limits. This is a significant gap.

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, concise sentence that directly states the tool's purpose. It is front-loaded and efficient, though it could benefit from additional context for a tool with five parameters.

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

Completeness1/5

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

Given the tool's complexity (5 parameters, no output schema, no annotations), the description is severely inadequate. It fails to explain what the tool returns, any constraints, or how to interpret results, leaving the agent with insufficient information to use it effectively.

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

Parameters3/5

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

Schema description coverage is 100% (all parameters have descriptions). The baseline for high coverage is 3. The description adds no additional meaning beyond what the schema already provides, earning a score of 3.

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 'Query Application Insights metrics' clearly identifies the action (query) and the resource (Application Insights metrics). However, it does not explicitly differentiate from sibling tools like azure_availability or azure_requests, which may also query Azure resources.

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 lacks context, prerequisites, or exclusions, leaving the agent to infer usage solely from the name and schema.

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

azure_queryB

Run a custom Kusto query on Application Insights logs

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesKusto query to execute
timespanNoISO 8601 duration (PT1H=1 hour, P1D=1 day, P7D=7 days)PT1H
workspace_idNoLog Analytics workspace ID (or set AZURE_LOG_ANALYTICS_WORKSPACE_ID)

TDQS

B3.1/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 only states 'run a query,' implying read-only behavior, but does not explicitly confirm non-destructiveness, rate limits, authentication requirements, or failure handling. The schema covers parameters but not runtime behavior.

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?

Single sentence, front-loaded with purpose. Efficient with no wasted words. However, it could be slightly restructured to include usage hints or formatting for clarity. Still above average.

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?

No output schema is provided, so the description should explain return values or result format, but it does not. For a complex tool involving Kusto queries, users need examples, constraints on query complexity, or hints about result limits. The description is too minimal.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema. The schema itself describes the query, timespan, and workspace_id parameters adequately. The tool name and description already imply the query parameter.

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 tool runs a custom Kusto query on Application Insights logs, using a specific verb and resource. It distinguishes from sibling tools like azure_requests or azure_metrics, which are pre-defined for specific data types, by emphasizing custom queries.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus the pre-defined sibling tools. An agent would not know whether to use azure_query or a specialized tool like azure_requests for specific tasks. No exclusion criteria or alternative suggestions are provided.

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

azure_requestsC

Query HTTP requests to your application

ParametersJSON Schema
NameRequiredDescriptionDefault
timespanNoISO 8601 durationPT1H
limitNoMaximum number of results
failed_onlyNoShow only failed requests
min_duration_msNoMinimum duration in milliseconds
url_filterNoFilter by URL pattern

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states 'Query HTTP requests', which implies read-only operation but doesn't confirm. There's no mention of side effects, rate limits, or data scope, leaving significant ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but under-specifies the tool's functionality for a tool with 5 parameters. It could benefit from additional context without being verbose.

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?

Given the lack of output schema and annotations, the description should explain what the tool returns or any side effects. It does not, leaving the agent without crucial context for effective invocation.

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 coverage is 100%, and all parameters have descriptions in the schema (e.g., 'ISO 8601 duration'). The tool description adds no additional meaning beyond what the schema already provides, so it meets the baseline but offers no extra value.

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 'Query HTTP requests to your application' uses a verb and resource, clearly indicating the tool deals with HTTP requests. However, it fails to distinguish from sibling tools like 'azure_traces' which may also relate to request data. The scope of 'query' is vagueβ€”does it list, filter, or aggregate?

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. There are no preconditions, exclusions, or mentions of sibling tools, leaving the agent to guess the appropriate context.

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

azure_tracesB

Query application traces and logs

ParametersJSON Schema
NameRequiredDescriptionDefault
timespanNoISO 8601 durationPT1H
limitNoMaximum number of results
severityNoFilter by severity level
searchNoSearch in trace messages

TDQS

B3.3/5.0
Behavior3/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 correctly indicates a read operation ('Query'), but lacks details on permissions, rate limits, or other behavioral traits. Adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise. However, it lacks structure and could benefit from summarizing key parameters or usage context without being overly verbose.

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

Completeness3/5

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

For a simple query tool with no output schema and well-documented parameters, the description is minimally complete. However, given the sibling tools, additional context on what makes this tool unique would improve completeness.

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 coverage is 100%, with all four parameters fully described in the input schema. The description adds no additional meaning beyond what the schema provides, resulting in the baseline score.

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 'Query application traces and logs' clearly states the verb and resource, making the tool's purpose unambiguous. However, it does not differentiate from sibling tools like azure_query or azure_dependencies, which could cause confusion.

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 the tool is for querying traces and logs, but provides no explicit guidance on when to use it versus alternatives like azure_metrics or azure_exceptions. No when-not or prerequisites are mentioned.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv0.1.0
    • First observedazure_availability
    • First observedazure_dependencies
    • First observedazure_exceptions
    • First observedazure_metrics
    • First observedazure_query
    • First observedazure_requests
    • First observedazure_traces

TDQS

B3.4/5.0
Disambiguation5/5

Each tool targets a distinct data type in Application Insights (availability, dependencies, exceptions, metrics, custom query, requests, traces), with clear boundaries and no overlap in purpose.

Naming Consistency5/5

All tools follow a consistent 'azure_<noun>' pattern in snake_case, making them predictable and easy to navigate.

Tool Count5/5

7 tools is well-scoped for querying Azure Application Insights – not too few to miss essential data types, not too many to overwhelm.

Completeness4/5

Covers all major telemetry types (availability, dependencies, exceptions, metrics, requests, traces) plus custom queries; missing only niche features like live metrics streams or application map, which are minor gaps.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables managing Docker containers through natural language commands, allowing users to create, list, and delete containers. It facilitates automated container orchestration and integrates with VS Code via the Cline extension.
    186
    MIT
  • F
    license
    D
    quality
    D
    maintenance
    An MCP server that enables agents to attach debugpy to running Python processes inside Docker containers for enhanced debugging and inspection. It provides tools for container autodiscovery, process injection, and generating breakpoint plans based on logs and metadata.
    8
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A comprehensive MCP server that provides advanced Docker operations through a unified interface with 16 MCP tools and 25+ CLI aliases, enabling secure container lifecycle management, multi-container orchestration, registry publishing, and system maintenance.
    37
    15
    ISC
  • F
    license
    B
    quality
    D
    maintenance
    A log analysis MCP server that enables tailing, searching, filtering, and summarizing logs from local files and Docker containers.
    7
    -

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/simseksem/mcp-container-tools'

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