productivity-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_email_accountsA | List configured email accounts. Each entry includes:
|
| list_foldersC | List folders/labels for an email account. |
| list_emailsA | List messages in a folder. Args:
account: Account label (use |
| read_emailA | Fetch a single message with its body. Args:
message_id: Provider message id from |
| send_emailC | Send an email. Returns the provider message id. |
| set_email_readC | Mark an email as read (read=True) or unread (read=False). |
| delete_emailA | Delete an email. IMAP expunges; Gmail moves to Trash (recoverable). |
| move_emailC | Move an email to another folder/label. |
| reply_emailC | Reply to an email. Set reply_all=True to include the original Cc list. |
| forward_emailC | Forward an email to new recipients, optionally prepending a note. |
| search_emails_by_senderC | List emails from specific senders or sender domains. Each |
| count_unreadB | Count unread messages in a folder (optionally within the last N days). |
| list_recent_sendersA | Top senders over the last N days, ordered by message count. Useful for "who has been emailing me lately?" style questions. |
| list_calendar_accountsA | List configured calendar accounts. |
| list_calendarsC | List calendars on an account. |
| list_eventsA | List events in a time range (defaults: now → +7 days). ISO 8601 strings. |
| create_eventC | Create a calendar event. Times are ISO 8601. |
| delete_eventC | Delete a calendar event by id. |
| get_eventB | Fetch a single calendar event with full detail. |
| update_eventB | Update an existing event. Pass only the fields you want to change. Times (start/end) are ISO 8601. |
| search_threadsA | List conversations (not individual messages) matching the filters. Returns one entry per thread, with the latest message's metadata plus a
|
| free_busyA | Return busy time windows between If |
| resolve_contactA | Look up a contact by name or partial email. Returns up to |
| list_attachmentsC | List attachments on a message. Each entry has {attachment_id, filename, mime_type, size}. |
| download_attachmentA | Download an attachment. If |
| summarize_inboxA | One-call inbox overview. Returns counts, top senders, top recipient
addresses (useful when multiple aliases hit the same mailbox), and a
per-day histogram for the last |
| count_emailsA | Count messages matching filters without fetching full envelopes. General-purpose counter — e.g. 'how many emails from Amazon this month?' |
| save_draftA | Save an email as a draft instead of sending. Useful when the LLM should let the human review before committing to send. Returns {draft_id}. |
| list_draftsC | List pending email drafts. |
| send_draftC | Send an existing draft by id. |
| list_tasksB | List tasks from the account's task list. Supported on Google Calendar (Google Tasks) and EWS / WorkMail (Tasks folder). |
| create_taskC | Create a new task. |
| search_eventsA | Substring search across calendar events (summary, location, description). Default window: now → +60 days. |
| respond_eventB | Respond to a meeting invitation. |
| suggest_meeting_timesA | Find time slots where everyone listed in Combines each attendee's busy windows (via |
| pingA | Probe every configured account (or just the named one). Returns per- account {name, kind, ok, latency_ms, error?} so the LLM can self-check. |
| bulk_set_readA | Mark many emails read/unread in one call. Returns counts of successes and failures. Rate-limited. |
| bulk_delete_emailsA | Delete many emails in one call. IMAP expunges; Gmail moves to Trash. Rate-limited. |
| bulk_move_emailsC | Move many emails to another folder/label in one call. Rate-limited. |
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 39 tools
Each tool has a clearly distinct purpose. Single vs bulk operations are explicitly separated, email, calendar, task, and contact tools are grouped by domain, and search utilities have specific scopes (by sender, threads, events). No two tools appear to overlap in functionality.
All tools follow a consistent verb_noun pattern with lowercase underscores (e.g., 'create_event', 'list_emails', 'delete_event'). No mixing of camelCase or other conventions, making it easy for an agent to predict tool names.
With 39 tools covering email, calendar, tasks, and contacts, the count is on the higher side but still reasonable for a comprehensive productivity suite. Each tool serves a distinct purpose, and the breadth is justified by the domain's complexity.
The tool surface is largely complete, covering CRUD for email (including bulk operations and drafts) and calendar (including free/busy and suggestion), plus tasks and contacts. Minor gaps like missing update/delete for tasks are not critical for most use cases.