MCP:在 Claude Code 里实测工具调用,并核对断开后模拟器不被带走

Offen
#21 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
Ein halber Tag
Anfängerfreundlichkeit
40/100
Issue-Typ
Dokumentation
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
go
Bereich
testing

Rechercherichtung

Start with the MCP section of the README and the modavd mcp entry point, then read how modavd list --json and modavd stop report instance state. Run the two Claude Code rounds (default and legacy protocol) in a separate test root with claude -p --mcp-config <file> --strict-mcp-config, following the tool sequence in the issue. Done means both rounds match the Codex results, progress notifications increase, the disconnect check passes or a P1 bug is filed, and the outcome is recorded in the README.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

enhancement P2

现状

modavd mcp 已经实测过的:

  • Codex 当 MCP 客户端,七个工具的调用全部成功,start_instance 期间收到 13 条 notifications/progress,进度值严格递增;
  • Claude Code 两代协议(默认和 MCP_PROTOCOL_NEGOTIATION=legacy)的握手都通,tools/list 返回完整的 11 个工具;
  • 「断开 MCP 后模拟器还在」只在自己写的模拟客户端上核过:qemu 的父进程链里没有客户端和 modavd。

还没在 Claude Code 里真正调用过工具,也没在真实客户端上核过断开。

为什么要测断开

Windows 上 Claude Code 断开 MCP 服务器时,会结束服务端的整棵进程树。modavd 拉起模拟器时经过一个中间进程,按设计模拟器不在这棵树里。如果这一点在真实客户端上不成立,关掉 Claude Code 就会把开着的实例直接结束:不走 sync,客体里还没写回的数据会丢。

要做的

在一个单独的测试根目录里做,不改用户自己的 Claude Code 配置(用 claude -p --mcp-config <文件> --strict-mcp-config,只在这一次调用里加载 modavd)。

  1. 默认协议和 legacy 协议各跑一轮,按顺序调用:list_instances、check_host、create_instance(3 GB、4 核)、start_instance、shell(getprop sys.boot_completed)、stop_instance、delete_instance。每轮记下:实际走的协议、每个工具的结果、start_instance 的进度通知是否递增、delete_instance 带 anthropic/requiresUserInteraction 时在 -p 下是放行还是被拦。
  2. 断开:单独跑一次,只 create_instance + start_instance,开完就结束会话。之后 modavd list --json 里这台应该仍是 online,qemu 还在,父进程链里没有 claude 和 modavd;再 modavd stop 应该是正常关机。
  3. 结果写进 README 的 MCP 一节(客户端版本、日期)。

验收

  • 两轮的工具调用结果都和 Codex 那轮一致,进度通知递增;
  • 断开后实例还在,之后能正常关机;如果被带走了,另开 bug(P1)修好。
Vorherrschende Sprache
Go
Sterne
0
Forks
1
Ø Merge
2 Std. 42 Min.
Gemergte PRs (30 T.)
13

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus ModAVD/ModAVDManager

Alle Issues in ModAVD/ModAVDManager

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.