跳到正文
AgileMedic
Esc
本栏目菜单

MCP 接入(反向集成)

可用免费功能 · v0.3.0 · 21 个工具 · 内容由你接入的 AI 客户端处理

MCP(Model Context Protocol) 是 Anthropic 在 2024 年推出的开放协议,让 AI 客户端(Claude Desktop / Cursor / Cline 等)可以调用外部工具,就像浏览器装插件一样扩展能力。

大多数应用接入 MCP 是为了「让 AI 帮自己干活」。AgileMedic 走的是反向的路子:它自己就是一个 MCP Server。接入 Claude Desktop、Cursor 之后,你在那边问「我电脑为什么卡」,AI 自己去读进程、内存、启动项和网络连接再回答。要结束进程、清垃圾这类会改系统的事,得你在 AgileMedic 的弹窗里点「允许」。这和 AgileShot 的思路类似:AgileShot 给 AI 看屏幕,AgileMedic 给 AI 看系统。

只读工具13 个直接调,主程序没开也能用
写工具8 个每次弹窗,默认拒绝
无人点就拒绝120 秒主程序没开直接失败
一键接入7 种客户端,写前备份

免费,不受 AI 试用期限制

MCP 接入属于基础功能。模型由你的 AI 客户端调用,不经过 AgileMedic 的 AI 授权,也不用在 AgileMedic 里配 API Key。数据会不会离开本机,取决于你用的 AI 客户端和它的模型服务。

它是怎么工作的

AI 客户端拉起的不是 AgileMedic 主程序,而是安装目录里一个单独的小程序 agilemedic-mcp.exe(和主程序 agile-medic.exe 在同一目录)。它没有窗口,只在标准输入输出上收发 JSON-RPC 2.0(每行一条,NDJSON),协议版本对齐 MCP spec 2024-11-05。

  • 只读工具自己读系统:列进程、查端口、扫垃圾这些直接调系统接口,AgileMedic 主程序没开也能用。
  • 写工具要回主程序要授权:经命名管道 agilemedic-consent-v1 连上 AgileMedic 主程序,由主程序弹窗问你。
  • 它不联网:这个小程序不读你的 AI 配置、不碰授权与更新,AI 客户端从它拿不到你的 API Key。
┌────────────────────┐   stdio JSON-RPC   ┌────────────────────────┐
│  Claude Desktop /   │ ◄────────────────► │  agilemedic-mcp.exe    │
│  Cursor / Cline …   │   (NDJSON 2.0)     │  (独立 MCP sidecar)     │
└────────────────────┘                    └───────────┬────────────┘
   只读工具:sidecar 直接读系统(进程 / 网络 / 服务 / 垃圾 / 大文件 / 指标)
   写工具:sidecar ──命名管道 agilemedic-consent-v1──► agile-medic.exe 弹窗
           你点「允许」后由 sidecar 执行;点「拒绝」或 120 秒没人点 → 拒绝
图 1一次写操作要经过谁(自上而下)
  1. 第 1 步AI 客户端调用 kill_by_port,附上 reason
  2. 第 2 步agilemedic-mcp.exe查出 3000 端口上的进程,去问主程序
  3. 第 3 步AgileMedic 主程序弹「AI 请求执行一项系统写操作」
  4. 第 4 步你默认焦点在「拒绝」,点「允许」才执行
主程序没运行时直接返回失败:「AgileMedic 主程序未运行 — 写操作必须经主程序弹窗授权」。

真实工具一览

sidecar 在 v0.3.0 注册了 21 个工具:13 个只读、8 个需授权。每个工具的完整参数与返回见 工具参考。

只读工具 · 13 个(直接可调,无需授权)

工具返回什么
list_processes全部进程:PID、父进程、路径、内存、CPU%、签名缓存(首次调用采两次样,多等约 0.5 秒)
get_process_tree按父子关系嵌套的进程树
get_process_command_line指定 PID 的完整命令行,用来分清同名的 node / python / svchost
get_system_metricsCPU、内存、提交内存、磁盘、网络速率,采样约 250 ms
list_startup_items注册表 Run 启动项(HKLM + HKCU),带是否启用
list_services全部 Windows 服务:状态、启动类型、PID、路径
list_network_connectionsTCP / UDP、IPv4 / IPv6 连接与所属进程
find_process_by_port某个本地端口被哪些进程占着(参数 port,1–65535)
list_uninstall_entries已安装软件:名称、版本、发布者、大小
find_large_files目录下的大文件,默认从用户目录起、≥ 50 MB、取前 50 个
scan_junk可清理的垃圾,分 system / browser / devtools 三组,带 safe / caution
verify_signaturesAuthenticode 签名核验,可只看可疑项;结果跨会话缓存
get_app_infoAgileMedic 自身版本、Qt 版本、数据目录

写工具 · 8 个(执行前必须经你授权)

每次调用都弹窗,没有「记住这次授权」。所有写工具都接受一个可选的 reason,会原样显示在弹窗的「AI 给出的理由」里。

工具做什么不弹窗、直接返回的情况
kill_process强制结束一个 PID系统关键进程(PID 0 / 4)直接拒绝
kill_by_port结束占用某端口的全部进程跳过 PID 0 / 4;端口上没有进程
unlock_file用 Restart Manager 请占用进程退出,同 文件解锁 第一档文件没人占用
clean_junk把指定分类移到回收站(可恢复)浏览器开着时跳过浏览器分类;全被跳过
set_startup_item_enabled启用 / 禁用一个启动项已经是目标状态
start_service启动一个服务已在运行
stop_service停止一个服务已停止
set_service_start_type改启动类型:auto / auto_delayed / manual / disabled已经是目标值

每个写工具的参数与返回字段见 工具参考。

写操作在哪个进程里执行

你点「允许」之后,动作由 agilemedic-mcp.exe 执行,它的权限跟随拉起它的 AI 客户端(AgileMedic 主程序是管理员,与这里无关)。客户端以普通权限运行时,改服务、改 HKLM 启动项可能失败,返回的错误会写明原因。

典型用例

用例 1:AI 帮你诊断「电脑为什么卡」

你: 我电脑最近特别卡,帮我看看怎么回事。

AI:(调用 get_system_metrics 看 CPU / 内存 / 提交内存 → list_processes 找占资源的进程 → 必要时 get_process_command_line 看它到底跑的什么)→「有个 node.exe(PID 12480)吃了 4.2 GB 内存,命令行显示是某个卡住的构建进程,建议结束它。」

用例 2:AI 帮你查「端口被谁占了」

你: 我的 dev server 起不来,说 3000 端口被占用了。

AI:(调用 find_process_by_port(port=3000))→「3000 端口被 python.exe(PID 8820)占用。要我帮你结束它吗?」→(你同意后调 kill_by_port,AgileMedic 弹窗你再点一次「允许」)

用例 3:AI 帮你排查可疑进程

你: 我怀疑电脑中招了,有没有可疑程序在跑?

AI:(调用 verify_signatures(only_suspicious=true) 只看未签名 / 签名无效的 exe → 对可疑项 get_process_command_line 看行为)→ 列出没有有效数字签名的进程供你判断。

用例 4:AI 帮你清理磁盘垃圾

你: C 盘满了,帮我清一下没用的缓存。

AI:(调用 scan_junk 看各分类可释放空间 → 向你说明 safety=caution 的分类有什么副作用)→「可以释放约 8.6 GB,其中 npm / pip 开发缓存 5.1 GB。要清理吗?」→(你同意后调 clean_junk,AgileMedic 弹窗再确认一次,文件移到回收站可恢复)

(以上对话是示意,数字是举例。)

写操作不能被 AI 背着你执行

所有会改变系统状态的工具(结束进程、清理文件、改服务 / 启动项)在真正执行前,都会经过本机 consent(授权) 流程:

  1. sidecar 通过固定名命名管道 agilemedic-consent-v1 连接 AgileMedic 主程序 agile-medic.exe。
  2. 主程序弹出「AI 请求执行一项系统写操作」,展示操作内容 + 影响范围 + AI 给出的理由。
  3. 你必须亲手点「允许」,操作才会执行;默认焦点在「拒绝」,点「拒绝」或 120 秒无人响应则自动拒绝。
  4. 主程序未运行时授权失败,动作不执行(fail-safe)—— AI 拿不到「绕过授权」的路径。

也就是说:只读随便看,动手必问你。

弹窗对每个写操作都会显示:

  • 具体做什么(如「强制结束进程「node.exe」(PID 12480)」)
  • 影响细节(可执行路径、内存占用、注册表位置等)
  • AI 传入的 reason 字段(AI 为什么要做这件事)

一键接入

在应用侧栏「诊断 · AI → MCP 接入」里,每个客户端一行,点「一键接入」即可,重启客户端生效;也可以「接入全部」「全部取消」。写入前把原配置文件备份为 <文件名>.bak.<时间戳>,只增删 agilemedic 这一项,别的 MCP Server 不动。

Claude Desktop%APPDATA%\Claude\…config.json官方桌面客户端
Claude Code~/.claude.json多实例写 ~/.claude-instance-N/.claude.json
Codex~/.codex/config.tomlTOML,保留原有注释与其他段
Cursor~/.cursor/mcp.json结构同 Claude Desktop
Cline~/.cline/mcp.jsonVS Code 扩展,结构同 Cursor
Zed~/.config/zed/settings.json写在 context_servers 下
OpenCode~/.config/opencode/opencode.json写在 mcp 下,type 为 local

每行显示接入状态:「未接入」「已接入」「指向旧程序, 请重新接入」「配置文件异常」四种。点「自检链路」会真的拉起一次 agilemedic-mcp.exe 跑握手,成功时显示「链路正常 — 21 个工具, 协议 2024-11-05, 耗时 N ms」。分客户端的详细步骤见 接入 Claude 与 接入 Cursor 等客户端。

手动配置

不想让 AgileMedic 改你的配置文件,就点「复制 JSON 片段」自己贴;JSON 里不展开环境变量,要写完整路径。Claude Code 也可以在 PowerShell 里用命令行($env:LOCALAPPDATA 会展开成你的实际目录):

claude mcp add agilemedic -- `
  "$env:LOCALAPPDATA/Programs/AgileMedic/agilemedic-mcp.exe"
可选:Streamable HTTP 端点

运行 agile-medic.exe --mcp-http [端口] 会起一个只绑 127.0.0.1 的 HTTP 端点,给浏览器扩展或远程连接器用。端口不填由系统分配,启动时打印 MCP_HTTP_PORT=;请求要带 Bearer token,首次运行随机生成 64 位十六进制,打印为 MCP_HTTP_TOKEN=。只接受来自 localhost 的 Origin。

安全说明

接入前请了解

  • 只读工具能读到你系统的全貌 —— 进程、网络连接、已装软件、文件路径等。这些信息由你的 AI 客户端发给它用的模型服务,不经过 AgileMedic。接入前请确认你信任该 AI 客户端。
  • 写操作永远需要你亲手授权 —— 但请认真看弹窗内容,不要无脑点「允许」。
  • sidecar 不联网、不上传 —— 它只在本机 stdio 上响应 AI 客户端。
  • 不想用时可随时取消接入 —— 在 MCP 接入面板点「取消接入」,或在客户端配置里删掉 entry。

关于隐私边界的更多说明见 隐私与数据。

在应用里直接问 AI

不用外部客户端,也可以在应用侧栏「AI 诊断」里对话 —— 那是 AgileMedic 自己调用你配的模型,属于 AI 功能(提供免费试用,之后需授权),见 AI 诊断 与 配置 AI。

下一步