google-workspace-alias-mcp
Provides tools for sending emails with send-as alias support, managing drafts, labels, attachments, and email templates with variables, as well as listing, searching, and modifying emails.
Provides tools for creating, updating, listing, searching, and deleting events, checking free/busy availability across calendars, and managing recurring events.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@google-workspace-alias-mcpsend email to client@example.com from alias hello@mycompany.com about project update"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Workspace Alias MCP
A Model Context Protocol (MCP) server for Google Workspace integration with send-as alias support, email templates, and scheduled send. This server enables AI assistants to manage Gmail and Google Calendar through natural language interactions.
Why google-workspace-alias-mcp?
Unique: Only MCP with send-as alias support
Unified: Gmail + Calendar in one package
Full Featured: 28 tools with complete API coverage
✨ Why This MCP?
Feature | This MCP | Gmail MCP (Original) |
Send-As Alias Support | ✅ Dynamic discovery | ❌ Not supported |
Email Templates | ✅ With variables | ❌ Not supported |
Scheduled Send | ✅ Built-in | ❌ Not supported |
Gmail + Calendar | ✅ Unified | ❌ Gmail only |
Multi-Account | ✅ Planned | ❌ Not supported |
Free/Busy Check | ✅ Built-in | ❌ Not supported |
Related MCP server: Google Workspace MCP Server
🚀 Features
Gmail
✅ Send emails - with subject, content, attachments, and recipients
✅ Send-As Alias Support - dynamic discovery of all configured aliases
✅ Email templates - save and reuse templates with variables
✅ Scheduled send - schedule emails for later delivery
✅ Draft emails - create drafts without sending
✅ Read emails - get full email content with enhanced attachment display
✅ List emails - view inbox, sent, or custom labels
✅ Search emails - using Gmail search syntax
✅ Modify emails - mark read/unread, move to labels/folders
✅ Delete emails - permanent deletion
✅ Download attachments - save attachments to local filesystem
✅ Label management - create, update, delete labels
✅ Batch operations - process multiple emails efficiently
✅ Full attachment support - send and receive file attachments
✅ HTML emails - multipart messages with both HTML and plain text
✅ International characters - full support in subject and content
Google Calendar
✅ Create events - with title, time, description, location, attendees
✅ Get event - retrieve event details by ID
✅ List events - view events within specified time range
✅ Update events - modify existing events
✅ Delete events - remove events
✅ Search events - find events by query
✅ Free/Busy check - check availability across calendars
✅ Multi-calendar support - work with multiple calendars
✅ Recurring events - support for repeating events
📦 Installation
Using npm (Recommended)
npm install -g google-workspace-alias-mcpManual Installation
git clone https://github.com/johndelapena168/google-workspace-alias-mcp.git
cd google-workspace-mcp
npm install⚙️ Setup
1. Create Google Cloud Project
Go to Google Cloud Console
Create a new project or select existing one
Enable the following APIs:
Gmail API
Google Calendar API
2. Create OAuth 2.0 Credentials
Go to "APIs & Services" > "Credentials"
Click "Create Credentials" > "OAuth client ID"
Select "Desktop app" as application type
Give it a name (e.g., "Google Workspace MCP")
Click "Create"
Download the JSON file
Rename it to
gcp-oauth.keys.json
3. Authenticate
Place your gcp-oauth.keys.json in one of these locations:
~/.google-workspace-mcp/(recommended)Current directory
Then run:
npx google-workspace-alias-mcp authThis will:
Open your browser for Google authentication
Ask for permission to access Gmail and Calendar
Save credentials locally for future use
🔧 Configuration
Claude Desktop
Add to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"google-workspace": {
"command": "npx",
"args": ["google-workspace-alias-mcp"]
}
}
}Cursor
Add to your Cursor settings:
{
"mcpServers": {
"google-workspace": {
"command": "npx",
"args": ["google-workspace-alias-mcp"]
}
}
}Qoder
The MCP will be automatically detected when installed globally.
📖 Usage Examples
Send Email with Alias
{
"tool": "send_email",
"arguments": {
"to": ["client@example.com"],
"subject": "Project Update",
"body": "Hi,\n\nHere's the latest update on the project.\n\nBest regards",
"from": "hello@nexteraofai.com"
}
}List Available Aliases
{
"tool": "list_aliases",
"arguments": {}
}List Email Templates
{
"tool": "list_templates",
"arguments": {}
}Send Email Using Template
{
"tool": "send_template_email",
"arguments": {
"template": "meeting-followup",
"to": ["client@example.com"],
"variables": {
"name": "John",
"meeting_name": "Project Review",
"summary": "Discussed project timeline and milestones",
"next_steps": "1. Finalize requirements\n2. Start development",
"sender_name": "John Dela Pena"
},
"from": "hello@nexteraofai.com"
}
}Create Custom Template
{
"tool": "create_template",
"arguments": {
"name": "weekly-report",
"displayName": "Weekly Report",
"subject": "Weekly Report: {{week_date}}",
"body": "Hi {{name}},\n\nHere's the weekly report for {{week_date}}:\n\n{{report_content}}\n\nBest regards,\n{{sender_name}}"
}
}Schedule Email for Later
{
"tool": "send_scheduled_email",
"arguments": {
"to": ["team@example.com"],
"subject": "Weekly Update",
"body": "Here's the weekly project update...",
"scheduledTime": "2026-07-15T09:00:00",
"from": "hello@nexteraofai.com"
}
}Create Calendar Event
{
"tool": "create_event",
"arguments": {
"summary": "Project Kickoff Meeting",
"description": "Initial meeting to discuss project scope and timeline",
"location": "Zoom Meeting",
"start": "2026-07-15T14:00:00",
"end": "2026-07-15T15:00:00",
"attendees": ["john@example.com", "jane@example.com"],
"reminders": [
{ "method": "email", "minutes": 60 },
{ "method": "popup", "minutes": 10 }
]
}
}Search Events
{
"tool": "search_events",
"arguments": {
"query": "meeting",
"timeMin": "2026-07-01T00:00:00Z",
"timeMax": "2026-07-31T23:59:59Z",
"maxResults": 20
}
}Check Free/Busy
{
"tool": "get_freebusy",
"arguments": {
"timeMin": "2026-07-15T09:00:00Z",
"timeMax": "2026-07-15T17:00:00Z",
"calendars": ["primary", "work@example.com"]
}
}Get Event by ID
{
"tool": "get_event",
"arguments": {
"calendarId": "primary",
"eventId": "abc123def456"
}
}List Emails in Inbox
{
"tool": "list_emails",
"arguments": {
"labelIds": ["INBOX"],
"maxResults": 10
}
}Mark Email as Read
{
"tool": "modify_email",
"arguments": {
"messageId": "18a1b2c3d4e5f6789",
"removeLabelIds": ["UNREAD"]
}
}Move Email to Label
{
"tool": "modify_email",
"arguments": {
"messageId": "18a1b2c3d4e5f6789",
"addLabelIds": ["Label_123"],
"removeLabelIds": ["INBOX"]
}
}Download Attachment
{
"tool": "download_attachment",
"arguments": {
"messageId": "18a1b2c3d4e5f6789",
"attachmentId": "ANGjdJ8z7_OQ",
"savePath": "C:/Users/Downloads"
}
}Create New Label
{
"tool": "create_label",
"arguments": {
"name": "Client Projects",
"messageListVisibility": "show",
"labelListVisibility": "labelShow"
}
}Batch Delete Emails
{
"tool": "batch_delete_emails",
"arguments": {
"messageIds": ["msg1", "msg2", "msg3"]
}
}🎯 Unique Selling Points
1. Dynamic Alias Support
No other MCP server supports Gmail send-as aliases. This MCP automatically discovers all configured aliases and lets you send from any of them.
2. Email Templates
Save frequently used email templates with variables:
"Use meeting-followup template for {{name}}"3. Scheduled Send
Schedule emails for later delivery:
{
"scheduledTime": "2026-07-15T09:00:00"
}4. Unified Workspace
Gmail + Calendar in one MCP server. No need to install separate servers.
🔐 Security
OAuth credentials are stored locally in
~/.google-workspace-mcp/Tokens are automatically refreshed when expired
No data is sent to third-party servers
Full control over permissions
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Development Setup
git clone https://github.com/johndelapena168/google-workspace-alias-mcp.git
cd google-workspace-mcp
npm install
npm start📝 License
MIT License - see LICENSE file
🙏 Acknowledgments
Inspired by Gmail-MCP-Server by GongRzhe
Built with Model Context Protocol SDK
Uses Google APIs
📧 Contact
GitHub: @johndelapena168
Email: hello@nexteraofai.com
⭐ Support
If you find this MCP useful, please give it a star on GitHub!
Available Tools
29 toolsauthenticateA
Authenticate with Google Workspace (opens browser for OAuth consent). Run this first before using other tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it opens a browser for OAuth consent, a key behavioral trait. No annotations provided, so description carries full burden; it does well but could mention token persistence or session behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no extraneous information, and the key action and usage order are front-loaded. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has zero parameters and no output schema, the description fully covers what the tool does and when to use it. Nothing missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100% and description adds no parameter details. Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it authenticates with Google Workspace via OAuth. Distinguishes itself from sibling tools that operate on emails, events, etc., as an initial setup tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Run this first before using other tools,' providing clear usage context. Could be more specific about when not to use, but the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_delete_emailsB
Permanently delete multiple emails
| Name | Required | Description | Default |
|---|---|---|---|
| messageIds | Yes | List of message IDs to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states 'permanently delete', which implies irreversibility, but does not disclose batch limits, error handling, or other behavioral traits beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single phrase that front-loads the verb and resource, containing zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is insufficiently complete. It omits details such as batch size limits, confirmation behavior, error handling, or return information, which are important for a deletion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already describes the parameter. The description does not add any additional meaning or constraints beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'permanently delete' and resource 'multiple emails', which distinguishes it from sibling 'delete_email' (singular) and 'batch_modify_emails' (modify vs delete).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives like 'delete_email' for single emails or 'batch_modify_emails' for modifications. No exclusions or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_modify_emailsB
Modify labels for multiple emails at once
| Name | Required | Description | Default |
|---|---|---|---|
| messageIds | Yes | List of message IDs to modify | |
| addLabelIds | No | Labels to add | |
| removeLabelIds | No | Labels to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavior. It only states the basic operation but does not disclose atomicity, failure handling, or limits on message IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, direct and to the point. Could be improved by including more context without becoming overly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations. Description lacks details on return value, error handling, performance, or prerequisites. Minimal for a batch operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The tool description adds no additional meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (modify), the resource (labels for multiple emails), and implicitly distinguishes from siblings like modify_email (single email) and batch_delete_emails (delete).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs. alternatives (e.g., calling modify_email repeatedly). The sibling tool modify_email exists but no comparison is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_eventC
Create a calendar event
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End time (ISO format) | |
| start | Yes | Start time (ISO format) | |
| summary | Yes | Event title | |
| location | No | Event location | |
| attendees | No | List of attendee emails | |
| reminders | No | Event reminders | |
| calendarId | No | Calendar ID | primary |
| description | No | Event description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations. Description only says 'Create a calendar event', omitting side effects (e.g., notifications to attendees), required scopes, or default behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no waste, but overly brief given tool complexity (8 params). Could provide more context without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complex tool with 8 parameters, no output schema, and no annotations. Description fails to explain return value, error conditions, or how the event is created (e.g., calendar integration).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for all 8 parameters. Description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Create a calendar event', matching the tool name. It distinguishes from sibling tools like update_event or delete_event, but doesn't elaborate on scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like update_event or search_events. No prerequisites or typical use cases mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_labelB
Create a new Gmail label
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Label name | |
| labelListVisibility | No | Label visibility in label list | labelShow |
| messageListVisibility | No | Whether to show in message list | show |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It fails to disclose important traits like permission requirements, duplicate behavior, or mutation effects beyond the obvious creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler words. Efficiently conveys the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 3 parameters, the description is too minimal. It omits return value details, error scenarios, and behavioral nuances needed for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond what the schema provides; baseline is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Create a new Gmail label' with a specific verb and resource, distinguishing it from sibling tools like update_label, delete_label, and list_email_labels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., batch operations or other create tools). No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_templateB
Create a new email template with variables (use {{variable}} syntax)
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Email body template (use {{variable}} for variables) | |
| name | Yes | Template name (used as ID) | |
| subject | Yes | Email subject template (use {{variable}} for variables) | |
| displayName | Yes | Human-readable template name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full burden. It does not disclose important behaviors such as idempotency, what happens if a template with the same name exists, or the scope of changes (destructive or not). Only the variable syntax is mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundancy. It conveys the essential purpose and a key detail without extra words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 required parameters and no output schema, the description is incomplete. It does not mention what the tool returns (e.g., the created template object or a success status) or error conditions. For a creation tool, this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all 4 parameters described in schema). The description adds value for 'subject' and 'body' by noting the {{variable}} syntax, but 'name' and 'displayName' are not elaborated beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create', the resource 'email template', and a distinctive feature 'with variables (use {{variable}} syntax)', which is specific and distinguishes it from sibling tools like get_template, list_templates, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks any guidance on when to use this tool versus alternatives like create_label or send_template_email. No prerequisites or context for appropriate use are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_emailA
Permanently delete an email
| Name | Required | Description | Default |
|---|---|---|---|
| messageId | Yes | The message ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. 'Permanently' indicates irreversibility, but lacks disclosure of side effects, permission requirements, or recovery options. Minimal but adequate context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (4 words), front-loaded with verb and resource. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple (1 param, no output schema). Description is minimal but covers action. Could mention irreversibility explicitly, but sufficient for a straightforward delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with messageId described. Description adds 'delete an email' clarifying the parameter's role but no extra semantic value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'delete' and resource 'email', with qualifier 'Permanently', clearly distinguishing it from siblings like 'batch_delete_emails' (multiple) and 'delete_event' (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., batch_delete_emails for multiple, modify_email for trashing). No prerequisites or exclusions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_eventC
Delete a calendar event
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | Event ID to delete | |
| calendarId | No | Calendar ID | primary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. 'Delete' implies irreversibility, but no details on permissions, cascading effects, or success confirmation are given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the tool's purpose. No unnecessary words, though it could be slightly expanded for completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with two well-described parameters and no output schema, the description is adequate but lacks details on effects (e.g., permanent deletion) or usage notes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear descriptions for both parameters. The tool description adds no additional parameter semantics, but the schema already provides sufficient meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a calendar event' clearly identifies the action and resource. However, it does not explicitly distinguish from sibling delete tools (e.g., delete_email, delete_label), but the tool name and resource type make it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., update_event to soft-delete, or batch operations). No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_labelC
Delete a Gmail label
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Label ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only states 'delete' without mentioning irreversibility, side effects (e.g., label removal from all messages), required permissions, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (4 words) but at the cost of missing important context. It is front-loaded, but the brevity limits its utility. A slightly longer description with key behavioral notes would be more effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but the description fails to mention return values (e.g., success message, void), errors (e.g., when deleting a system label), or that deleting a label also removes it from all messages. Without annotations, the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'id', and the description does not add meaning beyond the schema's 'Label ID to delete'. Baseline 3 is appropriate since the schema already conveys the parameter's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete) and resource (Gmail label). It is unambiguous and distinguishes from sibling tools like delete_email. However, it could be more specific by noting that only user-created labels are deletable, not system labels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No information is provided about when to use this tool versus alternatives (e.g., update_label to hide a label) or when not to use it (e.g., system labels cannot be deleted). The agent receives no guidance on prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_attachmentB
Download an email attachment to local filesystem
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | Custom filename (optional, uses original if not provided) | |
| savePath | No | Directory to save the file (defaults to current directory) | |
| messageId | Yes | The message ID containing the attachment | |
| attachmentId | Yes | The attachment ID to download |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It does not mention side effects (file overwrite), permissions needed, or asynchronous behavior. The brief description does not compensate for missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 5 words, efficient. Could benefit from a bit more context, but it is well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple download tool with no output schema and no annotations, the description minimally states the function. However, it lacks behavioral attributes and fails to address potential issues like file conflicts or return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The tool description adds no parameter-specific information beyond restating the overall purpose, so it meets baseline expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'download' and the resource 'email attachment' with a specific destination 'local filesystem', distinguishing it from sibling tools like 'read_email' that may only view attachments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites, conditions, or error handling mentioned. The description lacks context for selecting this tool among the many email-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_emailC
Create a draft email
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | List of CC recipients | |
| to | Yes | List of recipient email addresses | |
| bcc | No | List of BCC recipients | |
| body | Yes | Email body content | |
| from | No | Send-as alias email address | |
| subject | Yes | Email subject | |
| htmlBody | No | HTML version of the email body | |
| attachments | No | List of file paths to attach |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states 'Create a draft email', which implies a save-to-drafts action but does not disclose behavioral traits such as authentication requirements, rate limits, or the outcome of creating a draft (e.g., where it is stored). No annotations are provided to supplement this gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no extraneous content. If 'draft' had been elaborated unnecessarily, it could have been longer, but as-is it is concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, 3 required, and no output schema, the description should provide more context about the tool's behavior (e.g., that the draft is saved to the user's drafts folder). The minimal description leaves the agent underinformed about the tool's full scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 8 parameters are described in the input schema with full coverage (100%). The description adds no additional meaning beyond what the schema already provides, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a draft email' clearly states the purpose and distinguishes from sibling tools like 'send_email' which sends rather than drafts. However, it is slightly tautological as it restates the tool name without additional nuance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'send_email' or 'send_scheduled_email'. Lacks context on prerequisites, such as requiring authentication or that drafts can be sent later.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eventB
Get event details by event ID
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | Event ID to retrieve | |
| calendarId | No | Calendar ID | primary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. Only says 'Get event details', omitting what happens with invalid IDs, permissions needed, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundant words. Front-loaded with action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, yet description does not explain return value structure. Also lacks error handling info. For a simple retrieval tool, more details are expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters fully (100% coverage). Description adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'get', resource 'event', and method 'by event ID'. It distinguishes from siblings like list_events and search_events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage when event ID is known, but no explicit when-to-use or when-not-to-use. Alternatives like list_events or search_events are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_freebusyC
Check free/busy status for calendars
| Name | Required | Description | Default |
|---|---|---|---|
| timeMax | Yes | End time (ISO format) | |
| timeMin | Yes | Start time (ISO format) | |
| calendars | No | List of calendar IDs to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It does not mention read-only nature, required permissions, rate limits, or the structure of the response (since no output schema exists). This is insufficient for an agent to understand implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with no wasted words. Perfectly concise for the information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is too sparse. It does not explain what the tool returns (free/busy information for which calendars?), leaving the agent underinformed for decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all 3 parameters with descriptions, so baseline is 3. The description adds no extra meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool checks free/busy status for calendars, a specific verb-resource combination. It distinguishes from sibling tools like get_event or list_events which deal with calendar events individually, but it could be more specific about the time range aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_event or list_events. No mention of prerequisites, limitations, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_templateC
Get a specific template by name
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Template name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It fails to mention that this is a read operation, what happens if the template does not exist, or any required authentication. The single sentence adds no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) and front-loaded. While efficient, it could be slightly expanded to include minimal usage context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should at least hint at what the return value is (e.g., the template object). It does not explain what a template is or any related context, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the 'name' parameter is described as 'Template name'). The description does not add meaning beyond the schema, but the baseline for high coverage is 3. No improvement or degradation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('get') and the resource ('specific template'), with the identifier ('by name'). This distinguishes it from sibling tools like list_templates or create_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., list_templates first). No mention of prerequisites or excluded scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_aliasesA
List all available send-as email aliases for the authenticated Gmail account
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. States read-only intent ('List...aliases') but doesn't confirm non-destructiveness, auth requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single clear sentence with no filler. Efficiently communicates purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and description omits return format. For a list tool, should at least describe what fields each alias object contains (e.g., alias, email). Lacks completeness for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters. Baseline 4 per guidelines. Description adds no extra parameter details but none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List', resource 'send-as email aliases', and scope 'for the authenticated Gmail account'. No sibling tool duplicates this purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or alternatives. However, as the only alias-listing tool, usage is implied. Lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_calendarsB
List all calendars
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits beyond the obvious read-only nature. Since no annotations exist, the description carries full burden, but it fails to mention safety (e.g., no side effects), rate limits, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no extraneous words, fully front-loading the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description lacks completeness about return format (e.g., IDs, names) and context (e.g., linked to which account). The agent may be unable to process the response effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and the description adds the purpose 'List all calendars,' which provides meaning beyond the empty schema. With 100% schema coverage, the baseline is 4, and the description justifiably earns that score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('calendars'), distinguishing it from sibling tools like list_events or list_emails. However, it does not specify what type of calendars (e.g., Google Calendar) or any scoping, leaving slight ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_freebusy or list_events. There are no explicit when-not or precondition mentions, relying on the agent to infer from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_email_labelsA
List all Gmail labels
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States only 'List all Gmail labels' without disclosing authentication needs, rate limits, returnable label types (e.g., system vs. user labels), or any side effects. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, zero wasted words, front-loaded purpose. Appropriate for a tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is largely complete for a simple list operation. However, additional context about label filtering (e.g., user vs. system) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema description coverage is 100% (trivially). Baseline for 0 parameters is 4; description does not need to add param info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes that the tool lists all Gmail labels with specific verb ('list') and resource ('all Gmail labels'). Clearly distinguishes from sibling tools like create_label, delete_label, and update_label.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use versus alternatives such as search_emails or list_emails. Implied usage for retrieving labels, but no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_emailsC
List emails in inbox, sent, or specific label
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional search query filter | |
| labelIds | No | Label IDs to list (e.g., ['INBOX'], ['SENT'], ['TRASH']) | |
| maxResults | No | Maximum number of emails to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'list', with no mention of read-only nature, pagination, or other behaviors. Adequate but lacking depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with the verb first. It is concise but could benefit from a bit more structure or phrasing to improve clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with no output schema, the description is adequate but does not mention ordering, pagination, or relationship to other list/search tools. Could be more complete given sibling complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so with no added parameter details, the description adds no value beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists emails and specifies scoping (inbox, sent, or specific label). However, it does not differentiate from sibling tools like search_emails, which may have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as search_emails or read_email. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_eventsC
List events from a calendar
| Name | Required | Description | Default |
|---|---|---|---|
| timeMax | No | End time (ISO format) | |
| timeMin | No | Start time (ISO format) | |
| calendarId | No | Calendar ID (default: primary) | primary |
| maxResults | No | Maximum number of events |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits such as default filtering, pagination, or ordering. The agent cannot infer how the tool behaves without parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it sacrifices completeness for brevity. Important contextual information is missing, making it less useful than optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, no output schema, and 4 optional parameters, the description is insufficient. It does not specify default behavior (e.g., if no time range, does it list upcoming events?) or output structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains each parameter. The description adds no additional meaning beyond what the schema provides, achieving the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the verb (list) and resource (events), but it does not distinguish from sibling tools like search_events. It lacks scope details (e.g., which calendar, time range) beyond what is in the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like search_events or get_event. No prerequisites or context for usage are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesA
List all available email templates
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only says 'list all', implying read-only but lacks details on pagination, scope (user's templates?), or other behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, succinct sentence with no unnecessary words. Efficiently communicates the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks description of return format or any behavioral details. For a simple list tool with no output schema, minimally adequate but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters and 100% schema coverage, the baseline is 4. The description adds no extra parameter meaning but confirms the no-param behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'list' and resource 'email templates', clearly distinguishing it from siblings like 'get_template' (single) and 'create_template' (create).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_template' or 'search_emails'. No when-not or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_emailB
Add or remove labels from an email (mark read/unread, move to folder, archive, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| messageId | Yes | The message ID to modify | |
| addLabelIds | No | Labels to add (e.g., ['IMPORTANT', 'Label_123']) | |
| removeLabelIds | No | Labels to remove (e.g., ['UNREAD', 'INBOX']) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only labels the operation as modifying labels but omits behavioral traits like authentication requirements, error handling (e.g., if messageId not found), idempotency, or whether it returns a result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant words. It efficiently conveys the core action and examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with 3 parameters and no output schema, the description minimally covers the operation. However, it lacks details on response, error states, and prerequisites, making it slightly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds examples like ['IMPORTANT', 'Label_123'] and ['UNREAD', 'INBOX'] which provide additional context beyond schema descriptions, but does not significantly augment clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add or remove labels' and the resource 'an email', with concrete examples like 'mark read/unread, move to folder, archive'. It effectively distinguishes from sibling tools like batch_modify_emails (batch) and delete_email (deletion).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not specify when to use this tool vs alternatives such as batch_modify_emails for batch operations or delete_email for removal. No context or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_emailB
Read an email by message ID
| Name | Required | Description | Default |
|---|---|---|---|
| messageId | Yes | The message ID to read |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'Read an email' without disclosing any behavioral details such as side effects, required permissions, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with one parameter and no output schema, the description is adequate but could mention the return value (e.g., full email content) to be complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage with a description for the only parameter, so the tool description adds no additional meaning beyond what the schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Read' and the resource 'email' by message ID, which distinguishes it from siblings like list_emails or search_emails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided; there is no mention of when to use this tool versus alternatives like search_emails or list_emails.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_emailsB
Search emails using Gmail search syntax
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Gmail search query (e.g., 'from:user@example.com after:2024/01/01') | |
| maxResults | No | Maximum number of results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It only states the search capability without disclosing behavioral traits like read-only nature, pagination, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no wasted words, though it could be slightly expanded for additional useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters and no output schema, the description is minimally adequate but lacks information on return values, pagination, or error scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with clear descriptions, and the tool description reinforces the use of Gmail search syntax, but it adds no new semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search' and resource 'emails', and specifies the use of 'Gmail search syntax', making the tool's purpose distinct from siblings like 'list_emails' and 'search_events'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for email search with Gmail syntax but provides no explicit guidance on when to use this tool versus alternatives such as 'list_emails' or 'search_events'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_eventsC
Search calendar events
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| timeMax | No | End time (ISO format) | |
| timeMin | No | Start time (ISO format) | |
| calendarId | No | Calendar ID | primary |
| maxResults | No | Maximum number of results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It only says 'search', implying read-only, but does not disclose return format, pagination, or other constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at four words, front-loading the key information. However, it sacrifices detail for brevity, lacking structure for complex behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has five parameters and no output schema, the description is too brief to be complete. It fails to explain return values, behavior, or nuances.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond what the schema already provides for the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search calendar events' clearly states the action (search) on the resource (calendar events). However, it does not differentiate from sibling tools like list_events or get_event, which might have similar purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use search_events versus alternatives like list_events. The description lacks context for usage scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_emailA
Send an email with optional alias support
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | List of CC recipients | |
| to | Yes | List of recipient email addresses | |
| bcc | No | List of BCC recipients | |
| body | Yes | Email body content (plain text or HTML) | |
| from | No | Send-as alias email address (use list_aliases to see available aliases) | |
| subject | Yes | Email subject | |
| htmlBody | No | HTML version of the email body | |
| mimeType | No | Email content type | text/plain |
| attachments | No | List of file paths to attach |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'Send an email' implying the email is dispatched, and mentions 'optional alias support'. However, it does not disclose side effects (e.g., email sent immediately, cannot be undone), authentication needs, rate limits, or default behavior for the 'from' field. Significant behavioral aspects are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with only 7 words, 'Send an email with optional alias support'. It is front-loaded and every word adds value, covering the core functionality and a key differentiator. No unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 parameters, no output schema, and no annotations, the description is minimally adequate. It captures the essence of sending an email with alias support, but does not clarify that this is for immediate sending (not scheduled or template-based), nor does it mention return values or prerequisites. Some context is missing for an AI agent to fully understand the tool's role among siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and all parameter descriptions are already present in the schema. The tool description adds no extra meaning beyond what the schema provides. For example, the 'from' parameter is already described as 'Send-as alias email address (use list_aliases to see available aliases)' in the schema. The baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Send an email with optional alias support' clearly states the action (send email) and the resource (email). It distinguishes from siblings like draft_email (draft vs send) and send_template_email (templates) by mentioning alias support, which is a unique feature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for sending immediate emails, optionally with an alias. However, it does not explicitly state when to use this tool versus alternatives like draft_email, send_scheduled_email, or send_template_email. No when-not or usage constraints are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_scheduled_emailB
Schedule an email to be sent at a specific time
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | List of CC recipients | |
| to | Yes | List of recipient email addresses | |
| bcc | No | List of BCC recipients | |
| body | Yes | Email body content | |
| from | No | Send-as alias email address | |
| subject | Yes | Email subject | |
| htmlBody | No | HTML version of the email body | |
| timezone | No | Timezone for scheduled time (e.g., 'America/New_York') | |
| scheduledTime | Yes | Scheduled send time (ISO format, e.g., '2026-07-15T09:00:00') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the scheduling action without mentioning what happens after scheduling (e.g., confirmation, cancellation, limits), or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core action efficiently. Slightly more detail could improve it without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, no output schema, and no annotations, the description should cover return value, behavior on past times, and guidance on required fields. It lacks this completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds no additional meaning beyond the schema's parameter descriptions. It does not explain formats (e.g., scheduledTime ISO, timezone examples) or distinguish required from optional usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'schedule' and the resource 'email' with the specific constraint 'at a specific time'. This distinguishes it from siblings like send_email (immediate) and draft_email (no send).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for delayed sending, but provides no explicit guidance on when to use this tool versus alternatives, nor any conditions or prerequisites. The name carries the load.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_template_emailC
Send an email using a template with variables
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | List of CC recipients | |
| to | Yes | List of recipient email addresses | |
| bcc | No | List of BCC recipients | |
| from | No | Send-as alias email address | |
| template | Yes | Template name to use | |
| variables | Yes | Variables to replace in template (e.g., {"name": "John", "meeting_name": "Project Review"}) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only states the basic action without disclosing behavioral traits like whether the email is sent immediately, error handling for missing variables, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure. It could include more detail without being verbose, such as mentioning required template existence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema or annotations, the description is too brief for a tool with 6 parameters including a nested object. It does not explain the return value, side effects, or prerequisites like template availability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are described in the input schema (100% coverage). The description adds minimal extra meaning with 'with variables', but the schema already explains variable substitution clearly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (send an email) and resource (using a template with variables). However, it does not explicitly distinguish from sibling tools like 'send_email' or 'send_scheduled_email', which could also send emails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. For instance, it does not mention that templates must be created beforehand via 'create_template', or when to use plain email sending instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_eventC
Update an existing calendar event
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End time (ISO format) | |
| start | No | Start time (ISO format) | |
| eventId | Yes | Event ID to update | |
| summary | No | Event title | |
| location | No | Event location | |
| attendees | No | List of attendee emails | |
| calendarId | No | Calendar ID | primary |
| description | No | Event description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only says 'update an existing calendar event' without disclosing side effects, permissions needed, or behavior when eventId is invalid. The description adds minimal value beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no waste. However, it could be slightly expanded to include key constraints like required eventId.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an update tool with 8 parameters and no output schema, the description is insufficient. It doesn't explain return values, error handling, or partial update semantics. Ideal would include that only provided fields are updated (patch behavior).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions, so description need not repeat. Baseline 3 is appropriate as it adds no additional meaning to the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates an event, which differentiates it from create and delete siblings. However, it doesn't explicitly distinguish from more specific sibling tools like batch_modify_emails, which is acceptable given the different resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this vs alternatives like create_event or delete_event. No mention of prerequisites or context for using the eventId required parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_labelB
Update an existing Gmail label
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Label ID to update | |
| name | No | New label name | |
| labelListVisibility | No | Label visibility in label list | |
| messageListVisibility | No | Whether to show in message list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'Update an existing Gmail label' with no details on side effects, idempotency, or permissions, which is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, which is concise but lacks necessary details. It efficiently states the purpose but omits important context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should provide more context (e.g., return values, effects on messages). It fails to do so, leaving gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameters are well-described in the schema. The description adds no extra meaning beyond the schema, earning a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'Update' and the resource 'existing Gmail label', distinguishing it from sibling tools like create_label and delete_label.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or when not, nor mention of alternatives. However, the purpose is clear enough for an agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
29 tool updates
v1.1.0- First observed
authenticate - First observed
batch_delete_emails - First observed
batch_modify_emails - First observed
create_event - First observed
create_label - First observed
create_template - First observed
delete_email - First observed
delete_event - First observed
delete_label - First observed
download_attachment - First observed
draft_email - First observed
get_event - First observed
get_freebusy - First observed
get_template - First observed
list_aliases - First observed
list_calendars - First observed
list_email_labels - First observed
list_emails - First observed
list_events - First observed
list_templates - First observed
modify_email - First observed
read_email - First observed
search_emails - First observed
search_events - First observed
send_email - First observed
send_scheduled_email - First observed
send_template_email - First observed
update_event - First observed
update_label
TDQS
Scored across 29 tools
Each tool targets a distinct resource and action: email operations (send, read, delete, modify, batch, labels, attachments, aliases, templates) and calendar operations (list, create, get, update, delete, search, freebusy). No overlapping purposes.
All tools follow a consistent verb_noun pattern (e.g., create_event, delete_email, list_aliases). The only exception is 'authenticate' which is a setup verb, acceptable for a single bootstrap tool.
29 tools is on the high side but reasonable given the coverage of Gmail, Calendar, and templates. Each tool has a clear purpose, though the scope might be slightly broad for a server focused on aliases.
Core CRUD operations are covered for emails, labels, events, and templates. However, alias management is limited to listing; creation or deletion of aliases is missing, which is a notable gap given the server name.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI assistants to interact with Gmail services, supporting email operations, draft management, and calendar functionality through Google API integration.812MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server that provides tools for interacting with Gmail and Calendar APIs, enabling programmatic management of emails and calendar events.827MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI assistants to manage Gmail through natural language interactions with features like sending emails, searching, and label management.17,591MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server for Gmail that lets AI assistants read, send, search, label, and filter Gmail through natural language, with OAuth2 auto-authentication and full attachment support.813MIT