Cline 如何调用自己的 MCP 服务器

一、前言

MCP 全称模型上下文协议,而上下文指的是模型可以接入的内容,比如 prompt、resource和 tool。MCP 的出现允许社区共享 MCP 服务器,同时也支持平台无缝切换。

比如可以用 Cline、Claude等调用同一个MCP 服务器,而不需要修改 MCP 服务器的内容,只需要修改客户端配置即可。

今天我们来学习如何用Cline 调用自己的 MCP 服务器。

二、创建MCP服务器

首先创建一个项目,并使用 uv 作为运行环境:

bash 复制代码
mkdir mcpserver
cd mcpserver
uv init
uv add fastmcp

然后可以使用 FastMCP 创建一个 MCP 服务器。这里以获取天气为例,具体代码如下:

python 复制代码
from datetime import datetime

from fastmcp import FastMCP

mcp = FastMCP()


@mcp.tool()
def get_today():
    """
    获取今天的时间,精确到秒
    :return: 年月日时分秒的字符串
    """
    return datetime.today().strftime('%Y.%m.%d %H-%M-%S')


@mcp.tool()
def get_weather(city: str, date: str):
    """
    获取 city 的天气情况
    :param city: 城市
    :param date: 日期
    :return: 城市天气情况的描述
    """
    return f"{city} {date} 天晴,18度。"


if __name__ == '__main__':
    mcp.run()

创建服务器后,可以来到Cline 配置 MCP 服务器了。

三、配置MCP服务器

首先确保 Visual Studio Code 安装了 Cline 插件,然后选中 Cline 插件,依次点击图中位置:

点击后就可以开始编辑 MCP 服务器了。具体配置如下:

json 复制代码
{
  "mcpServers": {
    "weather": {
      "disabled": false,
      "timeout": 60,
      "type": "stdio",
      "command": "uv",
      "args": [
        "--directory",
        "/Users/zackfair/apps/mcpserver",
        "run",
        "server.py"
      ]
    }
  }
}

首先是顶层的 mcpServers,以键值对形式配置所有的 MCP 服务器。这里配置了一个 weather 服务,weather 对应的配置如下:

json 复制代码
{
      "disabled": false,
      "timeout": 60,
      "type": "stdio",
      "command": "uv",
      "args": [
        "--directory",
        "/Users/zackfair/apps/mcpserver",
        "run",
        "server.py"
      ]
}

其含义如下:

  1. disabled:是否禁用
  2. timeout:服务器超时时间
  3. type:通信方式,stdio 表示标准 IO,即在客户端本地运行程序
  4. command:运行命令
  5. args:命令参数

最终效果像是在客户端运行如下命令:

bash 复制代码
cd /Users/zackfair/apps/mcpserver
uv run server.py

配置完成后,就可以在 Cline 中调用该 MCP 服务器:

四、访问远程服务器

MCP 提供了 stdio 和 sse 方式的调用,我们对 MCP 服务器进行简单修改:

python 复制代码
mcp.run('sse', host='0.0.0.0', port=8000, path='/mcp')

只需要将 mcp的运行参数修改一下,然后手动运行 MCP 服务器即可:

bash 复制代码
uv run server.py

然后在配置文件中添加新的 mcpServer:

json 复制代码
{
 "mcpServers": {
   "weather": {...},
   "weather2": {
     "autoApprove": [],
     "disabled": false,
     "timeout": 60,
     "url": "http://localhost:8000/mcp",
     "type": "sse"
   }
 }
}

这里参数基本一致,url 根据实际情况来修改host、port 和 path即可。

使用 stdio 方式 MCP 服务器实际是在客户端机器上执行,而使用 sse 形式服务器可以在本机执行也可以在远程机器执行。

五、总结

在 Cline 中,我们可以通过上述方式配置别人写好的服务器,也可以直接在Cline 的 Marketplace 中下载共享的 MCP 服务器。如图所示:

除了 Cline,在 Claude等其他 MCP 平台配置也是一样的。因为都是基于 MCP 协议,而协议规定的内容是一致的,因此 MCP 客户端服务器都是可以共享使用。

相关推荐
xrlfreedom10 小时前
大厂 MCP 面试实录:基于 OpenTelemetry 与 OAuth 2.1 的可重复集成测试方案设计
opentelemetry·mcp·oauth 2.1
吴佳浩1 天前
为什么每个人最终都会使用 Agent?从 LLM 到 Agent,看懂 AI 为什么一定会走向执行时代
llm·agent·mcp
仓三1 天前
Chrome DevTools MCP 上手:让 Coding Agent 自己调试前端页面
前端·chrome devtools·mcp
xrlfreedom1 天前
大厂 MCP 面试实录:设计需人工确认的高风险 Tool 的工程化方案
opentelemetry·mcp·rag 知识库·向量检索与重排
gsls2008081 天前
OpsKat封装MCP:用 Go 标准库把运维 CLI 变成 AI 的“手“
运维·人工智能·golang·mcp
zhuodedao1 天前
Spring AI + MCP 文件工具未调用问题复盘:为什么初始化成功却没有写入文件?
java·debug·agent·springai·mcp
夜猫逐梦1 天前
【MCP】ida-pro-mcp 入门实战:安装、启动并用 MCP Inspector 调通四层连通
ida·mcp·ida-pro-mcp
VIP_CQCRE1 天前
用 Ace Data Cloud 把 Cline 接入你的 AI 编程工作流
ai编程·vs code·cline·acedatacloud
Geek-Chow1 天前
MCP 模型上下文协议:四、概念地图 · 八个概念与五个组件
人工智能·大语言模型·mcp
张彦峰ZYF2 天前
MCP 从“能连工具”到“像 Web 一样部署”——无状态核心、扩展框架与企业级 Agent 基础设施的真正分水岭
人工智能·llm·agent·mcp