Skip to main content
Glama
Red5d

Beszel MCP Server

by Red5d

Beszel MCP Server

A Model Context Protocol (MCP) server for the Beszel system monitoring tool.

Overview

This MCP server provides tools to interact with Beszel's PocketBase backend, allowing you to:

  • List systems, containers, alerts, and alert history

  • Query system statistics

  • Query container statistics

Built with FastMCP - A high-level Python framework for building MCP servers with minimal boilerplate. See Why FastMCP? for details.

Works great with uv - The blazing-fast Python package manager. See uv Quick Start for a 2-minute setup!

Related MCP server: DevOps Dashboard MCP Server

Installation

uv is a fast Python package manager that handles virtual environments automatically:

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install the project
uv pip install -e .

# Or run directly without installing
uv run python -m beszel_mcp

Using pip

pip install -e .

Or install directly from the dependencies:

pip install fastmcp httpx

Configuration

The server requires the following environment variables:

  • BESZEL_URL: The URL of your Beszel/PocketBase instance (e.g., http://localhost:8090)

  • BESZEL_EMAIL (optional): Admin email for authentication

  • BESZEL_PASSWORD (optional): Admin password for authentication

Usage

With Claude Desktop

Add to your claude_desktop_config.json:

Using uv (recommended):

{
  "mcpServers": {
    "beszel": {
      "command": "uvx",
      "args": ["--from", "/path/to/beszel-mcp", "beszel-mcp"],
      "env": {
        "BESZEL_URL": "http://localhost:8090",
        "BESZEL_EMAIL": "your-email@example.com",
        "BESZEL_PASSWORD": "your-password"
      }
    }
  }
}

Or using Python directly:

{
  "mcpServers": {
    "beszel": {
      "command": "python",
      "args": ["-m", "beszel_mcp"],
      "env": {
        "BESZEL_URL": "http://localhost:8090",
        "BESZEL_EMAIL": "your-email@example.com",
        "BESZEL_PASSWORD": "your-password"
      }
    }
  }
}

Standalone

export BESZEL_URL="http://localhost:8090"
export BESZEL_EMAIL="your-email@example.com"
export BESZEL_PASSWORD="your-password"

# Using uv (recommended)
uv run beszel-mcp

# Or with python -m
uv run python -m beszel_mcp

# Without uv
python -m beszel_mcp

# Or use fastmcp's CLI
fastmcp run src/beszel_mcp/server.py

Available Tools

list_systems

List all monitored systems.

Parameters:

  • page (optional): Page number (default: 1)

  • per_page (optional): Results per page (default: 50)

  • filter (optional): PocketBase filter string

  • sort (optional): Sort order (e.g., "-created")

list_containers

List all monitored containers.

Parameters:

  • page (optional): Page number (default: 1)

  • per_page (optional): Results per page (default: 50)

  • filter (optional): PocketBase filter string

  • sort (optional): Sort order

list_alerts

List all alerts.

Parameters:

  • page (optional): Page number (default: 1)

  • per_page (optional): Results per page (default: 50)

  • filter (optional): PocketBase filter string

  • sort (optional): Sort order

list_alert_history

List alert history.

Parameters:

  • page (optional): Page number (default: 1)

  • per_page (optional): Results per page (default: 50)

  • filter (optional): PocketBase filter string

  • sort (optional): Sort order

query_system_stats

Query statistics for a specific system.

Parameters:

  • system_id (required): The system ID

  • start_time (optional): Start time for statistics (ISO 8601 format)

  • end_time (optional): End time for statistics (ISO 8601 format)

  • page (optional): Page number (default: 1)

  • per_page (optional): Results per page (default: 100)

query_container_stats

Query statistics for a specific container.

Parameters:

  • container_id (required): The container ID

  • start_time (optional): Start time for statistics (ISO 8601 format)

  • end_time (optional): End time for statistics (ISO 8601 format)

  • page (optional): Page number (default: 1)

  • per_page (optional): Results per page (default: 100)

PocketBase Filter Examples

# Filter by name
filter="name ~ 'server'"

# Filter by status
filter="status = 'active'"

# Filter by date range
filter="created >= '2024-01-01' && created <= '2024-12-31'"

# Complex filters
filter="(cpu > 80 || memory > 90) && status = 'active'"

Why FastMCP?

This server is built with FastMCP instead of the raw MCP SDK for several reasons:

  • 35% less code - Focus on logic, not boilerplate

  • Automatic schema generation - Type hints become JSON schemas

  • Clean decorators - Simple @mcp.tool() instead of manual routing

  • Better DX - Hot reloading, dev mode, and more

See Why FastMCP? for a detailed comparison.

License

MIT

Available Tools

6 tools
list_alert_historyA

List alert history in Beszel.

Args: page: Page number (default: 1) per_page: Number of results per page (default: 50) filter: PocketBase filter string sort: Sort order (e.g., "-created" for most recent first)

Returns: Dictionary containing historical records of triggered alerts

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo
filterNo
sortNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/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 for behavioral disclosure. While it mentions pagination defaults and filtering/sorting capabilities, it doesn't address important behavioral aspects like rate limits, authentication requirements, error conditions, or what constitutes 'historical records of triggered alerts' versus current alerts.

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 efficiently structured with a clear purpose statement followed by well-organized Args and Returns sections. Every sentence adds value - the purpose statement is direct, parameter explanations are concise yet informative, and the return statement is appropriately brief given the existence of an output schema.

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?

For a read-only listing tool with 4 parameters and an output schema, the description provides good coverage. The parameter documentation is excellent, and the existence of an output schema means the return value description is sufficient. The main gap is lack of differentiation from sibling tools and some behavioral context that would be helpful for a tool with filtering capabilities.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by providing clear documentation for all 4 parameters. Each parameter gets a helpful explanation including defaults, examples ('-created' for sort), and the nature of 'PocketBase filter string' - adding significant 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 verb 'List' and resource 'alert history in Beszel', making the purpose explicit. However, it doesn't distinguish this tool from sibling tools like 'list_alerts' - the difference between 'alert history' and 'alerts' isn't explained, 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.

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 like 'list_alerts' or other sibling tools. The description mentions filtering and sorting capabilities but doesn't explain when these features would be appropriate or when other tools might be better suited.

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

list_alertsB

List all configured alerts in Beszel.

Args: page: Page number (default: 1) per_page: Number of results per page (default: 50) filter: PocketBase filter string sort: Sort order

Returns: Dictionary containing alert configurations including thresholds and notification settings

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo
filterNo
sortNo

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?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions pagination defaults and return format, which is helpful, but doesn't cover important aspects like rate limits, authentication requirements, error conditions, or whether this is a read-only operation. 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.

Conciseness4/5

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

The description is well-structured with clear sections for purpose, arguments, and returns. Each sentence earns its place by providing essential information. It's appropriately sized for a tool with four parameters and return documentation. The only minor improvement would be integrating the sections more seamlessly.

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 moderate complexity, four parameters with 0% schema coverage, and the presence of an output schema, the description does well. It explains all parameters and mentions the return structure, though it could benefit from more behavioral context. The output schema existence reduces the need to detail return values extensively.

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% schema description coverage, the description must compensate, and it does so effectively by documenting all four parameters with their purposes and defaults. It explains 'page' and 'per_page' for pagination, 'filter' as a PocketBase filter string, and 'sort' for ordering. This adds significant 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 verb ('List') and resource ('all configured alerts in Beszel'), making the purpose unambiguous. It distinguishes from siblings like 'list_alert_history' by focusing on current configurations rather than historical data. However, it doesn't explicitly contrast with other list tools like 'list_containers' or 'list_systems'.

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 'list_alert_history', 'list_containers', or 'list_systems'. It mentions filtering and sorting capabilities but doesn't explain when these would be preferred over other query tools. There's no mention of prerequisites 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.

list_containersB

List all monitored containers in Beszel.

Args: page: Page number (default: 1) per_page: Number of results per page (default: 50) filter: PocketBase filter string sort: Sort order

Returns: Dictionary containing paginated list of containers running on monitored systems

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo
filterNo
sortNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/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 of behavioral disclosure. It reveals this is a read operation (listing), mentions pagination behavior, and indicates it returns a dictionary with paginated results. However, it doesn't disclose important behavioral aspects like authentication requirements, rate limits, error conditions, or what 'monitored containers' specifically entails.

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 with clear sections (Args, Returns) and front-loaded the core purpose. Each sentence earns its place by providing essential information. It could be slightly more concise by integrating the purpose statement with the parameter explanations, but overall it's efficient.

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 moderate complexity (4 parameters, no annotations, but has output schema), the description is reasonably complete. It covers the purpose, all parameters with semantics, and the return structure. The output schema existence means it doesn't need to detail return values. However, it lacks context about what 'monitored containers' means and how this differs from sibling tools.

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% schema description coverage, the description must compensate, which it does effectively. It explains all four parameters (page, per_page, filter, sort) with clear semantics beyond just their names, including defaults and the nature of 'filter' as a PocketBase filter string. This adds significant 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 verb ('List') and resource ('all monitored containers in Beszel'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'query_container_stats' or 'list_systems', which might also involve container-related 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?

The description provides no guidance on when to use this tool versus alternatives like 'query_container_stats' or 'list_systems'. It mentions filtering and sorting capabilities but doesn't explain when these features should be preferred over other tools that might provide container data.

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

list_systemsB

List all monitored systems in Beszel.

Args: page: Page number (default: 1) per_page: Number of results per page (default: 50) filter: PocketBase filter string (e.g., "name ~ 'server'" or "status = 'active'") sort: Sort order (e.g., "-created" for descending by created date)

Returns: Dictionary containing paginated list of systems with their status and metadata

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo
filterNo
sortNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/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 pagination and filtering capabilities, which is useful, but lacks critical details like authentication requirements, rate limits, error handling, or whether this is a read-only operation. For a tool with 4 parameters and no annotations, this leaves significant gaps in understanding its 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?

The description is well-structured with clear sections (Args, Returns) and front-loaded purpose statement. Each sentence adds value: the first states the purpose, the parameter explanations are necessary given schema gaps, and the return statement clarifies output. It could be slightly more concise by integrating examples more tightly, but overall it's efficient.

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 4 parameters with 0% schema coverage but an output schema exists, the description does a good job explaining parameters but lacks behavioral context. The output schema handles return values, so that's covered. However, for a list operation with filtering/pagination, more guidance on usage scenarios and limitations 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 description provides clear semantic explanations for all 4 parameters beyond what the schema offers (which has 0% description coverage). It explains 'page' and 'per_page' control pagination, 'filter' accepts PocketBase filter strings with examples, and 'sort' controls ordering with an example. This compensates well for the schema's lack of descriptions.

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 ('List') and resource ('all monitored systems in Beszel'), making the purpose unambiguous. It distinguishes from siblings like 'list_alert_history' or 'list_alerts' by focusing on systems rather than alerts. However, it doesn't explicitly differentiate from 'list_containers' or 'query_system_stats' beyond the resource name.

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 'list_containers' or 'query_system_stats'. The description only states what it does, without context on appropriate scenarios or exclusions. This leaves the agent to infer usage 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.

query_container_statsB

Query statistics for a specific container.

Args: container_id: The container ID to query statistics for start_time: Start time in ISO 8601 format (e.g., '2024-01-01T00:00:00Z') end_time: End time in ISO 8601 format page: Page number (default: 1) per_page: Number of results per page (default: 100)

Returns: Dictionary containing time-series data for container CPU, memory, and network usage

ParametersJSON Schema
NameRequiredDescriptionDefault
container_idYes
start_timeNo
end_timeNo
pageNo
per_pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/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 that the tool returns time-series data with pagination (via 'page' and 'per_page'), which adds some context. However, it lacks critical details like whether this is a read-only operation, potential rate limits, authentication requirements, or error handling for invalid inputs. For a query tool with no annotations, 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 well-structured and appropriately sized. It starts with a clear purpose sentence, followed by organized sections for 'Args' and 'Returns'. Each sentence earns its place by providing essential information without redundancy, making it easy to scan and understand.

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 complexity (5 parameters, time-series querying) and the presence of an output schema (which handles return values), the description is largely complete. It covers all parameters and the general return structure. However, without annotations, it misses behavioral aspects like safety or performance, and it doesn't fully address sibling tool differentiation, leaving minor 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?

Schema description coverage is 0%, so the description must compensate. It effectively documents all 5 parameters: 'container_id' (the ID to query), 'start_time' and 'end_time' (time range in ISO 8601 format), and 'page'/'per_page' (pagination with defaults). This adds substantial meaning beyond the bare schema, though it doesn't explain edge cases like null values for times. With 0% coverage, this is strong but not perfect.

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: 'Query statistics for a specific container.' This specifies the verb ('query') and resource ('statistics for a specific container'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'query_system_stats' or 'list_containers', 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 doesn't mention sibling tools like 'query_system_stats' (for system-level stats) or 'list_containers' (for listing containers), nor does it specify prerequisites or exclusions. Usage is implied only by the purpose statement.

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

query_system_statsB

Query statistics for a specific system.

Args: system_id: The system ID to query statistics for start_time: Start time in ISO 8601 format (e.g., '2024-01-01T00:00:00Z') end_time: End time in ISO 8601 format page: Page number (default: 1) per_page: Number of results per page (default: 100)

Returns: Dictionary containing time-series data for CPU, memory, disk, and network usage

ParametersJSON Schema
NameRequiredDescriptionDefault
system_idYes
start_timeNo
end_timeNo
pageNo
per_pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 of behavioral disclosure. It mentions pagination defaults and return format, which adds some context, but fails to cover critical aspects like authentication requirements, rate limits, error conditions, or whether the query is read-only or has side effects. For a stats query 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.

Conciseness4/5

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

The description is well-structured with a brief purpose statement followed by clear sections for Args and Returns. Each sentence adds value, and there's no redundant information. It could be slightly more front-loaded by emphasizing the tool's scope relative to siblings, but overall it's efficient and organized.

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 (5 parameters, time-series querying) and the presence of an output schema (which handles return values), the description is moderately complete. It covers parameters well but lacks behavioral context (e.g., auth, errors) and usage guidelines. With no annotations and incomplete behavioral disclosure, it meets a baseline 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 description adds substantial meaning beyond the input schema, which has 0% schema description coverage. It explains each parameter's purpose (e.g., 'system_id: The system ID to query statistics for'), specifies formats (ISO 8601 for times), and provides defaults. This compensates well for the schema's lack of descriptions, though it doesn't detail constraints like time range validity.

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 'Query statistics for a specific system,' which is a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'query_container_stats' or 'list_systems,' which likely serve related but distinct purposes. The description is clear but lacks sibling differentiation.

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 'query_container_stats' and 'list_systems,' there's no indication of whether this tool is for system-level stats, container-level stats, or how it differs from general listing tools. The absence of usage context leaves the agent without direction.

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

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: list_alert_history retrieves historical records, list_alerts shows configurations, list_containers and list_systems enumerate monitored entities, and query_container_stats/query_system_stats fetch specific time-series data. The descriptions make it unambiguous which tool to use for each task.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case: list_alert_history, list_alerts, list_containers, list_systems, query_container_stats, and query_system_stats. The naming convention is predictable and readable throughout the set.

Tool Count5/5

With 6 tools, this server is well-scoped for monitoring systems and containers, covering listing entities and querying statistics. Each tool earns its place without being too sparse or bloated, fitting typical MCP server ranges.

Completeness4/5

The toolset provides solid read-only coverage for monitoring: listing alerts, containers, systems, and querying their stats. Minor gaps exist, such as no tools to create/update/delete alerts or containers, but agents can work around this for observation-focused workflows.

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
    A
    maintenance
    Enables interaction with the Mackerel monitoring platform, providing tools to manage alerts, hosts, dashboards, services, monitors, and traces.
    88
    7
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to perform CRUD operations on Pocketbase collections, manage authentication, and query logs via a type-safe API.
    26
    ISC

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/Red5d/beszel-mcp'

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