- 桌面应用
- 开发工具
- 运维
【免费下载链接】xpipe
Access your entire server infrastructure from your local desktop
XPipe 18.3 是 XPipe 迈向"云端基础设施 + Agent 工作流"的关键版本:它首次引入 MCP(Model Context Protocol)服务器,让 Cursor 等 AI 客户端可以直接操控 XPipe 中的连接与文件系统;同时落地了第一个云厂商集成(Hetzner Cloud),并新增本地网络扫描、多主机地址等实用能力。本文将以 18.3 更新日志为主体,结合仓库源码逐项解析新功能的启用方式、配置模板、底层实现与使用要点,帮助你在升级后第一时间用上这些能力。
一、版本概览:18.3 带来了什么
XPipe 18.3 的主要变化集中在四个方面:
- MCP 服务器:XPipe 首次以 MCP 服务器形态对外开放自身能力,可无缝接入 Cursor 等 AI Agent 工作流;
- Hetzner Cloud 集成:通过 hcloud CLI 自动列出云端服务器并作为 SSH 连接访问,是云厂商集成的第一个落地范例;
- 网络扫描:自动探测本地网络(以及远程系统的所在网络)中开放的 SSH 服务,一键添加为连接;
- 多主机地址:单个主机可配置多个地址,随时快速切换。
此外,18.3 还包含大量 SSH、文件浏览器、终端、界面与稳定性方面的改进和缺陷修复。
二、MCP 服务器:把 XPipe 能力接入 AI Agent 工作流
2.1 功能定位与启用方式
MCP(Model Context Protocol)是 AI 客户端(如 Cursor)与外部工具之间的标准化通信协议。XPipe 18.3 内置的 MCP 服务器,允许你在 Agent 化的工作流中直接调用 XPipe 的能力——例如列出所有已配置的连接、浏览远程文件系统、在远程主机上执行命令、打开终端等。
需要特别注意的是,MCP 服务器功能默认处于关闭状态,必须在设置菜单中手动启用。从源码看,这一开关在 AppPrefs.java 中定义为enableMcpServer:
final BooleanProperty enableMcpServer = map(Mapping.builder() .property(new GlobalBooleanProperty(false)) // 默认关闭 .key("enableMcpServer") .valueClass(Boolean.class) .requiresRestart(false) .documentationLink(DocumentationLink.MCP) .build());启用路径为:设置(Settings)→ MCP 分类,勾选 MCP Server 开关即可。源码中还确认了一个联动行为:启用 MCP 服务器会自动同时打开 HTTP API(enableHttpApi),因为 MCP 服务器底层依赖 XPipe 的本地 HTTP 服务(见 McpCategory.java 的监听器逻辑)。
2.2 认证机制:API Key 与 Authorization 头
MCP 服务器不是裸奔在本地端口上的:所有请求都必须携带 Bearer API Key 认证。认证逻辑位于 AppMcpServer.java:
- 请求头中必须包含
Authorization: Bearer <apiKey>; - API Key 取自设置菜单中 API 分类下的
apiKey配置项; - 校验失败(缺头、Key 错误)会返回
403,并在 XPipe 界面弹出错误提示; - 如果勾选了"禁用 API 认证"(
disableApiAuthentication),则会跳过该检查——但建议仅在完全可信的本地环境开启。
同时,由于采用streamable HTTP 传输(而非 SSE),MCP 会话要求请求携带mcp-session-id头,否则会返回400并提示"Session ID required in mcp-session-id header"。这一点在配置客户端时无需手动处理(客户端会自动管理会话),但有助于排查"连接被拒"类问题。
2.3 各 MCP 客户端的开箱配置模板
设置页内置了 5 种主流 MCP 客户端的配置模板,且所有模板中的地址、端口、API Key 都是根据当前运行实例自动生成的(见 McpCategory.java 的createMcpConfig绑定逻辑)。模板结构如下:
Cursor(streamable-http)
{ "mcpServers": { "xpipe": { "type": "streamable-http", "url": "http://localhost:<port>/mcp", "headers": { "Authorization": "Bearer <apiKey>" } } } }VS Code(http)
{ "servers": { "xpipe": { "type": "http", "url": "http://localhost:<port>/mcp", "headers": { "Authorization": "Bearer <apiKey>" } } } }Warp
{ "xpipe": { "serverUrl": "http://localhost:<port>/mcp", "headers": { "Authorization": "Bearer <apiKey>" } } }Claude Code(命令行添加)
claude mcp add xpipe --transport http "http://localhost:<port>/mcp" --header "Authorization: Bearer <apiKey>"Gemini
{ "mcpServers": { "xpipe": { "serverUrl": "http://localhost:<port>/mcp", "headers": { "Authorization": "Bearer <apiKey>" } } } }说明:上述
<port>是 XPipe 本地 Beacon 服务端口(源码中通过AppBeaconServer.get().getPort()动态获取),<apiKey>来自 API 设置页。MCP 端点统一为http://localhost:<port>/mcp。
2.4 内置工具一览
XPipe MCP 服务器注册了 14 个工具(见 AppMcpServer.java 与 McpTools.java):
| 工具 | 作用 |
|---|---|
help | 列出所有可用工具及其说明 |
listSystems | 按过滤条件列出所有可用连接(名称、路径、信息、备注) |
readFile/writeFile/createFile | 远程文件读取、写入、创建 |
listFiles/findFile/getFileInfo | 远程目录列举、文件查找、元信息获取 |
createDirectory | 远程创建目录 |
openTerminal | 在 XPipe 中为指定连接打开终端 |
runCommand | 在指定连接上执行命令 |
runScript | 在指定连接上运行已配置的脚本 |
toggleState | 切换连接的启用状态 |
callApi | 调用 XPipe 本地 HTTP API(Beacon 接口),返回结构化结果 |
其中listSystems的实现细节值得注意:它通过DataStorageQuery.queryEntry(filter)查询连接存储,只返回"可用"(validity usable)且计入连接计数的条目,并以 JSON 数组形式返回(见 McpTools.java)。而callApi则先在本地完成一次 Beacon 握手换取会话令牌,再携带令牌调用目标 API 端点,整体封装了对底层 HTTP API 的访问(McpTools.java)。
2.5 自定义系统提示词(Context Management)
MCP 服务器加载的系统提示词(prompt)支持个性化扩展:设置页提供了"Additional context"文本框,其内容会替换内置 prompt 中的__CUSTOM__占位符(见 AppMcpServer.java)。这一功能可以用于告诉 AI 你的服务器命名习惯、常用目录等,从而显著提升 Agent 的操作准确性。对应配置项mcpAdditionalContext在 AppPrefs.java 中定义,修改后需要重启 XPipe 生效(requiresRestart(true))。
三、Hetzner Cloud 集成:第一个云厂商连接器
18.3 引入了对 Hetzner Cloud 服务器的支持,方式是检测并利用本地的 hcloud CLI 工具:XPipe 会自动调用hcloud命令列出你的全部云服务器,随后这些服务器即可像普通 SSH 连接一样直接访问(打开终端、浏览文件、执行脚本等)。
从源码看,XPipe 在启动时会对 hcloud CLI 进行探测并纳入"外部工具"体系——WebtopApp.java 中注册了HCLOUD("hetznerCloud", "hcloud")(见 WebtopApp.java),其文档链接指向guide/hcloud(见 DocumentationLink.java)。这意味着使用前需要:
- 在本机安装并配置好
hcloudCLI(包括 API Token); - 在 XPipe 中确认能识别到 hcloud 工具;
- 通过"添加连接"流程选择 Hetzner Cloud 分类,XPipe 会拉取服务器清单并自动生成 SSH 连接。
需要留意的是,该集成属于 Professional 计划功能。官方将其定位为云厂商集成的第一个"概念验证"(proof of concept),后续版本有望扩展更多云厂商。
四、网络扫描:自动发现局域网内的 SSH 服务器
4.1 入口与操作流程
18.3 重新组织了新建菜单,网络扫描的入口为New → Network scan(即主界面新建菜单中的"Local network scan ...")。对应的菜单构建代码位于 StoreCreationMenu.java:
private static MenuItem networkScanMenu() { var menu = new MenuItem(); menu.setGraphic(new FontIcon("mdi2d-dns")); menu.textProperty().bind(AppI18n.observable("addNetwork")); menu.setOnAction(event -> { ProcModuleProvider.get().createNetworkScanModal().show(); event.consume(); }); return menu; }触发后弹出网络扫描对话框,设置项包括(见 translations_en.properties):
- Target host(目标主机):要扫描哪个主机所在的网络;可以是本机,也可以是某个远程连接——也就是说远程系统所在网络同样可以被扫描;
- Connection type(连接类型):要查找的连接类型及对应端口(如 SSH/22);
- Broadcast address(广播地址):用于 ping 填充在线设备列表的地址;
- Scan results(扫描结果):展示探测到的系统清单,勾选后一键添加为连接。
4.2 底层机制
网络扫描建立在 XPipe 既有的"自动发现"体系之上。扫描对话框由 ScanDialog.java 与 ScanMultiDialogComp/ScanSingleDialogComp 实现;实际的探测动作由注册的ScanProvider完成——ScanDialogAction.java 会遍历所有ScanProvider,在目标 Shell 会话中依次执行探测命令,收集"可添加的候选连接"(ScanOpportunity),去重后呈现给用户确认。这也解释了为何扫描"同样适用于远程系统及其网络":整个探测是基于目标主机上的 Shell 执行的,目标主机既可以是本地也可以是远程连接。
五、主机多地址支持:一机多地址快速切换
18.3 允许为同一台主机配置多个地址,在需要时可以快速切换(例如主备 IP、内网/外网地址、机房多线 IP 等场景)。
这一能力在数据模型层体现为HostAddressStore接口(见 HostAddressStore.java),它要求实现方提供getHostAddress();配套的扩展模块中则有地址选择组件 HostAddressChoiceComp.java、地址切换存储 HostAddressSwitchStore.java 以及切换动作 HostAddressSwitchBranchProvider.java,构成"配置多个地址 → 连接时选择/切换地址"的完整链路。实际操作时,在主机编辑界面中维护地址列表,随后即可在连接或操作时快速切换目标地址。
六、SSH 体验改进
18.3 对 SSH 相关能力做了系统性打磨,更新日志列出以下要点:
- 超时选项重构:重新设计 SSH 超时处理,以更好地应对意外的连接中断;
- MOTD 控制:新增设置项,可控制是否显示 SSH 登录时的 MOTD(Message of the Day)横幅;
- ProxyCommand 修复:修复自定义连接中 SSH ProxyCommand 不执行的问题;
- SSH agent 权限修复:修复 Linux/macOS 上因权限问题导致 SSH agent 公钥设置失效的问题;
- 自定义 SSH agent 行为变更:设置菜单中指定的自定义 agent socket 现在只对显式选择了"自定义 SSH agent"的连接生效,默认的 OpenSSH agent 不再套用该设置;同时修复了自定义 agent socket 路径设置不生效的问题;
- 网关用户名修复:修复用户名中包含点号(
.)时 SSH 网关(gateway)不可用的问题; - 重复输密码修复:修复编辑连接后,某些终端连接即使之前已输入过密码仍会再次询问的问题;
- 编辑器支持扩展:VsCode SSH 启动菜单新增对 VsCode Insiders 与 Trae 的支持。
七、文件浏览器改进
- 大目录传输:大目录初始传输大小估算改为动态更新并实时显示,避免长时间无反馈;
- 脚本参数:修复通过文件选择执行脚本时参数未传递的问题;
- Solaris 兼容:修复 Solaris 系统上文件列表无法加载的问题;
- Windows 刷新:修复 Windows 上单个文件选择刷新失败的问题;
- 冲突对话框:修复文件冲突对话框被截断的问题;
- cmd 重命名:修复在 cmd 中重命名失效的问题;
- 特殊字符:目录名中的美元符号(
$)现在可以正常支持; - 首尾空格:文件名带前导/尾随空格的条目现在会正确出现在文件列表中;
- Windows 执行动作:修复 Windows 上"执行"动作未限制特定文件类型、以及启用确认后不弹确认框的问题。
八、其他体验改进
- macOS 字体:更新 macOS 字体以提升可读性;不喜欢新样式可在外观设置中切回旧字体;
- Tailscale:Tailscale 连接升级为顶层条目,且可通过 git 同步;
- RDP/VNC 网关:直连 RDP 与 VNC 连接现在可以指定网关(gateway);
- 连接颜色:新增青色(cyan)与紫色(purple)两种连接颜色;
- 图标偏好:新增"优先使用单色图标而非彩色变体"的选项;
- 本地化:新增越南语翻译;
- 本地 Shell 回退:改进了本地 shell 回退处理及相关文档;
- 文档链接:设置菜单中补充了更多文档链接;
- Proxmox:Proxmox 条目现在按 vmid 排序;
- 终端支持:Kitty 与 WezTerm 现在也支持"标签页/窗口"设置选项;
- 即时同步:连接颜色等小改动现在会即时同步,无需手动触发;
- 临时文件清理:XPipe 会更高频地清理临时文件。
九、重要缺陷修复
18.3 修复了一批影响稳定性的问题,值得关注的有:
- 密码管理器:修复密码管理器未运行时,持有密码管理器身份(identity)会导致应用冻结的问题;
- 包管理器:修复 apt、rpm 包管理器因两次下载重定向导致校验和不匹配而安装失败的问题;
- 隧道:修复自动隧道重启有时导致隧道进入非法状态的问题;
- 系统识别:修复 BSD 与 Solaris 系统无法被正确识别的问题;
- 性能:修复打开连接选择器下拉列表时的性能问题;
- UI:修复部分界面元素在悬停时轻微位移的问题;
- Bitwarden:修复某些情况下每次都需要输入主密码的问题;
- Linux 重启:修复 Linux 上重启按钮不工作的问题;
- 许可证:修复 XPipe 连续运行超过一周后许可证校验失效的问题;
- git 仓库同步:修复 git 仓库(vault)版本冲突无法自动解决的问题;
- 容器服务:修复容器服务条目初次添加时不显示端口的问题。
此外,更新日志还提及大量未逐一列出的细节改动。
十、结语
XPipe 18.3 的意义在于打通了三条关键路径:让 AI Agent 通过 MCP 直接操作你的服务器资产、让云服务器与本地 SSH 连接管理体验对齐(以 Hetzner 为起点)、让网络中发现与接入新主机变得更加自动。对于日常使用者,多地址切换、SSH 超时/MOTD 控制、文件浏览器细节修复同样能直接提升体验。升级后建议按本文顺序依次体验 MCP 接入与网络扫描,并结合 MCP 源码、MCP 设置页实现 与 网络扫描菜单实现 深入理解其工作机制。
- 桌面应用
- 开发工具
- 运维
【免费下载链接】xpipe
Access your entire server infrastructure from your local desktop
相关推荐
Dalfox MCP 服务器实战指南:将 XSS 扫描工具接入 Claude、Cursor 等 AI 客户端
Dalfox MCP 服务器实战指南:将 XSS 扫描工具接入 Claude、Cursor 等 AI 客户端 导读 Dalfox 不仅是一款命令行 XSS 扫描
网络安全CLIQOwnNotes AI 集成实战:LLM 补全、脚本扩展与 MCP 服务器接入指南
QOwnNotes AI 集成实战:LLM 补全、脚本扩展与 MCP 服务器接入指南 本文系统讲解 QOwnNotes 内置的 AI(LLM)支持能力:从 AI
桌面应用VictoriaMetrics 与 AI 工具集成指南:MCP 服务器、Agent Skills 与 AI 可观测性实战
VictoriaMetrics 与 AI 工具集成指南:MCP 服务器、Agent Skills 与 AI 可观测性实战 本文以仓库 docs/ai tools
时序数据库数据库指标监控可观测性后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考