MCP Server 开发
我们基于python,使用官方提供的MCP库开发一个代码审计的MCP Server。MCP主要可以三种类型的功能,
- 1.Resources:客户端可以读取的类似文件的数据(例如 API 响应或文件内容)
- 2.Tools:可由 LLM 调用的函数
- 3.Prompts:预先编写的模板,帮助用户完成特定任务
如果需要做一个简单的代码审计的MCP Server,首先需要通过API函数去依次读取文件的内容,然后将文件的内容和文件路径传递给LLM,通过LLM研判这个文件是否存在高危漏洞。@tools只是实现相对应的逻辑,研判分析的任务交给LLM,不需要将研判的任务写入代码中。
将所需要的库添加到代码中
然后添加Tools功能函数,这个函数需要使用@mcp.tool()
进行修饰,这个函数功能是通过传入文件夹路径,读取这个文件夹下所有的文件的内容,传出一个dict,这个字典包含文件夹路径和文件内容。主要的实现功能重新封装在另外一个函数中。
接着实现文件内容的读取操作
最后,初始化运行MCP Server即可。transport指定传输的方式,目前主要有两种传输方式:1)stdio传输和2)http传输
通过python server.py
即可运行MCP Server。
MCP Inspector 调试使用
我们可以使用MCP Inspector
调试开发好的MCP Server。MCP Inspector
基于Node.js开发,需提前安装Node.js,然后执行npm install -g @modelcontextprotocol/inspector
命令安装MCP Inspector
。如果使用全局安装,只需要运行mcp-inspector
启动MCP Inspector
。
执行完mcp-inspector
命令之后,会生成一个Session token
,一个带有session token的链接,以及一个不带session token的链接。这个session token
后续链接MCP Servcer需要用上。通过浏览器打开http://127.0.0.1:6274
。因为上文是通过python.exe运行server.py来运行MCP Server。只需要将页面左侧的Command和Arguments分别填入python和server.py的绝对地址。内嵌的环境变量就能自动识别。
如果通过不带session token的链接访问。在连接MCP Server的时候会出现Connection Error - Did you add the proxy session token in Configuration?
报错,只需要在“Configuration”的“Proxy Session Token”选项中填入之前出现的Session token
值即可。
cline 客户端配置
安装好cline插件之后,在cline-mcp-settings.json
文件中设置相对应的配置即可。