Google Workspace集成
STDIOGmail和日历API交互工具服务器
Gmail和日历API交互工具服务器
A Model Context Protocol (MCP) server that provides tools for interacting with Gmail and Calendar APIs. This server enables you to manage your emails and calendar events programmatically through the MCP interface.
list_emails
: List recent emails from your inbox with optional filteringsearch_emails
: Advanced email search with Gmail query syntaxsend_email
: Send new emails with support for CC and BCCmodify_email
: Modify email labels (archive, trash, mark read/unread)list_events
: List upcoming calendar events with date range filteringcreate_event
: Create new calendar events with attendeesupdate_event
: Update existing calendar eventsdelete_event
: Delete calendar eventshttp://localhost:4100/code
Clone and Install:
git clone https://github.com/epaproditus/google-workspace-mcp-server.git cd google-workspace-mcp-server npm install
Create OAuth Credentials:
Create a credentials.json
file in the root directory:
{ "web": { "client_id": "YOUR_CLIENT_ID", "client_secret": "YOUR_CLIENT_SECRET", "redirect_uris": ["http://localhost:4100/code"], "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token" } }
Get Refresh Token:
node get-refresh-token.js
This will:
https://www.googleapis.com/auth/gmail.modify
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/gmail.send
token.json
Configure MCP Settings: Add the server configuration to your MCP settings file:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
~/Library/Application Support/Claude/claude_desktop_config.json
Add this to the mcpServers
object:
{ "mcpServers": { "google-workspace": { "command": "node", "args": ["/path/to/google-workspace-server/build/index.js"], "env": { "GOOGLE_CLIENT_ID": "your_client_id", "GOOGLE_CLIENT_SECRET": "your_client_secret", "GOOGLE_REFRESH_TOKEN": "your_refresh_token" } } } }
Build and Run:
npm run build
List Recent Emails:
{ "maxResults": 5, "query": "is:unread" }
Search Emails:
{ "query": "from:[email protected] has:attachment", "maxResults": 10 }
Send Email:
{ "to": "[email protected]", "subject": "Hello", "body": "Message content", "cc": "[email protected]", "bcc": "[email protected]" }
Modify Email:
{ "id": "message_id", "addLabels": ["UNREAD"], "removeLabels": ["INBOX"] }
List Events:
{ "maxResults": 10, "timeMin": "2024-01-01T00:00:00Z", "timeMax": "2024-12-31T23:59:59Z" }
Create Event:
{ "summary": "Team Meeting", "location": "Conference Room", "description": "Weekly sync-up", "start": "2024-01-24T10:00:00Z", "end": "2024-01-24T11:00:00Z", "attendees": ["[email protected]"] }
Update Event:
{ "eventId": "event_id", "summary": "Updated Meeting Title", "location": "Virtual", "start": "2024-01-24T11:00:00Z", "end": "2024-01-24T12:00:00Z" }
Delete Event:
{ "eventId": "event_id" }
Authentication Issues:
API Errors:
This project is licensed under the MIT License.