【2025年度创作】分享和总结如何通过AI快速开发一款MCP(模型上下文协议)服务插件,并进行本地和线上部署测试,最后上架MCP以及智能体调用MCP插件
一年一度的CSDN博客之星活动现已开启!时光飞逝,转眼已是2025。这一年,我依然坚持在CSDN平台持续创作,也见证了AI与智能体领域的持续升温,特别是MCP(模型上下文协议)技术带来的崭新突破。
值此CSDN平台年度技术盛会之际,博主将撰写一篇技术实战总结型文章,系统分享如何利用AI高效开发MCP服务插件,涵盖从本地调试、线上部署到智能体使用的全流程。
目录
MCP简介
MCP(Model Context Protocol,模型上下文协议) 是专为大语言模型(LLM)应用设计的开放协议,旨在实现 LLM 与外部工具和数据源的无缝集成。它通过统一的接口规范,将原本分散的 API 工具集成简化为"即插即用"模式,解决传统 API 工具中存在的多协议适配、高开发成本等问题。
特别注意:等你跑通一遍MCP后,回过来再看一遍MCP的解释,你就会对MCP模型上下文协议这个概念有所了解,确实是上下文。

MCP(Model Context Protocol)可以理解为让AI模型(比如ChatGPT)连接外部工具的“万能插座”。
简单来说:
- 以前AI只能靠自己的知识回答问题,现在通过MCP,AI可以安全地连接各种工具(比如读取文件、查询数据库、控制智能设备)。
- 就像给你的电脑插上U盘或打印机一样,MCP让AI瞬间获得新能力,而且开发者可以轻松为AI创建新工具。
- 整个过程安全可控,AI只能使用你明确允许的工具,不会越权访问。
举个例子:有了MCP,你可以直接对AI说“帮我总结昨天写的文档”,AI就会通过MCP读取你的文档并生成摘要,而之前这是做不到的。
下面博主就通过通义灵码插件来体验下MCP简单的开发和使用过程。
安装插件
博主使用VSCode进行开发,其核心辅助工具是“通义灵码”插件。安装非常简单,只需在VSCode扩展商店中搜索“Lingma”并安装,登录后即可开始使用它辅助MCP开发。
MCP开发
博主本次开发的MCP的功能主要是查询数据库表,设置多个工具,可以通过博主名查询博主当前排名,也可以输出所有排名信息等工具。
2025博客之星年度评选入围榜单公布:https://blog.csdn.net/blogdevteam/article/details/156200344
创建表

CREATE TABLE top300_ranking (
id INT NOT NULL AUTO_INCREMENT COMMENT '编号',
total_rank INT NOT NULL COMMENT '总排名',
csdn_nickname VARCHAR(100) NOT NULL COMMENT 'CSDN昵称',
blog_homepage VARCHAR(255) NOT NULL COMMENT '博客主页',
original_score INT NOT NULL COMMENT '原创博文得分',
quality_score INT NOT NULL COMMENT '质量分得分',
identity_score INT NOT NULL COMMENT '身份得分',
interaction_score INT NOT NULL COMMENT '互动得分',
ranking_score INT NOT NULL COMMENT '上榜得分',
total_score INT NOT NULL COMMENT '排名总分',
add_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
data_memo VARCHAR(500) COMMENT '备注',
data_status TINYINT DEFAULT 1 COMMENT '数据状态(1-正常,0-删除,或其他状态码)',
PRIMARY KEY (id),
UNIQUE KEY uk_total_rank (total_rank),
INDEX idx_csdn_nickname (csdn_nickname),
INDEX idx_total_score (total_score DESC)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='TOP 300 榜单排名';
提示词
既然是AI,那就用自然语言来让AI帮我们写代码实现MCP服务功能。
核心提示词就是:编写一个FastMCP框架实现MCP Server的脚手架工程,生成pyhon文件。
目的是使用python对应的mcp框架。
编写一个FastMCP框架实现MCP Server的脚手架工程,生成pyhon文件。
这个MCP服务主要实现如下功能:
1、获取某个博主排名信息,并通过【博客主页网址】获取当前博主个人主页信息以及发表文章篇数信息
调用此工具功能,必须调用查询条件select * from top300_ranking where csdn_nickname=‘昵称值参数’
2、获取汇总信息
输出汇总信息sql语句,可以按总分等汇总信息输出
【下面是mysql表信息】
CREATE TABLE top300_ranking (
id INT NOT NULL AUTO_INCREMENT COMMENT ‘编号’,
total_rank INT NOT NULL COMMENT ‘总排名’,
csdn_nickname VARCHAR(100) NOT NULL COMMENT ‘CSDN昵称’,
blog_homepage VARCHAR(255) NOT NULL COMMENT ‘博客主页’,
original_score INT NOT NULL COMMENT ‘原创博文得分’,
quality_score INT NOT NULL COMMENT ‘质量分得分’,
identity_score INT NOT NULL COMMENT ‘身份得分’,
interaction_score INT NOT NULL COMMENT ‘互动得分’,
ranking_score INT NOT NULL COMMENT ‘上榜得分’,
total_score INT NOT NULL COMMENT ‘排名总分’,
add_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT ‘添加时间’,
data_memo VARCHAR(500) COMMENT ‘备注’,
data_status TINYINT DEFAULT 1 COMMENT ‘数据状态(1-正常,0-删除,或其他状态码)’,
PRIMARY KEY (id),
UNIQUE KEY uk_total_rank (total_rank),
INDEX idx_csdn_nickname (csdn_nickname),
INDEX idx_total_score (total_score DESC)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=‘TOP 300 榜单排名’;
根据提示词,最终会生成的代码和结构如下:
安装依赖
博主觉得AI同时生成了README.md文件,帮我们把项目使用和启动等步骤都写得非常清楚,省了不少时间。
配置数据库连接
根据自己得mysql连接信息进行填写
启动服务
第一次启动得时候可能会提示一些报错,直接复制报错信息让AI进行修复即可,经过多轮修复后,启动得效果如下:
由于当前生成的代码是以STDIO方式启动的MCP服务,博主这里想使用的是http形式启动:
py app.py --transport http --host 127.0.0.1 --port 8080 --path /mcp
直接继续让AI进行修复兼容即可,基本不用写任何代码,全部由AI来完成。
下面就是以http方式启动效果图
复制网址在浏览器上是可以直接访问的,显示下面信息说明启动成功。
本地部署MCP
点击右上角得用户信息,下拉点击个人设置
点击MCP服务

点击MCP右上角的加号,相关信息填写如下:
名称:mcpcsdn(根据自己业务来)
类型:SSE或Streamable HTTP(STDIO这个类型还没试过)
服务地址:http://127.0.0.1:8080/mcp(就是刚刚启动的地址)
高级设置:博主这里暂时没有用到这个就没有填写,可留空

MCP服务这里就会自动获取对应工具信息
调用测试
询问: 全栈小5目前排名第几
AI会优先查找可用的MCP服务插件,然后智能调用对应的工具获取信息。


从上图可以看到,已经成功调用到MCP,并且查询数据库返回了相关信息,最后大模型根据从MCP工具中数据库表获取到的数据进行优化输出,博主询问的是全栈小5当前排名第几,不仅输出了博主是第几名,还有额外的具体各维度得分信息输出,第一轮博主得分440,属于中等分数,希望在接下来的两轮中取得好名次,也祝大家都能取得佳绩。
很显然,MCP在整个大模型AI输出过程中起到了数据补充的作用,是不是有点像知识库一样,而且还是动态化的数据,相比起知识库会更加灵活。
再测试个例子:
询问: 总分都有那些档次,划分档次并统计都有多少名博主

从上图可以看到,根据用户的提问AI能够准确知道调用获取所有排名的MCP工具,然后再进行汇总输出输出,是不是非常有意思,有没有对MCP有一定了解了。
| 档次划分 | 分数范围 | 人数 | 代表博主(示例) |
|---|---|---|---|
| 顶级 | 500分 | 1 | 盼小辉丶(总分500分) |
| 超高级 | 470-489分 | 4 | 夜郎king(485分)、青云交(480分)、猫头虎(470分)等 |
| 高级 | 450-469分 | 61 | 一键难忘、越重天、Francek Chen等(部分470分)及大量460/450分博主 |
| 中级 | 440分 | 97 | 比特魔法师、是Dream呀、全栈小5等(440分) |
| 良好 | 430分 | 107 | 码农研究僧、工藤学编程、时光の尘等(430分) |
| 中等 | 420分 | 84 | 几何心凉、Yeats_Liao、极客不孤独等(420分) |
| 合格 | 410分 | 46 | 狮子也疯狂、繁依Fanyi、架构进化论等(410分) |
| 总计 | 410-500分 | 300 | 全体博主 |
到此,本地化部署MCP服务插件就算完成了,虽然过程中会出现一些问题,但是基本都是可以通过AI进行多轮询问得到解决,并且在过程中博主基本没有写过一行代码,全程由AI来完成,实现思路由我们自己通过自然语言来控制。
线上部署
由于博主对Windows服务器更为熟悉,本次部署环境选定为Windows。
具体步骤为:首先在服务器上运行MCP服务的Python程序,随后配置Nginx反向代理,并绑定域名以实现外网访问。
上传源码
直接将本地python代码上传到外网服务里
安装Python
在启动前确保已经安装了python相关软件。
安装python软件的cmd命令,直接通过链接下载安装
# 下载Python安装程序
curl -o python-installer.exe https://www.python.org/ftp/python/3.14.0/python-3.14.0-amd64.exe
或者直接下载进行安装(推荐用这个方式,下载速度比较快)
cmd命令:python --version,能够显示版本号则标识已经安装成功
安装依赖
直接在当前python文件目录执行cmd命令,README.md这个文件里也有具体步骤:
pip install -r requirements.txt

启动服务
在当前目录下,执行下面命令启动服务
py app.py --transport http --host 127.0.0.1 --port 8080 --path /mcp

nginx反向代理
在上一步,MCP服务已在服务器的本地环境成功启动。
接下来,需配置Nginx反向代理,将本地服务映射至公网域名,以实现通过域名访问。
nginx windows版本下载地址:https://nginx.org/en/download.html
建议解压到mcp所在同级目录
修改nginx.conf文件内容,由于博主的80端口已经被占用,这里使用其他端口号测试
worker_processes 1;
# 必须要有 events 块
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# 您的反向代理配置
server {
listen 8081;
server_name 自己域名;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
}
# 可选:默认的 localhost 服务器
server {
listen 8081;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
设置bat启动文件
@echo off
cd C:\web\mcp_csdn\nginx
start nginx.exe
echo Nginx started.
pause

本地测试
直接在VSCode里通过域名方式来添加MCP
上架MCP
非常简单,和在VSCode里手动添加类似

工具调试


使用MCP
创建一个智能体并使用MCP,这里主要是用来测试,所以简单创建一个智能体引用MCP即可查看效果

到此,MCP的开发、本地部署、线上部署、智能体使用MCP就搞定啦
MCP和API区别
在开发MCP前博主有个疑问,为啥不直接用api就得了,非得出来个MCP,实际上他们也都是类似调用的一个地址,所以,这里还是要了解下他们之间的区别,也能知道MCP的核心价值。
| 特性维度 | API | MCP |
|---|---|---|
| 全称与定义 | 应用程序编程接口 一种通用技术标准与规范,定义了软件组件之间如何通信。 |
模型上下文协议 一个具体的协议和框架,专为让AI助手能安全、标准化地使用工具和数据源而设计。 |
| 本质与角色 | “通用语言”或“服务菜单” 任何软件(服务器、库、操作系统)都可以提供API,任何客户端(其他软件或开发者)都可以调用。 |
“专用工具箱连接协议” 它是API的使用者,也是一个标准化的包装层。它定义AI(客户端)如何发现、调用工具(服务器),以及工具如何被描述。 |
| 核心目的 | 实现系统间的集成与功能调用。 (例如:前端获取后端数据,App集成支付功能) |
安全、可控地扩展AI助手的能力边界。 (例如:让AI能读取数据库、执行命令、操作日历,而无需微调模型本身) |
| 主要使用者 | 开发者 编写代码来调用。 其他软件程序也可以调用。 |
AI助手/智能体(如Claude Desktop, Cursor等)自动发现并调用。 (开发者负责为AI创建MCP工具) |
| 关系与比喻 | 基础技术设施。 好比电力系统(提供标准的电压和接口)。 |
建立在API之上的应用层协议。 好比一套标准插头和智能家电协议,让所有电器都能安全、即插即用地接入电力系统,并被智能管家统一控制。 |
| 关键特性 | - 风格多样(REST, GraphQL, gRPC等) - 注重性能、数据格式 - 认证和授权机制各异 |
- 标准化工具描述(名称、参数、schema) - 资源概念(可读取的静态数据流) - 强调安全与控制(主机严格控制可用工具) - 动态发现(AI启动时自动获取可用工具列表) |
| 一个简单类比 | 餐厅的纸质菜单和点餐流程。 (顾客需要自己阅读菜单、呼叫服务员、说出菜品) |
餐厅的智能点餐平板。 (平板自动连接后,主动推送所有可点的菜,顾客(AI)只需描述需求,平板就能理解并格式化成标准订单发送后厨。) |
了解之后,只要是后端开发语言,大部分都会有MCP插件库,像Python、Java、C#都有类似MCP插件库直接可使用和封装MCP。
总结
至此,MCP的开发、本地与线上的部署应用,以及智能体调用MCP的全流程已完成。
简而言之,它与常规API的作用类似,但封装了特定领域的业务逻辑,是大模型功能调用的标准化接口。
感兴趣的朋友可以动手实践体验MCP服务插件。
最后,祝CSDN 2025博客之星活动圆满成功,也祝各位参赛的大佬们都能取得优异成绩!
更多推荐



所有评论(0)