Beszel MCP Server
Provides tools for interacting with Beszel's PocketBase backend to monitor systems and containers, including listing systems, containers, alerts, and alert history, as well as querying system and container statistics.
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., "@Beszel MCP Serverlist all active alerts from the last 24 hours"
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.
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
Using uv (Recommended)
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_mcpUsing pip
pip install -e .Or install directly from the dependencies:
pip install fastmcp httpxConfiguration
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 authenticationBESZEL_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.pyAvailable 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 stringsort(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 stringsort(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 stringsort(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 stringsort(optional): Sort order
query_system_stats
Query statistics for a specific system.
Parameters:
system_id(required): The system IDstart_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 IDstart_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 routingBetter DX - Hot reloading, dev mode, and more
See Why FastMCP? for a detailed comparison.
License
MIT
Available Tools
6 toolslist_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
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No | ||
| filter | No | ||
| sort | 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 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No | ||
| filter | No | ||
| sort | 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 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No | ||
| filter | No | ||
| sort | 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 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No | ||
| filter | No | ||
| sort | 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 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| container_id | Yes | ||
| start_time | No | ||
| end_time | No | ||
| page | No | ||
| per_page | 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 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| system_id | Yes | ||
| start_time | No | ||
| end_time | No | ||
| page | No | ||
| per_page | 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 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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Monitor websites, APIs, and servers: create monitors, triage incidents, and query uptime stats.
Uptime, SSL, DNS and domain monitoring you can talk to from Claude or any MCP client.
Manage Cronitor monitors and send telemetry pings — list, inspect, create, update, delete.
Uptime monitoring with 127 tools across 23 protocols. Tag filtering + Code Mode.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables interaction with the Mackerel monitoring platform, providing tools to manage alerts, hosts, dashboards, services, monitors, and traces.887Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to monitor and manage Linux infrastructure including services, logs, processes, disk, memory, ports, cron, nginx, Docker, and system health checks via the Model Context Protocol.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform CRUD operations on Pocketbase collections, manage authentication, and query logs via a type-safe API.26ISC
- AlicenseAqualityCmaintenanceEnables AI agents to monitor Docker containers, system resources, ports, and logs in real-time.5MIT
Appeared in Searches
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/Red5d/beszel-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server