关于 unlocalhost
unlocalhost 是供编码 Agent 使用的 MCP 服务,可将仓库中的应用部署为受访客名单保护的私有链接。它负责构建和登录校验,也支持自托管。
主要功能
- 01从仓库部署应用
- 02通过访客名单限制访问
- 03扫描部署中的已提交密钥
- 04使用 GitHub 或 Google 验证访客
- 05自托管服务
适用场景
- 01向指定评审者分享 Agent 构建的应用
- 02为已部署的原型提供私有访问
MCP 相关
将 unlocalhost 添加为 MCP 服务后,编码 Agent 可登录并部署应用,同时指定获准访问的人员。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 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 变成只有你指定的人才能打开的链接。
内置登录功能,因此你无需编写任何身份验证代码,也无需接触任何服务器。
问题
你的编码 Agent 可以编写整个应用,但无法托管它,因为托管需要服务器、域名、证书和登录系统。于是人们会选择最快的方式,而问题也就由此产生:没有登录功能的公开 URL、不小心提交的 API 密钥,或者由从未编写过身份验证的人在最后才匆忙添加的身份验证。
unlocalhost 填补了这一空缺。你只需对已经打开的 Agent 说一句话,就能获得一个带有访客名单的真实 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 添加到编码 Agent,作为 MCP 服务,然后使用 GitHub 登录一次。
- 告诉 Agent 部署,并指定允许访问的人。
- 你的 Agent 使用你自己的 git 凭据推送代码。 unlocalhost 从不持有任何内容的写入权限。
- 我们以只读方式克隆代码,扫描已提交的密钥;如果发现任何密钥,就会拒绝继续,然后构建并运行应用。
- 访客使用 GitHub 或 Google 登录。我们会在请求到达你的应用之前,先将经过验证的邮箱地址与访客名单进行核对。
有何不同
| 隧道(ngrok) | 平台(Vercel) | unlocalhost | |
|---|---|---|---|
| 关闭笔记本电脑后仍可使用 | 否 | 是 | 是 |
| 默认私密 | 否 | 否 | 是 |
| 需要你编写的身份验证代码 | 全部 | 全部 | 无需 |
| 在你自己的服务器上运行 | 否 | 否 | 是 |
快速开始
claude mcp add unlocalhost -- npx -y @unlocalhost/unlocalhost
或者在任意 MCP 客户端配置中:
{
"mcpServers": {
"unlocalhost": {
"command": "npx",
"args": ["-y", "@unlocalhost/unlocalhost"]
}
}
}
然后让你的 Agent 登录 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
| Package | Job |
|---|---|
web | 落地页、登录界面、文档 |
server/gateway | 公共 API 入口、CORS、速率限制、请求 ID |
server/services/auth-gate | OAuth、会话,以及每次请求的允许名单检查 |
server/services/control-plane | 应用、共享、GitHub App、部署流水线 |
server/services/activator | 唤醒休眠的应用,并让闲置的应用重新休眠 |
server/services/mcp-server | Agent 使用的 unlocalhost npm 包 |
server/shared | 数据库、日志记录、加密、错误、会话 |
我们选择借用而非自行构建的组件:Dokku 和 Nixpacks 可将代码仓库转换为运行中的容器, Caddy 负责处理通配符 TLS。刻意将创新部分保持得很小。
安全
- 在指定人员之前,应用均为私有。移除人员会立即撤销访问权限。
- 每次部署都会扫描已提交的密钥;如果发现任何密钥,部署将被拒绝。
- 请求到达应用之前,会在边缘层强制要求登录。
- 环境变量在静态存储时使用 AES 256 GCM 加密。
- 我们仅拥有只读访问权限,且只能访问你选择的仓库。
发现漏洞?请遵循 SECURITY.md,不要公开提交问题。
贡献
请先阅读 CONTRIBUTING.md。简而言之:每个后端模块都遵循 routes → controller → service → repository,代码不包含注释,也没有测试文件。通过运行程序进行验证。
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。