mcpField
R
rocketchat-mcp

rocketchat-mcp

Local
github.com/millerchouCommunication1Updated 6w ago

About rocketchat-mcp

rocketchat-mcp connects MCP clients to a Rocket.Chat workspace for messaging, search, file handling, and channel management. It is for users who want to operate their workspace through MCP and supports Personal Access Token authentication.

Key features

  1. 01Send channel messages and DMs
  2. 02Read messages and unread content
  3. 03Search messages by keyword
  4. 04Upload files and download attachments
  5. 05List and create channels

Use cases

  1. 01Send messages in channels or DMs
  2. 02Find past conversations in a workspace
  3. 03Upload files or save message attachments
  4. 04Create channels and inspect room lists

MCP support

The MCP server exposes Rocket.Chat messaging, search, file, and channel tools to MCP clients over stdio.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"millerchou-rocketchat": {
"command": "uvx",
"args": [
"rocketchat-mcp"
],
"env": {
"ROCKETCHAT_SERVER_URL": "<ROCKETCHAT_SERVER_URL>",
"ROCKETCHAT_USER_ID": "<ROCKETCHAT_USER_ID>",
"ROCKETCHAT_AUTH_TOKEN": "<ROCKETCHAT_AUTH_TOKEN>"
}
}
}
}
Run commanduvx rocketchat-mcp
Environment variables to set
ROCKETCHAT_SERVER_URLRocketChat workspace URL, e.g. https://chat.example.com
ROCKETCHAT_USER_IDSecretRocketChat user ID
ROCKETCHAT_AUTH_TOKENSecretRocketChat personal access token

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypirocketchat-mcp0.1.0

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

rocketchat-mcp

An MCP server for Rocket.Chat. It lets MCP clients (Claude Desktop, Cursor, Claude Code, etc.) send and read messages, send DMs, search history, upload/download files, and manage channels on a Rocket.Chat workspace over stdio.

Actively maintained fork of elieworkspace/rocketchat-mcp, adding Personal Access Token auth, more tools, and reliability/security improvements. See NOTICE for attribution.

Tools

ToolDescription
send_message_in_channelSend a message to a channel
send_direct_messageSend a direct message to a user
delete_messageDelete a message (your own, unless the role has force-delete)
get_channel_messagesRead history of a channel/group/DM; supports offset paging and accepts a room ID or name
search_messagesKeyword search within a room (chat.search)
get_unreadList rooms with unread messages and their latest content
send_fileUpload a file to a channel or @user
download_attachmentDownload a message's attachments to local files
list_all_roomsList channels, groups and DMs ∗
list_usersList users ∗
get_user_infoGet a user's profile
create_channelCreate a channel
Quoted messages and attachments

Message listings include quoted text and uploaded files inside quotes. A quote is a snapshot shared in the containing message; the original room may no longer be accessible. Use the containing message ID when downloading a quoted attachment. You do not need to read the original room first.

download_attachment(message_id, attachment_id) downloads the selected file ID shown in the listing. Omitting attachment_id retains the existing behavior of downloading all supported attachments, now including quoted files. The server still enforces file access permissions. File references must originate from this Rocket.Chat server's upload path; redirects to file storage do not receive Rocket.Chat authentication headers. Downloads use unique temporary filenames and do not overwrite prior downloads.

HTTP errors include the server's error type and message when available, so a missing message, an access failure, and a network failure are not reduced to the same diagnosis. Configured authentication secrets are excluded from these error summaries.

∗ list_all_rooms and list_users call workspace-wide endpoints (channels.list / users.list) that require admin or the corresponding view-* permission. Every other tool works for a normal chat user.

Authentication

A normal chat user is enough for the core tools. A Personal Access Token is recommended — it keeps the token out of process arguments:

VariableDescription
ROCKETCHAT_SERVER_URLWorkspace URL, e.g. https://chat.example.com
ROCKETCHAT_USER_IDYour Rocket.Chat user ID
ROCKETCHAT_AUTH_TOKENPersonal Access Token
ROCKETCHAT_WATCHDOG_INTERVAL(optional) orphan-watchdog interval in seconds, default 60

Username/password is also supported via --username / --password. Use --no-verify-ssl for self-signed certificates.

Usage

Run with uvx
uvx rocketchat-mcp --server-url https://chat.example.com

To run the latest unreleased code straight from GitHub instead:

uvx --from git+https://github.com/millerchou/rocketchat-mcp rocketchat-mcp --server-url https://chat.example.com
Client configuration
{
  "mcpServers": {
    "rocketchat": {
      "command": "uvx",
      "args": ["rocketchat-mcp"],
      "env": {
        "ROCKETCHAT_SERVER_URL": "https://chat.example.com",
        "ROCKETCHAT_USER_ID": "your_user_id",
        "ROCKETCHAT_AUTH_TOKEN": "your_personal_access_token"
      }
    }
  }
}
Local development
git clone https://github.com/millerchou/rocketchat-mcp
cd rocketchat-mcp
uv run rocketchat.py --server-url https://chat.example.com \
  --auth-token "$ROCKETCHAT_AUTH_TOKEN" --user-id "$ROCKETCHAT_USER_ID"

Reliability

Run the offline attachment and API error tests with:

uv run python -m unittest discover -s tests -v

The tests use synthetic messages and an HTTP mock transport; no chat account is needed.

Persistent HTTP connection pool, room-endpoint caching, log rotation (1 MB), and an orphan watchdog that self-exits when the MCP client process dies.

License

Modifications in this fork are released under the MIT License. This is a fork of upstream code originally published without a license; see NOTICE for details.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.