Skip to main content
Glama
Liveblocks

Liveblocks

Official
by liveblocks

liveblocks-mcp-server

This MCP server allows AI to use a number of functions from our REST API. For example, it can create, modify, and delete different aspects of Liveblocks such as rooms, threads, comments, notifications, and more. It also has read access to Storage and Yjs. Learn more in our docs.

Setup

You'll need a secret key from a project in your dashboard. Replace sk_xxxxxxxxxxxx with it in the examples below, then connect in one of two ways:

  • Hosted server – connect to https://mcp.liveblocks.io/mcp. Nothing to install.

  • Local server – run on your machine with npx.

Related MCP server: mcp-llm

Hosted server

Add https://mcp.liveblocks.io/mcp to your client, passing your secret key as a bearer token in the Authorization header.

Cursor

  1. Go to File → Cursor Settings → MCP → Add new server.

  2. Add the following, inserting your secret key:

{
  "mcpServers": {
    "liveblocks": {
      "url": "https://mcp.liveblocks.io/mcp",
      "headers": {
        "Authorization": "Bearer sk_xxxxxxxxxxxx"
      }
    }
  }
}

Claude Code

Run the following command in the terminal, inserting your secret key:

claude mcp add --transport http liveblocks https://mcp.liveblocks.io/mcp \
  --header "Authorization: Bearer sk_xxxxxxxxxxxx"

Claude Desktop

Claude Desktop can't send custom headers to remote servers yet, so connect through mcp-remote:

  1. Go to Settings → Developer → Edit Config.

  2. Open the JSON file, claude_desktop_config.json.

  3. Add the following to the JSON, inserting your secret key:

{
  "mcpServers": {
    "liveblocks": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.liveblocks.io/mcp",
        "--header",
        "Authorization: Bearer sk_xxxxxxxxxxxx"
      ]
    }
  }
}
  1. Restart Claude Desktop to apply the changes.

Codex

Add the following to ~/.codex/config.toml, and export LIVEBLOCKS_SECRET_KEY in your shell:

[mcp_servers.liveblocks]
url = "https://mcp.liveblocks.io/mcp"
bearer_token_env_var = "LIVEBLOCKS_SECRET_KEY"

Local server

Install by running one of the following commands, replacing sk_xxxxxxxxxxxx with your secret key.

Cursor

  1. Go to File → Cursor Settings → MCP → Add new server.

  2. Add the following, inserting your secret key:

{
  "mcpServers": {
    "liveblocks": {
      "command": "npx",
      "args": ["-y", "github:liveblocks/liveblocks-mcp-server"],
      "env": {
        "LIVEBLOCKS_SECRET_KEY": "sk_xxxxxxxxxxxx"
      }
    }
  }
}

Claude Code

Run the following command in the terminal, inserting your secret key:

claude mcp add liveblocks -e LIVEBLOCKS_SECRET_KEY=sk_xxxxxxxxxxxx -- npx -y github:liveblocks/liveblocks-mcp-server

Claude Desktop

  1. Go to Settings → Developer → Edit Config.

  2. Open the JSON file, claude_desktop_config.json.

  3. Add the following to the JSON, inserting your secret key:

{
  "mcpServers": {
    "liveblocks": {
      "command": "npx",
      "args": ["-y", "github:liveblocks/liveblocks-mcp-server"],
      "env": {
        "LIVEBLOCKS_SECRET_KEY": "sk_xxxxxxxxxxxx"
      }
    }
  }
}
  1. Restart Claude Desktop to apply the changes.

Codex

  1. Ensure the Codex CLI is installed:

npm i -g @openai/codex
  1. Run the following command in the terminal, inserting your secret key:

codex mcp add liveblocks \
  --env LIVEBLOCKS_SECRET_KEY=sk_xxxxxxxxxxxx \
  -- npx -y github:liveblocks/liveblocks-mcp-server

Available Tools

39 tools
add-comment-reactionC

Add a reaction to a Liveblocks comment

Inputs: roomId (required), threadId (required), commentId (required), data (required).

broadcast-eventC

Broadcast an event to a Liveblocks room

Inputs: roomId (required), event (required).

create-commentC

Create a Liveblocks comment. Always ask for a userId.

Inputs: roomId (required), threadId (required), data (required).

create-roomC

Create a Liveblocks room

Inputs: roomId (required), defaultAccesses (required), groupsAccesses, usersAccesses, +1 more.

create-threadC

Create a Liveblocks thread. Always ask for a userId.

Inputs: roomId (required), data (required).

delete-all-inbox-notificationsC

Delete all Liveblocks inbox notifications

Inputs: userId (required).

delete-commentC

Delete a Liveblocks comment

Inputs: roomId (required), threadId (required), commentId (required).

delete-inbox-notificationC

Delete a Liveblocks inbox notification

Inputs: userId (required), inboxNotificationId (required).

delete-notification-settingsC

Delete Liveblocks notification settings

Inputs: userId (required).

delete-roomC

Delete a Liveblocks room

Inputs: roomId (required).

delete-room-subscription-settingsC

Delete a Liveblocks room's subscription settings

Inputs: roomId (required), userId (required).

delete-threadC

Delete a Liveblocks thread

Inputs: roomId (required), threadId (required).

edit-commentC

Edit a Liveblocks comment

Inputs: roomId (required), threadId (required), commentId (required), data (required).

edit-thread-metadataC

Edit a Liveblocks thread's metadata. null can be used to remove a key.

Inputs: roomId (required), threadId (required), data (required).

get-active-usersC

Get a Liveblocks room's active users

Inputs: roomId (required).

get-commentC

Get a Liveblocks comment

Inputs: roomId (required), threadId (required), commentId (required).

get-inbox-notificationC

Get a Liveblocks inbox notification

Inputs: userId (required), inboxNotificationId (required).

get-inbox-notificationsC

Get recent Liveblocks inbox notifications

Inputs: userId (required), query, startingAfter, limit.

get-notification-settingsC

Get a Liveblocks notification settings

Inputs: userId (required).

get-roomC

Get a Liveblocks room

Inputs: roomId (required).

get-roomsC

Get recent Liveblocks rooms

Inputs: limit (required), userId, groupIds, startingAfter, +1 more.

get-room-subscription-settingsC

Get a Liveblocks room's subscription settings

Inputs: roomId (required), userId (required).

get-storage-documentC

Get a Liveblocks storage document

Inputs: roomId (required).

get-threadC

Get a Liveblocks thread

Inputs: roomId (required), threadId (required).

get-thread-participantsC

Get a Liveblocks thread's participants

Inputs: roomId (required), threadId (required).

get-threadsC

Get recent Liveblocks threads

Inputs: roomId (required), query.

get-thread-subscriptionsC

Get a Liveblocks thread's subscriptions

Inputs: roomId (required), threadId (required).

get-user-room-subscription-settingsC

Get a user's room subscription settings

Inputs: userId (required).

get-yjs-documentC

Get a Liveblocks Yjs text document

Inputs: roomId (required), options.

mark-thread-as-resolvedC

Mark a Liveblocks thread as resolved

Inputs: roomId (required), threadId (required), data (required).

mark-thread-as-unresolvedB

Mark a Liveblocks thread as unresolved

Inputs: roomId (required), threadId (required), data (required).

remove-comment-reactionC

Remove a reaction from a Liveblocks comment

Inputs: roomId (required), threadId (required), commentId (required), data (required).

subscribe-to-threadC

Subscribe to a Liveblocks thread

Inputs: roomId (required), threadId (required), data (required).

trigger-inbox-notificationC

Create a custom Liveblocks inbox notification

Inputs: userId (required), kind (required), subjectId (required), activityData (required), +1 more.

unsubscribe-from-threadC

Unsubscribe from a Liveblocks thread

Inputs: roomId (required), threadId (required), data (required).

update-notification-settingsC

Update Liveblocks notification settings

Inputs: userId (required), data (required).

update-roomB

Update a Liveblocks room

Inputs: roomId (required), defaultAccesses (required), groupsAccesses, usersAccesses, +1 more.

update-room-idC

Update a Liveblocks room's ID

Inputs: roomId (required), newRoomId (required).

update-room-subscription-settingsC

Update a Liveblocks room's subscription settings

Inputs: roomId (required), userId (required), data (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 39 tools

    Disambiguation4/5

    Most tools have distinct purposes targeting specific resources like rooms, comments, threads, notifications, and storage. However, some potential overlap exists between get-room and get-rooms, or between various notification-related tools, but descriptions clarify their scope. The set is well-organized by resource type, making tool selection generally clear.

    Naming Consistency5/5

    All tools use a consistent kebab-case verb-noun pattern throughout, such as create-room, get-thread, update-notification-settings. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions.

    Tool Count3/5

    With 39 tools, the count feels heavy for a collaborative platform server, potentially overwhelming for agents. While Liveblocks has multiple features (rooms, comments, threads, notifications, storage), the tool set could be more streamlined, as some operations like get-room and get-rooms might be consolidated or grouped.

    Completeness5/5

    The tool set provides comprehensive CRUD and lifecycle coverage across all major Liveblocks domains: rooms, comments, threads, notifications, and storage. It includes creation, retrieval, updating, deletion, and specialized actions like reactions and subscriptions, leaving no obvious gaps for agent workflows.

    Maintenance

    ActivityMaintained
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers