# 连接一个客户端

> 面向 Claude、Codex、Gemini CLI、GitHub Copilot 以及任何别的 MCP 客户端，可以直接拿去用的配置。

**连接一个客户端**卡片带着你把每一种受支持的客户端过一遍，给出可以直接复制的代码片段，里面已经带上了你配置的那个端口（下面的例子用的是默认值 18181）。所有本地客户端都直接连这个 endpoint，不用隧道。

## Claude {#claude}

Claude Chat（桌面应用）和 Claude Code（CLI 或桌面应用）的配置是分开的；连上其中一个并不会连上另一个。

- **Claude Chat（桌面应用）**：最简单的一条路。一键安装的 **MCP 捆绑包（`.mcpb`）**随应用一起提供：按**在 Claude Desktop 中安装**（或者按**另存为…**把文件留下来），然后在 Claude Desktop 里确认那个安装对话框。这个捆绑包带着一小段从 Claude 的 stdio 传输通往本工作站 HTTP endpoint 的本地桥接；它需要的 Node 运行时随 Claude Desktop 一起提供。如果你改过端口，请在安装对话框里把 endpoint 改成一致的。
- **Claude Code（CLI 或桌面应用）**：一条终端命令：

```
claude mcp add --transport http ganterlab http://127.0.0.1:18181/mcp
```

## Codex（CLI / IDE） {#codex-cli--ide}

Codex 直接把本地回环 endpoint 当作 Streamable HTTP 服务器连接。它的 `codex mcp add` 命令只涵盖 stdio 服务器，因此 HTTP 形式要写进 `~/.codex/config.toml`：

```
[mcp_servers.ganterlab]
url = "http://127.0.0.1:18181/mcp"
```

## Gemini CLI {#gemini-cli}

Gemini CLI 通过 `~/.gemini/settings.json` 里它的 `httpUrl` 服务器类型连接。（Gemini 的网页对话没有不用隧道的本地路径，所以这里只提供 CLI。）

```
{
  "mcpServers": {
    "ganterlab": {
      "httpUrl": "http://127.0.0.1:18181/mcp"
    }
  }
}
```

## GitHub Copilot {#github-copilot}

两条路，用的是两个不同的顶层键：

- **VS Code**：把这个服务器加进 `.vscode/mcp.json`（或者从命令面板运行“MCP: Open User Configuration”），然后在 Copilot Chat 的工具选择器里启用它：

```
{
  "servers": {
    "ganterlab": {
      "type": "http",
      "url": "http://127.0.0.1:18181/mcp"
    }
  }
}
```

- **CLI**：在 `~/.copilot/mcp-config.json` 里 `mcpServers` 下面写同样形状的服务器（或者在 CLI 里运行 `/mcp add`，然后选择 HTTP 服务器类型）。

## 不支持走云端的客户端 {#cloud-routed-clients-are-not-supported}

ChatGPT 的连接器、Gemini 的网页对话，以及任何别的从互联网上来够这台工作站的东西，都用不了这个 endpoint，页面也不为它们提供配置。endpoint 会在会话握手之前就拒绝任何 `Host` 头不是本地的请求，所以隧道帮不上忙：隧道转发的是它自己那个公网主机名，而那正是被拒绝的东西。工作站不会为代理向网络发布，也没有哪个开关能让它发布。

## 其他任意 MCP 客户端 {#any-other-mcp-client}

任何在这台计算机上运行、并且接受一个 HTTP MCP 服务器 URL 的客户端，都可以使用本工作站：把它指向页面上显示的那个 endpoint 就行。
