【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

Retinaface+CurricularFace应用场景:教育行业学生考勤自动化解决方案

Retinaface+CurricularFace应用场景:教育行业学生考勤自动化解决方案 1. 为什么教育场景需要更可靠的人脸考勤? 每天早上八点,某中学教学楼门口排起长队——学生们挨个在打卡机前刷脸、等待系统识别、反复调整站位。后台数据显示,平均每人耗时23秒,高峰期排队超5分钟;更麻烦的是,上周有17%的识别失败记录,主要集中在侧脸、戴口罩、逆光环境下。老师不得不手动登记,考勤数据延迟上传,教务系统里还留着“张三(疑似)”“李四(待确认)”这样的模糊记录。 这不是个别现象。传统考勤方案要么依赖刷卡易丢失冒用,要么用通用人脸识别模型在教室复杂光照下频频失准。而教育场景对考勤系统有三个硬性要求:识别要快(单人≤3秒)、判断要稳(不把同班同学认成同一人)、部署要省(不能让信息老师天天调参数)。 RetinaFace+CurricularFace组合镜像,正是为这类真实痛点设计的轻量级落地方案。它不追求实验室里的SOTA指标,而是把“在走廊自然光下、学生边走边过、戴眼镜/扎马尾也能稳稳认出”变成可批量部署的能力。接下来,我们就从一个教务主任最关心的问题切入:

【论文阅读103】pinn-review-科学机器学习中的物理信息神经网络:现状与展望

【论文阅读103】pinn-review-科学机器学习中的物理信息神经网络:现状与展望

科学机器学习中的物理信息神经网络:现状与展望 作者:Salvatore Cuomo¹ · Vincenzo Schiano Di Cola² · Fabio Giampaolo¹ · Gianluigi Rozza³ · Maziar Raissi⁴ · Francesco Piccialli¹ 在线发表:2022年7月26日 摘要 物理信息神经网络(Physics-Informed Neural Networks,PINNs)是一类将模型方程(如偏微分方程,PDE)直接嵌入神经网络结构中的神经网络(NN)。目前,PINNs 已被广泛用于求解偏微分方程、分数阶方程、积分-微分方程以及随机偏微分方程。这一新兴方法作为一种多任务学习框架出现,在该框架中,神经网络不仅需要拟合观测数据,还需最小化 PDE 残差。 本文对物理信息神经网络相关文献进行了全面综述:研究的主要目标是阐明这类网络的特征、优势与局限性。同时,本文还涵盖了更广义的基于配点法(collocation-based)的物理约束神经网络研究,包括从最初的基础 PINN(

FPGA通信——实现串口通信(Uart)

FPGA通信——实现串口通信(Uart)

一、串口通信介绍 1.1、核心概念 并行通信 (Parallel):像高速公路,8车道同时跑8辆车。速度快,但占用引脚多,且在长距离传输时容易出现“时钟偏差(Skew)”导致数据错位。 串行通信 (Serial):像单行道,车必须一辆接一辆地排队走。引脚少,成本低,且现代高速串行技术(如PCIE, SATA)通过差分信号解决了速度问题。 我们常说的“串口”通常特指 UART (Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)。 1.2、逻辑层面 UART 是一种异步通信协议。 * 异步 (Asynchronous):发送方和接收方之间没有公共的时钟线(不像 SPI 或 I2C 有 CLK 线)。 * 约定:

一、FPGA到底是什么???(一篇文章让你明明白白)

一句话概括 FPGA(现场可编程门阵列) 是一块可以通过编程来“变成”特定功能数字电路的芯片。它不像CPU或GPU那样有固定的硬件结构,而是可以根据你的需求,被配置成处理器、通信接口、控制器,甚至是整个片上系统。 一个生动的比喻:乐高积木 vs. 成品玩具 * CPU(中央处理器):就像一个工厂里生产好的玩具机器人。它的功能是固定的,你只能通过软件(比如按不同的按钮)来指挥它做预设好的动作(走路、跳舞),但你无法改变它的机械结构。 * ASIC(专用集成电路):就像一个为某个特定任务(比如只会翻跟头)而专门设计和铸造的金属模型。性能极好,成本低(量产时),但一旦制造出来,功能就永远无法改变。 * FPGA:就像一盒万能乐高积木。它提供了大量基本的逻辑单元(逻辑门、触发器)、连线和接口模块。你可以通过“编程”(相当于按照图纸搭建乐高)将这些基本模块连接起来,构建出你想要的任何数字系统——可以今天搭成一个CPU,明天拆了重新搭成一个音乐播放器。 “现场可编程”