Gmail MCP Server
by christo707
This project is a Spring Boot MCP server for Gmail. It provides tools for interacting with Gmail through the `GMailer` class and includes a client, `ClientStdio`, to test the MCP server functionality.
Last updated: N/A
Gmail MCP Server
This project is a Spring Boot MCP (Model Context Protocol) server for Gmail. It provides various tools for interacting with Gmail through the GMailer
class. Additionally, it includes a client, ClientStdio
, to test the MCP server functionality.
Features
-
GMailer Tools:
trashEmail
: Moves an email to the trash given its ID.markEmailAsRead
: Marks an email as read given its ID.sendEmail
: Sends an email to a specified recipient.getUnreadMessages
: Retrieves unread messages.readEmail
: Reads an email given its ID.
-
ClientStdio: A client to test the MCP server functionality using standard I/O.
Prerequisites
- Java 17 or higher
- Maven
- Gmail API credentials
Setup
-
Clone the repository:
git clone <repository-url> cd <repository-directory>
-
Configure Gmail API credentials:
- Create a new Google Cloud project
- Enable the Gmail API
- Configure an OAuth consent screen
- Select "external". However, we will not publish the app.
- Add your personal email address as a "Test user".
- Add OAuth scope
https://www.googleapis.com/auth/gmail/modify
- Create an OAuth Client ID for application type "Desktop App"
- Download the JSON file of your client's OAuth keys
- Rename the key file to
credentials.json
and save it to your local machine in a secure location. Take note of the location. - Place your
credentials.json
file in thesrc/main/resources
directory.
-
Build the project:
mvn clean install
Running the MCP Server
To start the MCP server, run the following command:
mvn spring-boot:run
Testing with ClientStdio
The ClientStdio
class can be used to test the MCP server functionality. It interacts with the server using standard I/O.
Build the project first using the command:
mvn clean install -DskipTests
Then run the ClientStdio
class.
License
This project is licensed under the MIT License. See the LICENSE
file for details.