# Roam — how to use (mcp.ai)

Roam HQ provides APIs for secure messaging, chat, file sharing, and collaboration with enterprise-grade security and compliance features.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_roam?ms=1781542080000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `roam_add_group_members`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/roam`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/roam/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/roam/add/group/members` — Add one or more group members and/or admins to an existing Roam group. Use this tool when: - You need to add new members to an existing group - You need to promote existing members to admin status - Y
  - body: { group: string, admins?: string[], members?: string[] }
- `POST https://api.mcp.ai/api/roam/add/reaction` — Add an emoji reaction to a message in a chat. Use this action when you want to react to a message with an emoji in a Roam chat. The action requires the message ID, chat ID, reaction name, and timestam
  - body: { chat: string, name: string, timestamp: integer, message_id: string }
- `POST https://api.mcp.ai/api/roam/create/group` — Create a group address that can be used for chat. Groups which specify an admin will operate in an "Admin only" management mode, where only admins may change settings. Otherwise, all members have that
  - body: { name: string, admins?: string[], members?: string[], private?: boolean, description?: string, enforce_threads?: boolean }
- `POST https://api.mcp.ai/api/roam/create/roam/scim/group` — Tool to create a new group in your Roam organization using SCIM 2.0. Use when you need to provision a new group for managing user access and permissions via the SCIM 2.0 protocol. The displayName is r
  - body: { members?: object[], schemas?: string[], display_name: string }
- `POST https://api.mcp.ai/api/roam/create/user` — Create a new user in Roam via SCIM 2.0 protocol for automated user provisioning. Use when you need to add a new user to your Roam organization. The userName must match the primary email address exactl
  - body: { name: object, role?: string, active?: boolean, emails: object[], schemas?: string[], userName: string, externalId?: string, displayName?: string }
- `POST https://api.mcp.ai/api/roam/delete/group` — Archive a group in Roam using SCIM 2.0 protocol. This is a soft delete operation that archives the group. Use when you need to archive a group that is no longer needed while preserving data for audit 
  - body: { id: string }
- `POST https://api.mcp.ai/api/roam/delete/user` — Archive a user in Roam using SCIM 2.0 protocol. This is a soft delete operation that deprovisions the user. Use when you need to remove a user from the organization while preserving their data for aud
  - body: { id: string }
- `POST https://api.mcp.ai/api/roam/get/address/info` — Get information about a chat address, which is the name for any entity that may participate in a chat, such as a user, visitor, or bot. Use this action to retrieve details like display name, email, pr
  - body: { addr: string }
- `POST https://api.mcp.ai/api/roam/get/chat/history` — Lists messages in a chat, filtered by date range (after/before). The ordering of results depends on the filter specified: - If no parameters provided: returns most recent messages, sorted in reverse c
  - body: { chat: string, after?: string, limit?: integer, before?: string, cursor?: string, thread_timestamp?: integer }
- `POST https://api.mcp.ai/api/roam/get/meeting/link` — Tool to get a meeting link. Use when you need to retrieve information about a specific meeting link by its ID. Requires the 'meetinglink:read' scope.
  - body: { id: string }
- `POST https://api.mcp.ai/api/roam/get/resource/types` — Returns the list of SCIM 2.0 resource types supported by Roam. Use this action to discover what resource types are available in the Roam SCIM API. Currently returns User and Group resource types. This
- `POST https://api.mcp.ai/api/roam/get/roam/scim/config` — Tool to retrieve Roam's SCIM service provider configuration. Use when you need to discover Roam's SCIM API capabilities including supported authentication schemes, bulk operations, filtering, and othe
- `POST https://api.mcp.ai/api/roam/get/scim/schema` — Retrieves the definition of a specific SCIM 2.0 schema by its unique identifier (URN). This endpoint returns the complete schema definition including all attributes, their types, mutability, and other
  - body: { schemaId: string }
- `POST https://api.mcp.ai/api/roam/get/scim/user` — Tool to retrieve a single user by their Roam Person ID using SCIM 2.0 protocol. Use when you need to get detailed information about a specific user including their name, email, active status, and role
  - body: { id: string }
- `POST https://api.mcp.ai/api/roam/get/test` — Test endpoint for API connectivity. Use this endpoint to verify that the Roam API is accessible and authentication is working correctly. Returns a confirmation message on successful connection.
- `POST https://api.mcp.ai/api/roam/get/token/info` — Retrieves information about the current Roam access token. Use this tool to: - Get the bot's chat address - Check the OAuth scopes granted to the current token - Retrieve information about the associa
- `POST https://api.mcp.ai/api/roam/get/user/info` — Get detailed information about a single user in your Roam workspace. Requires user:read scope. Additional scopes (user:read.email, user:read.status) needed for expanded fields.
  - body: { id: string, expand?: string }
- `POST https://api.mcp.ai/api/roam/list/chats` — Lists all accessible chats, which consist of all DMs, MultiDMs, and Channels that your bot has been added to, in addition to all public channels. Supports pagination via cursor and limiting the number
  - body: { limit?: integer, cursor?: string }
- `POST https://api.mcp.ai/api/roam/list/group/members` — List members in a group in your Roam workspace. Use this tool when: - You need to see all members of a specific group - You want to check who has access to a group - You need to paginate through large
  - body: { group: string, limit?: integer, cursor?: string }
- `POST https://api.mcp.ai/api/roam/list/groups` — Returns a paginated list of groups in your Roam organization via SCIM 2.0. Use when you need to retrieve all groups in your Roam organization using the SCIM protocol. Supports pagination using startIn
  - body: { count?: integer, filter?: string, startIndex?: integer }
- `POST https://api.mcp.ai/api/roam/list/lobbies` — Lists active lobbies in your Roam account. Returns all lobby configurations with their IDs, display names, URLs, and active status. Use this action to discover available lobbies before performing oper
  - body: { handle?: string }
- `POST https://api.mcp.ai/api/roam/list/meetings` — Lists all meetings in your home Roam, filtered by date range. Supports pagination via cursor and limiting the number of results. Returns meeting details including meeting ID, room, time, and participa
  - body: { after?: string, limit?: integer, before?: string, cursor?: string }
- `POST https://api.mcp.ai/api/roam/list/recordings` — Tool to list all recordings in your home Roam. Use when you need to retrieve recordings with optional date range filtering (after/before) or pagination. Supports filtering by date range and paginating
  - body: { after?: string, limit?: integer, before?: string, cursor?: string }
- `POST https://api.mcp.ai/api/roam/list/roam/scim/users` — Tool to list users in your Roam organization using SCIM 2.0 protocol. Use when you need to retrieve a paginated list of users in your Roam workspace via the SCIM 2.0 API for identity provider integrat
  - body: { count?: integer, filter?: string, start_index?: integer }
- `POST https://api.mcp.ai/api/roam/list/schemas` — Tool to list all SCIM 2.0 schemas supported by Roam. Use when you need to discover available SCIM resource schemas. Returns the core User and Group schemas plus Roam's custom role extension schemas.
- `POST https://api.mcp.ai/api/roam/list/transcripts` — Lists all transcripts in your Roam workspace, filtered by date range. Supports pagination via cursor and limiting the number of results. Returns transcript metadata (id, meetingId, start, end, partici
  - body: { after?: string, limit?: integer, before?: string, cursor?: string }
- `POST https://api.mcp.ai/api/roam/list/user/audit/log` — Tool to get a list of user audit log entries for the account. Use when you need to retrieve audit logs for compliance and security monitoring purposes. This action requires the 'userauditlog:read' sco
  - body: { date: string, limit?: integer, cursor?: string }
- `POST https://api.mcp.ai/api/roam/list/users` — Tool to list all users in the Roam workspace. Use when you need to retrieve a list of users with optional pagination and expanded fields like status. Required scope: user:read (add user:read.email for
  - body: { limit?: integer, cursor?: string, expand?: string }
- `POST https://api.mcp.ai/api/roam/lookup/user` — Look up a user in your Roam workspace by their email address. Use when you need to find a user's details including their ID, name, and profile information. Required scopes: user:read and user:read.ema
  - body: { email: string }
- `POST https://api.mcp.ai/api/roam/patch/group` — Partially updates a group using SCIM 2.0 protocol. Use this action to add or remove members from a group, or replace the group's display name. The PATCH operation supports 'add', 'remove', and 'replac
  - body: { id: string, operations: object[] }
- `POST https://api.mcp.ai/api/roam/patch/user` — Partially updates a user using SCIM 2.0 protocol. Use when you need to modify specific attributes of an existing user without replacing the entire resource. Currently, Roam only supports the 'replace'
  - body: { id: string, operations: object[] }
- `POST https://api.mcp.ai/api/roam/post/chat` — Post a message to a chat. Messages can be plain markdown text or rich Block Kit layouts with headers, sections, buttons, and more. Messages may be posted to a chat, a group, or addresses such as users
  - body: { chat: string, sync?: boolean, text?: string, color?: string, items?: string[], blocks?: object[], markdown?: boolean, thread_key?: string, thread_timestamp?: integer }
- `POST https://api.mcp.ai/api/roam/remove/group/members` — Tool to remove one or more members from a group in your Roam workspace. Use when you need to remove users from a specific group. Note: The group must be public in the user's Roam, or the app must be a
  - body: { group: string, members: string[] }
- `POST https://api.mcp.ai/api/roam/replace/group` — Fully replaces a group's attributes using SCIM 2.0 protocol. Use when you need to completely replace all attributes of an existing group, including its display name and member list. This is a full upd
  - body: { id: string, members?: object[], schemas?: string[], displayName: string }
- `POST https://api.mcp.ai/api/roam/replace/user` — Fully replaces (updates) a user's attributes in Roam via SCIM 2.0 protocol. Use when you need to update all user attributes at once. This is a full replacement operation - all required fields must be 
  - body: { id: string, name: object, role?: string, active?: boolean, emails: object[], schemas?: string[], userName: string, externalId?: string, displayName?: string }
- `POST https://api.mcp.ai/api/roam/send/message` — Sends the given message to the specified recipients. At this time, we only support sending to a single group recipient. You can obtain the group ID on the Group Settings page.
  - body: { text: string, sender?: object, markdown?: boolean, recipients: string[] }
- `POST https://api.mcp.ai/api/roam/send/typing` — Tool to notify other chat participants that you are typing. Use when you want to show a typing indicator to one or more users in a chat conversation. This is typically used before sending a message to
  - body: { user_ids: string[] }
- `POST https://api.mcp.ai/api/roam/update/meeting/link` — Update settings for an existing meeting link in Roam. Use this action when you need to modify the name, start time, or end time of an existing meeting link. The meeting link ID is required to identify
  - body: { id: string, end?: string, host?: string, name: string, start?: string }
- `POST https://api.mcp.ai/api/roam/upload/item` — Upload a file to Roam so it can be sent as a chat attachment. Use when you need to upload a file, image, or document to Roam before sending it in a chat message. Returns an item ID that can be used wi
  - body: { file?: object, filename?: string, file_path?: string, file_content?: string }

## More
- Page: https://mcp.ai/roam
- Agent spec (llms.txt): https://mcp.ai/roam/llms.txt
- Postman collection: https://mcp.ai/roam/postman.json
