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.
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 - A high-level Python framework for building MCP servers with minimal boilerplate. See Why FastMCP? for details.
Works great with - The blazing-fast Python package manager. See uv Quick Start for a 2-minute setup!
Installation
Using uv (Recommended)
uv is a fast Python package manager that handles virtual environments automatically:
Using pip
Or install directly from the dependencies:
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 authenticationBESZEL_PASSWORD(optional): Admin password for authentication
Usage
With Claude Desktop
Add to your claude_desktop_config.json:
Using uv (recommended):
Or using Python directly:
Standalone
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 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
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