Migrating to 0.10

0.10 moves the MCP implementation and the MCP SDK into @devframes/agentic, a new optional peer: install it to serve agent tools over MCP; imports are unchanged.

0.10 moves the MCP implementation and the MCP SDK out of devframe into @devframes/agentic, a new optional peer. A devframe without an agent surface ships slimmer (no MCP SDK installed at all); one that exposes agent tools adds a single install. Your imports do not change.

MCP requires @devframes/agentic

devframe/adapters/mcp stays the user-facing API and now lazy-loads its implementation from the @devframes/agentic peer; the peer itself is never imported directly. Install it wherever an MCP surface should be served:

npm install @devframes/agentic

Every surface reacts to the missing peer the same way:

mcp settingpeer installedpeer missing
omitted / 'auto'mounts once the agent surface is non-emptynon-empty surface: warns once (DF0078), mounts nothing; empty surface: silent, no MCP code loads
true / route options objectalways mountsthrows DF0079
falsenever mounts, never probessame

This applies everywhere the mcp setting exists: createCac / --mcp, createDevServer, initDevframe, initHub's aggregate endpoint, and the framework kits.

The exports are unchanged - createMcpServer, createMcpFetchHandler, mountMcpHttp, and their option types (also importable from devframe/types). Importing devframe/adapters/mcp without the peer installed throws the usual module-not-found error, exactly like devframe/adapters/cac with its optional cac peer. The <your-app> mcp stdio subcommand keeps working with the peer installed.

devframe connect requires @devframes/agentic

The connector's gateway moved into the same peer, replacing the former @modelcontextprotocol/client optional peer. devframe connect without it throws DF0046:

0.9.x0.10
npm install @modelcontextprotocol/client (optional peer for devframe connect)npm install @devframes/agentic

devframe no longer depends on the MCP SDK

@modelcontextprotocol/server left devframe's dependencies and @modelcontextprotocol/client left its optional peers; both are now regular dependencies of @devframes/agentic, so installing the peer is the whole story. If you had installed @modelcontextprotocol/client only for devframe connect, you can drop it:

npm uninstall @modelcontextprotocol/client
npm install @devframes/agentic

Code that imported SDK types directly for devframe's MCP options no longer needs to: the full option surface is typed on devframe/adapters/mcp and devframe/types without any SDK types.

Removed deprecated APIs

0.10 drops the symbols deprecated during the 0.9 line. Each has a drop-in replacement:

RemovedUse instead
cli.mcp on a definitionPass mcp to the host (createCac / --mcp, createDevServer, initDevframe, initHub)
cli.distDir on a definitionTop-level clientAssets on the definition
resolveClientAssets (from devframe)Read definition.clientAssets directly
createDevframeClientHost, DevframeClientHost, DevframeClientHostOptions (@devframes/hub/client)createDevframeClientRuntime, DevframeClientRuntime, DevframeClientRuntimeOptions
coerceAgentPositionalArgs, AgentArgsFallback (devframe/internal)toolInputToRpcArgs / toolInputToCommandArgs
openInEditor, openInFinder, commonRpcFunctions (devframe/recipes/common-rpc-functions)The @devframes/service-open wire service
callEvent() on an in-page channelemit()
a11yPageScriptBundlePath, a11yAgentBundlePath (@devframes/plugin-a11y)a11yClientScriptBundlePath
AGENT_DISCOVERY_FILE, AgentDiscovery, DataInspectorAgent (@devframes/plugin-data-inspector/inject)DISCOVERY_FILE, InjectDiscovery, DataInspectorEndpoint

Dropping cli.mcp also removes the hub's DF8005 warning: a hub's aggregate MCP route already covers every mounted devframe's tools, so a per-devframe MCP request no longer exists to conflict with it.