Skip to main content
Glama
express-reader-mcp

express-reader-mcp

by Eflarus

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
EXPRESS_DOWNLOAD_DIRNoLocal folder where downloaded attachments are saved (can also be set per-call via the `folder` argument).~/Downloads/express-reader

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
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
express_statusA

Check the running eXpress app: signed-in user, chat count, unread count, which chat is open. Side-effect-free (no read receipts).

express_list_chatsA

List chats with metadata (name, type, unread count, last-activity time). Side-effect-free. Use query to filter by name/transliteration, unreadOnly to show only unread.

express_read_chatA

Open a chat and return its decrypted messages over the last sinceDays days. Pages back through the app's history scroll to cover ranges beyond the initial ~1 week. Resolve the person by name OR pass an exact chatId; if name matches several chats, the matches are returned instead of reading. WARNING: opening a chat MARKS IT READ and may send the sender a read receipt. coversWholeRange: false means the range wasn't fully reached within maxScrolls; historyExhausted means there are no older messages.

express_search_messagesA

Native server-side search within a chat — finds matches across the WHOLE history (not just loaded messages), fast. Resolve the chat by name or exact chatId; if name matches several, the matches are returned instead of searching. Returns matching messages (syncId/time/from/text + attachment metadata). Optionally filter with sinceDays. truncated: true means the app capped results (~100). WARNING: opens the chat (MARKS IT READ).

express_open_linkA

Open an eXpress deep link (e.g. https://xlnk.ms/open/message?sync_id=...&chat_id=...) and return the referenced message plus surrounding context. Each message includes attachment metadata and flags (hasThread, isReply). WARNING: opens the linked chat, which MARKS IT READ.

express_list_threadsA

List the threads belonging to a chat (threadId + reply count). Side-effect-free. Use the returned threadId with express_read_thread.

express_read_threadA

Read a thread's replies by chatId + threadId (from express_list_threads). Messages include attachment metadata. WARNING: opens the parent chat (MARKS IT READ) and navigates into the thread.

express_get_imageA

Fetch an image message's decrypted preview thumbnail and save it to a local file (returns the path, which you can then read/view). Needs the chatId and the message syncId (from express_read_chat / express_open_link output). Only images have previews; this is a thumbnail, not full resolution. SIDE EFFECT: opens the chat if not already active (marks read).

express_download_fileA

Download a document/file attachment: the app decrypts it and the file is saved to a local folder, then you can read it as a normal file (returns the path). Needs chatId + the message syncId (from read/open/thread output). Saves into ~/Downloads/express-reader by default; override with folder (relative = subfolder of ~/Downloads, absolute = used as-is) or the EXPRESS_DOWNLOAD_DIR env var. Max 25 MiB. SIDE EFFECT: opens the chat (marks read).

express_close_debugA

Close the debug inspector port by gracefully quitting and relaunching eXpress. Call when finished reading, to stop exposing 127.0.0.1:9229.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have clearly distinct purposes: status, listing chats, reading chats, searching, opening links, threads, images, and file downloads. The main overlap is between express_read_chat, express_search_messages, and express_open_link, since all can return message content and all may mark a chat read, but the descriptions explain when to use each.

Naming Consistency4/5

Nearly all tools follow a predictable `express_verb_noun` pattern, such as express_list_chats, express_read_chat, and express_download_file. The only notable deviation is express_status, which uses a noun rather than a verb, but the overall convention remains clear.

Tool Count5/5

Ten tools is well scoped for an app-reading MCP server. Each tool covers a distinct operation, from status and chat listing to thread reading, image retrieval, and file download, with no obvious redundancy.

Completeness4/5

The surface covers the core read lifecycle: status, chat listing, message reading, search, link resolution, threads, images, and file attachments. The main gap is that there is no side-effect-free way to read message content, since every message-reading tool may mark the chat as read; additional gaps include no thread-level search and limited non-scrolling pagination.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues