You are migrating a mobile app off Firebase Dynamic Links (shut down August 25, 2025 — FDL links now return 404) onto Amba tracked links. Amba is an agent-native mobile backend. Its hosted MCP server is https://mcp.amba.dev/mcp (Streamable HTTP). Add it to your MCP client config under mcpServers.amba, or POST JSON-RPC tools/call requests to it directly with Content-Type: application/json and Accept: application/json, text/event-stream (the server rejects requests that do not accept both). Step 0 — Account. Call amba_developer_signup with { "email": "", "password": "" } — no auth needed. Save the returned pat and project.project_id, and pass "pat" as an argument on every subsequent tool call this session. Poll amba_projects_get_provisioning_status with { "project_id": "", "pat": "" } until the project status is "active" (about 10 seconds). Step 1 — Inventory links. Firebase Dynamic Links can no longer be queried. Collect link slugs and destinations from: the app codebase (grep for "page.link" and the app's FDL custom domain), marketing assets, and any CSV metadata the user exported from the Firebase console before the shutdown. Step 2 — Configure deep linking. Call amba_deeplinks_set_config: { "project_id": "", "url_scheme": "", "universal_link_domain": "", "ios_bundle_id": "", "android_package_name": "", "fallback_url": "", "pat": "" } The universal-link domain must be one the user controls — page.link domains are Google's and are permanently gone. Step 3 — Re-verify domain association (the user's infrastructure, not a tool call). Serve https:///.well-known/apple-app-site-association (appID + paths) and https:///.well-known/assetlinks.json (package name + SHA-256 cert fingerprints) from the universal-link domain. FDL hosted these files for page.link domains; the user hosts them now. Verify both URLs return 200 with JSON content. Step 4 — Recreate each link with amba_tracked_links_create: { "project_id": "", "slug": "", "destination_url": "", "metadata": { "campaign": "", "source": "", "medium": "" }, "pat": "" } Carry UTM-style parameters into metadata — click analytics are recorded automatically. Step 5 — Wire in-app resolution. The Amba client SDK resolves a slug to its destination and records the click; route incoming universal links and custom-scheme opens through it in the app's link handler. Step 6 — Verify. Read the config back with amba_deeplinks_get_config ({ "project_id": "", "pat": "" }) and, after a test click, check amba_tracked_links_get_stats ({ "project_id": "", "link_id": "", "pat": "" }). Honesty notes to surface to the user: historical FDL click and attribution data is gone and does not import; deferred deep linking through a fresh app-store install does not map on Amba as of mid-2026 — handle first-run routing in onboarding, or use a dedicated attribution provider for install attribution. Full guide: https://amba.dev/migrate/firebase-dynamic-links