Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Bareos Minimalistic

БесплатноНе проверен

Minimalistic MCP server for Bareos — a single-file Python script talking directly to the Director's native JSON API (no bconsole subprocess, no compiled binary)

GitHubEmbed

Описание

Minimalistic MCP server for Bareos — a single-file Python script talking directly to the Director's native JSON API (no bconsole subprocess, no compiled binary).

README

License: MIT Python 3.11+

A minimalistic Model Context Protocol (MCP) server for Bareos — the whole thing is one Python file (server.py), no build step, no compiled binary, no bconsole subprocess.

It talks to the Bareos Director's native Console protocol directly, in JSON API mode (.api json), through the official python-bareos client library — the same protocol bconsole and bareos-webui use, but as a real structured API rather than parsing interactive terminal text.

Why this exists: the only other Bareos MCP server at the time of writing, edeckers/bareos-mcp-server, is written in Rust (a compiled binary) and works by shelling out to bconsole and scraping its output. This project takes the opposite approach on both counts.

Requirements

  • uv — resolves server.py's two dependencies (mcp, python-bareos) into an ephemeral venv on first run. Nothing to install ahead of time beyond uv itself.
  • A Bareos Director you can reach over the network, and a Console credential for it (see below).

Director-side setup

Add a named Console and a Profile to your Director's configuration (bareos-dir.d/console/*.conf, bareos-dir.d/profile/*.conf). A named console (rather than the default one) means exhausting MaximumConsoleConnections fails loudly instead of silently sharing the anonymous connection pool.

Profile {
  Name = "mcp"
  # Excludes director-config-editing and catalog-admin commands; allows job control and restore.
  CommandACL = !.bvfs_clear_cache, !.exit, !.sql, !configure, !create, !delete, !purge, !prune, !sqlquery, !umount, !unmount, *all*
  Job ACL = *all*
  Schedule ACL = *all*
  Catalog ACL = *all*
  Pool ACL = *all*
  Storage ACL = *all*
  Client ACL = *all*
  FileSet ACL = *all*
  Where ACL = *all*
  Plugin Options ACL = *all*
}

Console {
  Name = mcp
  Password = "<generate a strong password>"
  Profile = "mcp"
}

Narrow the CommandACL/*ACL lines further if you want a stricter deployment (e.g. drop run/cancel/restore-related commands for a read-only-only server). TLS is left at whatever your Director's default is — python-bareos supports TLS-PSK natively, so there's no reason to disable it for this Console the way some PHP-based tools have to.

Configuration

Everything is an environment variable. There are no defaults — this is deliberate, so the script never silently points at the wrong Director:

Variable Required Description
BAREOS_DIRECTOR_HOST yes Director address
BAREOS_DIRECTOR_PORT yes Director Console port (Bareos' own default is 9101)
BAREOS_CONSOLE_NAME yes The named Console configured above
BAREOS_CONSOLE_PASSWORD yes That Console's password

The script exits immediately with a clear message naming the missing variable if any of these aren't set — it never falls back to guessing.

Running it

BAREOS_DIRECTOR_HOST=bareos.example.com \
BAREOS_DIRECTOR_PORT=9101 \
BAREOS_CONSOLE_NAME=mcp \
BAREOS_CONSOLE_PASSWORD=<password> \
./server.py

Connecting an MCP client

Claude Code:

claude mcp add bareos \
  -e BAREOS_DIRECTOR_HOST=bareos.example.com \
  -e BAREOS_DIRECTOR_PORT=9101 \
  -e BAREOS_CONSOLE_NAME=mcp \
  -e BAREOS_CONSOLE_PASSWORD=<password> \
  -- /path/to/server.py

Any command-style JSON client config (Claude Desktop, etc.):

{
  "mcpServers": {
    "bareos": {
      "command": "/path/to/server.py",
      "env": {
        "BAREOS_DIRECTOR_HOST": "bareos.example.com",
        "BAREOS_DIRECTOR_PORT": "9101",
        "BAREOS_CONSOLE_NAME": "mcp",
        "BAREOS_CONSOLE_PASSWORD": "<password>"
      }
    }
  }
}

Tools

Read-only (safe to call freely):

Tool Description
status Director / storage / schedule status
list_jobs Recent job runs, optionally filtered by client/status
job_details Full detail on one job
list_clients, list_pools, list_storages, list_filesets, list_schedules Configured Director resources
list_volumes, volume_details Volume inventory and detail
messages Recent Director messages
bvfs_get_jobids, bvfs_update, bvfs_lsdirs, bvfs_lsfiles, bvfs_restore The bvfs restore-selection building blocks (see below)

Mutating (each carries an MCP destructiveHint annotation, and requires an explicit second call to actually execute — see below):

Tool Description
run_job Trigger a job
cancel_job Cancel a running job
restore_job Launch a restore for a selection built with bvfs_restore

The confirm-then-execute pattern

run_job, cancel_job, and restore_job all take a confirm: bool = False parameter. Called without it, they touch nothing — they just echo back the exact Bareos command that would run. Call again with confirm=True to actually execute it. This gives a human (or an agent talking to one) a chance to review the exact command before anything mutates, without relying solely on the MCP client's own confirmation UI.

Restore

Bareos' restore selection (.bvfs_* commands) is inherently a multi-step, stateful flow on the Director side: resolve job ids → populate the browse cache → browse directories/files → build a selection → launch the restore. Rather than one tool that guesses the whole chain, this server exposes each step as its own read-only tool (bvfs_get_jobidsbvfs_updatebvfs_lsdirs/bvfs_lsfilesbvfs_restore), so a caller can inspect each response before building the final restore_job call. For selective/point-in-time restores beyond a straightforward whole-tree restore of one client's latest backup, bconsole's interactive restore command remains the more capable tool.

Design notes

  • One file, PEP 723 inline dependencies. No pyproject.toml, no packaging step — uv run --script (or the shebang) resolves dependencies into an ephemeral venv on demand. Clone it, run it.
  • No credential store integration. Earlier iterations of this server (internal to Ivinco) fetched its Console password from a company-specific secret store. That's out of scope for a general-purpose tool — bring your own secret via BAREOS_CONSOLE_PASSWORD, from whatever your environment already uses (a .env file, your shell's secret manager, a container's injected env, etc.).
  • No implicit host. Every deployment of this server should have to say explicitly which Director it's talking to.

License

MIT © Ivinco

from github.com/Ivinco/bareos-minimalistic-mcp-server

Установка Bareos Minimalistic

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/Ivinco/bareos-minimalistic-mcp-server

FAQ

Bareos Minimalistic MCP бесплатный?

Да, Bareos Minimalistic MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Bareos Minimalistic?

Нет, Bareos Minimalistic работает без API-ключей и переменных окружения.

Bareos Minimalistic — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Bareos Minimalistic в Claude Desktop, Claude Code или Cursor?

Открой Bareos Minimalistic на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Fetch

Web content fetching and conversion for efficient LLM usage.

автор: Community

Roblox Studio

Enables AI coding tools to control Roblox Studio for workspace exploration, instance manipulation, and script management. It provides tools for playtesting, sce

paralovавтор: paralov

AWS KB Retrieval

Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.

modelcontextprotocolавтор: modelcontextprotocol

Spring AI MCP Server

Provides auto-configuration for setting up an MCP server in Spring Boot applications.

автор: Community

llm-analysis-assistant

A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also

xuzexin-hzавтор: xuzexin-hz

MCP-Agent

A simple, composable framework to build agents using Model Context Protocol by [LastMile AI](https://www.lastmileai.dev)

lastmile-aiавтор: lastmile-ai

Spring AI MCP Client

Provides auto-configuration for MCP client functionality in Spring Boot applications.

автор: Community

mcp.natoma.ai

A Hosted MCP Platform to discover, install, manage and deploy MCP servers by [Natoma Labs](https://www.natoma.ai)

автор: Community

MCPHub

Website to list high quality MCP servers and reviews by real users. Also provide online chatbot for popular LLM models with MCP server support.

автор: Community

MCP Servers Rating and User Reviews

Website to rate MCP servers, write authentic user reviews, and [search engine for agent & mcp](http://www.deepnlp.org/search/agent)

автор: Community

Compare Bareos Minimalistic with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории ai