1. Conduid
  2. Analytics
  3. Bareos MCP Server
MCP server · Analytics

Bareos MCP Server

MCP server for Bareos backup system. Query your backups via your favorite AI assistant

34Low

Scored 6 months ago · breakdown

About Bareos MCP Server

Bareos MCP Server is an MCP server in the Analytics category: mCP server for Bareos backup system. Query your backups via your favorite AI assistant.

Install

From source
git clone https://github.com/edeckers/bareos-mcp-server

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (8)

get_job_logView complete job log

Parameters not published.

get_job_statusGet detailed status of a job

Parameters not published.

list_clientsList all file daemon clients

Parameters not published.

list_filesList files backed up in a job

Parameters not published.

list_filesetsList backup filesets

Parameters not published.

list_jobsList backup jobs with filters

Parameters not published.

list_poolsList storage pools

Parameters not published.

list_volumesList volumes/media

Parameters not published.

Ask AI

✦

Ask AI about Bareos MCP Server

Powered by Claude · Grounded in docs

I know everything about Bareos MCP Server. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

Bareos MCP Server

Release License

A Model Context Protocol (MCP) server for Bareos backup system, providing read-only operations for monitoring and querying backup infrastructure.

Quick Start

Once configured, ask your AI assistant naturally about your backups:

"Show me the last 10 backup jobs"
"Are there any failed backups today?"
"What's the status of job 12345?"
"How much storage is left in the Full pool?"
"List all volumes ready for pruning"

Features

Read-Only Operations

  • Jobs: List recent jobs, get detailed status, view job logs
  • Clients: List all Bareos file daemon clients
  • Filesets: List configured backup filesets
  • Storage: List pools and volumes with capacity info

All operations are read-only by design for safety in production environments.

Prerequisites

  • Rust 1.70+ - For building the server
  • Bareos Director - With bconsole access
  • bconsole - Command-line interface to Bareos Director

Installation

1. Clone and Build

git clone https://github.com/edeckers/bareos-mcp-server.git
cd bareos-mcp-server
cargo build --release

The binary will be at: target/release/bareos-mcp-server

2. Configure bconsole Access

The MCP server calls bconsole to interact with the Bareos Director. By default it looks for bconsole in your PATH, but you can set the BAREOS_BCONSOLE_PATH environment variable to specify an absolute path to the binary or wrapper script:

export BAREOS_BCONSOLE_PATH=/usr/sbin/bconsole

You can also pass this through your MCP client config (see step 3).

You have several options:

Option A: Local bconsole (Direct Access)

If bconsole is installed locally and you have access:

# Test that bconsole works
bconsole -c /etc/bareos/bconsole.conf

No additional setup needed - the server will use bconsole directly.

Option B: Remote Bareos via SSH

If your Bareos Director is on a remote host, create a wrapper script:

# Copy the example
cp bconsole.example.sh bconsole
chmod +x bconsole

# Edit bconsole and set your hostname
vim bconsole

Example wrapper content:

#!/usr/bin/env bash
ssh your-bareos-host "sudo bconsole $*"

Add the wrapper directory to your PATH or reference it in the MCP config.

Option C: Docker/Container Setup

Run bconsole in a container that has network access to your Bareos Director.

3. Configure MCP Client

For Claude Code (CLI)

Create .mcp.json in your project directory:

cp .mcp.json.example .mcp.json
# Edit with your paths
vim .mcp.json

Example config:

{
  "bareos": {
    "command": "/absolute/path/to/bareos-mcp-server/target/release/bareos-mcp-server",
    "args": [],
    "env": {
      "BAREOS_BCONSOLE_PATH": "/absolute/path/to/bconsole"
    }
  }
}

For Claude Desktop

Add to your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "bareos": {
      "command": "/absolute/path/to/bareos-mcp-server/target/release/bareos-mcp-server",
      "args": [],
      "env": {
        "BAREOS_BCONSOLE_PATH": "/absolute/path/to/bconsole"
      }
    }
  }
}

Usage

With Claude Code

cd your-project
claude

Example queries:

  • "Show me the last 10 backup jobs"
  • "What's the status of job 12345?"
  • "List all Bareos clients"
  • "How much storage is in the Full pool?"
  • "Show me volumes ready for pruning"

Available Tools

Tool Description Parameters
list_jobs List backup jobs with filters job, client, jobstatus, jobtype, joblevel, volume, pool (all optional filters); days, hours (time filters, hours wins); last, count (output modes, count wins)
get_job_status Get detailed status of a job job_id (required)
get_job_log View complete job log job_id (required)
list_files List files backed up in a job job_id (required)
list_clients List all file daemon clients None
list_filesets List backup filesets None
list_pools List storage pools None
list_volumes List volumes/media pool (optional filter)

list_jobs Parameters Detail

The list_jobs tool supports multiple filters and options that can be combined:

Filters (all optional, can be combined):

  • job - Filter by job name
  • client - Filter by client name
  • jobstatus - Filter by status (e.g., T=terminated, f=failed, R=running)
  • jobtype - Filter by type (e.g., B=backup, R=restore, V=verify, D=admin, C=copy, M=migration)
  • joblevel - Filter by level (e.g., F=full, I=incremental, D=differential)
  • volume - Filter by volume name
  • pool - Filter by pool name

Understanding Job Types:

  • When users ask about "backups" or "backup performance", they typically mean backup jobs only (jobtype: "B"). Do not include verification, restore, or other job types unless explicitly requested.
  • Verification jobs (jobtype: "V") validate backup integrity but are not backups themselves
  • Use jobtype filter to focus on specific operations when ambiguity exists

Time Filters (mutually exclusive):

  • days - Show jobs from last N days
  • hours - Show jobs from last N hours
  • Precedence: If both provided, hours takes precedence (matches Bareos behavior)

Output Modes (mutually exclusive):

  • last - Show only the most recent run of each job (WARNING: if jobs ran multiple times in the time range, only the LAST run will be returned)
  • count - Show count of matching jobs instead of details
  • Precedence: If both provided, count takes precedence (matches Bareos behavior)

Examples:

  • {"client": "web-server", "days": 7} - All jobs for web-server in last 7 days
  • {"jobstatus": "f", "hours": 24, "count": true} - Count of failed jobs in last 24 hours
  • {"pool": "Full", "last": true} - Most recent run of each job type in the Full pool (only one run per job)

Direct Testing

Test the server without an MCP client:

# Initialize
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | ./target/release/bareos-mcp-server

# List tools
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | ./target/release/bareos-mcp-server

# Call a tool - list jobs from last 7 days
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_jobs","arguments":{"days":7}}}' | ./target/release/bareos-mcp-server

# List the most recent jobs for a specific client
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_jobs","arguments":{"client":"backup-client-1","last":true}}}' | ./target/release/bareos-mcp-server

# Count failed jobs in the last 24 hours
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_jobs","arguments":{"hours":24,"jobstatus":"f","count":true}}}' | ./target/release/bareos-mcp-server

Troubleshooting

bconsole not found

# Check if bconsole is in PATH
which bconsole

# Or create wrapper script (see Setup section)

Permission denied

# Check bconsole config permissions
ls -l /etc/bareos/bconsole.conf

# May need to add user to bareos group
sudo usermod -a -G bareos $USER

Connection refused

# Test bconsole directly
echo "version" | bconsole

# Check Director is running
systemctl status bareos-dir

SSH issues (remote setup)

# Test SSH connection
ssh your-host "bconsole" << EOF
version
quit
EOF

# Check SSH key authentication
ssh -v your-host

License

MPL-2.0

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About Bareos MCP Server

How do I install Bareos MCP Server?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Bareos MCP Server safe to use with an AI agent?

Its trust score is 34 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Bareos MCP Server still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.