Skip to main content
Glama
alien2003

rc-mcp

by alien2003

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
RC_URLYesServer base URL, e.g. https://chat.example.com. http(s) only; trailing / is removed.
RC_USER_IDYesYour user id. It is shown with the token when you create a PAT.
RC_AUTH_TOKENYesPersonal access token, created with "Ignore Two Factor Authentication".
RC_MCP_CONFIGNoPath to the config file. The default path is used only if the file exists; a path set here must exist. Default: $XDG_CONFIG_HOME/rc-mcp/config.json, else ~/.config/rc-mcp/config.json
RC_MCP_DATA_DIRNoWhere the index and saved files live. Must be an absolute path; a leading ~ is expanded. A relative path is a configuration error. Default: $XDG_DATA_HOME/rc-mcp, else ~/.local/share/rc-mcp
RC_E2EE_PASSWORDNoE2EE password or passphrase. Without it, encrypted rooms are listed but not decrypted.
RC_MCP_EPHEMERALNo1, true, yes or on: keep the index in memory only, and have get_file return files inline instead of saving them.false
RC_MCP_LOG_LEVELNodebug, info, warn, error or silent. Logs are JSON lines on stderr.info

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_roomsA

List the rooms (channels, private groups, direct messages) this account belongs to, with type, whether the room is end-to-end encrypted, the E2EE key status (ok | suggested | missing | undecryptable | not-encrypted | e2ee-unavailable), last activity and how much of it is indexed locally. Use it to find room ids/names for the other tools.

get_messagesA

Read messages of one room, decrypted, oldest-first within the returned page (newest page by default). Each message has id, ts, author, text, thread_id/reply_count, attachments and a permalink. Page backwards with before = the returned older_than_cursor. Thread replies are excluded unless include_thread_replies is true (use get_thread for a whole thread). The room is synced incrementally before reading.

get_threadA

Read a whole thread: the root message and all replies in chronological order, decrypted. Accepts the root message id, any reply id, or a pasted Rocket.Chat thread/message URL. Threads are where most how-tos and decisions are discussed.

get_messageA

Fetch a single message by id or by a pasted Rocket.Chat permalink (…?msg=), decrypted. Messages that quote other messages list them in quotes, and the quoted messages are resolved and returned in quoted_messages.

searchA

Full-text search over the locally indexed, decrypted messages of all rooms (including end-to-end encrypted ones). All words must match; accents are ignored; append * for prefix search (deploy*). Filter by rooms, authors (usernames), date range or thread. Results include a «highlighted» snippet, thread info and permalink. When specific unencrypted rooms are given, the Rocket.Chat server search is also queried and merged (source: index | server | index+server). Stale rooms are synced first unless refresh=false; if Rocket.Chat is unreachable the local index still answers and notes says so.

syncA

Fetch new, edited and deleted messages into the local index of decrypted messages, for one room or for all rooms. Older history is backfilled in chunks of up to max_messages (default 2000) per room per call: if note says history is incomplete, call again. Returns what changed per room. Only reads from Rocket.Chat.

get_fileA

Download an attachment and decrypt it locally if it was uploaded to an encrypted room (integrity checked against the uploader's SHA-256). Text-like files (markdown, code, json, csv, txt…) up to max_inline_bytes are returned as text; images up to 4 MiB as images; other files are saved to the private data directory and the path is returned (in ephemeral mode they are returned inline as a binary resource instead, never written to disk). Identify the file by file_id (from a message's attachments) or by message_id.

get_userA

Look up a Rocket.Chat user by username or id: display name, status, status text, bio, roles and timezone offset when visible to this account.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct resource or action: user lookup, single-message fetch, room timeline, thread, global search, room listing, attachment download, and index sync. The singular/plural pair get_message/get_messages is clearly differentiated by descriptions, and no tools appear to do the same thing.

Naming Consistency4/5

Six tools follow a clear verb_noun pattern (get_user, get_message, get_file, get_messages, get_thread, list_rooms), while search and sync use bare verbs without nouns. This is a minor deviation from an otherwise predictable convention.

Tool Count5/5

Eight tools is well-scoped for a read-focused Rocket.Chat client. Each tool earns its place by covering a distinct retrieval granularity (user, room, message, thread, search, file) plus index synchronization.

Completeness4/5

The read surface is comprehensive: users, rooms, messages, threads, full-text search, attachments, and index sync are all covered. The main gap is the absence of any write/send operations, and there is no tool for room member lists or bulk user listing, but core read workflows have no dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues