Liveblocks
OfficialManage Liveblocks resources through MCP: rooms, threads, comments, notifications, subscriptions, storage/Yjs reads, and events.
Create, read, update, delete, and rename rooms; get active users; broadcast events.
Read storage documents and Yjs text documents.
Create, read, resolve/unresolve, delete threads; edit metadata; manage thread participants and subscriptions.
Create, read, edit, delete comments; add/remove comment reactions.
Get, create, delete inbox notifications; manage notification settings and room/user subscription settings.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Liveblocks create a new room for our team brainstorming session"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Go to File → Cursor Settings → MCP → Add new server.
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:
Go to Settings → Developer → Edit Config.
Open the JSON file,
claude_desktop_config.json.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"
]
}
}
}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
Go to File → Cursor Settings → MCP → Add new server.
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-serverClaude Desktop
Go to Settings → Developer → Edit Config.
Open the JSON file,
claude_desktop_config.json.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"
}
}
}
}Restart Claude Desktop to apply the changes.
Codex
Ensure the Codex CLI is installed:
npm i -g @openai/codexRun 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-serverAvailable Tools
39 toolsadd-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
Scored across 39 tools
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.
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.
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.
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
Related MCP Connectors
The official MCP Server for the Mux API
Related MCP Servers
- MIT
- AlicenseBqualityDmaintenanceAn MCP server that provides LLMs access to other LLMs449 npm82MIT
- MIT
- AlicenseNot gradedqualityBmaintenanceOfficial MCP Server for Buildkite.56MIT