mcpField
N
nasport

nasport

ローカル
github.com/CloudCorpRecordsクラウド・インフラ02 週間前に更新

nasport について

nasportは、GraphQLエンドポイント経由でUnraidサーバーの操作を振り分けるMCPサーバー兼コマンドラインツールです。操作の組み合わせをローカルで検証し、破壊的な操作には確認を求めます。

主な機能

  1. 01単一ツールによる操作・サブ操作の振り分け
  2. 02ローカルの操作カタログ検証
  3. 03破壊的操作の確認ゲート
  4. 04GraphQLエラーの報告
  5. 05コマンドラインとstdioサーバーモード

活用シーン

  1. 01Unraidのシステムと状態の確認
  2. 02アレイ、Docker、VMの管理
  3. 03破壊的操作の確認を伴うサーバー操作

MCP 対応

単一のMCPツール`unraid`からUnraidの操作を提供し、操作とサブ操作をサーバーのGraphQLエンドポイントへ振り分けます。破壊的なサブ操作には`confirm: true`が必要で、stdioトランスポートを使います。

設定

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

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

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

パッケージ
npm@reneturcios/nasport0.1.0
ocighcr.io/cloudcorprecords/nasport:0.1.0

ツール

1

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
actionstringはいアクショングループ:system、health、array、disk、docker、vm、notification、key、plugin、rclone、setting、connect、customization、subscriptions、help のいずれか。
paramsobjectいいえサブアクションのパラメーター(各グループのドキュメントに記載)、例:container_id、vm_id、disk_id。
confirmbooleanいいえ破壊的なサブアクションを実行するには true にする必要があります。
subactionstringはいアクショングループ内の操作。例: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"
      }
    }
  }
}
ツール
ツール入力説明
unraidaction(文字列、必須)、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 を参照してください。

コメント

MCP は初めてですか?

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

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