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

创建一个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 Pathfrom 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 resultsif __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.lryc.cn/news/545694.html

相关文章:

  • Android Activity栈关系解析
  • java使用word模板填充内容,再生成pdf
  • 回归实战详细代码+解析:预测新冠感染人数
  • AI人工智能机器学习之聚类分析
  • (下:补充——五个模型的理论基础)深度学习——图像分类篇章
  • 使用Python自动生成图文并茂的网页分析报告
  • uniapp-原生android插件开发摘要
  • GIT工具学习【1】:基本操作
  • 《国密算法开发实战:从合规落地到性能优化》
  • 【语法】C++中string类中的两个问题及解答
  • LeetCode-154. 寻找旋转排序数组中的最小值 II
  • 2.数据结构:1.Tire 字符串统计
  • C语言复习4:有关数组的基础常见算法
  • Ubuntu从零创建Hadoop集群
  • GPIO概念
  • Node.js, Bun, Deno 比较概述
  • C# 类库打包dll文件
  • Linux中的UDP编程接口基本使用
  • RAG项目实战:金融问答系统
  • 大白话React第十一章React 相关的高级特性以及在实际项目中的应用优化
  • 虚拟机Linux操作(持续更新ing)
  • 【开源-线程池(Thread Pool)项目对比】
  • JMeter 实战项目脚本录制最佳实践(含 BadBoy 录制方式)
  • Jackson注解实战:@JsonInclude的妙用
  • CAN总线通信协议学习1——物理层
  • Vim 常用快捷键大全:跳转、编辑、查找替换全解析
  • 【Python 数据结构 2.时间复杂度和空间复杂度】
  • 【Qt QML】QML鼠标事件(MouseArea)
  • LeetCode 202. 快乐数 java题解
  • 《认知·策略·跃迁:新能源汽车工程师的深度学习系统构建指南》