Fatbeans.MCP.Client 是独立的控制台客户端,用于从命令行、脚本、外部进程或 AI Agent 调用Fatbeans Creater提供的MCP工具服务。
下载Fatbeans Creater请访问以下地址:
https://github.com/fatbeanssoft/Fatbeans-TCP-Packet-Capture-Tool
本项目使用:
.NET SDK 9.0ModelContextProtocol 1.2.0
它是独立的 net9.0 客户端,不依赖主程序的 .NET Framework 4.5 目标框架。
Fatbeans.MCP.Client 主要有两种使用方式:
-
CLI 直连 Pipe 调用
- 适合脚本、批处理、PowerShell、测试调用
- 直接执行某个方法名,例如
system.ping、capture.start、packet.list
-
MCP stdio server
- 适合接入支持 MCP 的 Host、IDE、Agent 或自动化平台
- 客户端自身作为一个 MCP Server 暴露 tools,再由 tools 转发到主程序 Pipe
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:取值器分类和值定义封装
Fatbeans.MCP.Client.exe ^<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\"}"Fatbeans.MCP.Client --mcp [--pipe ^<name^>] [--server ^<name^>] [--timeout ^<ms^>]示例:
Fatbeans.MCP.Client --mcp
Fatbeans.MCP.Client --mcp --pipe fatbeans.mcp
Fatbeans.MCP.Client --mcp --pipe fatbeans.mcp --timeout 10000--pipe ^<name^>:Pipe 名称,默认fatbeans.mcp--server ^<name^>:服务器名,默认.--timeout ^<ms^>:连接超时毫秒数,默认5000--pretty:将输出 JSON 美化格式化--mcp:以 MCP stdio server 模式运行--help或-h:显示帮助
示例:
Fatbeans.MCP.Client system.status --pretty
Fatbeans.MCP.Client system.ping --pipe fatbeans.mcp --timeout 8000
Fatbeans.MCP.Client --help- 第二个位置参数如果存在,会被当成
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客户端输出统一为 JSON。
- 成功时输出响应 JSON,并返回退出码
0 - 参数错误或运行异常时输出错误信息到标准错误,并返回退出码
1 - Pipe 调用成功返回但业务结果为失败时,通常返回退出码
2
示例:
Fatbeans.MCP.Client system.ping
Fatbeans.MCP.Client system.version --prettyFatbeans.MCP.Client system.ping
Fatbeans.MCP.Client system.version --pretty
Fatbeans.MCP.Client system.status --prettyFatbeans.MCP.Client system.listMethods --pretty
Fatbeans.MCP.Client system.help "{\"method\":\"system.ping\"}" --pretty
Fatbeans.MCP.Client system.help "{\"method\":\"packet.list\"}" --prettyCLI 本身支持直接传入任意方法名,因此不需要额外的 pipe.invoke 命令行封装。
Fatbeans.MCP.Client proxy.socks5.status --pretty
Fatbeans.MCP.Client redirect.list --pretty
Fatbeans.MCP.Client archive.history.list --pretty当前客户端已接入或可直接调用以下类别的方法:
system.*capture.*packet.*archive.*intercept.rule.*modify.rule.*responser.rule.*redirect.*proxy.*http_sender.*value.*- 其他主程序已暴露的 Pipe 方法(可直接通过
^<method^>方式调用)
system.pingsystem.versionsystem.statussystem.modeGetsystem.logsGetsystem.listMethods(本地实现)system.help(本地实现)
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\"}" --prettycapture.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
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 --prettyFatbeans.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}" --prettyFatbeans.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\"}" --prettypacket.listpacket.getpacket.countpacket.summary.getpacket.searchpacket.memo.getpacket.memo.setpacket.resendpacket.modify_and_resendpacket.convertpacket.listnotepacket.editnotepacket.delnote
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}" --prettyFatbeans.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^>\"]}" --prettyFatbeans.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\"}" --prettyFatbeans.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}" --prettyarchive.openarchive.save_allarchive.save_visiblearchive.history.listarchive.history.cleararchive.export.jsonarchive.export.textarchive.export.xmlarchive.export.csv
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 --prettyFatbeans.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\"}" --prettyintercept.rule.listintercept.rule.createintercept.rule.updateintercept.rule.deleteintercept.rule.enableintercept.rule.disableintercept.rule.clone
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^>\"}" --prettymodify.rule.listmodify.rule.createmodify.rule.updatemodify.rule.createhttpmodify.rule.updatehttpmodify.rule.deletemodify.rule.enablemodify.rule.disablemodify.rule.clone
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^>\"}" --prettyFatbeans.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\"}" --prettyresponser.rule.listresponser.rule.createresponser.rule.updateresponser.rule.deleteresponser.rule.enableresponser.rule.disableresponser.rule.clone
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^> 仅全能模式可用。
redirect.listredirect.add_tcpredirect.add_httpredirect.delredirect.rule_enableredirect.rule_disableredirect.rule_clone
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^>\"}" --prettyFatbeans.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\"]}" --prettyproxy.socks5.statusproxy.socks5.toggleproxy.socks5.config.getproxy.socks5.config.setproxy.level2.set
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}" --prettyFatbeans.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}" --prettyhttp_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
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^>\"}" --prettyFatbeans.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^>\"}" --prettyFatbeans.MCP.Client http_sender.start "{\"schemeId\":\"^<scheme-id^>\"}" --pretty
Fatbeans.MCP.Client http_sender.status --pretty
Fatbeans.MCP.Client http_sender.stop --prettyvalue.category.listvalue.category.createvalue.category.renamevalue.category.deletevalue.category.clonevalue.listvalue.create_simplevalue.create_from_packetvalue.create_expressionvalue.updatevalue.deletevalue.clonevalue.resolve
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^>\"}" --prettyFatbeans.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当使用 --mcp 启动时,客户端会作为 MCP Server 暴露 tools。底层使用标准输入输出通信,适合 MCP Host 接入。
Fatbeans.MCP.Client --mcp
Fatbeans.MCP.Client --mcp --pipe fatbeans.mcp
Fatbeans.MCP.Client --mcp --pipe fatbeans.mcp --server . --timeout 10000PipeMcpToolsHttpSenderMcpToolsValueMcpToolsProxyMcpToolsRedirectMcpTools
这些 tools 主要覆盖系统、抓包、封包、归档、拦截、修改、回复器和本地自省能力:
SystemPingSystemVersionSystemStatusSystemModeGetSystemLogsGetCaptureStartCaptureStopCapturePauseCaptureResumeCaptureResetCaptureClearCaptureStatusCaptureConfigListCaptureConfigSelectCaptureConfigCreateCaptureConfigGetCaptureTargetAllCaptureTargetProcessIdsCaptureTargetProcessNamesCaptureTargetSelfCaptureTargetLaunchAndStartPacketListPacketSummaryGetPacketSearchPacketMemoGetPacketMemoSetPacketResendPacketModifyAndResendPacketConvertPacketListNotePacketEditNotePacketDelNotePacketGetPacketCountInterceptRuleListInterceptRuleCreateInterceptRuleUpdateInterceptRuleDeleteInterceptRuleEnableInterceptRuleDisableInterceptRuleCloneModifyRuleListModifyRuleCreateModifyRuleUpdateModifyRuleCreateHttpModifyRuleUpdateHttpModifyRuleDeleteModifyRuleEnableModifyRuleDisableModifyRuleCloneResponserRuleListResponserRuleCreateResponserRuleUpdateResponserRuleDeleteResponserRuleEnableResponserRuleDisableResponserRuleCloneArchiveOpenArchiveSaveAllArchiveSaveVisibleArchiveHistoryListArchiveHistoryClearArchiveExportJsonArchiveExportTextArchiveExportXmlArchiveExportCsvListMethodsGetMethodHelpPipeInvoke
HttpSenderSchemeListHttpSenderSchemeCreateHttpSenderSchemeDeleteHttpSenderSchemeRenameHttpSenderSchemeCloneHttpSenderPacketListHttpSenderPacketAddHttpSenderPacketUpdateHttpSenderPacketDeleteHttpSenderPacketCloneHttpSenderStartHttpSenderStopHttpSenderStatus
ValueCategoryListValueCategoryCreateValueCategoryRenameValueCategoryDeleteValueCategoryCloneValueListValueCreateSimpleValueCreateFromPacketValueCreateExpressionValueUpdateValueDeleteValueCloneValueResolve
ProxySocks5StatusProxySocks5ToggleProxySocks5ConfigGetProxySocks5ConfigSetProxyLevel2Set
RedirectListRedirectAddTcpRedirectAddHttpRedirectDeleteRedirectRuleEnableRedirectRuleDisableRedirectRuleClone
客户端本地实现了以下方法:
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 和代码实现为准。
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 --prettyFatbeans.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例如:
- 封包优先使用
guid - 规则优先使用
ruleId - 发送方案优先使用
schemeId - 请求项优先使用
packetId - 取值器分类优先使用
categoryId - 值定义优先使用
valueId
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}" --prettyFatbeans.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 --prettyFatbeans.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 --prettyFatbeans.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- 命令行模式下,你可以直接调用任何已知 Pipe 方法名
- MCP 模式下,推荐优先使用已暴露的强类型 tools
- 如果主程序后续新增了 Pipe 方法,而客户端尚未补充专用封装,CLI 仍可通过
^<method^> [paramsJson]方式直接调用 - 若需要查询方法帮助,优先使用
system.help