Skip to content

Infrastructure: Add the generalized desktop-mcp management facet #4450

Open

Description

@JasonVMo

Current status - 2026-11-07

Blocked by generic F11 #4448 and the reviewed management transport/scope decision. F8 persisted queries and F12 attenuated grants are merged, but neither supplies a workload-management transport.

The current MCP adapter remains a driver-only verified client: it does not start/stop/recover workloads, build helpers, evaluate config, or run suites. Keep that boundary and the current package name until actual bounded harness-owned management tools and a compatible migration land. Cross-connection session resume and replay remain unsupported.

Remaining work: finite declared catalog and opaque run handles; bounded status/results/artifacts; truthful cancel/reconnect semantics; verified transport/scopes; publication-history-based naming/deprecation decision; and measured discovery cost. Historical six-tool discovery was about 20.3 KB, not the earlier proposed 8 KiB target; present-day and Windows/Paper measurements remain unrecorded in #4441/#4451.

F4 #4437, F5 #4443 and F9 #4449 gate only the later Storybook facet, not the generic management implementation.

Goal

Let agents check workload status, run approved suites, cancel their runs, and read bounded results through MCP, not only drive UI. When these management tools land, rename the adapter to @fluentui-react-native/desktop-mcp, keeping a driver-only mode and compatibility for existing users. The adapter stays a client: it never becomes the resource owner.

Part of #4435 (plan item F13).

Scope

  • Owner: harness control client and MCP mapping.
  • Paths (under packages/agentic/): a real desktop-test/control implementation and subpath; desktop-driver-mcp server, controller, and package migration; transport extension or descriptor changes only as the chosen design requires.
  • Expose a finite, supervisor-declared catalog: workload status, run an approved suite, cancel an owned run, and bounded result and artifact queries. Review start, stop, and recover permissions separately; operator recovery is not an ordinary agent tool.
  • Return an opaque run handle rather than keeping a model call open for the whole suite.
  • Decide the management transport: a startup-registered authenticated extension on the driver listener, or a separate verified supervisor endpoint in a versioned descriptor. Sharing a socket must not move lifecycle semantics into the driver.
  • Check the npm publication history of desktop-driver-mcp before choosing a deprecation period, and migrate the package and binary names compatibly.

Dependencies

Acceptance

  • The model cannot select config, modules, commands, paths, environment values, or URLs.
  • Each management schema has one source, owned by the harness.
  • Discovery and results are bounded, and measured discovery cost is recorded in the MCP status ledger.
  • Reconnecting does not replay a run, and cancellation produces truthful incomplete or settled status.
  • Existing driver-only descriptors still work.

Validation

  • Iterate with focused yarn test <name> in each changed package, then run its yarn format, yarn lint, yarn build, and yarn test. Finish with yarn clean-lage-cache then yarn lage buildci; run yarn lage test-links --verbose --grouped after markdown changes.
  • Add a patch changeset for each changed published package. Update the owning references/current-status.md rows (done, work in progress, unsupported) and affected README/AGENTS guidance in the same change.
  • Native, provider, or process-topology changes need matching-OS native contracts and the affected consumer lane. JavaScript tests and bundles do not qualify native behavior; hosted capability skips are not passes. Report each check as passed, failed, skipped, not run, or unsupported.

Evidence

  • Current state: "Workload/test orchestration tools" in packages/agentic/desktop-driver-mcp/references/current-status.md.
  • Retired plan: driver-next.md at 0569e1b86, sections 5 (generalized MCP) and 8 (F13).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions