Gmail MCP Server (Powered by LIAM)
LIAM Gmail MCP
Provided by LIAM (doitliam.com). This MCP server gives Gmail access using LIAM OAuth and Dedalus DAuth.
Hosted on Dedalus: sintem/gmail-mcp
Auth Flow (DAuth + LIAM OAuth)
Client connects to the MCP server on Dedalus.
Dedalus DAuth handles MCP authorization; if the Gmail connection is not yet authorized, the client receives a
connect_urlto start OAuth.User completes LIAM OAuth (and Google consent) in the browser.
Dedalus AS stores the LIAM OAuth access token and issues a JWT containing connection handles (
ddls:connections).The MCP server uses Dedalus dispatch + the connection handle to call the Gmail API.
Tools
Tool | Description |
| Get Gmail profile (email, message/thread counts) |
| List messages with optional Gmail query |
| Get a specific message by ID |
| Send an email |
| Move a message to trash |
| Remove a message from trash |
| Add/remove labels on a message |
| List email threads |
| Get a specific thread by ID |
| Move a thread to trash |
| Remove a thread from trash |
| Add/remove labels on a thread |
| List all labels |
| Get label details by ID |
| Create a new label |
| Delete a user label |
| List drafts |
| Get a draft by ID |
| Create a draft |
| Send a draft |
| Delete a draft |
| Get a message attachment |
Smoke tools (debug):
Tool | Description |
| Echo input (sanity check) |
| Server info (sanity check) |
Gmail Query Syntax
from:email@example.com # From sender
to:email@example.com # To recipient
subject:keyword # Subject contains
is:unread # Unread only
is:starred # Starred only
has:attachment # Has attachments
after:2024/01/01 # After date
before:2024/12/31 # Before date
in:inbox # In inboxCombine: from:boss@company.com is:unread has:attachment
Setup
1. Environment
Create .env:
# Required
DEDALUS_API_KEY=dsk-live-your-key
# Optional (defaults shown)
DEDALUS_API_URL=https://api.dedaluslabs.ai
DEDALUS_AS_URL=https://as.dedaluslabs.ai
# MCP server slug (LIAM hosted or your own)
MCP_SERVER=sintem/gmail-mcp
# Gmail API base URL (optional override)
GMAIL_API_URL=https://gmail.googleapis.com
# Optional: direct LIAM OAuth token for local testing
LIAM_ACCESS_TOKEN=liam-jwt-here2. Install
cd gmail-liam-mcp
uv sync --all-extras3. Deploy to Dedalus
dedalus deploy4. Test locally
OAuth (recommended, uses DAuth + LIAM OAuth):
python src/_client.pyManual LIAM token (advanced/testing only):
# Interactive mode
python run.py
# Single query
python run.py "show my unread emails"Project Structure
gmail-liam-mcp/
├── run.py # Local test client with LIAM token
├── src/
│ ├── main.py # MCP server (Dedalus entrypoint)
│ ├── gmail.py # Tools (modular version)
│ ├── server.py # Server config
│ └── _client.py # OAuth/DAuth client example
├── pyproject.toml
├── .env.example
└── README.mdLicense
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sintem/gmail-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server