MCP Server Demo について
MCP Server Demoは、カスタムツールでアプリ更新用シェルスクリプトを実行するFastMCPサーバーです。コマンド実行をMCPクライアントに接続する開発者向けのサンプルです。
主な機能
- 01アプリ更新ツールの提供
- 02subprocessによるコマンド実行
- 03環境変数によるコマンドフォルダー設定
- 04stdio通信
活用シーン
- 01MCPクライアントからupdate-apps.shを実行
- 02stdioのMCPサーバー連携をテスト
MCP 対応
stdio経由でMCP対応クライアントにupgrade_appsツールを提供します。このツールはCOMMAND_FOLDER_PATHで指定したフォルダー内のupdate-apps.shを実行します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバーのデモ
シェルスクリプトを介してアプリケーションをアップグレードするツール機能を提供する、Model Context Protocol(MCP)サーバー実装のシンプルなデモです。
概要
このプロジェクトでは、アプリケーションをアップグレードするカスタムツールを公開する FastMCP サーバーを実装しています。サーバーは stdio トランスポートで通信し、MCP 対応クライアントと統合できます。
機能
- アプリケーションをアップグレードするカスタムツールを備えた MCP サーバー
- subprocess を介したコマンド実行
- 環境変数による設定
- クライアントとサーバー間の通信に stdio トランスポートを使用
前提条件
- Python 3.12 以降
- uv パッケージマネージャー(依存関係の管理用)
- 環境変数の設定(COMMAND_FOLDER_PATH)
インストール
-
リポジトリをクローンします:
git clone <repository-url> cd mcp-server-demo -
uv を使用して依存関係をインストールします:
uv pip install -e . -
プロジェクトのルートに、次の内容を記述した
.envファイルを作成します:COMMAND_FOLDER_PATH=/path/to/your/command/folderコマンドフォルダーに
update-apps.shスクリプトが含まれていることを確認してください。
使用方法
サーバーは Python から直接実行できます:
python main.py
VS Code MCP 拡張機能での使用
用意されている mcp.json 設定を使用して、VS Code MCP 拡張機能を利用できます:
- VS Code に MCP 拡張機能をインストールします
- VS Code でプロジェクトを開きます
- 「Connect to MCP Server」コマンドを使用し、「commander」サーバーを選択します
MCP Inspector での使用
MCP Inspector ツールを使用して MCP サーバーをテストおよび検査するには、次を実行します:
npx @modelcontextprotocol/inspector \
uv \
--directory ${PWD} \
run \
main.py
このコマンドを実行すると、MCP サーバーに接続する Inspector ツールが起動し、テスト目的で利用可能なツールを操作できます。
利用可能なツール
upgrade_apps
このツールは、COMMAND_FOLDER_PATH 環境変数で指定されたフォルダーにある update-apps.sh スクリプトを実行します。
クライアントでの使用例:
result = await client.upgrade_apps()
print(result)
プロジェクト構成
main.py- メインのサーバー実装pyproject.toml- プロジェクトの依存関係とメタデータ.vscode/mcp.json- VS Code MCP の設定uv.lock- uv パッケージマネージャー用の依存関係ロックファイル.env- 環境変数(リポジトリには含まれていません)
依存関係
- mcp[cli] (>=1.6.0)
- python-dotenv(必須ですが、pyproject.toml には明示的に記載されていません)
開発
このプロジェクトでは、従来の pip と比べて依存関係の解決とインストールが高速な、Python パッケージ管理用の uv を使用しています。
依存関係を更新するには:
uv pip install -e .
ライセンス
[ライセンス情報をここに記載してください]
貢献
[貢献ガイドラインをここに記載してください]
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。