# Seam — how to use (mcp.ai)

Connect your Seam account and use 10 tools for internet of things straight from your AI agent. Connect with your own API key. Control smart locks, access systems, thermostats, sensors, and other connected devices in a Seam workspace.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_seam?ms=1787295840000`
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. `seam_add_access_methods_to_grant`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/seam`
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/seam/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/seam/add/access/methods/to/grant` — Request additional PIN, card, mobile-key, or cloud-key methods for an existing access grant.
  - body: { access_grant_id: string, requested_access_methods: object[] }
- `POST https://api.mcp.ai/api/seam/create/access/grant` — Grant an existing or new user identity access to spaces, devices, or access-control entrances, requesting PIN, card, mobile-key, or cloud-key methods.
  - body: { name?: string, ends_at?: string, space_ids?: string[], starts_at?: string, device_ids?: string[], space_keys?: string[], user_identity?: object, reservation_key?: string, access_grant_key?: string, acs_entrance_ids?: string[], user_identity_id?: string, customization_profile_id?: string, requested_access_methods: object[] }
- `POST https://api.mcp.ai/api/seam/delete/access/grant` — Permanently revoke and delete an access grant by UUID, removing the access it manages.
  - body: { access_grant_id: string }
- `POST https://api.mcp.ai/api/seam/get/access/grant` — Get one access grant by its Seam UUID or unique workspace key.
  - body: { access_grant_id?: string, access_grant_key?: string }
- `POST https://api.mcp.ai/api/seam/list/access/grants` — List access grants in the workspace, optionally filtered by space, device, entrance, user identity, reservation, customer, key, or IDs; returns one cursor-controlled page.
  - body: { limit?: integer, space_id?: string, device_id?: string, page_cursor?: string, customer_key?: string, acs_system_id?: string, access_code_id?: string, acs_entrance_id?: string, reservation_key?: string, access_grant_ids?: string[], access_grant_key?: string, user_identity_id?: string, without_access_grant_key?: boolean }
- `POST https://api.mcp.ai/api/seam/list/action/attempts` — Inspect asynchronous Seam operation status, errors, and results in bulk by action-attempt IDs or by device, returning one cursor-controlled page.
  - body: { limit?: integer, device_id?: string, page_cursor?: string, action_attempt_ids?: string[] }
- `POST https://api.mcp.ai/api/seam/list/connected/accounts` — List and search provider accounts connected to the workspace, optionally filtering by space, customer, user, or metadata; returns one cursor-controlled page.
  - body: { limit?: integer, search?: string, space_id?: string, page_cursor?: string, customer_key?: string, custom_metadata_has?: object, user_identifier_key?: string }
- `POST https://api.mcp.ai/api/seam/list/devices` — List and search devices in the workspace, optionally filtering by account, space, IDs, type, manufacturer, customer, creation time, or metadata; returns one cursor-controlled page.
  - body: { limit?: integer, search?: string, space_id?: string, device_ids?: string[], device_type?: string, page_cursor?: string, customer_key?: string, device_types?: string[], manufacturer?: string, created_before?: string, connect_webview_id?: string, custom_metadata_has?: object, user_identifier_key?: string, connected_account_id?: string, connected_account_ids?: string[] }
- `POST https://api.mcp.ai/api/seam/list/spaces` — List and search spaces in the workspace by name, key, or customer, returning one cursor-controlled page of grantable locations.
  - body: { limit?: integer, search?: string, space_key?: string, page_cursor?: string, customer_key?: string }
- `POST https://api.mcp.ai/api/seam/update/access/grant` — Update an access grant's name or validity window by UUID or unique workspace key. Provide at least one of name, starts_at, or ends_at.
  - body: { name?: string, ends_at?: string, starts_at?: string, access_grant_id?: string, access_grant_key?: string }

## Example prompts
- "What can I do in Seam?"
- "Show me a summary of my Seam account"

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