MCPサーバーを自作してAIアシスタントにバックアップ管理を教える方法

お知らせ

バックアップ管理ツール「Bareos」をAIアシスタントから操作できるようにするMCPサーバーを構築した開発者の体験記です。Model Context Protocol(MCP)の基本的な仕組みから、実際のツール設計、セキュリティ上の判断まで、MCPサーバー開発の実践的なノウハウが詰まった記事を紹介します。

この記事のポイント

  • MCPはJSON-RPCベースのシンプルなプロトコルで、初期化・ツール一覧・ツール実行の3つの操作が基本
  • バックアップインフラ「Bareos」をAIから自然言語で問い合わせ可能にするMCPサーバーを構築
  • セキュリティを考慮し、あえて「読み取り専用」で設計するという実践的な判断

MCPとは何か?

Model Context Protocol(MCP)は、Anthropicが開発した、AIアシスタントに外部ツールやデータへのアクセスを提供するためのプロトコルです。JSON-RPCをベースとしており、標準入出力(stdin/stdout)上で動作します。

MCPの概念はシンプルです。従来であれば、バックアップの状況を確認するためにbconsoleコマンドを手動で実行し、その出力をコピーしてAIチャットに貼り付ける必要がありました。MCPを使えば、「直近10件のバックアップジョブを見せて」と聞くだけで、AIがBareos Directorから直接情報を取得してくれます。

MCPプロトコルの主要な操作はたった3つです:
1. 初期化(Initialize):サーバーが自身の機能を通知
2. ツール一覧(List tools):サーバーが利用可能なツールを記述
3. ツール実行(Call tool):クライアントが引数付きでツールを実行

このシンプルさが、MCPの大きな魅力と言えるでしょう。残りの作業は、実際のツール実装とエラーハンドリングに集中できます。

なぜバックアップ管理ツール「Bareos」を選んだのか

記事の著者は、以前からBareosでバックアップを管理していました。Bareosのコマンドラインツールbconsoleは強力ですが、ジョブの一覧表示、ストレージプールの確認、クライアントステータスの表示など、それぞれ特定のコマンド構文を覚える必要があります。

これを会話形式で問い合わせられるようにする、例えば「昨晩のバックアップが失敗したのはなぜ?」「Fullプールの残り容量はどれくらい?」といった質問ができるようにする、というのはMCPの実用的なユースケースとして最適だと考えたのです。

バックアップ管理は、システム管理者にとって日常的でありながらも、コマンドの詳細を毎回思い出すのが面倒な作業の典型です。AIアシスタントとの連携により、この認知負荷を大幅に軽減できる可能性があります。

「読み取り専用」という設計判断

著者が特に強調しているのは、MCPサーバーを意図的に「読み取り専用(Read-Only)」で設計したという点です。つまり、ジョブの開始、ボリュームの削除、バックアップのプルーニングといった書き込み操作は一切実装していません。クエリ(問い合わせ)のみに限定しています。

これは非常に実践的な判断です。理由は2つあります:

  1. プロトコルの理解を優先:MCPの仕組みやツール設計を理解するフェーズで、本番バックアップを誤って破壊するリスクを排除したかった
  2. セキュリティの原則:特にバックアップインフラのような重要なシステムでは、最小権限の原則に従い、必要最低限の操作のみを許可するのが賢明

この「まず読み取り専用で始める」というアプローチは、MCPサーバーを開発する際の一般的なベストプラクティスとしても参考になります。機能は後から段階的に追加できますが、本番環境の事故を取り消すことはできません。

MCPサーバー開発から学べること

この記事から得られる最も重要な教訓は、MCPサーバーの開発は想像以上にシンプルだということです。JSON-RPCという確立された技術をベースにしており、プロトコル自体の学習コストは低く抑えられています。

重要なのは「何をツールとして公開するか」「どこまでの権限を与えるか」という設計判断です。技術的な実装よりも、こうした設計上の意思決定が、MCPサーバーの品質と安全性を左右します。

また、既存のCLIツール(この場合はbconsole)をMCPで包むことで、AIアシスタントからアクセス可能にするというパターンは、多くのシステム管理ツールに応用できます。監視ツール、ログ分析、設定管理など、コマンドラインで操作するあらゆるツールがMCP化の候補となり得ます。

知っておくと便利なTips

  • MCPサーバーを新規開発する際は、まず読み取り専用のツールから始めると安全に学習・テストできる
  • 既存のCLIツールのラッパーとしてMCPサーバーを構築するパターンは、実装が比較的容易で効果が高い
  • バックアップ状況の確認や障害原因の調査など、「定型的だが構文を覚えるのが面倒な操作」はMCP化の好適なユースケース
  • 完成したMCPサーバーはGitHubで公開すると、コミュニティからのフィードバックが得られやすい

まとめ

この記事は、MCPサーバー開発の入門として非常に実践的な内容です。著者はBareosバックアップインフラという具体的なユースケースを通じて、MCPプロトコルの基本構造、ツール設計の考え方、そしてセキュリティを考慮した段階的な実装アプローチを紹介しています。MCPの3つの基本操作(初期化・ツール一覧・ツール実行)さえ理解すれば、あとは自分のユースケースに合わせたツール実装に集中できるというシンプルさが印象的です。自分の管理ツールをAIアシスタントから操作できるようにしたいと考えている方にとって、良い出発点となるでしょう。


📎 元記事: https://dev.to/edeckers/building-my-first-mcp-server-teaching-ai-assistants-about-backups-21g5

コメント

タイトルとURLをコピーしました