Mcp Server Commands について
Mcp Server Commands は、ホストマシン上でコマンドを実行し、標準出力と標準エラーを返す MCP サーバーです。モデルにコマンドライン操作を任せたいユーザー向けで、STDIO によりローカルで動作します。
主な機能
- 01runProcess ツールによるコマンド実行
- 02command_line 文字列と argv 配列の二つの呼び出し方法
- 03STDOUT と STDERR をテキストで返却
- 04stdin によるシェルやスクリプトへの入力
- 05mcpo を使った HTTP 経由のアクセス
活用シーン
- 01hostname や ls などでホスト情報を取得するモデル操作
- 02stdin 経由で bash や python にスクリプトを渡す実行
- 03ローカルモデルからコマンドラインでファイル操作を行う用途
MCP 対応
本プロジェクトは MCP サーバーであり、MCP クライアントに run_process ツールを公開します。ホスト上でコマンドを実行し、その出力を返します。STDIO トランスポートを使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
runProcess ツール
runProcess ツールは、ホストマシン上でプロセスを実行します。呼び出し方法は、互いに排他的な次の 2 通りです。
command_line(文字列) — システムのデフォルトシェルを介して実行されます(bash/fish/pwshなどに入力する場合と同じです)。パイプ、リダイレクト、変数展開などのシェル機能をすべて利用できます。argv(文字列の配列) — 実行可能ファイルを直接呼び出します。argv[0]が実行可能ファイルで、それ以降が引数です。シェルによる解釈は行われません。
両方を同時に渡すことはできません。どちらのパラメーターを渡すかによって、シェルを使用するかどうかが判断されます。
システム上で特定のシェルをモデルに使わせたい場合は、システムプロンプトに記載するとよいでしょう。ツールの指示に記載してもよいかもしれませんが、モデルはシステムプロンプト内の例のほうに注意を払う傾向があります。
問題が発生したらお知らせください!
ツール
ツールは、LLM がリクエストするためのものです。Claude Sonnet 3.5 は run_process を賢く使用します。また、初期テストでは、Groq Desktop with MCP と llama4 モデルでも有望な結果が得られています。
今のところ、すべてを制御するコマンドは 1 つだけです!
run_process-hostname、ls -al、echo "hello world"などのコマンドを実行しますSTDOUTとSTDERRをテキストとして返しますstdinパラメーターを指定すると、LLM は次のことができますfish、bash、zsh、pythonなどのコマンドに、STDIN経由でスクリプトを渡すstdinのテキストからcat >> foo/bar.txtを使ってファイルを作成する
警告
このサーバーに実行させる内容には注意してください! Claude Desktop アプリでは、各コマンドを確認できるように
Allow for This ChatではなくApprove Onceを使用し、コマンドを信頼できない場合はDenyを使用してください。 権限は、サーバーを実行するユーザーによって決まります。sudoでは絶対に実行しないでください。
動画による解説
プロンプト
プロンプトは、チャット履歴に含めるためのものです。たとえば、Zed のスラッシュコマンド(AI Chat パネル内)から使用できます。
run_process- コマンドの出力を含むプロンプトメッセージを生成します
- 参考までに、これは主に学習のための取り組みでした……これはユーザーがリクエストするツール呼び出しだと考えています。つまり、コマンドを実行して出力をモデルに渡すためのテンプレートということです!
開発
依存関係をインストールします:
npm install
サーバーをビルドします:
npm run build
自動再ビルドを有効にして開発する場合:
npm run watch
インストール
Claude Desktop で使用するには、サーバー設定を追加します:
MacOS の場合: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows の場合: %APPDATA%/Claude/claude_desktop_config.json
Groq Desktop(ベータ版、macOS)では ~/Library/Application Support/groq-desktop-app/settings.json を使用します。
公開済み npm パッケージを使用する
mcp-server-commands として npm に公開されています。公開にはこの ワークフロー を使用しています。
{
"mcpServers": {
"mcp-server-commands": {
"command": "npx",
"args": ["mcp-server-commands"]
}
}
}
ローカルビルドを使用する(リポジトリのチェックアウト)
npm run build を実行してください。
{
"mcpServers": {
"mcp-server-commands": {
// works b/c of shebang in index.js
"command": "/path/to/mcp-server-commands/build/index.js"
}
}
}
ローカルモデル
- ほとんどのモデルは、自分の代わりにコマンドを実行できるとは考えないようにトレーニングされています。
- ためらわずにツールを使うこともありますが、使わない場合は、こちらから促す必要があります。
- ユーザーのリクエストに従うよう指示するには、システムプロンプトまたはプロンプトテンプレートを使用します。二重に確認せず
run_processsを使用するよう指示することも含みます。
- Ollama は、モデルをローカルで実行するのに適した方法です(Open-WebUI と組み合わせて使用)。
# NOTE: make sure to review variants and sizes, so the model fits in your VRAM to perform well!
# Probably the best so far is [OpenHands LM](https://www.all-hands.dev/blog/introducing-openhands-lm-32b----a-strong-open-coding-agent-model)
ollama pull https://huggingface.co/lmstudio-community/openhands-lm-32b-v0.1-GGUF
# https://ollama.com/library/devstral
ollama pull devstral
# Qwen2.5-Coder has tool use but you have to coax it
ollama pull qwen2.5-coder
HTTP/OpenAPI
このサーバーは STDIO トランスポートで実装されています。
HTTP を使用する場合は、mcpo を使って、OpenAPI 互換のウェブサーバーインターフェースを利用してください。
これは Open-WebUI で動作します。
uvx mcpo --port 3010 --api-key "supersecret" -- npx mcp-server-commands
# uvx runs mcpo => mcpo run npx => npx runs mcp-server-commands
# then, mcpo bridges STDIO <=> HTTP
警告
mcpoをopen-webuiと一時的に使用しました。セキュリティ上の懸念がないか、必ず精査してください。
ログ記録
Claude デスクトップアプリは、ログを ~/Library/Logs/Claude/mcp-server-mcp-server-commands.log に書き込みます。
デフォルトでは、重要なメッセージ(つまりエラー)のみが記録されます。
より多くのメッセージを表示するには、サーバーの設定時に args に --verbose を追加してください。
なお、ログは STDERR に書き込まれます。これは、Claude デスクトップアプリがログファイルへの出力先として STDERR を使用するためです。
将来的には、適切にフォーマットされたログメッセージが、MCP クライアント(注:Claude デスクトップアプリではありません)への STDIO トランスポートを通じて出力されることを期待しています。
デバッグ
MCP サーバーは stdio 経由で通信するため、デバッグは困難な場合があります。パッケージスクリプトとして利用できる MCP Inspector の使用をおすすめします。
npm run inspector
Inspector は、ブラウザーでデバッグツールにアクセスするための URL を表示します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
