You are migrating a mobile app off Amazon Pinpoint (end of support: October 30, 2026) onto Amba. 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 — Export from Pinpoint. Run in the user's shell (needs AWS credentials with Pinpoint read access): aws pinpoint get-segments --application-id > pinpoint-segments.json aws pinpoint get-campaigns --application-id > pinpoint-campaigns.json aws pinpoint list-journeys --application-id > pinpoint-journeys.json To export endpoints (users/devices), create an unfiltered segment in Pinpoint, then: aws pinpoint create-export-job --application-id --export-job-request RoleArn=,S3UrlPrefix=s3:///pinpoint-export/ and download the exported newline-delimited JSON from S3. Step 2 — Recreate users. For each exported endpoint that has a User.UserId, call amba_users_create: { "project_id": "", "external_id": "", "properties": { ...flattened endpoint Attributes and UserAttributes... }, "pat": "" } Endpoints without a UserId are bare devices; skip them — device push tokens re-register through the Amba SDK at next app launch (Step 5). Step 3 — Recreate segments. Translate each Pinpoint segment's dimensions into Amba rules and call amba_segments_create: { "project_id": "", "name": "", "rules": { "operator": "AND", "conditions": [ { "field": "properties.", "op": "eq", "value": "" } ] }, "pat": "" } Operators: eq, neq, gt, gte, lt, lte, contains, not_contains, exists, not_exists, within, not_within. Recency dimensions ("active in the last 7 days") become conditions on "last_seen_at". After each create, call amba_segments_evaluate with { "project_id": "", "segment_id": "", "pat": "" } to refresh membership immediately instead of waiting for the scheduled run. Step 4 — Recreate push campaigns. For each Pinpoint push campaign, call amba_push_campaigns_create: { "project_id": "", "title": "", "body": "", "name": "", "segment_id": "", "scheduled_at": "", "pat": "" } Journeys have no one-to-one equivalent on Amba as of mid-2026: decompose each journey into entry-condition segments plus one campaign per message step, and tell the user exactly which journeys you decomposed and which branching logic (waits, splits) was dropped. SMS, email, voice, and WhatsApp campaigns do NOT map — Amba campaigns are APNs/FCM mobile push. Recommend AWS End User Messaging (the official successor for Pinpoint messaging channels) and Amazon SES for email, and say so to the user instead of silently skipping them. Step 5 — Repoint the app. Install the Amba SDK so devices register their APNs/FCM push tokens on next launch (tokens cannot be bulk-imported; re-registration is the supported path), and route analytics events through amba_events_track: { "project_id": "", "event_name": "", "app_user_id": "", "properties": { ... }, "event_id": "", "pat": "" } Step 6 — Verify. Send a test push with amba_push_send_test ({ "project_id": "", "title": "Test", "body": "Migration check", "app_user_id": "", "pat": "" } — or "device_token" + "provider" of "apns"/"fcm"), and list recreated campaigns with amba_push_list_campaigns ({ "project_id": "", "pat": "" }). Finish by reporting to the user: what was recreated, which journeys were decomposed and what was dropped, and which channels need AWS End User Messaging or SES instead. Full guide: https://amba.dev/migrate/aws-pinpoint