创建一个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服务器,可以这样做。
# 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配置文件:

添加一个这样的配置即可:
"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这个模型。
创建一个MCP服务器,并在Cline中使用,增强自定义功能。的更多相关文章
- 用NodeJS创建一个聊天服务器
Node 是专注于创建网络应用的,网络应用就需要许多I/O(输入/输出)操作.让我们用Node实现有多么简单,并且还能轻松扩展. 创建一个TCP服务器 var net = require('net') ...
- 【重点突破】——使用Express创建一个web服务器
一.引言 在自学node.js的过程中有一个非常重要的框架,那就是Express.它是一个基于NodeJs http模块而编写的高层模块,弥补http模块的繁琐和不方便,能够快速开发http服务器.这 ...
- Go 语言:通过TDD驱动开发创建一个 Web 服务器,用户可以在其中跟踪玩家赢了多少场游戏。
你被要求创建一个 Web 服务器,用户可以在其中跟踪玩家赢了多少场游戏. GET /players/{name} 应该返回一个表示获胜总数的数字 POST /players/{name} 应该为玩 ...
- nodejs创建一个HTTP服务器 简单入门级
const http = require('http');//请求http.createServer(function(request, response){ /*createServer该函数 ...
- 创建一个目录info,并在目录中创建一个文件test.txt,把该文件的信息读取出来,并显示出来
/*4.创建一个目录info,并在目录中创建一个文件test.txt,把该文件的信息读取出来,并显示出来*/ #import <Foundation/Foundation.h>#defin ...
- 十七、创建一个 WEB 服务器(一)
1.Node.js 创建的第一个应用 var http=require("http") http.createServer(function (req,res) { res.wri ...
- C#中关于增强类功能的几种方式
C#中关于增强类功能的几种方式 本文主要讲解如何利用C#语言自身的特性来对一个类的功能进行丰富与增强,便于拓展现有项目的一些功能. 拓展方法 扩展方法被定义为静态方法,通过实例方法语法进行调用.方法的 ...
- C# 中一些类关系的判定方法 C#中关于增强类功能的几种方式 Asp.Net Core 轻松学-多线程之取消令牌
1. IsAssignableFrom实例方法 判断一个类或者接口是否继承自另一个指定的类或者接口. public interface IAnimal { } public interface ID ...
- python web编程 创建一个web服务器
这里就介绍几个底层的用于创建web服务器的模块,其中最为主要的就是BaseHTTPServer,很多框架和web服务器就是在他们的基础上创建的 基础知识 要建立一个Web 服务,一个基本的服务器和一个 ...
- Missian指南三:创建一个Missian服务器(使用spring)
在使用Missian时,spring是可选的,但是作者本人强烈推荐和Spring配合使用.Spring是一个伟大的项目,并且它不会对程序在运行时的效率带来任何损耗. Missian在服务器端依赖与Mi ...
随机推荐
- MySQL 时区与 serverTimezone
TL;DR 手动为 MySQL 指定非偏移量的时区,以避免 TIMESTAMP 类型夏令时问题和时区转化性能瓶颈 TIMESTAMP 范围:'1970-01-01 00:00:01' UTC to ' ...
- PySAGES结合CUDA SPONGE增强采样
技术背景 在前面的一篇博客中,我们介绍过PySAGES这个增强采样软件的基本安装和使用方法.该软件类似于Plumed是一个外挂增强采样软件,但是PySAGES是基于Python语言和Jax框架来实现的 ...
- K8S学习笔记之卸载K8S集群
阅读目录 0x00 概述 0x01 操作 0x00 概述 有时候需要卸载已安装在本机的K8S服务和服务,本文卸载的K8S面向使用kubeadm或者二进制方法安装的,不涉及使用rpm包安装的集群: 主 ...
- Qt编写可视化大屏电子看板系统24-模块2当月计划
一.前言 延续分层模块化的设计思路,当月计划模块主要包括模具达成率.零件达成率.零件数.每日工序达成数5个子模块,其中模具达成率采用自定义控件环形图展示,比如计划多少达成多少,达成作为进度:零件达成率 ...
- 海量用户IM聊天室的架构设计与实践
本文由网易云信资深服务端开发工程师曹佳俊分享,本文收录时有内容修订和重新排版. 1.引言 聊天室是一类非常重要的 IM 业务形态,不同于单聊和群聊,聊天室是一种大规模的实时消息分发系统.聊天室有多种技 ...
- svtools lmerge具体算法
svtools具有不同的子命令以实现不同的功能,其中一个就是lmerge.根据其帮助文档(merge LUMPY calls inside a single file from svtools lso ...
- HVV面试
linux日志管理 1. 检查系统帐号安全(1) /etc/passwd(2) /etc/shadow(3) 特权用户(uid==0)awk -F: '$3==0{print $1}' /etc/pa ...
- (.net core)Kong网关的使用
一.优势: 提供统一的 API 管理,简化流量控制.负载均衡.安全性控制等工作. 有可视化界面可操作,支持高度 可扩展性,可以通过插件来扩展功能. 在 微服务架构 中表现优异,支持多种协议和高并发场景 ...
- Solution Set -「NOIP Simu.」20221011
「Unknown」找 给出平面上 \(n\) 个点, 对于每个点, 求出它到其他点的欧式距离平方和. \(n\le2\times10^5\). Tag:「水题无 tag」 画风正常的签 ...
- MSXML2.DOMDocument加载Internet资源
MSXML2.DOMDocument加载Internet资源 The information in this article applies to: Microsoft XML, versions 2 ...