mcpField
S
Superargs

Superargs

ローカル
github.com/supercorp-ai開発ツール7485 週間前に更新

Superargs について

Superargs は MCP サーバーをラップするツールで、初期設定時ではなく実行時に引数を指定できます。アシスタントとの対話中にトークンや環境変数、コマンドライン引数を渡したい利用者に向けたものです。ラップされたサーバーのコード変更は不要です。

主な機能

  1. 01実行時の引数プレースホルダー注入
  2. 02引数更新ツール名のカスタマイズ
  3. 03すべての MCP リクエストを子サーバーへ転送
  4. 04引数更新後のリスト変更通知
  5. 05指定された引数の非保存

活用シーン

  1. 01チャットで与えられた GitHub トークンによるサーバー起動
  2. 02実行時の PostgreSQL 接続文字列の指定
  3. 03MCP Inspector による引数依存サーバーの管理

MCP 対応

Superargs は stdio の MCP サーバーとして動作し、ラップされたサーバーのツール、プロンプト、リソースを MCP クライアントに公開します。引数を設定して子サーバーを再起動する update_args ツールを追加します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"superargs": {
"command": "npx",
"args": [
"-y",
"superargs"
]
}
}
}
起動コマンドnpx -y superargs

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

パッケージ
npmsuperargs

ツール

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

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

詳細

Superargs:チャットから MCP サーバーの引数を更新

Superargs を使うと、実行中に MCP サーバーの引数を設定できます。 初期設定時ではなく、アシスタントとのやり取り中に、任意の MCP サーバー に引数を渡せます。 認証トークン、環境変数、その他の CLI 引数など、Superargs を使えば実行中に簡単に渡せます。

superinterface.ai、supermachine.ai、supercorp.ai がサポートしています。

インストールと使用方法

npx を使って Superargs を実行します。

npx -y superargs --stdio "npx -y @modelcontextprotocol/server-postgres {{databaseUrl}}"
  • --stdio:実行中に {{argName}} の形式で置き換える引数を指定した、stdio MCP サーバーを実行するシェルコマンドです。
  • --update-args-tool-name:(任意)引数の更新や再起動に使うツールのカスタム名です。デフォルトは update_args です。
引数

--stdio コマンド内の引数は {{argName}} で表します。たとえば、次のようになります。

npx -y superargs --stdio "GITHUB_PERSONAL_ACCESS_TOKEN={{githubToken}} npx -y @modelcontextprotocol/server-github"

このコマンドでは:

  • {{githubToken}} は、update_args ツール(または指定したカスタムツール名)を使って実行中に設定できる引数です。

起動後

  • 初期状態:起動時、MCP サーバーには引数が設定されていません。

  • 基盤となる MCP stdio サーバーが引数なしで起動できる場合は、ツール一覧やその他の MCP サーバー機能を提供するため、引数なしでの起動を試みます。 引数なしで動作できる場合、違いは引数を更新する追加の update_args ツールがあることだけです。

  • サーバーの起動に引数が必要な場合、引数が設定されるまで起動せず、update_args ツールのみが使用できます。 その他の MCP サーバー機能は、空のリストまたはエラーメッセージを返します。

  • update_args が使用された場合:サーバーは新しい引数で再起動し、すべての MCP サーバー機能が使用可能になります。

  • 引数を更新するツール:デフォルト名は update_args で、引数を更新して子 MCP サーバーを再起動できます。

例

GitHub MCP サーバーを使った別の例:

npx -y superargs --stdio "GITHUB_PERSONAL_ACCESS_TOKEN={{githubToken}} npx -y @modelcontextprotocol/server-github"

SQLite MCP サーバーの場合:

npx -y superargs --stdio "uv mcp-server-sqlite --db-path={{dbPath}}"
MCP Inspector を使った例
  1. Superargs を使って MCP Inspector を実行します:

    npx @modelcontextprotocol/inspector npx -y superargs --stdio "npx -y @modelcontextprotocol/server-postgres {{databaseUrl}}"
    

    このコマンドは Superargs を起動して MCP Inspector に接続し、Inspector のインターフェースから PostgreSQL MCP サーバーを管理できるようにします。

  2. MCP サーバーを管理します:

    MCP Inspector を使うと、Superargs 経由でツールの一覧表示、プロンプトの実行、リソースへのアクセス、その他の MCP 操作ができます。

仕組み

Superargs は MCP サーバーを包むミドルウェアラッパーとして動作し、実行中に引数を動的に注入できます。すべての MCP リクエスト(ツール、プロンプト、リソース、メッセージ、ルートなど)を基盤となる子サーバーに転送し、これらの引数を管理する追加のツールを提供します。

主な機能
  • 動的な引数の注入:MCP サーバーのコマンド内のプレースホルダーを、実行中に実際の値に置き換えます。
  • ツール名のカスタマイズ:--update-args-tool-name で引数更新ツールの名前を変更し、ワークフローに合わせられます。
  • 包括的な MCP サポート:ツール、プロンプト、リソース、メッセージ、ルートなど、すべての MCP リクエストを子サーバーに転送します。
  • 変更通知:引数が更新されると、sendToolListChanged、sendPromptListChanged、sendResourceUpdated などの通知を送り、接続中のクライアントに変更を知らせます。
主なユースケース

Superargs を使うと、AI アシスタントとのやり取り中に、ユーザーが MCP サーバーを動的に設定できます。 管理者が必要な引数や認証情報を事前に設定する必要はありません。ユーザーは会話を通じてその情報をその場で提供できるため、柔軟性が高まり、設定の手間を軽減できます。

機密性の高い引数を安全に渡す

引数は、指定されたコマンドで子 MCP サーバーに渡されます。何も保存されません。

LLM にこれらの引数を絶対に見せたくない場合は、サーバークライアントを介して MCP サーバーを直接呼び出してください(アシスタントが呼び出すのではなく、コードから直接呼び出します)。

なぜ MCP なのか?

Model Context Protocol は、AI ツールがデータを交換する方法を標準化します。MCP サーバーが認証トークンや設定パスなどの動的な引数を必要とする場合、Superargs を使えば、サーバーのコードを変更せずに実行時に引数を渡せます。これにより、柔軟なデプロイ、リモートアクセス、デバッグの簡素化が可能になります。

貢献

貢献を歓迎します!新機能のアイデアや改善案がある場合、または問題が発生した場合は、issue を作成するか、pull request を送信してください。

ライセンス

MIT ライセンス


Superargs は、Superinterface、Supermachine、Supercorp の支援を受けています。

コメント

MCP は初めてですか?

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

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