当前位置: 首页 > article >正文

创建一个MCP服务器,并在Cline中使用,增强自定义功能。

MCP介绍

MCP 是一个开放协议,它标准化了应用程序如何向LLMs提供上下文。可以将 MCP 视为 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种标准化的方法来将您的设备连接到各种外围设备和配件一样,MCP 提供了一种标准化的方法来将 AI 模型连接到不同的数据源和工具。

MCP 帮助您在 LLMs 之上构建代理和复杂的工作流程。LLMs 经常需要与数据和工具集成,MCP 提供了:

  • 一个不断增长的预构建集成列表,您的 LLM 可以直接插入其中
  • 在LLM供应商和厂商之间切换的灵活性
  • 在您的基础设施内保护数据的最佳实践

架构图如下所示:

image-20250302094005211

创建一个MCP服务器

可以把Cline当成是一个MCP客户端,现在我们只要构建了一个MCP服务就可以在Cline中使用。

我想创建一个使用duckduckgo搜索的MCP服务器,可以这样做。

# Create a new directory for our project
uv init duckduckgo_mcp
cd duckduckgo_mcp

# Create virtual environment and activate it
uv venv
.venv\Scripts\activate

# Install dependencies
uv add mcp[cli] duckduckgo_search

main.py中这样写:

# server.py
from mcp.server.fastmcp import FastMCP
from duckduckgo_search import DDGS
from typing import Annotated
from pathlib import Path

from pydantic import BaseModel, Field

# Create an MCP server
mcp = FastMCP("DuckDuckGo-Search")
   
@mcp.tool()
def run_duckduckgo(query:str):
  """
  获取网络信息
  """
  results = DDGS().text(query, max_results=10)

  return results

if __name__ == "__main__":
   print("Server running")
   mcp.run(transport='stdio')

就是这么简单,一个使用duckduckgo获取网络信息的MCP服务器就创建好了。

在Cline中使用

打开MCP配置文件:

image-20250302094611083

添加一个这样的配置即可:

 "duckduckgo_search": {
      "command": "uv",
      "args": [
        "--directory",
        "D:\\Learning\\AI-related\\mcp-demo\\duckduckgo_mcp",
        "run",
        "main.py"
      ],
      "disabled": false,
      "autoApprove": []
    }

目录需要改成自己的。

image-20250302095107930

这样子就可以用了。

使用效果如下:

image-20250302095528118

image-20250302095345177

image-20250302095410077

image-20250302100332866

image-20250302100405096

image-20250302100444238

最后

很多开发者可能对MCP还不熟悉,MCP有客户端与服务器端,但是完全可以先把Cline当作是一个MCP客户端,刚开始自己只需要去创建或者使用一些MCP服务器端,感受一下MCP的功能,感兴趣的话再深入探索,再自己做一个MCP客户端也不迟。

就像Cline的博客中提到的那样,“忘记“模型上下文协议”——只需将这些视为 Cline 的额外工具”,先体验了大概就知道是什么东西了。

还有一个常有的困扰,就是MCP是否只能Claude才能用呢?毕竟是Anthropic主导提出来的。

不是只有Claude才能用,其它模型也能用,我上面使用的是Qwen/Qwen2.5-72B-Instruct这个模型。


http://www.kler.cn/a/569103.html

相关文章:

  • 通俗解释机器学习中的召回率、精确率、准确率
  • 学习C++常用词汇词组及缩写汇总
  • 腿足机器人之十四-强化学习SAC算法
  • 突破Ajax跨域困境,解锁前端通信新姿势
  • CMake高级特性:构建复杂项目的核心技巧
  • mysqldump 参数详解
  • 公寓管理租房小程序毕业系统设计
  • P10265 [GESP样题 七级] 迷宫统计
  • React低代码项目:Redux 状态管理
  • 数据结构——排序4
  • 深入理解Java网络编程:从基础到高级应用
  • C语言面试常见问题
  • 云计算第二周学习问题总结
  • 从0学习Spark
  • 开启AI短剧新纪元!SkyReels-V1/A1双剑合璧!昆仑万维开源首个面向AI短剧的视频生成模型
  • 安当全栈式MySQL安全解决方案:透明加密、动态凭据与勒索防护一体化实践
  • 基于Linux系统的物联网智能终端
  • 《C++运算符重载深度解析:从加法、流操作到仿函数与类型转换》
  • 江协科技/江科大-51单片机入门教程——P[1-3] 单片机及开发板介绍
  • 【容器化】低版本docker拉取ubuntn 22.04镜像启动容器执行apt update提示 NO_PUBKEY 871920D1991BC93C