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 看系统。
免费,不受 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 步AI 客户端调用
kill_by_port,附上 reason - 第 2 步agilemedic-mcp.exe查出 3000 端口上的进程,去问主程序
- 第 3 步AgileMedic 主程序弹「AI 请求执行一项系统写操作」
- 第 4 步你默认焦点在「拒绝」,点「允许」才执行
真实工具一览
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_metrics | CPU、内存、提交内存、磁盘、网络速率,采样约 250 ms |
list_startup_items | 注册表 Run 启动项(HKLM + HKCU),带是否启用 |
list_services | 全部 Windows 服务:状态、启动类型、PID、路径 |
list_network_connections | TCP / 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_signatures | Authenticode 签名核验,可只看可疑项;结果跨会话缓存 |
get_app_info | AgileMedic 自身版本、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 弹窗再确认一次,文件移到回收站可恢复)
(以上对话是示意,数字是举例。)
consent 安全机制
写操作不能被 AI 背着你执行
所有会改变系统状态的工具(结束进程、清理文件、改服务 / 启动项)在真正执行前,都会经过本机 consent(授权) 流程:
- sidecar 通过固定名命名管道
agilemedic-consent-v1连接 AgileMedic 主程序agile-medic.exe。 - 主程序弹出「AI 请求执行一项系统写操作」,展示操作内容 + 影响范围 + AI 给出的理由。
- 你必须亲手点「允许」,操作才会执行;默认焦点在「拒绝」,点「拒绝」或 120 秒无人响应则自动拒绝。
- 主程序未运行时授权失败,动作不执行(fail-safe)—— AI 拿不到「绕过授权」的路径。
也就是说:只读随便看,动手必问你。
弹窗对每个写操作都会显示:
- 具体做什么(如「强制结束进程「node.exe」(PID 12480)」)
- 影响细节(可执行路径、内存占用、注册表位置等)
- AI 传入的
reason字段(AI 为什么要做这件事)
一键接入
在应用侧栏「诊断 · AI → MCP 接入」里,每个客户端一行,点「一键接入」即可,重启客户端生效;也可以「接入全部」「全部取消」。写入前把原配置文件备份为 <文件名>.bak.<时间戳>,只增删 agilemedic 这一项,别的 MCP Server 不动。
%APPDATA%\Claude\…config.json官方桌面客户端~/.claude.json多实例写 ~/.claude-instance-N/.claude.json~/.codex/config.tomlTOML,保留原有注释与其他段~/.cursor/mcp.json结构同 Claude Desktop~/.cline/mcp.jsonVS Code 扩展,结构同 Cursor~/.config/zed/settings.json写在 context_servers 下~/.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。
下一步
- 接入 Claude Desktop —— 一键接入或手动配置
- 接入 Cursor —— Cursor / Cline / Codex / Zed / OpenCode
- 工具参考 —— 每个工具的完整参数与返回