【2025年度创作】分享和总结如何通过AI快速开发一款MCP(模型上下文协议)服务插件,并进行本地和线上部署测试,最后上架MCP以及智能体调用MCP插件

【2025年度创作】分享和总结如何通过AI快速开发一款MCP(模型上下文协议)服务插件,并进行本地和线上部署测试,最后上架MCP以及智能体调用MCP插件
一年一度的ZEEKLOG博客之星活动现已开启!时光飞逝,2025的代码即将合上尾页,指针向前,2026的技术新篇静待启封。这一年,我依然坚持在ZEEKLOG平台持续创作,也见证了AI与智能体领域的持续升温,特别是MCP(模型上下文协议)技术带来的崭新突破。
值此ZEEKLOG平台年度技术盛会之际,博主将撰写一篇技术实战总结型文章,系统分享如何利用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.ZEEKLOG.net/blogdevteam/article/details/156200344

创建表

CREATETABLE top300_ranking ( id INTNOTNULLAUTO_INCREMENTCOMMENT'编号', total_rank INTNOTNULLCOMMENT'总排名', ZEEKLOG_nickname VARCHAR(100)NOTNULLCOMMENT'ZEEKLOG昵称', blog_homepage VARCHAR(255)NOTNULLCOMMENT'博客主页', original_score INTNOTNULLCOMMENT'原创博文得分', quality_score INTNOTNULLCOMMENT'质量分得分', identity_score INTNOTNULLCOMMENT'身份得分', interaction_score INTNOTNULLCOMMENT'互动得分', ranking_score INTNOTNULLCOMMENT'上榜得分', total_score INTNOTNULLCOMMENT'排名总分', add_time TIMESTAMPDEFAULTCURRENT_TIMESTAMPCOMMENT'添加时间', data_memo VARCHAR(500)COMMENT'备注', data_status TINYINTDEFAULT1COMMENT'数据状态(1-正常,0-删除,或其他状态码)',PRIMARYKEY(id),UNIQUEKEY uk_total_rank (total_rank),INDEX idx_ZEEKLOG_nickname (ZEEKLOG_nickname),INDEX idx_total_score (total_score DESC))ENGINE=InnoDBDEFAULTCHARSET=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 ZEEKLOG_nickname=‘昵称值参数’
2、获取汇总信息
输出汇总信息sql语句,可以按总分等汇总信息输出
【下面是mysql表信息】
CREATE TABLE top300_ranking (
id INT NOT NULL AUTO_INCREMENT COMMENT ‘编号’,
total_rank INT NOT NULL COMMENT ‘总排名’,
ZEEKLOG_nickname VARCHAR(100) NOT NULL COMMENT ‘ZEEKLOG昵称’,
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_ZEEKLOG_nickname (ZEEKLOG_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右上角的加号,相关信息填写如下:
名称:mcpZEEKLOG(根据自己业务来)
类型: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_ZEEKLOG\nginx start nginx.exe echo Nginx started. pause 
在这里插入图片描述

本地测试

直接在VSCode里通过域名方式来添加MCP

在这里插入图片描述

上架MCP

非常简单,和在VSCode里手动添加类似

在这里插入图片描述


在这里插入图片描述


工具调试

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

使用MCP

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

在这里插入图片描述
到此,MCP的开发、本地部署、线上部署、智能体使用MCP就搞定啦

MCP和API区别

在开发MCP前博主有个疑问,为啥不直接用api就得了,非得出来个MCP,实际上他们也都是类似调用的一个地址,所以,这里还是要了解下他们之间的区别,也能知道MCP的核心价值。

特性维度APIMCP
全称与定义应用程序编程接口
一种通用技术标准与规范,定义了软件组件之间如何通信。
模型上下文协议
一个具体的协议和框架,专为让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服务插件。
最后,祝ZEEKLOG 2025博客之星活动圆满成功,也祝各位参赛的大佬们都能取得优异成绩!

Read more

【Linux系统】理解管道通信,匿名管道实现进程池+命名管道实现服务端客户端通信模型(附源码)

【Linux系统】理解管道通信,匿名管道实现进程池+命名管道实现服务端客户端通信模型(附源码)

文章目录 * 一、进程间通信是什么 * 二、管道 * 1. 什么是管道 * 2. 匿名管道 * 3. 命名管道 * 三、实例:匿名管道实现进程池 * 四、实例:命名管道实现服务端客户端通信模型 一、进程间通信是什么 进程间通信(IPC),顾名思义,进程之间需要进行信息交换。 如:数据传输、资源共享、通知事件、进程控制。 进程间通信的方式有:管道、System V IPC、POSIX IPC。 由于进程具有独立性,进程间通信的前提就是,不同的进程能看到同一份资源。 二、管道 1. 什么是管道 管道是类Unix系统中最古老的进程间通信的方式。我们把从一个进程连接到另一个进程的数据流称为一个“管道”。 管道是单向通信的,称为单工通信。 管道分为匿名管道和命名管道。 2. 匿名管道

By Ne0inhk
【Java 开发日记】我们来说一下无锁队列 Disruptor 的原理

【Java 开发日记】我们来说一下无锁队列 Disruptor 的原理

目录 一、为什么需要 Disruptor?—— 背景与问题 二、核心设计思想 三、核心组件与原理 1. 环形缓冲区(Ring Buffer) 2. 序列(Sequence) 3. 序列屏障(Sequence Barrier) 4. 等待策略(Wait Strategy) 5. 事件处理器(EventProcessor) 6. 生产者(Producer) 四、工作流程示例(单生产者 -> 单消费者) 五、多消费者与依赖关系 六、总结:Disruptor 高性能的秘诀 一、为什么需要 Disruptor?—— 背景与问题 在高并发编程中,传统的队列(如 java.

By Ne0inhk
Java-Spring入门指南(十四)利用IDEA教你构建第一个SpringMVC系统

Java-Spring入门指南(十四)利用IDEA教你构建第一个SpringMVC系统

Java-Spring入门指南(十四)SpringMVC项目实战搭建 * 前言 * 一、首先导入我们的Maven * 二、接着导入SpringMVC相关的包 * 三、创建Servlet_web环境 * (1)配置springmvc.xml * (2)配置web.xml里面的中央处理器 * (3)为什么需要配置前端控制器? * 五、配置最新的tomcat 11 * 六、运行项目 前言 * 在上一篇博客中,我们系统学习了SpringMVC的核心流程与组件分工,明确了DispatcherServlet(前端控制器)、HandlerMapping(处理器映射器)等组件的协作逻辑。 * 理论之后更需实践,如何从0到1搭建一个可运行的SpringMVC项目,如何将核心组件配置落地,是本次实战的核心目标。 * 本文将基于Maven+IDEA+Tomcat 11环境,一步步完成SpringMVC项目的搭建、配置与运行,让你直观感受“理论”到“实战”的转化过程。 我的个人主页,欢迎来阅读我的其他文章 https:

By Ne0inhk
javaSE————网络原理

javaSE————网络原理

今天巨无聊,全是概念,重点记一下五元组,TCP/IP五层模型和OSI七层调用模型,大家这期就当看故事啦; 1,网络发展史 1)独立模式 我们刚开始使用计算机呢,客户端的数据不是共享的,如果有一个人想要办理业务,而这个业务所需的资源是在三台电脑上,那么这个人就需要在这三个电脑上不断的办理任务,而其他人想要办理业务,还需要等到前一个人办理完,效率非常低,那怎么办,我们就改进; 2)网络互联 接下来我们就使用网络进行计算机资源的共享,让多个计算机可以一起办理业务,达成数据共享,即网络通信,我们可以根据网络互联的规模分为局域网和广域网; 3)局域网LAN 局域网是本地,局部构建的一种私有网络,又被称为内网,局域网内的主机能够实现网络通信,局域网和局域网在没有连接的情况是不能进行通信的; 组件局域网等待方式也有很多种,可以通过网线直连,也可以通过交换机相连,还可以通过集线器相连,还可以通过路由器连接交换机在与多个主机相连; 4)广域网WAN 广域网就是多个局域网完成了连接,很多很多的局域网都能进行网络通信,我们其实可以把咱们中国的网络看成一个巨大的广域网,我们管内部

By Ne0inhk