publ betaReference (MCP guide)
Open publ console

messenger_room_memberships_apply

# messenger_room_memberships_apply

Link channel memberships to a paid basic group room, or unlink one, in the Messenger app (pApp D00003) [str_5249, str_5012]. Requires roomUuid, change link with membershipIds or unlink with membershipId, each with confirmation CHANGE_ROOM_MEMBERSHIPS. The last linked membership cannot be unlinked [str_6887]. The catalog link and the room are each read back. A lost receipt stays pending and is never resent; task_resume only observes, and prepared work needs the identical apply. Called without confirmToken it previews and returns a confirmToken; repeating the same input with it executes once.

## Inputs

| Field | Required here | Contract |
| --- | --- | --- |
| `target` | Yes | object |
| `target.roomUuid` | Yes | string; pattern `^[A-Za-z0-9_-]{1,200}$` |
| `change` | Yes | one of: `link`, `unlink` (by `action`) |
| `change.membershipIds` | Yes | When `change.action` is `link`: array; items: string; pattern `^[A-Za-z0-9_-]{1,200}$`; min items 1; max items 100 |
| `change.confirmation` | Yes | When `change.action` is `link`: `CHANGE_ROOM_MEMBERSHIPS` |
| `change.membershipId` | Yes | When `change.action` is `unlink`: string; pattern `^[A-Za-z0-9_-]{1,200}$` |
| `change.confirmation` | Yes | When `change.action` is `unlink`: `CHANGE_ROOM_MEMBERSHIPS` |
| `confirmToken` | No | string; pattern `^ct[a-f\d]{32}$`; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute. |