# MCP ownership: independent L1 Worker

Effective decision: 2026-09-08. Product design authority: [L1 MCP Worker contract](https://github.com/pingcap-inc/nexuscrm-app-packs/blob/49e9998af867edfc3f5715eee2bfc8e8e0b8c2f7/docs/design/mcp-l1-worker.md).
Implementation/review tracking: [app-packs #869](https://github.com/pingcap-inc/nexuscrm-app-packs/pull/869).
The immutable design reference is an audit snapshot, not a Core source dependency
or proof of a published Worker release.

MCP protocol, tools, connection behavior and process lifecycle belong to the
independent L1 module `nexuscrm-app-packs/workers/mcp`. The Worker consumes
published Runtime CRM APIs under the authenticated user's current permissions.
It does not require a Connected App, connector service, MCP-specific scope or
resource profile. Runtime retains credential validation, user permissions,
transactions, audit and idempotency. Generic admission and per-capability write
rules are owned by [Runtime trusted delegation](runtime-trusted-delegation-contract.md).

This file is an ownership pointer, not a second MCP product specification.
The old L0 HTTP / embedded AppService / Connected App / ExchangeResource /
read-only recovery contract is superseded. Its immutable historical evidence
is retained at [the old Core contract](https://github.com/pingcap-inc/NexusCRM/blob/37abe41cc04a16feb8c8e70ff70a9a94166a1efb/docs/design/mcp-multi-agent-interoperability.md).
OAuth external-app designs govern their non-MCP surfaces and must not reinstate
those old MCP requirements by reference.

The old Core MCP handler files remain unregistered compatibility code: current
`RegisterMCP` callsites are tests. This ownership decision does not claim their
physical deletion, a completed feature migration, or a live deployment cutover.
Before rollout, require published Worker/workload registration and real-user
read/write, field/record restriction, revocation, client-login and target/public
acceptance under the L1 contract. Ordinary-user metadata coverage and client
credential onboarding remain implementation gaps, not reasons to grant an
administrator identity or skip Runtime authorization.
