berserk-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BZRK_BIN | No | Path/name of the Berserk CLI binary. | bzrk |
| BZRK_PROFILE | No | The bzrk profile to query. | local |
| BZRK_TIMEOUT | No | Per-query timeout, seconds. | 120 |
| BERSERK_TABLE | No | The Berserk table to query. | default |
| BERSERK_MCP_ROLE | No | Active role lane: sre, soc, claude, ops, or all. Controls tool visibility and primer injection. | all |
| BERSERK_MCP_PRIMERS_DIR | No | Directory containing <role>.md primer files. | adjacent primers/ folder |
| BERSERK_MCP_LEARNED_PATH | No | Where saved queries persist. | platform config dir (~/.config/berserk-mcp/learned.json on Linux) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_containersA | List all containers currently sending metrics to Berserk (with sample counts). |
| top_cpuA | Containers ranked by CPU percent, highest first. PER-CONTAINER — use ONLY when the user names a container, says 'docker'/'container', or asks for 'top containers'. For ambiguous whole-machine questions ('the box', 'the system', 'the server', 'the machine', 'what’s hammering/running hot') use host_cpu instead. |
| top_memoryA | Containers ranked by memory usage in MB, highest first. PER-CONTAINER — use ONLY when the user names a container or says 'docker'/'container'. For ambiguous whole-machine memory questions ('the box', 'the system', 'the server') use host_memory instead. |
| errors_by_serviceA | Count of ERROR-level log lines grouped by service. Use for 'how many errors', 'which services have errors', or 'any errors?' — gives counts, not log text. For the actual error messages, use logs_for_service with the service name from this result. |
| list_servicesA | All services/sources sending data, with log vs metric breakdown. Best default for 'what's running?', 'what's reporting?', or 'what services are there?' — shows everything. For just hosts use list_hosts; for just containers use list_containers. |
| list_hostsA | All hosts reporting telemetry, by record count. |
| host_cpuA | Average CPU load (1-minute load average) per host. Use for per-host CPU AND as the DEFAULT for ambiguous whole-machine questions — 'the box', 'the system', 'the server', 'the machine', 'what's hammering/running hot' are about the hosts, not containers (top_cpu is per-CONTAINER). |
| host_memoryA | Used memory in GB per host. Use for per-host memory AND as the DEFAULT for ambiguous whole-machine memory questions ('the box', 'the system', 'the server') — these are about the hosts, not containers (top_memory is per-CONTAINER). |
| container_hostsA | Map each container to the host/VM it runs on. Use to answer 'which host runs container X' or to JOIN per-container metrics (top_cpu/top_memory) with per-host metrics (host_cpu/host_memory) — don't infer the host from the container's name. |
| logs_for_serviceA | Recent log lines for a specific service e.g. 'nginx', 'postgres'. Use for 'show me the errors/logs from X' — returns actual log text. For error COUNTS across all services, use errors_by_service first, then drill into a specific service here. |
| schemaA | Show Berserk tables + column schema (live introspection). |
| list_metricsA | List every metric name currently being ingested, with sample counts + last-seen. Use to DISCOVER what telemetry exists before writing a |
| bzrk_query_perfA | Berserk query engine latency percentiles: p50, p95, p99 in µs. Use for 'how fast is Berserk?', 'query latency', or 'p50/p95/p99 execution time'. Uses otel_histogram_percentile($raw, N) — the native Berserk histogram aggregate. |
| discover_schemaA | Discover the shape of a data source: returns (1) every key present under |
| searchA | Run an arbitrary Kusto/KQL query against the Berserk table. Use when the other tools do not fit; once it works, persist it with save_query. |
| sre_error_rateA | SRE view of ERROR log events grouped by service and minute. Use for 'is the error rate climbing', 'which service is burning error budget', or 'what should we rollback first'. |
| sre_host_headroomA | SRE view of host CPU load and memory used side-by-side. Use for 'which host is hottest', 'where is headroom lowest', or 'which VM is nearest saturation'. |
| sre_ingest_healthA | SRE view of Berserk ingest lag and dropped-data signals per host. Use for 'is ingest healthy', 'are we dropping telemetry', or 'is observability lagging'. |
| sre_service_healthA | SRE health rollup for one service: total events, error count, logs, metrics, last seen. Use for 'is service X healthy' or 'rollback signal for X'. |
| sre_top_error_messagesA | SRE summary of the most repeated error messages by service. Use for 'what error is dominating', 'top error signatures', or 'which message to investigate first'. |
| soc_high_severity_logsA | SOC view of recent CRITICAL/FATAL/ERROR logs with service and message text. Use for 'show critical events', 'recent incident logs', or 'what looks severe right now'. |
| soc_log_spikeA | SOC view of services with the largest log volume per minute. Use for 'anything anomalous', 'which source is spiking', or 'suspicious burst of logs'. |
| soc_new_servicesA | SOC view of services ordered by first-seen time. Use for 'what is new', 'anything first-seen', or 'did a new source appear'. |
| soc_repeated_errorsA | SOC view of error messages that appear more than 5 times — potential probes, loops, or persistent incidents. Use for 'what keeps repeating' or 'show recurring failures'. |
| soc_timelineA | SOC incident timeline for one service: timestamps, severity, metric names, and message snippets. Use for 'timeline for service X' or 'reconstruct incident for X'. |
| claude_recentA | Recent Claude Code activity (timestamp, type, role, model, tool names, error flag), newest first. Default window 1h. |
| claude_sessionsA | Claude Code sessions rollup: events, first/last seen, assistant turns, tool turns, and error count per session. Default 6h. |
| claude_toolsA | Claude Code tool-use histogram — how many times each tool (Bash, Edit, Read, ...) was used. Default 6h. |
| claude_errorsA | Claude Code tool errors — failed tool results (is_error=true) with a body snippet. Default 6h. |
| claude_searchA | Full-text search across Claude Code message and tool bodies for a substring. Default 6h. |
| list_savedA | List previously-saved custom queries (name + description). For a non-standard question, CHECK HERE FIRST before writing new KQL. |
| run_savedA | Run a previously-saved query by name (see list_saved). Deterministic - no KQL authoring. |
| save_queryA | Persist a WORKING KQL query as a reusable named query so it never has to be figured out again. Call this after you answer a non-standard question with a custom search query. The query is run once to verify it works; if it errors it is NOT saved. |
| request_discoveryA | Queue a newly-added service or metric for author-lane integration. Validates the source is currently visible in Berserk, then records a job for the discovery worker to drain. Use when a user says 'I added / connected / started shipping SOURCE'. |
| discovery_statusA | List pending and completed discovery jobs for new services or metrics. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/ssimonsen0202/berserk_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server