mcpField
M
Mcp Server Commands

Mcp Server Commands

ローカル
github.com/g0t4開発ツール23729 週間前に更新

Mcp Server Commands について

Mcp Server Commands は、ホストマシン上でコマンドを実行し、標準出力と標準エラーを返す MCP サーバーです。モデルにコマンドライン操作を任せたいユーザー向けで、STDIO によりローカルで動作します。

主な機能

  1. 01runProcess ツールによるコマンド実行
  2. 02command_line 文字列と argv 配列の二つの呼び出し方法
  3. 03STDOUT と STDERR をテキストで返却
  4. 04stdin によるシェルやスクリプトへの入力
  5. 05mcpo を使った HTTP 経由のアクセス

活用シーン

  1. 01hostname や ls などでホスト情報を取得するモデル操作
  2. 02stdin 経由で bash や python にスクリプトを渡す実行
  3. 03ローカルモデルからコマンドラインでファイル操作を行う用途

MCP 対応

本プロジェクトは MCP サーバーであり、MCP クライアントに run_process ツールを公開します。ホスト上でコマンドを実行し、その出力を返します。STDIO トランスポートを使用します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"commands": {
"command": "uvx",
"args": [
"mcpo"
]
}
}
}
起動コマンドuvx mcpo

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcpo

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

runProcess ツール

runProcess ツールは、ホストマシン上でプロセスを実行します。呼び出し方法は、互いに排他的な次の 2 通りです。

  1. command_line(文字列) — システムのデフォルトシェルを介して実行されます(bash/fish/pwsh などに入力する場合と同じです)。パイプ、リダイレクト、変数展開などのシェル機能をすべて利用できます。
  2. 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 では絶対に実行しないでください。

動画による解説

YouTube サムネイル

プロンプト

プロンプトは、チャット履歴に含めるためのものです。たとえば、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 を表示します。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。