mcpField
T
tailnetport

tailnetport

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

tailnetport について

tailnetportは、CLIまたはstdio MCPサーバーからTailscaleのtailnetを管理します。単一のアクションルーターツールでデバイス、キー、ACL、DNS、ユーザーを操作でき、削除には二重の制限があります。

主な機能

  1. 01単一のアクションルーターツール
  2. 02デバイスとルートの一覧・詳細表示
  3. 03キー、ACL、DNS、ユーザーの取得
  4. 04デバイスの認可と削除
  5. 05削除に二重確認が必要

活用シーン

  1. 01tailnetのデバイスと広告ルートの確認
  2. 02tailnetのキー、ACL、DNS設定の確認
  3. 03API経由でのデバイス認可
  4. 04二つの保護条件を満たしたデバイス削除

MCP 対応

stdio MCPサーバーは、操作をTailscale API v2に振り分ける `tailscale` ツールを公開します。デバイス削除には、呼び出し時の `confirm: true` と環境変数 `TAILSCALE_ALLOW_DESTRUCTIVE=true` の両方が必要です。

設定

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

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

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

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

ツール

1

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

パラメーター型必須説明
idstringいいえデバイス ID。device、device_routes、authorize_device、delete_device の各アクションで必須です。
actionenumはい実行するアクション:devices、device、device_routes、keys、acl、dns、users、help、authorize_device、delete_device。devices | device | device_routes | keys | acl | dns | users | help | authorize_device | delete_device
confirmbooleanいいえ確認フラグ。delete_device アクションを許可するには true にする必要があります。

詳細

tailnetport

tailnetport は、単一のアクションルーターツールを通じて Tailscale の tailnet を管理します。1 回の呼び出しでアクション(デバイスの一覧表示、特定のデバイスまたはそのルートの確認、キー、ACL ポリシー、DNS 設定またはユーザーの参照、デバイスの認証、または削除)を指定すると、ルーターが Tailscale API v2 に振り分けます。1 つのバイナリで、コマンドラインインターフェイスと stdio MCP サーバーを提供します。

API キーが必要です。環境変数に TAILSCALE_API_KEY を設定してください。設定されていない場合、ネットワークアクションはすべて、リクエストを送信する前に失敗します。TAILSCALE_TAILNET で tailnet を指定します。デフォルトは -(キーが属する tailnet)です。

削除には 2 つの条件が必要です。delete_device アクションは、呼び出しに confirm: true が含まれ、かつ環境変数に TAILSCALE_ALLOW_DESTRUCTIVE=true が設定されている場合にのみ実行されます。どちらか一方でも欠けている場合、リクエストを送信する前に削除を拒否します。

インストール

npx @reneturcios/tailnetport devices

または、コンテナイメージを実行します。

docker run -i -e TAILSCALE_API_KEY=... ghcr.io/cloudcorprecords/tailnetport

コンテナはデフォルトで MCP サーバーとして起動します(下記参照)。CLI として使用するには、CLI 引数を渡してください。

CLI

tailnetport devices
tailnetport device 12345
tailnetport device-routes 12345
tailnetport keys
tailnetport acl
tailnetport dns
tailnetport users
tailnetport help
tailnetport authorize-device 12345
tailnetport delete-device 12345 --confirm   # also needs TAILSCALE_ALLOW_DESTRUCTIVE=true

tailnetport --version

コマンドは上流の JSON ペイロードを出力します。help はローカルのアクション一覧を表示し、リクエストは送信しません。終了コード:成功時は 0、呼び出しの失敗時(上流 API エラーや条件による拒否を含む)は 1、使用方法の誤りでは 2 です。

MCP サーバー

1 つのバイナリで両方のインターフェイスを提供します。mcp サブコマンドを実行すると、stdio MCP サーバーが起動します。

npx -y @reneturcios/tailnetport mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "tailnetport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/tailnetport", "mcp"],
      "env": {
        "TAILSCALE_API_KEY": "tskey-...",
        "TAILSCALE_TAILNET": "-"
      }
    }
  }
}

サーバーからデバイスを削除できるようにする場合に限り、その env に TAILSCALE_ALLOW_DESTRUCTIVE: "true" を追加してください(削除の呼び出しには、引き続き confirm: true が必要です)。

ツール

1 つのツール tailscale が、action 引数に応じて処理を振り分けます。

アクション追加の入力説明
devices—tailnet 内のデバイスを一覧表示します。
deviceid(必須)1 つのデバイスを取得します。
device_routesid(必須)1 つのデバイスが広告しているルートを取得します。
keys—tailnet の API キーを一覧表示します。
acl—tailnet の ACL ポリシーを取得します。
dns—tailnet の DNS ネームサーバーと設定を取得します。
users—tailnet 内のユーザーを一覧表示します。
help—ローカルのアクションドキュメントを返します。API リクエストは送信しません。
authorize_deviceid(必須)1 つのデバイスを認証します。
delete_deviceid と confirm: true(両方必須)1 つのデバイスを削除します。TAILSCALE_ALLOW_DESTRUCTIVE=true も必要です。

開発

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev     # run the CLI from source via tsx

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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