一年一度的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博客之星活动圆满成功,也祝各位参赛的大佬们都能取得优异成绩!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐