check_system_environment
Diagnose Apple Silicon compatibility and available memory to assess readiness for local mlx-lm model deployment.
Instructions
現在のシステム環境(Apple Siliconか、空きメモリが何GBあるかなど)を診断します。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/mcp_mlx_launcher/server.py:139-141 (handler)The handler function that executes the 'check_system_environment' tool logic. It calls process_manager.get_system_info() and returns the system info as JSON.
if name == "check_system_environment": info = process_manager.get_system_info() return [types.TextContent(type="text", text=json.dumps(info, indent=2))] - The get_system_info() method that collects system environment data (OS, architecture, memory, Python version) using psutil and platform modules.
def get_system_info(self) -> dict: """現在のシステム状態(メモリ、アーキテクチャなど)を取得する""" mem = psutil.virtual_memory() return { "system": platform.system(), "machine": platform.machine(), "total_memory_gb": round(mem.total / (1024 ** 3), 2), "available_memory_gb": round(mem.available / (1024 ** 3), 2), "python_version": platform.python_version() } - src/mcp_mlx_launcher/server.py:22-28 (schema)The tool definition/schema registered for 'check_system_environment' - empty input schema, described as a system environment diagnostic tool.
name="check_system_environment", description="現在のシステム環境(Apple Siliconか、空きメモリが何GBあるかなど)を診断します。", inputSchema={ "type": "object", "properties": {}, }, ), - src/mcp_mlx_launcher/server.py:17-128 (registration)The @server.list_tools() decorator registers all tools including 'check_system_environment' via the handle_list_tools function.
@server.list_tools() async def handle_list_tools() -> list[types.Tool]: """AIエージェントに提供するツールの一覧とスキーマを定義します""" return [ types.Tool( name="check_system_environment", description="現在のシステム環境(Apple Siliconか、空きメモリが何GBあるかなど)を診断します。", inputSchema={ "type": "object", "properties": {}, }, ), types.Tool( name="check_llm_status", description="指定されたポートでサーバーがリッスンしているか(稼働中か)を確認します。", inputSchema={ "type": "object", "properties": { "port": {"type": "integer", "description": "確認するポート番号"} }, "required": ["port"], }, ), types.Tool( name="list_running_servers", description="現在バックグラウンドで稼働しているすべてのローカルLLMサーバー(ポート番号とモデル名)の一覧を取得します。", inputSchema={ "type": "object", "properties": {}, }, ), types.Tool( name="search_mlx_models", description="Hugging Faceからダウンロード可能なMLXフォーマットのLLMモデルを検索・リストアップします。", inputSchema={ "type": "object", "properties": { "search_query": { "type": "string", "description": "検索キーワード(例: 'llama', 'qwen')。未指定の場合は人気のMLXモデルを返します。" }, "limit": { "type": "integer", "description": "取得する最大件数。デフォルトは10。" } }, }, ), types.Tool( name="download_model", description="Hugging Faceから指定されたMLXモデルを事前にダウンロードし、ローカルにキャッシュします。大きなモデルの起動前の準備に利用します。", inputSchema={ "type": "object", "properties": { "model_name": { "type": "string", "description": "ダウンロードするモデル名 (例: mlx-community/Llama-3-8B-Instruct-4bit)" } }, "required": ["model_name"], }, ), types.Tool( name="launch_llm_server", description="mlx_lm.server をサブプロセスとしてバックグラウンドで起動します。空きメモリが少ない場合は起動が拒否されます。", inputSchema={ "type": "object", "properties": { "model_name": { "type": "string", "description": "起動するモデル名 (例: mlx-community/Llama-3-8B-Instruct-4bit)", }, "port": {"type": "integer", "description": "サーバーを起動するポート番号"}, "memory_requirement_gb": { "type": "number", "description": "起動に必要な空きメモリの目安(GB)。未指定時はデフォルトで 4.0GB。" } }, "required": ["model_name", "port"], }, ), types.Tool( name="restart_llm_server", description="指定されたポートで稼働しているサーバーを一度停止し、再起動します。モデルの切り替えなどにも使用できます。", inputSchema={ "type": "object", "properties": { "port": {"type": "integer", "description": "再起動するサーバーのポート番号"}, "model_name": { "type": "string", "description": "(オプション)新しく起動するモデル名。省略した場合は現在そのポートで稼働しているモデルをそのまま再起動します。" }, "memory_requirement_gb": { "type": "number", "description": "(オプション)起動に必要な空きメモリの目安(GB)。未指定時はデフォルトで 4.0GB。" } }, "required": ["port"], }, ), types.Tool( name="shutdown_llm_server", description="指定されたポートで稼働しているローカル LLM サーバープロセスを安全に終了させます。", inputSchema={ "type": "object", "properties": { "port": {"type": "integer", "description": "終了させるサーバーのポート番号"} }, "required": ["port"], }, ), ]