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

MCP介绍

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

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

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

架构图如下所示:

创建一个MCP服务器

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

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

python 复制代码
# 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中这样写:

python 复制代码
# 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配置文件:

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

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

目录需要改成自己的。

这样子就可以用了。

使用效果如下:

最后

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

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

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

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

相关推荐
深蓝海拓几秒前
PySide(PyQT)重新定义contextMenuEvent()实现鼠标右键弹出菜单
开发语言·python·pyqt
数据攻城小狮子2 小时前
深入剖析 OpenCV:全面掌握基础操作、图像处理算法与特征匹配
图像处理·python·opencv·算法·计算机视觉
ONE_PUNCH_Ge2 小时前
Python 爬虫 – BeautifulSoup
python
L_cl2 小时前
【Python 数据结构 1.零基础复习】
数据结构·python
Monkey_Jun2 小时前
《Python百练成仙》31-40章(不定时更新)
开发语言·python
没事偷着乐琅3 小时前
人工智能 pytorch篇
人工智能·pytorch·python
Python数据分析与机器学习3 小时前
《基于Django和ElasticSearch的学术论文搜索推荐系统的设计与实现》开题报告
大数据·开发语言·python·elasticsearch·搜索引擎·django·课程设计
邪恶的贝利亚3 小时前
Pytorch常用函数
人工智能·pytorch·python
阿正的梦工坊4 小时前
PyTorch 中的 nn.ModuleList 是什么?与普通列表有啥区别?
人工智能·pytorch·python