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

2348

被折叠的 条评论
为什么被折叠?



