Provides tools for interacting with Gmail, enabling AI assistants to list and search emails, read messages with attachments, send emails, and manage labels through a standardized interface.
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., "@Gmail MCP ServerFind the latest email from 'Support' and summarize what it says."
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.
Gmail MCP Server
A Model Context Protocol (MCP) server implementation for Gmail integration, enabling AI assistants to interact with Gmail through a standardized interface.
Features
Email Operations
List and search emails with advanced filtering
Read email content with attachments
Send emails with attachments
Draft support (coming soon)
Reply/Forward support (coming soon)
Label Management
List all labels
Create new labels
Update existing labels
Delete labels
Authentication
Secure OAuth2 authentication
Automatic token refresh
Token persistence
Installation
Clone the repository:
git clone https://github.com/yourusername/gmail-mcp.git
cd gmail-mcpInstall dependencies:
npm installSet up Google Cloud Project:
Go to Google Cloud Console
Create a new project
Enable Gmail API
Configure OAuth consent screen
Create OAuth credentials
Download credentials as
gcp-oauth.keys.json
Configure the project:
Place
gcp-oauth.keys.jsonin the project root directoryRun the authentication server:
npm run authBuild the project:
npm run buildUsage
Starting the Server
npm startThe server runs on stdio, making it compatible with MCP clients.
Available Tools
1. List Emails
{
"name": "list-emails",
"arguments": {
"maxResults": 10,
"labelIds": ["INBOX"],
"query": "is:unread"
}
}2. Read Email
{
"name": "read-email",
"arguments": {
"id": "message-id",
"format": "full"
}
}3. Send Email
{
"name": "send-email",
"arguments": {
"to": "recipient@example.com",
"subject": "Hello",
"body": "Message content",
"attachments": ["/path/to/file.pdf"]
}
}4. Search Emails
{
"name": "search-emails",
"arguments": {
"query": "from:sender@example.com",
"maxResults": 5
}
}5. Manage Labels
{
"name": "manage-labels",
"arguments": {
"action": "create",
"name": "MyNewLabel"
}
}Configuration
Environment Variables
GMAIL_MCP_DEBUG: Enable debug logging (default: false)GMAIL_MCP_TOKEN_PATH: Custom path for token storageGMAIL_MCP_KEYS_PATH: Custom path for OAuth keys file
OAuth Credentials
The OAuth credentials file (gcp-oauth.keys.json) should be structured as:
{
"installed": {
"client_id": "your-client-id",
"client_secret": "your-client-secret",
"redirect_uris": ["http://localhost:3000/oauth2callback"]
}
}Development
Running Tests
# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Run in watch mode
npm run test:watchBuilding
# Build once
npm run build
# Build in watch mode
npm run devError Handling
The server handles various error scenarios:
Authentication failures
Rate limiting
Invalid parameters
Network issues
Permission errors
Errors are returned in a standardized format with appropriate HTTP status codes.
Contributing
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Google Gmail API
Model Context Protocol
Contributors and maintainers
Support
For support, please open an issue in the GitHub repository or contact the maintainers.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.