morning-inbox-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SLACK_BOT_TOKEN | Yes | Slack Bot User OAuth Token (xoxb-...), obtained after installing the Slack app to the workspace | |
| GOOGLE_CLIENT_ID | Yes | OAuth client ID from Google Cloud Console (Desktop app credentials) | |
| GOOGLE_CLIENT_SECRET | Yes | OAuth client secret from Google Cloud Console | |
| SLACK_DEFAULT_CHANNEL | No | Optional default Slack channel for posting the morning summary, e.g. #inbox-brief |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gmail_fetch_recentA | Fetch recent Gmail messages (metadata + snippet, newest first) for triage. Returns id, from, subject, date, snippet, labelIds and attachment flag for each message. Use gmail_get_message when the snippet is not enough to judge a message. |
| gmail_get_messageA | Fetch a single Gmail message with its decoded body text. Use after gmail_fetch_recent when a snippet is not enough to decide what to do. |
| gmail_archiveA | Archive messages by removing the INBOX label. Messages are kept, never deleted. Use for newsletters, promotions, notifications and other noise after triage. |
| gmail_mark_readB | Remove the UNREAD label from the given messages. |
| gmail_starB | Add the STARRED label to the given messages. Use for urgent or action-needed mail. |
| gmail_apply_labelA | Apply a label to the given messages. The label is created if it does not exist yet (e.g. 'Newsletters', 'Receipts', 'To Review'). |
| gmail_list_labelsA | List all Gmail labels (system and custom) with their ids. |
| slack_send_messageA | Post a message to a Slack channel, or to a user id for a DM. Uses Slack mrkdwn formatting (bold, italic, > quote, • bullet). channel defaults to SLACK_DEFAULT_CHANNEL when omitted. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool targets a distinct action, and the descriptions explicitly differentiate gmail_fetch_recent (list/snippet) from gmail_get_message (full body). There is mild conceptual overlap since archive, mark_read, star, and apply_label all manipulate labels, but the intent of each is clearly spelled out.
All tools use a consistent service_verb_noun snake_case pattern (gmail_fetch_recent, gmail_mark_read, slack_send_message), with the service prefix cleanly partitioning Gmail vs Slack operations. Minor verb variation (fetch vs get) is still predictable and readable.
Eight tools is well-scoped for a focused inbox-triage assistant. Each tool earns its place, covering the read/triage, label, and notify steps without redundancy.
The triage lifecycle (fetch, inspect, archive, mark read, star, label) plus Slack notification is well covered. Minor gaps remain: no reply/send-email tool, no unread/undo path, and Slack is limited to sending with no channel listing or read capability.