Holster について
Holster は、Claude Desktop の設定内にある MCP サーバーを管理する Python ツールで、Claude から設定を操作したいユーザー向けです。エントリーの確認・作成・有効化・無効化・削除を行い、JSON 設定を処理します。
主な機能
- 01Claude の設定内の MCP サーバー管理
- 02サーバー設定の作成と削除
- 03有効・無効サーバーの一覧表示
- 04サーバーの有効状態の切り替え
- 05JSON 設定の解析と書き込み
活用シーン
- 01Claude Desktop からサーバー設定を追加
- 02一時的に不要なサーバーの無効化
- 03有効・無効サーバーの確認
- 04不要になった設定エントリーの削除
MCP 対応
Holster は MCP サーバーとして動作し、Claude の設定にある MCP サーバーエントリーを管理するツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Holster
Claude デスクトップから Claude の設定ファイル内の MCP サーバーを直接管理する Python ベースのツールです。テキストエディターで手動編集する必要がなくなります。
動機
必要のないときにツールを使わないよう Claude に指示しても、Claude は利用可能なツールを呼び出すことに積極的になりすぎることがよくあります。しかし、MCP サーバーを手動で追加したり削除したりするのは誰がやるのでしょうか?
テキストエディターで MCP サーバーを管理する作業は LLM に適していますが、現在 Claude が提供するのは設定ファイルへのポインターだけです。Holster は、Claude デスクトップ内からサーバーをシームレスに管理できるインターフェースを提供し、この体験の向上を目指しています。
機能
- 🔄 Claude デスクトップ内でシームレスにサーバーを管理
- 📝 適切な解析とエンコードによる JSON 設定の処理
- 📋 アクティブなサーバーと非アクティブなサーバーを個別に追跡
- 🛠️ シンプルなコマンドラインインターフェース
- ✅ 包括的なテストカバレッジ
インストール
- リポジトリをクローンします。
git clone https://github.com/yourusername/holster.git
cd holster
- 仮想環境を作成して有効化します。
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uvを使って依存関係をインストールします。
uv pip install -r requirements.txt
設定
デフォルトの設定ファイルの場所は次のとおりです。
~/Library/Application Support/Claude/claude_desktop_config.json
増え続ける MCP サーバーのリストに、これを追加します。
"holster": {
"command": "uv",
"args": [
"--directory",
"<THIS_DIRECTORY>",
"run",
"holster.py"
]
}
設定を再読み込みするため、Claude を再起動します。
使用方法
Holster の概要
まず、Holster の仕組みについて詳しく確認できます。
# Get detailed explanation of Holster's functionality
explanation = await explain_holster()
print(explanation["overview"])
print(explanation["tools"])
新しいサーバーの作成
# Create a new server configuration
server_config = await create_server(
name="my_server",
command="uv",
directory="/path/to/server",
script="server.py"
)
サーバーのステータスの確認
# Get lists of active and inactive servers
servers = await list_servers()
print("Active servers:", list(servers["active"].keys()))
print("Inactive servers:", list(servers["inactive"].keys()))
サーバーのステータスの更新
# Deactivate servers
result = await update_server_status(
server_names=["server1", "server2"],
active=False
)
print(f"Deactivated {len(result['updated'])} servers")
# Activate servers
result = await update_server_status(
server_names=["server1", "server2"],
active=True
)
print(f"Activated {len(result['updated'])} servers")
サーバーの削除
# Delete servers from both active and inactive lists
result = await delete_servers(["server1", "server2"])
print(f"Deleted {len(result['deleted'])} servers")
print(f"Remaining active: {result['remaining_active']}")
print(f"Remaining inactive: {result['remaining_inactive']}")
ヘルスチェック
# Check if Holster server is running
response = await ping()
print(response) # Should print "Pong!"
開発
テストの実行
python -m pytest test_holster.py -v
対象範囲
対象範囲内
- Claude の設定ファイル内でのサーバー設定の管理
- アクティブなサーバーと非アクティブなサーバーの追跡
- サーバー設定に対する基本的な CRUD 操作
対象範囲外
- サーバーの自動検出とダウンロード
- Web ベースのサーバー検索
- ワークスペースの管理
- サーバーのバージョン管理
ライセンス
このプロジェクトは MIT ライセンスのもとで公開されています。詳細については、LICENSE ファイルをご覧ください。
作成者
June Kim & LLM ツール
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。