掘金 人工智能 前天 15:43
Cline 如何调用自己的 MCP 服务器
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了如何在Cline中配置和使用模型上下文协议(MCP)服务器,从而实现灵活的模型调用和平台切换。文章详细讲解了创建MCP服务器的步骤,包括使用FastMCP库编写获取天气信息的工具。随后,展示了如何在Cline中配置MCP服务器,包括本地stdio方式和远程sse方式,以及配置文件的具体参数含义。最后,强调了MCP协议的通用性,使得不同平台间的MCP服务器可以共享使用,提供了极大的灵活性。

💡MCP(模型上下文协议)允许社区共享服务器,并支持平台无缝切换,Cline、Claude等平台均可调用同一个MCP服务器,无需修改服务器内容,只需修改客户端配置。

🔨创建MCP服务器时,可以使用FastMCP库,例如通过定义`get_today`和`get_weather`函数,分别获取当前时间和指定城市的天气信息。这些函数被标记为`@mcp.tool()`,表明它们是可供调用的工具。

⚙️在Cline中配置MCP服务器,需要修改配置文件,其中`mcpServers`是顶层配置,以键值对形式配置所有MCP服务器。`stdio`方式在客户端本地运行程序,需要指定`command`和`args`;`sse`方式则允许访问远程服务器,需要配置`url`。

🌐使用stdio方式时,MCP服务器在客户端机器上执行;使用sse方式时,服务器可以在本机或远程机器上执行,只需修改mcp的运行参数和配置文件中的url即可。

🤝由于MCP协议的统一性,Cline、Claude等平台可以共享MCP服务器。用户可以在Cline的Marketplace中下载共享的MCP服务器,实现工具的复用。

一、前言

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

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

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

二、创建MCP服务器

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

mkdir mcpservercd mcpserveruv inituv add fastmcp

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

from datetime import datetimefrom fastmcp import FastMCPmcp = 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 服务器了。具体配置如下:

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

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

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

其含义如下:

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

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

cd /Users/zackfair/apps/mcpserveruv run server.py

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

四、访问远程服务器

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

mcp.run('sse', host='0.0.0.0', port=8000, path='/mcp')

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

uv run server.py

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

{ "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 客户端服务器都是可以共享使用。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

MCP Cline 模型上下文协议 FastMCP 服务器配置
相关文章