创建一个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这个模型。

相关推荐
XiaoMu_00112 分钟前
基于Django+Vue3+YOLO的智能气象检测系统
python·yolo·django
honder试试1 小时前
焊接自动化测试平台图像处理分析-模型训练推理
开发语言·python
心本无晴.1 小时前
Python进程,线程
python·进程
java1234_小锋4 小时前
Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征提取 - 主成分分析 (PCA)
python·机器学习·scikit-learn
java1234_小锋4 小时前
Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征提取 - 线性判别分析 (LDA)
python·机器学习·scikit-learn
思辨共悟5 小时前
Python的价值:突出在数据分析与挖掘
python·数据分析
计算机毕业设计木哥5 小时前
计算机毕设选题:基于Python+Django的B站数据分析系统的设计与实现【源码+文档+调试】
java·开发语言·后端·python·spark·django·课程设计
中等生6 小时前
Pandas 与 NumPy:数据分析中的黄金搭档
后端·python
用户8356290780516 小时前
Python查找替换PDF文字:告别手动,拥抱自动化
后端·python
星哥说事6 小时前
Python自学12 — 函数和模块
开发语言·python