Fatbeans.MCP.Client
Fatbeans.MCP.Client 是独立的控制台客户端,用于从命令行、脚本、外部进程或 AI Agent 调用Fatbeans Creater提供的MCP工具服务。
Links
README
From the repo.
Fatbeans.MCP.Client
Fatbeans.MCP.Client 是独立的控制台客户端,用于从命令行、脚本、外部进程或 AI Agent 调用主程序中的 PipeServer;同时也支持以 MCP stdio server 方式启动,对外暴露一组可直接被 MCP Host 调用的 tools。
本文档以当前代码实现为准,覆盖:
- 直接命令行调用方式
- MCP stdio server 启动方式
- 当前已接入的方法分类
- 当前已暴露的 MCP tools 分类
- 各功能模块的命令行示例
^> 说明:下文所有命令示例都省略了 dotnet run --project ... 前缀,统一写成 Fatbeans.MCP.Client ...。如果你使用的是发布后的可执行文件,也可以直接替换为实际的 exe 路径。
1. 运行环境
本项目使用:
.NET SDK 9.0TargetFramework: net9.0ModelContextProtocol 1.2.0
它是独立的 net9.0 客户端,不依赖主程序的 .NET Framework 4.5 目标框架。
2. 主要用途
Fatbeans.MCP.Client 主要有两种使用方式:
-
CLI 直连 Pipe 调用
- 适合脚本、批处理、PowerShell、测试调用
- 直接执行某个方法名,例如
system.ping、capture.start、packet.list
-
MCP stdio server
- 适合接入支持 MCP 的 Host、IDE、Agent 或自动化平台
- 客户端自身作为一个 MCP Server 暴露 tools,再由 tools 转发到主程序 Pipe
3. 目录结构
Configuration:CLI 参数与 MCP 运行配置Infrastructure/Pipe:Pipe 通信封装Features/System:system.*与自省能力Features/Mcp:MCP Server Host 与通用 Pipe toolsFeatures/Archive:归档相关封装Features/Capture:抓包控制相关封装Features/Packet:封包读取、搜索、重发、备注相关封装Features/Intercept:拦截规则封装Features/Modify:修改器规则封装Features/Responser:回复器规则封装Features/Redirect:重定向规则封装Features/Proxy:Socks5 与二级代理封装Features/HttpSender:HTTP 发送方案封装Features/Value:取值器分类和值定义封装
4. 命令行基本语法
4.1 直接调用 Pipe 方法
Fatbeans.MCP.Client ^<method^> [paramsJson] [--pipe ^<name^>] [--server ^<name^>] [--timeout ^<ms^>] [--pretty]
示例:
Fatbeans.MCP.Client system.ping
Fatbeans.MCP.Client system.version --pretty
Fatbeans.MCP.Client capture.status --pretty
Fatbeans.MCP.Client packet.list "{\"pageIndex\":1,\"pageSize\":20}" --pretty
Fatbeans.MCP.Client demo.echo "{\"text\":\"hello\"}"
4.2 以 MCP stdio server 模式启动
Fatbeans.MCP.Client --mcp [--mcp-full] [--pipe ^<name^>] [--server ^<name^>] [--timeout ^<ms^>]
示例:
Fatbeans.MCP.Client --mcp
Fatbeans.MCP.Client --mcp --mcp-full
Fatbeans.MCP.Client --mcp --pipe fatbeans.mcp
Fatbeans.MCP.Client --mcp --mcp-full --pipe fatbeans.mcp --timeout 10000
5. 命令行参数
5.1 通用参数
--pipe ^<name^>:Pipe 名称,默认fatbeans.mcp--server ^<name^>:服务器名,默认.--timeout ^<ms^>:连接超时毫秒数,默认5000--pretty:将输出 JSON 美化格式化--mcp:以 MCP stdio server 模式运行,默认使用精简工具集--mcp-full:在 MCP 模式下暴露全量工具集--help或-h:显示帮助
示例:
Fatbeans.MCP.Client system.status --pretty
Fatbeans.MCP.Client system.ping --pipe fatbeans.mcp --timeout 8000
Fatbeans.MCP.Client --help
5.2 JSON 参数说明
- 第二个位置参数如果存在,会被当成
paramsJson - 必须是一个 JSON 对象,不能是数组或裸值
- 建议在 PowerShell 中使用单引号包住 JSON
示例:
Fatbeans.MCP.Client system.help "{\"method\":\"capture.start\"}" --pretty
Fatbeans.MCP.Client capture.config_select "{\"configName\":\"默认配置\"}" --pretty
Fatbeans.MCP.Client packet.memo.set "{\"guid\":\"^<packet-guid^>\",\"memo\":\"登录请求\"}" --pretty
6. 输出与退出码
客户端输出统一为 JSON。
- 成功时输出响应 JSON,并返回退出码
0 - 参数错误或运行异常时输出错误信息到标准错误,并返回退出码
1 - Pipe 调用成功返回但业务结果为失败时,通常返回退出码
2
示例:
Fatbeans.MCP.Client system.ping
Fatbeans.MCP.Client system.version --pretty
7. 快速开始
7.1 连通性检查
Fatbeans.MCP.Client system.ping
Fatbeans.MCP.Client system.version --pretty
Fatbeans.MCP.Client system.status --pretty
7.2 本地方法自省
Fatbeans.MCP.Client system.listMethods --pretty
Fatbeans.MCP.Client system.help "{\"method\":\"system.ping\"}" --pretty
Fatbeans.MCP.Client system.help "{\"method\":\"packet.list\"}" --pretty
7.3 任意 Pipe 方法直调
CLI 本身支持直接传入任意方法名,因此不需要额外的 pipe.invoke 命令行封装。
Fatbeans.MCP.Client proxy.socks5.status --pretty
Fatbeans.MCP.Client redirect.list --pretty
Fatbeans.MCP.Client archive.history.list --pretty
8. 当前支持的方法分类
当前客户端已接入或可直接调用以下类别的方法:
system.*capture.*packet.*archive.*intercept.rule.*modify.rule.*responser.rule.*redirect.*proxy.*http_sender.*value.*- 其他主程序已暴露的 Pipe 方法(可直接通过
^<method^>方式调用)
9. 系统方法 system.*
9.1 方法列表
system.pingsystem.versionsystem.statussystem.modeGetsystem.logsGetsystem.listMethods(本地实现)system.help(本地实现)
9.2 命令行示例
Fatbeans.MCP.Client system.ping
Fatbeans.MCP.Client system.version --pretty
Fatbeans.MCP.Client system.status --pretty
Fatbeans.MCP.Client system.modeGet --pretty
Fatbeans.MCP.Client system.logsGet "{\"lines\":50}" --pretty
Fatbeans.MCP.Client system.listMethods --pretty
Fatbeans.MCP.Client system.help "{\"method\":\"capture.config_create\"}" --pretty
10. 抓包控制 capture.*
10.1 方法列表
capture.startcapture.stopcapture.pausecapture.resumecapture.resetcapture.clearcapture.statuscapture.config_listcapture.config_selectcapture.config_createcapture.config_getcapture.target_allcapture.target_process_idscapture.target_process_namescapture.target_selfcapture.target_launch_and_start
10.2 基础抓包示例
Fatbeans.MCP.Client capture.start --pretty
Fatbeans.MCP.Client capture.status --pretty
Fatbeans.MCP.Client capture.pause --pretty
Fatbeans.MCP.Client capture.resume --pretty
Fatbeans.MCP.Client capture.stop --pretty
Fatbeans.MCP.Client capture.clear --pretty
Fatbeans.MCP.Client capture.reset --pretty
10.3 配置管理示例
Fatbeans.MCP.Client capture.config_list --pretty
Fatbeans.MCP.Client capture.config_get --pretty
Fatbeans.MCP.Client capture.config_select "{\"configId\":\"1\"}" --pretty
Fatbeans.MCP.Client capture.config_select "{\"configName\":\"默认配置\"}" --pretty
Fatbeans.MCP.Client capture.config_create "{\"configName\":\"TCP-8089\",\"expression\":\"tcp.SrcPort == 8089 or tcp.DstPort == 8089\",\"rangeType\":\"CustomCondition\",\"tcp\":true,\"udp\":false,\"http\":false,\"selectAfterCreate\":true}" --pretty
10.4 抓包目标示例
Fatbeans.MCP.Client capture.target_all --pretty
Fatbeans.MCP.Client capture.target_process_ids "{\"processId\":1234}" --pretty
Fatbeans.MCP.Client capture.target_process_ids "{\"processIds\":[1234,5678]}" --pretty
Fatbeans.MCP.Client capture.target_process_names "{\"processName\":\"chrome\"}" --pretty
Fatbeans.MCP.Client capture.target_process_names "{\"processNames\":[\"chrome\",\"WeChat\"]}" --pretty
Fatbeans.MCP.Client capture.target_self --pretty
Fatbeans.MCP.Client capture.target_launch_and_start "{\"filePath\":\"C:\\Windows\\System32\\notepad.exe\",\"arguments\":\"C:\\temp\\a.txt\"}" --pretty
11. 封包方法 packet.*
11.1 方法列表
packet.listpacket.getpacket.countpacket.summary.getpacket.searchpacket.memo.getpacket.memo.setpacket.resendpacket.modify_and_resendpacket.convertpacket.listnotepacket.editnotepacket.delnote
11.2 列表与详情示例
Fatbeans.MCP.Client packet.count --pretty
Fatbeans.MCP.Client packet.list "{\"pageIndex\":1,\"pageSize\":20}" --pretty
Fatbeans.MCP.Client packet.summary.get "{\"index\":1}" --pretty
Fatbeans.MCP.Client packet.get "{\"guid\":\"^<packet-guid^>\"}" --pretty
Fatbeans.MCP.Client packet.get "{\"index\":1}" --pretty
11.3 搜索与备注示例
Fatbeans.MCP.Client packet.search "{\"searchValue\":\"token=\",\"searchType\":\"Text\",\"startIndex\":0}" --pretty
Fatbeans.MCP.Client packet.search "{\"searchValue\":\"0AFFE8D6\",\"searchType\":\"Hex\"}" --pretty
Fatbeans.MCP.Client packet.memo.set "{\"guid\":\"^<packet-guid^>\",\"memo\":\"登录请求\"}" --pretty
Fatbeans.MCP.Client packet.memo.get "{\"guid\":\"^<packet-guid^>\"}" --pretty
Fatbeans.MCP.Client packet.memo.get "{\"guids\":[\"^<guid1^>\",\"^<guid2^>\"]}" --pretty
11.4 重发与修改重发示例
Fatbeans.MCP.Client packet.resend "{\"guid\":\"^<packet-guid^>\"}" --pretty
Fatbeans.MCP.Client packet.resend "{\"guids\":[\"^<guid1^>\",\"^<guid2^>\"]}" --pretty
Fatbeans.MCP.Client packet.modify_and_resend "{\"guid\":\"^<packet-guid^>\",\"hexData\":\"0A FF E8 D6\"}" --pretty
Fatbeans.MCP.Client packet.modify_and_resend "{\"guid\":\"^<packet-guid^>\",\"requestMethod\":\"POST\",\"url\":\"https://example.com/api/login\",\"requestBodyText\":\"user=demo^&token=123\"}" --pretty
11.5 数据转换与注释示例
Fatbeans.MCP.Client packet.convert "{\"guid\":\"^<packet-guid^>\",\"format\":\"Hex\"}" --pretty
Fatbeans.MCP.Client packet.convert "{\"guid\":\"^<packet-guid^>\",\"format\":\"CSharpArray\"}" --pretty
Fatbeans.MCP.Client packet.convert "{\"index\":1,\"format\":\"Text\",\"textEncoding\":\"UTF-8\"}" --pretty
Fatbeans.MCP.Client packet.listnote "{\"guid\":\"^<packet-guid^>\"}" --pretty
Fatbeans.MCP.Client packet.editnote "{\"guid\":\"^<packet-guid^>\",\"startOffset\":0,\"endOffset\":3,\"memo\":\"消息头\"}" --pretty
Fatbeans.MCP.Client packet.delnote "{\"guid\":\"^<packet-guid^>\",\"startOffset\":0,\"endOffset\":3}" --pretty
12. 归档方法 archive.*
12.1 方法列表
archive.openarchive.save_allarchive.save_visiblearchive.history.listarchive.history.cleararchive.export.jsonarchive.export.textarchive.export.xmlarchive.export.csv
12.2 打开与保存示例
Fatbeans.MCP.Client archive.open "{\"filePath\":\"D:\\capture.fatbeans\"}" --pretty
Fatbeans.MCP.Client archive.save_all "{\"filePath\":\"D:\\all.fatbeans\"}" --pretty
Fatbeans.MCP.Client archive.save_visible "{\"filePath\":\"D:\\visible.fatbeans\"}" --pretty
Fatbeans.MCP.Client archive.history.list --pretty
Fatbeans.MCP.Client archive.history.clear --pretty
12.3 导出示例
Fatbeans.MCP.Client archive.export.json "{\"filePath\":\"D:\\packets.json\",\"sourceType\":\"packet\"}" --pretty
Fatbeans.MCP.Client archive.export.text "{\"filePath\":\"D:\\packets.txt\",\"sourceType\":\"packet\"}" --pretty
Fatbeans.MCP.Client archive.export.xml "{\"filePath\":\"D:\\packets.xml\",\"sourceType\":\"group\"}" --pretty
Fatbeans.MCP.Client archive.export.csv "{\"filePath\":\"D:\\packets.csv\",\"sourceType\":\"packet\"}" --pretty
13. 拦截规则 intercept.rule.*
13.1 方法列表
intercept.rule.listintercept.rule.createintercept.rule.updateintercept.rule.deleteintercept.rule.enableintercept.rule.disableintercept.rule.clone
13.2 命令行示例
Fatbeans.MCP.Client intercept.rule.list --pretty
Fatbeans.MCP.Client intercept.rule.create "{\"ruleName\":\"拦截登录\",\"interceptExpression\":\"Contains(RequestBodyText, \\"login\\")\",\"isEnable\":true}" --pretty
Fatbeans.MCP.Client intercept.rule.update "{\"ruleId\":\"^<rule-id^>\",\"ruleName\":\"拦截登录请求\",\"passExpression\":\"Contains(URL, \\"/health\\")\"}" --pretty
Fatbeans.MCP.Client intercept.rule.enable "{\"ruleId\":\"^<rule-id^>\"}" --pretty
Fatbeans.MCP.Client intercept.rule.disable "{\"ruleId\":\"^<rule-id^>\"}" --pretty
Fatbeans.MCP.Client intercept.rule.clone "{\"ruleId\":\"^<rule-id^>\",\"newRuleName\":\"复制-拦截登录\"}" --pretty
Fatbeans.MCP.Client intercept.rule.delete "{\"ruleId\":\"^<rule-id^>\"}" --pretty
14. 修改器规则 modify.rule.*
14.1 方法列表
modify.rule.listmodify.rule.createmodify.rule.updatemodify.rule.createhttpmodify.rule.updatehttpmodify.rule.deletemodify.rule.enablemodify.rule.disablemodify.rule.clone
14.2 普通修改规则示例
Fatbeans.MCP.Client modify.rule.list --pretty
Fatbeans.MCP.Client modify.rule.create "{\"ruleName\":\"token 替换\",\"ruleType\":\"SEARCHANDREPLACE\",\"searchType\":\"TEXT\",\"replaceType\":\"TEXT\",\"searchContent\":\"token=old\",\"replaceContent\":\"token=new\",\"isEnable\":true}" --pretty
Fatbeans.MCP.Client modify.rule.update "{\"ruleId\":\"^<rule-id^>\",\"replaceContent\":\"token=changed\",\"isEnable\":true}" --pretty
Fatbeans.MCP.Client modify.rule.enable "{\"ruleId\":\"^<rule-id^>\"}" --pretty
Fatbeans.MCP.Client modify.rule.disable "{\"ruleId\":\"^<rule-id^>\"}" --pretty
Fatbeans.MCP.Client modify.rule.clone "{\"ruleId\":\"^<rule-id^>\",\"newRuleName\":\"复制-token 替换\"}" --pretty
Fatbeans.MCP.Client modify.rule.delete "{\"ruleId\":\"^<rule-id^>\"}" --pretty
14.3 HTTP 修改规则示例
Fatbeans.MCP.Client modify.rule.createhttp "{\"ruleName\":\"请求 token 替换\",\"requestReplaceType\":\"TEXT\",\"requestSearchText\":\"token=old\",\"requestReplaceText\":\"token=new\",\"isEnable\":true}" --pretty
Fatbeans.MCP.Client modify.rule.createhttp "{\"ruleName\":\"Header 重写\",\"requestHeadReplacesJson\":\"{\\"User-Agent\\":\\"FatbeansBot\\"}\",\"responseHeadReplacesJson\":\"{\\"Server\\":\\"CustomServer\\"}\"}" --pretty
Fatbeans.MCP.Client modify.rule.updatehttp "{\"ruleId\":\"^<rule-id^>\",\"urlQueryReplacesJson\":\"{\\"token\\":\\"123456\\"}\"}" --pretty
Fatbeans.MCP.Client modify.rule.updatehttp "{\"ruleId\":\"^<rule-id^>\",\"requestReplaceType\":\"TEXT\",\"requestSearchText\":\"old\",\"requestReplaceText\":\"new\"}" --pretty
15. 回复器规则 responser.rule.*
15.1 方法列表
responser.rule.listresponser.rule.createresponser.rule.updateresponser.rule.deleteresponser.rule.enableresponser.rule.disableresponser.rule.clone
15.2 命令行示例
Fatbeans.MCP.Client responser.rule.list --pretty
Fatbeans.MCP.Client responser.rule.create "{\"ruleName\":\"固定回复\",\"searchHex\":\"01 02 03\",\"responseHex\":\"AA BB CC\",\"isEnable\":true}" --pretty
Fatbeans.MCP.Client responser.rule.update "{\"ruleId\":\"^<rule-id^>\",\"delayTime\":200,\"responseHex\":\"DD EE FF\"}" --pretty
Fatbeans.MCP.Client responser.rule.enable "{\"ruleId\":\"^<rule-id^>\"}" --pretty
Fatbeans.MCP.Client responser.rule.disable "{\"ruleId\":\"^<rule-id^>\"}" --pretty
Fatbeans.MCP.Client responser.rule.clone "{\"ruleId\":\"^<rule-id^>\",\"newRuleName\":\"复制-固定回复\"}" --pretty
Fatbeans.MCP.Client responser.rule.delete "{\"ruleId\":\"^<rule-id^>\"}" --pretty
16. 重定向规则 redirect.*
^> 仅全能模式可用。
16.1 方法列表
redirect.listredirect.add_tcpredirect.add_httpredirect.delredirect.rule_enableredirect.rule_disableredirect.rule_clone
16.2 TCP 重定向示例
Fatbeans.MCP.Client redirect.list --pretty
Fatbeans.MCP.Client redirect.add_tcp "{\"ruleName\":\"TCP 重定向\",\"orgTarget\":\"192.168.1.*:8080\",\"redirectTarget\":\"127.0.0.1:9000\",\"isEnable\":true}" --pretty
Fatbeans.MCP.Client redirect.rule_enable "{\"ruleId\":\"^<rule-id^>\"}" --pretty
Fatbeans.MCP.Client redirect.rule_disable "{\"ruleId\":\"^<rule-id^>\"}" --pretty
Fatbeans.MCP.Client redirect.rule_clone "{\"ruleId\":\"^<rule-id^>\",\"newRuleName\":\"复制-TCP 重定向\"}" --pretty
Fatbeans.MCP.Client redirect.del "{\"ruleId\":\"^<rule-id^>\"}" --pretty
16.3 HTTP 重定向示例
Fatbeans.MCP.Client redirect.add_http "{\"ruleName\":\"HTTP 重定向\",\"orgTarget\":\"https://api.example.com/*\",\"redirectTarget\":\"https://127.0.0.1:8443/\",\"isEnable\":true}" --pretty
Fatbeans.MCP.Client redirect.add_http "{\"ruleName\":\"带排除规则的 HTTP 重定向\",\"orgTarget\":\"https://example.com/*\",\"redirectTarget\":\"https://127.0.0.1:8443/\",\"excludes\":[\"https://example.com/health\",\"https://example.com/status\"]}" --pretty
17. 代理方法 proxy.*
17.1 方法列表
proxy.socks5.statusproxy.socks5.toggleproxy.socks5.config.getproxy.socks5.config.setproxy.level2.set
17.2 Socks5 代理示例
Fatbeans.MCP.Client proxy.socks5.status --pretty
Fatbeans.MCP.Client proxy.socks5.toggle "{\"isOpen\":true}" --pretty
Fatbeans.MCP.Client proxy.socks5.toggle "{\"isOpen\":false}" --pretty
Fatbeans.MCP.Client proxy.socks5.config.get --pretty
Fatbeans.MCP.Client proxy.socks5.config.set "{\"serverIP\":\"127.0.0.1\",\"serverPort\":1080,\"isOpen\":true}" --pretty
Fatbeans.MCP.Client proxy.socks5.config.set "{\"serverPort\":1088}" --pretty
17.3 二级代理示例
Fatbeans.MCP.Client proxy.level2.set "{\"name\":\"本地 HTTP 二级代理\",\"type\":\"Http\",\"serverIP\":\"127.0.0.1\",\"serverPort\":8888,\"isEnable\":true}" --pretty
Fatbeans.MCP.Client proxy.level2.set "{\"name\":\"Socks5 白名单代理\",\"type\":\"Socks5\",\"serverIP\":\"127.0.0.1\",\"serverPort\":1080,\"limitType\":\"WhiteList\",\"limitList\":[\".*example\\.com\",\".*api\\.test\\.com\"],\"isEnable\":true}" --pretty
Fatbeans.MCP.Client proxy.level2.set "{\"disable\":true}" --pretty
18. HTTP Sender 方法 http_sender.*
18.1 方法列表
http_sender.scheme.listhttp_sender.scheme.createhttp_sender.scheme.deletehttp_sender.scheme.renamehttp_sender.scheme.clonehttp_sender.packet.listhttp_sender.packet.addhttp_sender.packet.updatehttp_sender.packet.deletehttp_sender.packet.clonehttp_sender.starthttp_sender.stophttp_sender.status
18.2 方案管理示例
Fatbeans.MCP.Client http_sender.scheme.list --pretty
Fatbeans.MCP.Client http_sender.scheme.create "{\"schemeName\":\"Demo HTTP\",\"loopMode\":\"ListLoop\",\"sendNumber\":10,\"sendIntervalMin\":500,\"sendIntervalMax\":1000}" --pretty
Fatbeans.MCP.Client http_sender.scheme.rename "{\"schemeId\":\"^<scheme-id^>\",\"newSchemeName\":\"新的方案名\"}" --pretty
Fatbeans.MCP.Client http_sender.scheme.clone "{\"schemeId\":\"^<scheme-id^>\",\"newSchemeName\":\"复制方案\"}" --pretty
Fatbeans.MCP.Client http_sender.scheme.delete "{\"schemeId\":\"^<scheme-id^>\"}" --pretty
18.3 请求项管理示例
Fatbeans.MCP.Client http_sender.packet.list "{\"schemeId\":\"^<scheme-id^>\"}" --pretty
Fatbeans.MCP.Client http_sender.packet.add "{\"schemeId\":\"^<scheme-id^>\",\"requestMethod\":\"GET\",\"url\":\"https://example.com/\"}" --pretty
Fatbeans.MCP.Client http_sender.packet.add "{\"schemeId\":\"^<scheme-id^>\",\"rawRequest\":\"GET / HTTP/1.1\r\nHost: example.com\r\n\r\n\"}" --pretty
Fatbeans.MCP.Client http_sender.packet.add "{\"schemeId\":\"^<scheme-id^>\",\"guid\":\"^<packet-guid^>\"}" --pretty
Fatbeans.MCP.Client http_sender.packet.update "{\"schemeId\":\"^<scheme-id^>\",\"packetId\":\"^<packet-id^>\",\"requestMethod\":\"POST\",\"url\":\"https://example.com/api/login\",\"bodyText\":\"user=demo^&pwd=123\"}" --pretty
Fatbeans.MCP.Client http_sender.packet.clone "{\"schemeId\":\"^<scheme-id^>\",\"packetId\":\"^<packet-id^>\"}" --pretty
Fatbeans.MCP.Client http_sender.packet.delete "{\"schemeId\":\"^<scheme-id^>\",\"packetId\":\"^<packet-id^>\"}" --pretty
18.4 执行控制示例
Fatbeans.MCP.Client http_sender.start "{\"schemeId\":\"^<scheme-id^>\"}" --pretty
Fatbeans.MCP.Client http_sender.status --pretty
Fatbeans.MCP.Client http_sender.stop --pretty
19. 取值器方法 value.*
19.1 方法列表
value.category.listvalue.category.createvalue.category.renamevalue.category.deletevalue.category.clonevalue.listvalue.create_simplevalue.create_from_packetvalue.create_expressionvalue.updatevalue.deletevalue.clonevalue.resolve
19.2 分类管理示例
Fatbeans.MCP.Client value.category.list --pretty
Fatbeans.MCP.Client value.category.create "{\"categoryName\":\"登录流程\"}" --pretty
Fatbeans.MCP.Client value.category.rename "{\"categoryId\":\"^<category-id^>\",\"newCategoryName\":\"新的分类名\"}" --pretty
Fatbeans.MCP.Client value.category.clone "{\"categoryId\":\"^<category-id^>\",\"newCategoryName\":\"复制后的分类\"}" --pretty
Fatbeans.MCP.Client value.category.delete "{\"categoryId\":\"^<category-id^>\"}" --pretty
19.3 值定义示例
Fatbeans.MCP.Client value.list "{\"categoryId\":\"^<category-id^>\"}" --pretty
Fatbeans.MCP.Client value.create_simple "{\"categoryId\":\"^<category-id^>\",\"valueName\":\"固定Token\",\"dataType\":\"String\",\"simpleValue\":\"hello\"}" --pretty
Fatbeans.MCP.Client value.create_from_packet "{\"categoryId\":\"^<category-id^>\",\"valueName\":\"Seq\",\"dataType\":\"Int\",\"searchHex\":\"AA BB 01\",\"fromPacketStartIndex\":4,\"fromPacketLen\":4,\"byteEndian\":\"BigEndian\"}" --pretty
Fatbeans.MCP.Client value.create_expression "{\"categoryId\":\"^<category-id^>\",\"valueName\":\"组合值\",\"dataType\":\"String\",\"expression\":\"\\"{固定Token}\\" + \\"_world\\"\"}" --pretty
Fatbeans.MCP.Client value.update "{\"valueId\":\"^<value-id^>\",\"valueName\":\"新的名称\",\"simpleValue\":\"ABC\"}" --pretty
Fatbeans.MCP.Client value.clone "{\"valueId\":\"^<value-id^>\",\"newValueName\":\"复制后的值\"}" --pretty
Fatbeans.MCP.Client value.delete "{\"valueId\":\"^<value-id^>\"}" --pretty
Fatbeans.MCP.Client value.resolve "{\"valueId\":\"^<value-id^>\"}" --pretty
Fatbeans.MCP.Client value.resolve "{\"valueId\":\"^<value-id^>\",\"guid\":\"^<packet-guid^>\"}" --pretty
20. MCP stdio server 模式
当使用 --mcp 启动时,客户端会作为 MCP Server 暴露 tools。底层使用标准输入输出通信,适合 MCP Host 接入。
20.1 启动示例
Fatbeans.MCP.Client --mcp
Fatbeans.MCP.Client --mcp --mcp-full
Fatbeans.MCP.Client --mcp --pipe fatbeans.mcp
Fatbeans.MCP.Client --mcp --mcp-full --pipe fatbeans.mcp --server . --timeout 10000
20.2 当前已注册的 MCP tool 类型
默认 --mcp 使用精简模式,只暴露:
CompactMcpTools
如果使用 --mcp-full,则暴露全量工具集:
PipeMcpToolsHttpSenderMcpToolsValueMcpToolsProxyMcpToolsRedirectMcpTools
20.3 精简模式工具
精简模式下仅暴露以下工具:
SystemPingSystemVersionSystemStatusSystemModeGetSystemLogsGetListMethodsGetMethodHelpPipeInvoke
21. 当前 MCP tools 总览
^> 以下为 --mcp-full 模式下的全量工具总览。
21.1 PipeMcpTools
这些 tools 主要覆盖系统、抓包、封包、归档、拦截、修改、回复器和本地自省能力:
SystemPingSystemVersionSystemStatusSystemModeGetSystemLogsGetCaptureStartCaptureStopCapturePauseCaptureResumeCaptureResetCaptureClearCaptureStatusCaptureConfigListCaptureConfigSelectCaptureConfigCreateCaptureConfigGetCaptureTargetAllCaptureTargetProcessIdsCaptureTargetProcessNamesCaptureTargetSelfCaptureTargetLaunchAndStartPacketListPacketSummaryGetPacketSearchPacketMemoGetPacketMemoSetPacketResendPacketModifyAndResendPacketConvertPacketListNotePacketEditNotePacketDelNotePacketGetPacketCountInterceptRuleListInterceptRuleCreateInterceptRuleUpdateInterceptRuleDeleteInterceptRuleEnableInterceptRuleDisableInterceptRuleCloneModifyRuleListModifyRuleCreateModifyRuleUpdateModifyRuleCreateHttpModifyRuleUpdateHttpModifyRuleDeleteModifyRuleEnableModifyRuleDisableModifyRuleCloneResponserRuleListResponserRuleCreateResponserRuleUpdateResponserRuleDeleteResponserRuleEnableResponserRuleDisableResponserRuleCloneArchiveOpenArchiveSaveAllArchiveSaveVisibleArchiveHistoryListArchiveHistoryClearArchiveExportJsonArchiveExportTextArchiveExportXmlArchiveExportCsvListMethodsGetMethodHelpPipeInvoke
21.2 HttpSenderMcpTools
HttpSenderSchemeListHttpSenderSchemeCreateHttpSenderSchemeDeleteHttpSenderSchemeRenameHttpSenderSchemeCloneHttpSenderPacketListHttpSenderPacketAddHttpSenderPacketUpdateHttpSenderPacketDeleteHttpSenderPacketCloneHttpSenderStartHttpSenderStopHttpSenderStatus
21.3 ValueMcpTools
ValueCategoryListValueCategoryCreateValueCategoryRenameValueCategoryDeleteValueCategoryCloneValueListValueCreateSimpleValueCreateFromPacketValueCreateExpressionValueUpdateValueDeleteValueCloneValueResolve
21.4 ProxyMcpTools
ProxySocks5StatusProxySocks5ToggleProxySocks5ConfigGetProxySocks5ConfigSetProxyLevel2Set
21.5 RedirectMcpTools
RedirectListRedirectAddTcpRedirectAddHttpRedirectDeleteRedirectRuleEnableRedirectRuleDisableRedirectRuleClone
22. 本地自省能力说明
客户端本地实现了以下方法:
system.listMethodssystem.help
它们不依赖远端 Pipe 服务,可以在目标程序尚未完整实现自省接口时直接使用。
示例:
Fatbeans.MCP.Client system.listMethods --pretty
Fatbeans.MCP.Client system.help "{\"method\":\"system.ping\"}" --pretty
Fatbeans.MCP.Client system.help "{\"method\":\"http_sender.packet.add\"}" --pretty
^> 补充:当前本地自省结果主要覆盖 system/capture/packet/archive/intercept/modify/responser/redirect/http_sender/value 等已接入说明的方法;proxy.* 当前已具备 MCP tools 与 CLI 调用能力,但本地自省说明未完全覆盖时,应以本 README 和代码实现为准。
23. 常见调用建议
23.1 建议先调用状态方法
Fatbeans.MCP.Client system.status --pretty
Fatbeans.MCP.Client capture.status --pretty
Fatbeans.MCP.Client http_sender.status --pretty
Fatbeans.MCP.Client proxy.socks5.status --pretty
23.2 建议先列列表再做精确操作
Fatbeans.MCP.Client capture.config_list --pretty
Fatbeans.MCP.Client packet.list "{\"pageIndex\":1,\"pageSize\":20}" --pretty
Fatbeans.MCP.Client intercept.rule.list --pretty
Fatbeans.MCP.Client modify.rule.list --pretty
Fatbeans.MCP.Client value.category.list --pretty
Fatbeans.MCP.Client http_sender.scheme.list --pretty
23.3 对单条对象优先使用稳定 ID
例如:
- 封包优先使用
guid - 规则优先使用
ruleId - 发送方案优先使用
schemeId - 请求项优先使用
packetId - 取值器分类优先使用
categoryId - 值定义优先使用
valueId
24. 示例:典型工作流
24.1 抓包并查看封包
Fatbeans.MCP.Client capture.start --pretty
Fatbeans.MCP.Client capture.status --pretty
Fatbeans.MCP.Client packet.count --pretty
Fatbeans.MCP.Client packet.list "{\"pageIndex\":1,\"pageSize\":10}" --pretty
Fatbeans.MCP.Client packet.get "{\"index\":1}" --pretty
24.2 保存归档并导出
Fatbeans.MCP.Client archive.save_all "{\"filePath\":\"D:\\all.fatbeans\"}" --pretty
Fatbeans.MCP.Client archive.export.json "{\"filePath\":\"D:\\all.json\",\"sourceType\":\"packet\"}" --pretty
Fatbeans.MCP.Client archive.history.list --pretty
24.3 创建 HTTP 发送方案并执行
Fatbeans.MCP.Client http_sender.scheme.create "{\"schemeName\":\"登录压测\"}" --pretty
Fatbeans.MCP.Client http_sender.packet.add "{\"schemeId\":\"^<scheme-id^>\",\"requestMethod\":\"POST\",\"url\":\"https://example.com/api/login\",\"headers\":\"Content-Type: application/x-www-form-urlencoded\",\"bodyText\":\"user=demo^&pwd=123\"}" --pretty
Fatbeans.MCP.Client http_sender.start "{\"schemeId\":\"^<scheme-id^>\"}" --pretty
Fatbeans.MCP.Client http_sender.status --pretty
Fatbeans.MCP.Client http_sender.stop --pretty
24.4 创建取值器并验证解析结果
Fatbeans.MCP.Client value.category.create "{\"categoryName\":\"登录流程\"}" --pretty
Fatbeans.MCP.Client value.create_simple "{\"categoryId\":\"^<category-id^>\",\"valueName\":\"固定Token\",\"dataType\":\"String\",\"simpleValue\":\"hello\"}" --pretty
:: 假设 categoryId 是 123
Fatbeans.MCP.Client value.create_expression "{\"categoryId\":\"123\",\"valueName\":\"组合值\",\"dataType\":\"String\",\"expression\":\"{固定Token}\"}" --pretty
Fatbeans.MCP.Client value.list "{\"categoryId\":\"^<category-id^>\"}" --pretty
Fatbeans.MCP.Client value.resolve "{\"valueId\":\"^<value-id^>\"}" --pretty
25. 备注
- 命令行模式下,你可以直接调用任何已知 Pipe 方法名
- MCP 模式下,推荐优先使用已暴露的强类型 tools
- 如果主程序后续新增了 Pipe 方法,而客户端尚未补充专用封装,CLI 仍可通过
^<method^> [paramsJson]方式直接调用 - 若需要查询方法帮助,优先使用
system.help
Collected info
- ★ 11 stars
- ⎇ 2 forks
- Language: C#
- Source updated: 8/28/2026
Config for your environment
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.