unlocalhost について
unlocalhostは、コーディングエージェントがリポジトリのアプリを、指定したゲストだけが開けるリンクとしてデプロイするMCPサーバーです。ビルドとサインイン確認を担い、セルフホストにも対応します。
主な機能
- 01リポジトリからアプリをデプロイ
- 02ゲストリストでアクセスを制限
- 03コミット済みシークレットを検査
- 04GitHubまたはGoogleで訪問者を認証
- 05サービスのセルフホスト
活用シーン
- 01エージェントが作成したアプリを指定のレビュー担当者と共有
- 02デプロイ済みプロトタイプへの限定アクセス
MCP 対応
unlocalhostをMCPサーバーとして追加すると、コーディングエージェントがサインインしてアプリをデプロイし、アクセスを許可する相手を指定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @unlocalhost/unlocalhostUNLOCALHOST_URLBase URL of the unlocalhost instance to talk to. Defaults to the hosted instance. Set this to point the tools at your own self hosted deployment.UNLOCALHOST_TOKENシークレットAPI token. Normally written by the unlocalhost_login tool after you approve the device in a browser, so you should not need to set this by hand.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
7掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
unlocalhost
localhost を、あなたが指定した人だけが開けるリンクに変えます。
サインイン機能が組み込まれているため、認証コードを書いたり、サーバーを触ったりする必要はありません。
問題
コーディングエージェントはアプリケーション全体を書けます。しかし、ホスティングにはサーバー、ドメイン、証明書、ログインシステムが必要なため、ホスティングはできません。そのため人々は、手っ取り早い方法に頼ります。そして、そこで問題が起きます。サインイン機能のない公開 URL、誤ってコミットされた API キー、あるいは認証を書いたことのない人が最後になって付け足した認証などです。
unlocalhost はそのギャップを埋めます。すでに開いているエージェントに一言伝えるだけで、ゲストリスト付きの実際の URL が返ってきます。
you deploy this and let [email protected] in
agent pushed your code to a private repo
agent building
agent live at sarahs-todo.unlocalhost.tech
agent [email protected] can sign in and open it
仕組み
- unlocalhost を MCP サーバーとしてコーディングエージェントに追加し、GitHub で一度サインインします。
- エージェントにデプロイするよう伝え、アクセスを許可する人を指定します。
- エージェントはあなた自身の git 認証情報を使ってコードをプッシュします。 unlocalhost が何かへの書き込みアクセス権を持つことはありません。
- 読み取り専用でクローンし、コミット済みのシークレットをスキャンします。見つかった場合は続行を拒否し、その後ビルドして実行します。
- 訪問者は GitHub または Google でサインインします。確認済みのメールアドレスがゲストリストと照合され、リクエストがアプリに届く前に確認されます。
特長
| トンネル(ngrok) | プラットフォーム(Vercel) | unlocalhost | |
|---|---|---|---|
| ノートパソコンを閉じても利用可能 | いいえ | はい | はい |
| デフォルトで非公開 | いいえ | いいえ | はい |
| 自分で書く必要がある認証 | すべて | すべて | なし |
| 自分のサーバーで実行 | いいえ | いいえ | はい |
クイックスタート
claude mcp add unlocalhost -- npx -y @unlocalhost/unlocalhost
または、任意の MCP クライアントの設定に追加します。
{
"mcpServers": {
"unlocalhost": {
"command": "npx",
"args": ["-y", "@unlocalhost/unlocalhost"]
}
}
}
次に、エージェントに unlocalhost へのサインインとデプロイを依頼します。
セルフホスティング
ホスト版サービスは、このコードをそのまま実行しています。隠された機能はなく、ホームへの通信もなく、ライセンス確認もありません。
git clone https://github.com/info-arnav/unlocalhost.git
cd unlocalhost/deploy
cp .env.example .env # fill it in
docker compose --env-file .env run --rm migrate
docker compose --env-file .env up -d
ワイルドカード DNS を設定したドメイン、ワイルドカード TLS 用の DNS プロバイダー API トークン、GitHub App、Google OAuth クライアントが必要です。詳しい手順はdocs/server-setup.mdをご覧ください。
アーキテクチャ
internet :443 → Caddy → auth-gate /verify → activator → Dokku → your app
| パッケージ | 役割 |
|---|---|
web | ランディングページ、サインイン画面、ドキュメント |
server/gateway | 公開 API の入口、CORS、レート制限、リクエスト ID |
server/services/auth-gate | OAuth、セッション、すべてのリクエストでの許可リスト確認 |
server/services/control-plane | アプリ、共有、GitHub App、デプロイパイプライン |
server/services/activator | スリープ中のアプリを起動し、アイドル状態のアプリを再びスリープさせる |
server/services/mcp-server | エージェントがやり取りする unlocalhost npm パッケージ |
server/shared | データベース、ログ、暗号化、エラー、セッション |
独自に構築せず、既存のものを活用しています。Dokku と Nixpacks がリポジトリを実行中のコンテナに変換し、 Caddy がワイルドカード TLS を処理します。独自の新しい部分は、意図的に小さくしています。
セキュリティ
- 誰かを指定するまでは、アプリは非公開です。アクセス権は、削除するとすぐに取り消されます。
- デプロイのたびにコミットされたシークレットをスキャンし、見つかった場合はデプロイを拒否します。
- リクエストがアプリに到達する前に、エッジでサインインを強制します。
- 環境変数は AES 256 GCM で保存時に暗号化されます。
- 読み取り専用のアクセス権を保持し、選択したリポジトリにのみアクセスします。
脆弱性を見つけた場合は、公開のイシューを作成せず、SECURITY.md に従ってください。
貢献
まず CONTRIBUTING.md をお読みください。要約すると、すべてのバックエンドモジュールは routes → controller → service → repository に従い、コードにコメントは含めず、テストファイルもありません。検証は実際に実行して行います。
ライセンス
MIT。詳細は LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。