2025-06-06 00:46:12 +08:00

78 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 连接 mcp 服务器
不同于 Claude Desktop 和其他的 MCP 客户端类产品OpenMCP 进行 MCP 服务器连接的步骤是相当丝滑的。
:::info MCP客户端
MCP 客户端是指能够通过 MCP 协议进行通信的大模型对话客户端通常是一个运行在本地的应用程序因为网页没有文件IO的权限。它的产品形式目前几乎都是聊天机器人的形式类似于你在网页使用的 chat.deepseek.com 或者 chat.openai.com
:::
首先,打开你的 VLE在 [[acquire-openmcp|获取 OpenMCP]] 中完成 OpenMCP 的安装后,我们先用 python 创建一个最简单的 mcp 服务器,来测试 mcp 客户端的连接。
## 使用 OpenMCP 一键连接
在 [[first-mcp|你的第一个 MCP]] 这个例子中,我们申明了三个函数,用作 mcp 的 toolresource 和 prompt。在 OpenMCP 中启动它们非常简单,点击右上角的 OpenMCP 图标即可连接:
![](./images/connect-simple.png)
如果登录完成后,如图显示连接成功,则代表当前已经成功启动并连接 mcp 服务器。
![](./images/connect-success.png)
## STDIO 连接的启动
对于 STDIO 为连接选项的开发方案,我们提供了一键式的快速启动,您不需要额外启动 mcp 的进程。OpenMCP 会自动连接和销毁。
目前支持的编程语言和它们对应的启动参数为:
|语言|连接参数|启动目录|
|:-|:-|:-|
|python|uv run mcp run $\{file\} | 往上追溯,第一个找到的 pyproject.toml 的目录|
|nodejs|node $\{file\}| 往上追溯,第一个找到的 package.json 的目录|
|go|go run $\{file\}| 往上追溯,第一个找到的 go.mod 的目录|
## SSE & Streamable HTTP 连接的启动
对于 SSE 和 Streamable HTTP 这两种远程连接的方式,由于我们并不知道您到底在哪个端口启动的服务器(因为你有可能把启动的 host 和 port 写在不可见的配置文件里或者写在环境变量里),因此,对于远程连接的情况,我们不支持自动创建服务器,您需要手动配置启动选项。
点击 VLE 左侧插件栏目的 OpenMCP在 「MCP 连接(工作区)」 视图中,点击 + ,就可以创建一个新的连接。
![](./images/add-connection.png)
选择你需要的通信方式。
![](./images/select-server-type.png)
输入MCP Server的地址。
![](./images/connect-sse.png)
:::info
需要注意的是不同的通信方式一般使用不同endpoint目前的MCP server大多遵循下面的原则
如果是以 SSE 启动,那么默认使用 /sse 作为endpoint比如 http://localhost:8001/sse
如果是以 Streamable Http 启动,那么默认使用 /mcp 作为endpoint比如 http://localhost:8001/mcp
当然允许MCP Server使用两个不同的endpoint同时支持两种连接方式这对于想要迁移到Streamable Http但短时间又不能放弃SSE的情况特别有效
:::
## openmcp 插件的控制面板
在 VLE 的左侧可以找到 openmcp 的图标,点击后就是 openmcp 的控制面板。
![](./images/openmcp-control-panel.png)
当前工作区曾经连接过的 mcp 服务器会出现在这里,这是因为 openmcp 默认将工作区启动的 mcp 的连接信息存储在了 `.vscode/tabs.{server-name}.json` 中,其中 `{server-name}` 就是 mcp 服务器连接成功的服务器名称。
:::warning
注意,同一个项目中,你不应该有两个名字完全相同的 mcp 服务器,这会导致 `.vscode/tabs.{server-name}.json` 连接信息存储冲突,发生未知错误。
:::
如果你想要在任意工作区都能使用同一个 mcp 服务器,可以考虑在「安装的 MCP 服务器」中添加成熟耐用的 mcp 服务器,这个位置添加的 mcp 服务器全局可用。
在「入门与帮助」中,我们准备了一些可供入门的参考资料,还请阁下善加利用。