nasport について
nasportは、GraphQLエンドポイント経由でUnraidサーバーの操作を振り分けるMCPサーバー兼コマンドラインツールです。操作の組み合わせをローカルで検証し、破壊的な操作には確認を求めます。
主な機能
- 01単一ツールによる操作・サブ操作の振り分け
- 02ローカルの操作カタログ検証
- 03破壊的操作の確認ゲート
- 04GraphQLエラーの報告
- 05コマンドラインとstdioサーバーモード
活用シーン
- 01Unraidのシステムと状態の確認
- 02アレイ、Docker、VMの管理
- 03破壊的操作の確認を伴うサーバー操作
MCP 対応
単一のMCPツール`unraid`からUnraidの操作を提供し、操作とサブ操作をサーバーのGraphQLエンドポイントへ振り分けます。破壊的なサブ操作には`confirm: true`が必要で、stdioトランスポートを使います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| action | string | はい | アクショングループ:system、health、array、disk、docker、vm、notification、key、plugin、rclone、setting、connect、customization、subscriptions、help のいずれか。 |
| params | object | いいえ | サブアクションのパラメーター(各グループのドキュメントに記載)、例:container_id、vm_id、disk_id。 |
| confirm | boolean | いいえ | 破壊的なサブアクションを実行するには true にする必要があります。 |
| subaction | string | はい | アクショングループ内の操作。例:overview、list、start、stop。 |
詳細
nasport
nasport は、単一のツールを通じて Unraid サーバーの操作をルーティングします。
個別のツールを何十個も用意する代わりに、呼び出し側はアクショングループとその中のサブアクションを指定します。たとえば、docker / list、system / overview、vm / start です。nasport はこの組み合わせをローカルカタログと照合して検証し、破壊的な操作には確認ゲートを適用し、それ以外の操作をサーバーの GraphQL エンドポイントに転送します。
インストール
npx @reneturcios/nasport help
または、コンテナイメージを実行します。
docker run -i ghcr.io/cloudcorprecords/nasport
コンテナはデフォルトで MCP サーバーとして起動します。CLI として使用するには、CLI 引数を渡してください。
設定
上流への接続は、次の 2 つの環境変数で設定します。
UNRAID_API_URL— Unraid GraphQL エンドポイントの URL(最初に確認されます)UNRAID_API_KEY—x-api-keyヘッダーで送信される API キー
上流接続が必要な呼び出しでは、不足している変数の名前を示すエラーが返されます。help アクションとすべてのカタログ検証は、環境変数が設定されていなくても動作します。
CLI
# Print the full local catalogue (no upstream call)
nasport help
# Run one routed operation
nasport call system overview
nasport call docker list
nasport call docker logs --params '{"container_id":"abc"}'
# Destructive operations need the explicit flag
nasport call vm force_stop --params '{"vm_id":"win11"}' --confirm
nasport --version
終了コード:成功時は 0、ツールエラー(不明なアクション、破壊的操作のゲート、不足している環境変数、上流または GraphQL のエラー)時は 1、使用方法のエラー時は 2 です。
MCP サーバー
npx -y @reneturcios/nasport mcp
MCP クライアントの設定:
{
"mcpServers": {
"nasport": {
"command": "npx",
"args": ["-y", "@reneturcios/nasport", "mcp"],
"env": {
"UNRAID_API_URL": "http://your-unraid.local/graphql",
"UNRAID_API_KEY": "your-api-key"
}
}
}
}
ツール
| ツール | 入力 | 説明 |
|---|---|---|
unraid | action(文字列、必須)、subaction(文字列、必須)、params(オブジェクト、省略可)、confirm(ブール値、省略可) | 指定された操作にルーティングします。不明な組み合わせの場合は、有効な選択肢を列挙したエラーが返されます。破壊的なサブアクションは、confirm: true が指定されていない場合に拒否されます。action=help はカタログをローカルで返します。 |
アクショングループ:system(25 個のサブアクション)、health(check、
test_connection、diagnose、setup)、array(14)、disk(6)、
docker(27)、vm(9)、notification(13)、key(13)、
plugin(8)、rclone(4)、setting(6)、connect(8)、
customization(7)、および subscriptions と help。
破壊的なサブアクションには、array/stop_array、
docker/remove_container、vm/force_stop、vm/reset、
key/delete、plugin/remove、plugin/install、
rclone/delete_remote、notification/delete、connect の
サインイン/リモートアクセス操作が含まれます。破壊的な項目に印を付けた一覧全体は、nasport help の出力に表示されます。
GraphQL の整形と既知の制限
この再構築の基礎となる元のドキュメントでは、上流の GraphQL フィールドスキーマが公開されていません。そのため、リクエストの整形は、ドキュメントに記載されたローカルでの再構成に基づいています。リクエストボディは
{ "query": "query NasportOp { <action>_<subaction> }", "variables": <params> }
で、オペレーション名はアクションとサブアクションをパスカルケースにしたものです。レスポンスに GraphQL の errors 配列が含まれる場合は、最初のメッセージを含むツールエラーとして返されます。data は JSON テキストとして返されます。稼働中のサーバーとのフィールドレベルの差異は、最初の実環境でのスモークテストで確認します。
- WebSocket サブスクリプションは実装されていません。
subscriptionsアクションは、未実装であることを明示するエラーを返します。 - 元の OAuth 認証および HTTP トランスポート認証は再現されていません。この再構築は、上記の環境変数キー方式を使う stdio 専用です。
開発
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network
npm run dev # run the CLI from source via tsx
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。