5分钟搭一个自定义MCP服务

该文章已生成可运行项目,

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

EX. 背景信息

基于某些不可抗力原因,以往的测试工具/脚本无法满足需求,因此需要自己搭建一个MCP服务用于辅助测试。实际上懂得都懂,只是为了看起来调用的比较酷炫,通过打字调用罢了

但本着技多不压身,来学一把也挺好,跟上MCP潮流也只需要5分钟。

1. 前置条件与需要使用的框架

网上用的最多资料最全的还是FastMCP了,毫无疑问的说,搞AI来说,不追求性能的时候,Python还是最快的上手方式了。

既然是Python的框架,那一个python的测试脚本自然也是必须的,这里给一个较为通用的测试脚本,用于测试FastMCP的可用性。这个脚本主要是用来模拟测压CPU占用率的,输入参数很简单,一个是期望达到的CPU占用率,另一个是测压时间,单位是秒。

脚本直接贴出来,含义就不过多解释,有兴趣的可以去附录A看看。

1.1 MCP服务的相关框架通俗理解速通(略有不严谨,但前期上手足够用了)

另外有必要简单的说一下,MCP的架构,MCP严格意义上说是一种协议模型上下文协议(Model Context Protocol,简称 MCP),它定义了模型和上下文之间的交互方式,而FastMCP则是MCP的一种实现,它提供了Python的接口,使得我们可以方便的编写MCP服务。我们说的自己搞MCP,其实就是在这个协议上,自己写一个基于这个协议的服务,然后通过这个服务,来调用我们自己的脚本,从而实现我们自己的功能。

1.2 MCP服务祛魅性理解

更通俗的说,就是我们自己把普通常用的一些功能/脚本融合到已经有的各种大模型中,为大模型的能力添砖加瓦。或者有些公司为了一些不可描述的需求,把大模型魔改掉。别看这东西好像很厉害,有了FastMCP框架后,加上自己的能力就如同写代码里的继承父类接口一样,改完后,自定义的接口(子类)就覆盖了父类的原有逻辑,从而实现自己的需求 可能就是一些创新了,把模型的名字改掉,把模型的归属权改掉什么的奇怪操作可别想到这些上去啊

1.3 自定义MCP服务的两种形式

MCP Server 可分为 Remote MCP Server 和 Local MCP Server 两种类型:

  • Remote MCP Server:远程MCP服务,通过HTTP协议与客户端进行通信,客户端通过HTTP请求调用MCP服务。
  • Local MCP Server:本地MCP服务,通过本地进程与客户端进行通信,客户端通过本地进程调用MCP服务。

本地调用的版本,本质就是这样的,STDIO在配置中会涉及到,但通俗理解就是本地通信,安全可靠效率高,但吃本地的资源。

  • MCP Client,这里Cursor,Trae什么的都行,下文用的是Cherry Studio,一个MCP的客户端
  • Remote MCP Server,这里可以理解成是FastMCP框架做掉了
  • Local Process,这里就是我们的自定义脚本
  • LLM Server,这里类似是大模型服务,例如deepseek之类的
Local MCP Server
STDIO
HTTP
Remote MCP Server
MCP Client
Local Process
User
LLM Server

远程调用的话,我们的脚本开销实际上是在远程服务器,理论上是对本地无资源消耗,但是一个苦恼的一个是安全方面的原因,中间有数据传输,但更加难受的其实在于,对于测试而言,很多脚本必须是宿主机跑,啥意思呢,本文实例的这个CPU占用脚本,放远程跑的话,测压的就是提供服务的服务器了,而不是我们自己的机器,所以这个方案暂时不考虑。

本文章已经生成可运行项目

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值