在上一篇文章(链接)中,详细的描述了agent、mcp概念以及编写,此篇文章将详细的讲述MCP的使用,以及如何编写一个好的MCP。
0.1 自动化查杀java内存马
GitHub项目地址:https://github.com/RuoJi6/memory-shell-mcp
0.1.1 编写思路
这个是笔者在使用kiro编写内存马查MCP的提示词
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 帮我编写一个内存马查看/清理的MCP: 前置: 1、你需要在网络搜索什么是MCP 2、了解python的uv(当前目录下,我已执行:uv venv --python python3.12 ,uv init,你后面执行命令统一在虚拟环境执行:source .venv/bin/activate,在uv init 创建的main.py文件中编写代码) 3、查看当前目录下的`工具使用说明.md`文件
结合查看`工具使用说明.md`文件完成下面需求(提示:使用FastMCP编写完成): 1、本地执行命令(来执行:4,5,6,7) 2、ssh连接并可以执行命令(来执行:4,5,6,7) 3、可以让用户输入工具目录地址,如果没有输入就使用下面地址下载到临时目录(注意windows/linux/macos等临时目录)【此处下载需要先测试网络环境是否可用,可用就可以下载。注意:windows/linux/macos 中下载的命令,尽可能的兼容系统】 https://xget.xi-xu.me/gh/RuoJi6/memory-shell-detector/releases/download/2/detector-agent-1.0.0-SNAPSHOT.jar https://xget.xi-xu.me/gh/RuoJi6/memory-shell-detector/releases/download/2/memory-shell-detector-cli.jar 4、结合查看`工具使用说明.md`文件可以执行工具命令(-l) 5、结合查看`工具使用说明.md`文件可以执行工具命令(-s) 6、结合查看`工具使用说明.md`文件可以执行工具命令(-v -p) 7、结合查看`工具使用说明.md`文件可以执行工具命令(-r -p) 【注意,在执行此命令删除内存马的时候,需要:1、使用-v命令获取内存马源代码,并发送给AI,惊喜判断是否是内存马,如果是方可清除 2、在执行此命令的时候,会有下面信息,需要输入y,如:[!] 警告: 移除内存马可能影响应用正常运行确认移除 org.apache.jsp.filter_002dinject_jsp$ShellFilter? (y/N): y】 8、运行完成之后,在当前目录输出md文件,描述功能,以及mcp配置信息
|
其中:
0.1.2 运行效果-查找内存马
内存马项目地址:https://github.com/0ofo/java-memshell
测试环境:
- servlet+tomchat
- 模型:glm4.7
MCP配置(TOOLS_DIR可以为空不设置,将会自动下载到tmp目录,参考:https://github.com/RuoJi6/memory-shell-mcp):
1 2 3 4 5 6 7 8 9 10 11
| { "mcpServers": { "memory-shell-detector": { "command": "uvx", "args": ["memory-shell-mcp"], "env": {}, "disabled": false, "autoApprove": [] } } }
|
提示词:
1
| 帮我查看本机的java web服务,并排查是否存在内存马(判断标准):工具扫描出来之后,你需要反编译源代码,通过分析源代码,判断是否是内存马,以免在后续操作中,误删正确信息。
|
运行结果:

AI工具调用图:

AI思考流程图:

0.1.2 运行效果-删除内存马
测试环境:
- springboot
- 模型:glm-4.7
- Agent:claude

MCP配置(TOOLS_DIR可以为空不设置,将会自动下载到tmp目录,参考:https://github.com/RuoJi6/memory-shell-mcp):
1 2 3 4 5 6 7 8 9 10 11
| { "mcpServers": { "memory-shell-detector": { "command": "uvx", "args": ["memory-shell-mcp"], "env": {}, "disabled": false, "autoApprove": [] } } }
|
提示词
这个:(进程名包含 com.example.demo.DemoApplication) 可选,笔者只是为了让AI快速找到这个服务。
1 2 3 4 5 6 7 8 9
| 帮我检测本机的 Java Web 服务(进程名包含 com.example.demo.DemoApplication),排查是否存在内存马。
检测要求: 1. 先下载检测工具,然后列出 Java 进程找到目标 PID 2. 扫描该进程,获取所有可疑类列表 3. 对每个可疑类反编译源代码,分析是否为内存马 4. 如果确认是内存马,执行移除操作 5. 移除后再次扫描验证,某些内存马需要多次移除才能彻底清除 6. 最后给我一个检测报告总结
|
运行结果:

0.2 编写思路
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 帮我编写一个内存马查看/清理的MCP: 前置: 1、你需要在网络搜索什么是MCP 2、了解python的uv(当前目录下,我已执行:uv venv --python python3.12 ,uv init,你后面执行命令统一在虚拟环境执行:source .venv/bin/activate,在uv init 创建的main.py文件中编写代码) 3、查看当前目录下的`工具使用说明.md`文件
结合查看`工具使用说明.md`文件完成下面需求(提示:使用FastMCP编写完成): 1、本地执行命令(来执行:4,5,6,7) 2、ssh连接并可以执行命令(来执行:4,5,6,7) 3、可以让用户输入工具目录地址,如果没有输入就使用下面地址下载到临时目录(注意windows/linux/macos等临时目录)【此处下载需要先测试网络环境是否可用,可用就可以下载。注意:windows/linux/macos 中下载的命令,尽可能的兼容系统】 https://xget.xi-xu.me/gh/RuoJi6/memory-shell-detector/releases/download/2/detector-agent-1.0.0-SNAPSHOT.jar https://xget.xi-xu.me/gh/RuoJi6/memory-shell-detector/releases/download/2/memory-shell-detector-cli.jar 4、结合查看`工具使用说明.md`文件可以执行工具命令(-l) 5、结合查看`工具使用说明.md`文件可以执行工具命令(-s) 6、结合查看`工具使用说明.md`文件可以执行工具命令(-v -p) 7、结合查看`工具使用说明.md`文件可以执行工具命令(-r -p) 【注意,在执行此命令删除内存马的时候,需要:1、使用-v命令获取内存马源代码,并发送给AI,惊喜判断是否是内存马,如果是方可清除 2、在执行此命令的时候,会有下面信息,需要输入y,如:[!] 警告: 移除内存马可能影响应用正常运行确认移除 org.apache.jsp.filter_002dinject_jsp$ShellFilter? (y/N): y】 8、运行完成之后,在当前目录输出md文件,描述功能,以及mcp配置信息
|
我们以上面的提示次为例,你需要明白:
- 让AI了解最新的知识(AI的知识库并不是最新的,你需要让AI知道最新的技术)
- 了解最新的MCP,以及uvx使用
- 了解项目的
工具使用说明.md描述文件
- 让AI了解你想做什么(让AI知道你具体想干什么?怎么样干)
- 本地执行命令
- ssh连接执行命令
- 列出进程
- 反编译内存马
- 删除内存马
- 下载工具
0.3 参考
https://github.com/RuoJi6/memory-shell-mcp
https://github.com/private-xss/memory-shell-detector
https://github.com/xixu-me/Xget
https://github.com/0ofo/java-memshell