Client API Migrations
This page defines the migration contract for OMNI Client API and hosted MCP. Treat this as the policy source for production integrations.Migration north stars
- additive-first evolution
- no hidden breaking behavior on pinned versions
- write safety through idempotency
- stable request correlation via request IDs
Lifecycle guarantees (v1.5)
| Change type | Compatibility guarantee | Communication requirement | Minimum window |
|---|---|---|---|
| Additive | Backward compatible | Changelog entry | none |
| Behavioral (non-breaking) | Existing shape preserved | Changelog + rationale | 14 days recommended |
| Deprecation | Deprecated route/tool remains functional during sunset | Deprecation + Sunset headers + migration guide | 180 days target |
| Breaking | Requires new versioned surface (endpoint/tool/version) | Changelog + migration guide + compatibility update | 90 days target after replacement launch |
Version pinning policy (Omni-Version)
Pin every production integration:
- review changelog and migration notes
- run integration tests against target pin
- canary by key/environment
- monitor error and billing drift
- promote gradually
- retain rollback pin until stability clears
Deprecation/sunset policy
Required deprecation headers:T-90: announce replacement + migration guideT-60: surface usage warnings and outreachT-30: enforce deprecation headers broadlyT-7: block new dependencies on deprecated pathT-0: sunset only after migration SLO gates pass
Migration guide: legacy MCP routes -> hosted MCP
Legacy routes:GET /v1/mcp/toolsPOST /v1/mcp/invoke
POST /mcp(tools/list,tools/call)
| Legacy | Hosted MCP |
|---|---|
GET /v1/mcp/tools | POST /mcp with method=tools/list |
POST /v1/mcp/invoke | POST /mcp with method=tools/call |
initializenotifications/initializedtools/listtools/call
Idempotency-Keyon alltools/call- scopes include
mcp.tools.read,mcp.invoke, and tool scopes (for examplefred.read) - retry policy updated for JSON-RPC categories
- logs capture
error.data.request_id
Migration guide: unscoped keys -> scoped keys
Recommended minimum scope set for MCP + FRED:403 insufficient_scope, debug in order:
- assigned key scopes
Omni-Required-Scopesheader- method/tool contract
Rollback criteria (mandatory)
Rollback immediately if sustained:- auth/scope spike (
401/403) - idempotency conflict spike (
409) - invoke/internal failure spike (
mcp_invocation_failed,mcp_internal_error) - billing drift vs expected units
Migration completion checklist
- endpoint/tool mapping validated
- scope model updated and tested
- idempotency replay behavior validated
- request-id propagation validated end-to-end
- retry policy aligned to
/sources/client-api-retries - billing semantics validated for success/failure/replay
- rollback owner + trigger documented
Related docs
/sources/client-api-reference/sources/client-api-changelog/sources/client-api-errors/sources/client-api-mcp-hosted/sources/client-api-mcp-compatibility