← Discover MCPs and Agents
F
MCPAI & MLGitHub

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.0
  • TargetFramework: net9.0
  • ModelContextProtocol 1.2.0

它是独立的 net9.0 客户端,不依赖主程序的 .NET Framework 4.5 目标框架。

2. 主要用途

Fatbeans.MCP.Client 主要有两种使用方式:

  1. CLI 直连 Pipe 调用

    • 适合脚本、批处理、PowerShell、测试调用
    • 直接执行某个方法名,例如 system.pingcapture.startpacket.list
  2. MCP stdio server

    • 适合接入支持 MCP 的 Host、IDE、Agent 或自动化平台
    • 客户端自身作为一个 MCP Server 暴露 tools,再由 tools 转发到主程序 Pipe

3. 目录结构

  • Configuration:CLI 参数与 MCP 运行配置
  • Infrastructure/Pipe:Pipe 通信封装
  • Features/Systemsystem.* 与自省能力
  • Features/Mcp:MCP Server Host 与通用 Pipe tools
  • Features/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.ping
  • system.version
  • system.status
  • system.modeGet
  • system.logsGet
  • system.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.start
  • capture.stop
  • capture.pause
  • capture.resume
  • capture.reset
  • capture.clear
  • capture.status
  • capture.config_list
  • capture.config_select
  • capture.config_create
  • capture.config_get
  • capture.target_all
  • capture.target_process_ids
  • capture.target_process_names
  • capture.target_self
  • capture.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.list
  • packet.get
  • packet.count
  • packet.summary.get
  • packet.search
  • packet.memo.get
  • packet.memo.set
  • packet.resend
  • packet.modify_and_resend
  • packet.convert
  • packet.listnote
  • packet.editnote
  • packet.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.open
  • archive.save_all
  • archive.save_visible
  • archive.history.list
  • archive.history.clear
  • archive.export.json
  • archive.export.text
  • archive.export.xml
  • archive.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.list
  • intercept.rule.create
  • intercept.rule.update
  • intercept.rule.delete
  • intercept.rule.enable
  • intercept.rule.disable
  • intercept.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.list
  • modify.rule.create
  • modify.rule.update
  • modify.rule.createhttp
  • modify.rule.updatehttp
  • modify.rule.delete
  • modify.rule.enable
  • modify.rule.disable
  • modify.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.list
  • responser.rule.create
  • responser.rule.update
  • responser.rule.delete
  • responser.rule.enable
  • responser.rule.disable
  • responser.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.list
  • redirect.add_tcp
  • redirect.add_http
  • redirect.del
  • redirect.rule_enable
  • redirect.rule_disable
  • redirect.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.status
  • proxy.socks5.toggle
  • proxy.socks5.config.get
  • proxy.socks5.config.set
  • proxy.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.list
  • http_sender.scheme.create
  • http_sender.scheme.delete
  • http_sender.scheme.rename
  • http_sender.scheme.clone
  • http_sender.packet.list
  • http_sender.packet.add
  • http_sender.packet.update
  • http_sender.packet.delete
  • http_sender.packet.clone
  • http_sender.start
  • http_sender.stop
  • http_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.list
  • value.category.create
  • value.category.rename
  • value.category.delete
  • value.category.clone
  • value.list
  • value.create_simple
  • value.create_from_packet
  • value.create_expression
  • value.update
  • value.delete
  • value.clone
  • value.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,则暴露全量工具集:

  • PipeMcpTools
  • HttpSenderMcpTools
  • ValueMcpTools
  • ProxyMcpTools
  • RedirectMcpTools

20.3 精简模式工具

精简模式下仅暴露以下工具:

  • SystemPing
  • SystemVersion
  • SystemStatus
  • SystemModeGet
  • SystemLogsGet
  • ListMethods
  • GetMethodHelp
  • PipeInvoke

21. 当前 MCP tools 总览

^> 以下为 --mcp-full 模式下的全量工具总览。

21.1 PipeMcpTools

这些 tools 主要覆盖系统、抓包、封包、归档、拦截、修改、回复器和本地自省能力:

  • SystemPing
  • SystemVersion
  • SystemStatus
  • SystemModeGet
  • SystemLogsGet
  • CaptureStart
  • CaptureStop
  • CapturePause
  • CaptureResume
  • CaptureReset
  • CaptureClear
  • CaptureStatus
  • CaptureConfigList
  • CaptureConfigSelect
  • CaptureConfigCreate
  • CaptureConfigGet
  • CaptureTargetAll
  • CaptureTargetProcessIds
  • CaptureTargetProcessNames
  • CaptureTargetSelf
  • CaptureTargetLaunchAndStart
  • PacketList
  • PacketSummaryGet
  • PacketSearch
  • PacketMemoGet
  • PacketMemoSet
  • PacketResend
  • PacketModifyAndResend
  • PacketConvert
  • PacketListNote
  • PacketEditNote
  • PacketDelNote
  • PacketGet
  • PacketCount
  • InterceptRuleList
  • InterceptRuleCreate
  • InterceptRuleUpdate
  • InterceptRuleDelete
  • InterceptRuleEnable
  • InterceptRuleDisable
  • InterceptRuleClone
  • ModifyRuleList
  • ModifyRuleCreate
  • ModifyRuleUpdate
  • ModifyRuleCreateHttp
  • ModifyRuleUpdateHttp
  • ModifyRuleDelete
  • ModifyRuleEnable
  • ModifyRuleDisable
  • ModifyRuleClone
  • ResponserRuleList
  • ResponserRuleCreate
  • ResponserRuleUpdate
  • ResponserRuleDelete
  • ResponserRuleEnable
  • ResponserRuleDisable
  • ResponserRuleClone
  • ArchiveOpen
  • ArchiveSaveAll
  • ArchiveSaveVisible
  • ArchiveHistoryList
  • ArchiveHistoryClear
  • ArchiveExportJson
  • ArchiveExportText
  • ArchiveExportXml
  • ArchiveExportCsv
  • ListMethods
  • GetMethodHelp
  • PipeInvoke

21.2 HttpSenderMcpTools

  • HttpSenderSchemeList
  • HttpSenderSchemeCreate
  • HttpSenderSchemeDelete
  • HttpSenderSchemeRename
  • HttpSenderSchemeClone
  • HttpSenderPacketList
  • HttpSenderPacketAdd
  • HttpSenderPacketUpdate
  • HttpSenderPacketDelete
  • HttpSenderPacketClone
  • HttpSenderStart
  • HttpSenderStop
  • HttpSenderStatus

21.3 ValueMcpTools

  • ValueCategoryList
  • ValueCategoryCreate
  • ValueCategoryRename
  • ValueCategoryDelete
  • ValueCategoryClone
  • ValueList
  • ValueCreateSimple
  • ValueCreateFromPacket
  • ValueCreateExpression
  • ValueUpdate
  • ValueDelete
  • ValueClone
  • ValueResolve

21.4 ProxyMcpTools

  • ProxySocks5Status
  • ProxySocks5Toggle
  • ProxySocks5ConfigGet
  • ProxySocks5ConfigSet
  • ProxyLevel2Set

21.5 RedirectMcpTools

  • RedirectList
  • RedirectAddTcp
  • RedirectAddHttp
  • RedirectDelete
  • RedirectRuleEnable
  • RedirectRuleDisable
  • RedirectRuleClone

22. 本地自省能力说明

客户端本地实现了以下方法:

  • system.listMethods
  • system.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.