mcpField
B
Bareos Mcp Server

Bareos Mcp Server

ローカル
github.com/edeckersファイル・ストレージ228 週間前に更新

Bareos Mcp Server について

Bareos Mcp Server は、バックアップ基盤を監視する運用担当者向けに、Bareos のデータを読み取り専用で提供します。bconsole 経由でジョブ、クライアント、ファイルセット、プール、ボリュームを照会し、ジョブ履歴を絞り込めます。

主な機能

  1. 01バックアップジョブの絞り込みと一覧
  2. 02ジョブ状態とログの表示
  3. 03バックアップ済みファイルの一覧
  4. 04クライアントとファイルセットの確認
  5. 05プール容量とボリュームの確認

活用シーン

  1. 01最近のジョブや失敗したジョブの確認
  2. 02ジョブの状態とログの調査
  3. 03空き容量やプルーニング対象ボリュームの確認

MCP 対応

Bareos の監視・照会操作を読み取り専用の MCP ツールとして公開します。bconsole を介して Bareos Director と通信し、ローカル接続または設定済みのリモートラッパーを利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Bareos MCP サーバー

Release License

Bareos backup system 向けの Model Context Protocol(MCP)サーバーです。バックアップインフラストラクチャの監視と照会を行う、読み取り専用の操作を提供します。

クイックスタート

設定が完了したら、バックアップについて AI アシスタントに自然な言葉で質問できます。

"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"

機能

読み取り専用の操作
  • ジョブ:最近のジョブの一覧表示、詳細なステータスの取得、ジョブログの表示
  • クライアント:すべての Bareos ファイルデーモンクライアントの一覧表示
  • ファイルセット:設定済みのバックアップファイルセットの一覧表示
  • ストレージ:容量情報付きでプールとボリュームを一覧表示

本番環境で安全に利用できるよう、すべての操作は設計上、読み取り専用です。

前提条件

  • Rust 1.70+ - サーバーのビルドに必要です
  • Bareos Director - bconsole にアクセスできること
  • bconsole - Bareos Director のコマンドラインインターフェイス

インストール

1. クローンとビルド
git clone https://github.com/edeckers/bareos-mcp-server.git
cd bareos-mcp-server
cargo build --release

バイナリは target/release/bareos-mcp-server に作成されます。

2. bconsole アクセスの設定

MCP サーバーは Bareos Director とやり取りするために bconsole を呼び出します。デフォルトでは PATH 内の bconsole を探しますが、BAREOS_BCONSOLE_PATH 環境変数を設定すると、バイナリまたはラッパースクリプトの絶対パスを指定できます。

export BAREOS_BCONSOLE_PATH=/usr/sbin/bconsole

MCP クライアントの設定経由で渡すこともできます(手順 3 を参照)。

いくつかの方法があります。

オプション A:ローカルの bconsole(直接アクセス)

bconsole がローカルにインストールされていて、アクセスできる場合:

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

追加の設定は不要です。サーバーは bconsole を直接使用します。

オプション B:SSH 経由のリモート Bareos

Bareos Director がリモートホスト上にある場合は、ラッパースクリプトを作成します。

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

# Edit bconsole and set your hostname
vim bconsole

ラッパーの内容の例:

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

ラッパーのディレクトリを PATH に追加するか、MCP 設定で指定してください。

オプション C:Docker/コンテナーのセットアップ

Bareos Director にネットワーク経由でアクセスできるコンテナー内で bconsole を実行します。

3. MCP クライアントの設定
Claude Code(CLI)の場合

プロジェクトディレクトリに .mcp.json を作成します。

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

設定例:

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

Claude Desktop の設定ファイルに追加します。

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"
      }
    }
  }
}

使用方法

Claude Code での使用
cd your-project
claude

クエリの例:

  • 「直近 10 件のバックアップジョブを表示してください」
  • 「ジョブ 12345 のステータスはどうなっていますか?」
  • 「すべての Bareos クライアントを一覧表示してください」
  • 「Full プールにはどれくらいのストレージがありますか?」
  • 「プルーニング可能なボリュームを表示してください」
利用可能なツール
ツール説明パラメーター
list_jobsフィルターを指定してバックアップジョブを一覧表示job、client、jobstatus、jobtype、joblevel、volume、pool(すべて任意のフィルター);days、hours(時間フィルター。hours が優先);last、count(出力モード。count が優先)
get_job_statusジョブの詳細なステータスを取得job_id(必須)
get_job_logジョブのログ全体を表示job_id(必須)
list_filesジョブでバックアップされたファイルを一覧表示job_id(必須)
list_clientsすべてのファイルデーモンクライアントを一覧表示なし
list_filesetsバックアップファイルセットを一覧表示なし
list_poolsストレージプールを一覧表示なし
list_volumesボリューム/メディアを一覧表示pool(任意のフィルター)
list_jobs のパラメーター詳細

list_jobs ツールでは、複数のフィルターとオプションを組み合わせて使用できます。

フィルター(すべて任意で、組み合わせ可能):

  • job - ジョブ名でフィルター
  • client - クライアント名でフィルター
  • jobstatus - ステータスでフィルター(例:T=終了、f=失敗、R=実行中)
  • jobtype - 種類でフィルター(例:B=バックアップ、R=リストア、V=検証、D=管理、C=コピー、M=移行)
  • joblevel - レベルでフィルター(例:F=フル、I=増分、D=差分)
  • volume - ボリューム名でフィルター
  • pool - プール名でフィルター

ジョブの種類について:

  • ユーザーが「バックアップ」や「バックアップのパフォーマンス」について尋ねた場合、通常はバックアップジョブのみ(jobtype: "B")を指します。明示的に要求されない限り、検証、リストア、その他のジョブの種類は含めないでください。
  • 検証ジョブ(jobtype: "V")はバックアップの整合性を検証しますが、それ自体はバックアップではありません。
  • 曖昧さがある場合は、jobtype フィルターを使って特定の操作に絞り込みます。

時間フィルター(相互に排他的):

  • days - 過去 N 日間のジョブを表示
  • hours - 過去 N 時間のジョブを表示
  • 優先順位:両方が指定された場合、hours が優先されます(Bareos の動作に準拠)。

出力モード(相互に排他的):

  • last - 各ジョブの最新の実行のみを表示します(警告:期間内にジョブが複数回実行されていても、最後の実行のみが返されます)。
  • count - 詳細の代わりに、条件に一致するジョブ数を表示
  • 優先順位:両方が指定された場合、count が優先されます(Bareos の動作に準拠)。

例:

  • {"client": "web-server", "days": 7} - 過去 7 日間の web-server のすべてのジョブ
  • {"jobstatus": "f", "hours": 24, "count": true} - 過去 24 時間の失敗したジョブの数
  • {"pool": "Full", "last": true} - Full プール内の各ジョブの種類の最新の実行(ジョブごとに実行は 1 回のみ)
直接テスト

MCP クライアントを使わずにサーバーをテストします。

# 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

トラブルシューティング

bconsole が見つからない
# Check if bconsole is in PATH
which bconsole

# Or create wrapper script (see Setup section)
アクセスが拒否されました
# Check bconsole config permissions
ls -l /etc/bareos/bconsole.conf

# May need to add user to bareos group
sudo usermod -a -G bareos $USER
接続が拒否されました
# Test bconsole directly
echo "version" | bconsole

# Check Director is running
systemctl status bareos-dir
SSH の問題(リモート設定)
# Test SSH connection
ssh your-host "bconsole" << EOF
version
quit
EOF

# Check SSH key authentication
ssh -v your-host

ライセンス

MPL-2.0

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。