termal.in

エージェントネイティブな SSH

SSH のための MCP サーバー

Termalin は普通の SSH/ターミナルクライアントですが、MCP サーバーを内蔵しています。claude.ai や ChatGPT にカスタムコネクターとして追加したり、Claude Code や Model Context Protocol を話すエージェントをホストに向けたりすれば、SSH と SFTP でコマンドを実行し、ファイルを読み書きします。鍵がキーエージェントから外に出ることはなく、すべての操作がライブでミラーリングされ、録画され、監査ログに記録されます。

ホスト型サーバーは公式 MCP レジストリに in.termal/termalin-web として登録されています。

できること

MCP は AI エージェントとツールをつなぐためのオープンな標準規格です。多くの MCP サーバーは API をラップしますが、Termalin がラップするのはあなたのサーバーです。だからエージェントはインフラを実際に操作できます。ログを追う、サービスを再起動する、ディスクを確認する、設定を編集する、デプロイする、といった作業です。認証は Termalin の SSH キーエージェントを通して行われるため、秘密鍵がエージェントやモデルに渡ることは一切ありません。

ツール

ホスト型エンドポイントは 8 個のツールを、ローカルの termalin-mcp サーバーは 22 個を公開します。下記の共通コアに、セッション・トンネル・ライブターミナルのツールが加わります。引数まで含めた完全な一覧は MCP ツールリファレンス(英語)にあります。中心となる 8 個は次のとおりです。

ツール機能
hosts_listエージェントがアクセスできるホストの一覧を返します。
ssh_execホスト上でコマンドを 1 回実行し、その出力と終了コードを返します。
sftp_listSFTP でディレクトリの一覧を取得します。
sftp_readSFTP でテキストファイルを読み込みます(サイズ上限あり・テキストのみ)。ホスト型エンドポイント用で、ローカルサーバーでは sftp_get を使います。
sftp_writeSFTP でテキストファイルを書き込みます。ホスト型エンドポイント用で、ローカルサーバーでは sftp_put を使います。
generate_password必要に応じて強力なパスワードを生成します。長さと文字種を自由に指定できます。
data_queryホスト上のデータベースにクエリを実行します。パスワード不要で、キーレストンネル経由でローカルの信頼(Postgres の peer 認証、MySQL の socket 認証、redis-cli、mongosh、sqlite3)を使い、各エンジン純正のクライアントを実行します。既定では読み取り専用です。
data_tablesホスト上のデータベースのテーブル・コレクション・キーの一覧を取得します。同じくパスワード不要の経路を使います。

ローカルサーバーはこれに加えて次を提供します。

ツール機能
session_open / exec / close / list永続的な SSH セッションを開き、その中でコマンドを実行し、管理します。
sftp_get / sftp_putファイルをダウンロード・アップロードします。
tunnel_open / close / listホスト上でポート転送を開き、管理します。その先にあるサービスへ接続したり、ローカルのサービスを公開したり、経由してルーティングしたりできます。
terminal_open / run / run_many / sessions / hosts起動中のデスクトップアプリを操作します。ライブのターミナルタブを開いたり、すでに開いているセッションに入り込んで一緒に実行したりできます(同意が必要です)。
data_list / tables / schema / query保存したデータベースを調べてクエリを実行します。データベース・テーブル・カラムの一覧表示や、読み取り専用クエリの実行ができます。既定では無効で、接続ごとに設定し、同意が必要です。

接続する 3 つの方法

1 · claude.ai / ChatGPT:いつものチャットで

インストール不要、貼り付ける鍵もありません。Termalin をカスタムコネクターとして追加し、話しかけるだけでサーバーを管理できます。

  • claude.ai:Termalin の掲載ページを開いて Connect(または Settings → Connectors → Add custom connector → https://termal.in/mcp)
  • ChatGPT:Settings → Connectors(デベロッパーモード)→ 同じ URL

チャットが Termalin のサインインページを開くので、一度承認すれば、サーバーの一覧表示・コマンド実行・ファイルの読み書きができます。「本番のディスクを確認して」「nginx のログを追って」「あの設定を直して」と会話からそのまま指示できます。アクセスは OAuth で付与され、登録済みの自分のサーバーだけに限定され、監査され、いつでも取り消せます。

詳しい手順:ChatGPT カスタムコネクターと claude.ai カスタムコネクター(英語)。

初めての人が見落としがちな前提が 2 つあります。チャットが接続できるのは登録済みのサーバーだけです。termal.in/account にサインインし、Connector を追加をクリックして、表示される 1 行のインストールコマンドをコピーし、サーバー上で実行してください(デスクトップアプリの中だけにあるホストは接続できません)。もう 1 つは、会話の中で入力欄のツールメニューから Termalin を有効にすることです。設定でカスタムコネクターを追加するだけでは足りない場合があります。

2 · ローカルサーバー(自分のマシンで動作)

エージェントの MCP クライアントを、付属の termalin-mcp バイナリに向けます。Claude Code の場合は次のとおりです。

claude mcp add termalin -- <path>/termalin-mcp

または MCP クライアントの設定ファイルに次を記述します。

{
  "mcpServers": {
    "termalin": { "command": "<path>/termalin-mcp" }
  }
}

これは 設定 →「エージェントアクセス (MCP)」で選んだホストに接続します(エージェント専用の認証情報で書き込まれ、パスワードはディスクに保存されません)。各ホストには独自のエージェントアクセスレベル(フルアクセス、許可するコマンドのリスト、ブロック)があり、ホストごとに設定します。

3 · API キーを使うホスト型エンドポイント(CI・スクリプト・他のエージェント)

ウェブキャビネットで API キーを作成し、任意のエージェントを HTTP の MCP エンドポイントに向けます。

{
  "mcpServers": {
    "termalin": {
      "url": "https://termal.in/api/v1/mcp",
      "headers": { "Authorization": "Bearer tk_live_…" }
    }
  }
}

これは、あなたのマシンで何も開いていなくても、トンネル接続したサーバー(1 行のインストールでエージェントを動かしているサーバー)でコマンドを実行し、ファイルを移動します。認証には短期証明書を使うため、鍵が外に渡されることはありません。API キーは特定のサーバーに限定したり、コマンドポリシー(フルアクセス、許可するコマンドのリスト、読み取り専用)を設定したり、有効期限(30 / 90 / 365 日)を付けたりでき、いつでも取り消せます。

経路によって接続先のホストが異なります。ローカルサーバーはアプリからエクスポートしたホストを、チャットのカスタムコネクターと API キーのエンドポイントは登録済みのトンネルサーバー(Connector)を対象にします。エージェントを動かす場所に合った方を選んでください。

セットアップガイド

各クライアントの手順です。

  • Claude Code — claude mcp add の 1 行だけ。
  • ChatGPT と claude.ai(英語) — OAuth のカスタムコネクター。
  • Cursor — mcp.json に 1 項目。
  • Codex — config.toml に 1 項目。
  • Gemini CLI — Google の CLI を SSH で。

主導権を保つ

  • エージェントアクセスは既定でオフです。エージェントにライブセッションへの入力を許可するのは、さらに別のトグルです。
  • アクセスはきめ細かく制御できます。デスクトップではホストごと(フルアクセス/許可リスト/ブロック)、ホスト型エンドポイントでは API キーごとです。あるサーバーでは読み取り専用、別のサーバーでは git だけ、といった設定ができます。
  • エージェントが鍵を持つことはありません。認証は Termalin の SSH キーエージェントか短期証明書を通して行われます。
  • エージェントのすべてのコマンドはセッション録画に印が付き、ウォッチグリッドでライブに表示され、監査ログに記録されます。
  • ホスト型での実行には、API キーごとにレート制限と実行時間の上限があります。

よくある質問

claude.ai や ChatGPT にサーバーを接続するには?

claude.ai の場合:claude.ai のコネクターディレクトリにある Termalin の掲載ページを開いて Connect をクリックします(または Settings → Connectors → Add custom connector → https://termal.in/mcp と URL で追加します)。Termalin のサインインページが開くので承認すれば、Claude がチャットの中でそのままサーバーの一覧表示・コマンド実行・ファイル管理を行えます。ChatGPT でも同じ URL を Settings → Connectors(デベロッパーモード)に追加します。貼り付ける API キーはありません。アクセスは OAuth で付与され、登録済みの自分のサーバーだけに限定され、いつでも取り消せます。

SSH のための MCP サーバーとは?

SSH のための MCP サーバーは、SSH と SFTP を Model Context Protocol 経由で AI エージェントが呼び出せるツールとして公開します。これにより、エージェントはサーバー上でコマンドを実行し、ファイルを読み書きできます。Termalin は SSH クライアントにこれを内蔵しています。エージェントがアクセスできるホストはあなたが選び、認証は Termalin が行うため、エージェントが秘密鍵に触れることはありません。

AI エージェントに SSH でサーバーへのアクセスを与えるには?

Termalin をインストールし、設定 →「エージェントアクセス (MCP)」で使いたいホストを有効にして、付属のサーバーを claude mcp add termalin -- <path>/termalin-mcp で登録します。あとは MCP に対応したエージェント(Claude Code、Cursor、自作のものなど)がそれらのホストを一覧表示し、SSH と SFTP で操作できます。デスクトップのない場所でエージェントを動かす場合は、代わりにホスト型エンドポイント https://termal.in/api/v1/mcp に API キーで向けてください。

AI エージェントは秘密鍵を見ずに SSH を使えますか?

はい。Termalin は鍵カストディアン(あなたの代わりに鍵を預かり、署名する仕組み)として動作します。鍵は一度だけロックを解除すれば、あとは Termalin がエージェントの代わりに署名するため、秘密鍵がエージェントやモデルに渡ることはありません。ホスト型エンドポイントはさらに進んで、鍵ではなく短期の SSH 証明書で実行のたびに認証します。

AI エージェント向けの MCP サーバーを内蔵した SSH クライアントでおすすめは?

Termalin は Windows・macOS・Linux・iOS に対応した、MCP サーバー内蔵の SSH クライアントです。単一プラットフォームしか使えない選択肢とは違います。さらにホスト型エンドポイントも用意しているので、デスクトップを起動していなくても、CI やクラウドからエージェントがサーバーへ接続できます。鍵はカストディアンが預かり、エージェントのすべての操作が録画・監査され、セッションはライブで確認できます。全体像の比較はこちら(英語)。

MCP サーバーはデスクトップアプリを起動していなくても動きますか?

2 つのモードがあります。ローカルサーバーはデスクトップアプリと一緒に動き、アプリからエクスポートしたホストを対象にします。https://termal.in/api/v1/mcp にあるホスト型エンドポイントはデスクトップを一切必要とせず、キーレスの Termalin Connector で登録したサーバーに短期証明書で認証して接続します。そのため CI やクラウドのサンドボックスで動くエージェントでも利用できます。このエンドポイントは公式 MCP レジストリに in.termal/termalin-web として登録されています。