BedVibe Mail Bridge
Allows an AI assistant to read, search, and analyze Gmail messages, draft replies, and propose cleanup plans, but all destructive actions (send, delete, unsubscribe) require human confirmation in a local desktop app.
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., "@BedVibe Mail Bridgesearch for unread emails from Amazon last week"
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.
BedVibe Mail Bridge
A local Windows desktop app + MCP bridge that lets an AI client (Claude Code / Codex) help with your Gmail — where nothing is sent, deleted, or unsubscribed without a human button-press.
Status: v0.1.0 — local developer preview / portfolio release. Gmail only. Run-from-source. Not a consumer installer, and not clone-and-connect — see Running it yourself below.

What it is
An AI assistant can search and read your mail, propose a cleanup plan, draft replies, and map your subscriptions — but the AI can only prepare. Every action that sends, deletes, or leaves your machine happens only when you click it in the desktop app.
Local-first. No backend, no cloud, no tunnels. The AI talks to a local stdio MCP (no port).
Read-first & human-gated. The MCP can read and queue; it cannot Trash, Send, or unsubscribe — those live behind a GUI confirmation and are structurally unreachable from the AI side.
Private by construction. OAuth via Google's own consent (PKCE); refresh token & desktop secret encrypted with Windows DPAPI in
%APPDATA%; telemetry stores domain hashes only.No production credential in this repo (see Privacy below).
Related MCP server: Gmail MCP Server
Features
Read: recent inbox, Gmail-query search, read message, list threads.
Cleanup: AI builds a plan only → you review in the GUI → confirm Move to Trash (reversible; permanent delete is implemented nowhere). Never-trash rules + an optional "unread promos >90d" policy.
Replies: AI drafts → you verify recipient/subject/body → press Send.
Subscription Cleanup: header-based detection + RFC 8058 one-click unsubscribe, GUI-confirmed, no body links/cookies/redirects.

MCP tools for Claude Code / Codex:
list_recent_emails,search_emails,read_email,list_threads,create_cleanup_plan,view_cleanup_plan,request_trash_selected_items,draft_reply,request_send_draft,list_connections_status.
Safety model (the point)
The destructive code (core/execute.py for Trash/Send, core/unsubscribe.py for one-click) is
imported only by the GUI, never by the MCP bridge. A prompt-injected email can at most create
a queued request you will see and can reject. Full design: ARCHITECTURE.md ·
SECURITY.md.
Running it yourself (developer preview)
Cloning this repo does not grant Gmail access. The repo ships the public BedVibe Client ID but not the client secret (it's DPAPI-encrypted on the maintainer's machine, gitignored). To run it, use development mode with your own free Google client:
Google Cloud Console → new project → enable Gmail API.
OAuth consent screen → External, Testing → add your Gmail as a Test user.
Credentials → OAuth client ID → Desktop app → copy the Client ID.
copy app_config.example.json app_config.json, paste your Client ID (leave secret empty for PKCE).python -m venv .venv ; .venv\Scripts\activate pip install -r requirements.txt python selftest.py # structural check python run_app.py # Connections → Connect Gmail (read)
Then AI Client Connections → Connect Claude Code / Codex (shows the exact config change + backs it up) and ask your AI to analyze clutter or draft a reply. Full walkthrough: DEMO.md.
Provider status
Provider | Status |
Gmail | Active |
Zoho Mail · Outlook / Microsoft 365 · Yahoo Mail · Google Drive | Planned (inactive cards) |
Project layout
core/ shared engine (oauth, gmail, execute, unsubscribe, safety, db, providers, …)
mcp_server/ stdio MCP bridge (10 read/prepare/queue tools)
gui/ PySide6 desktop app (9 screens)
docs/images/ screenshots
*.md README · ARCHITECTURE · SECURITY · DEMO · CHANGELOG · RELEASE_READINESS · DISTRIBUTION_OAUTHDocumentation
ARCHITECTURE · SECURITY · DEMO · DISTRIBUTION_OAUTH · RELEASE_READINESS · CHANGELOG
Privacy
No secret, token, DPAPI file, Gmail database, log, or real message content is committed — application
data lives in %APPDATA%\BedVibeMailBridge\ and is gitignored. The only credential in source is the
public desktop Client ID (public by design for installed apps).
License
Proprietary / source-available — see LICENSE. Copyright (c) 2026 Panagiotis Gkilis / BedVibe Studios. All rights reserved. Published for portfolio evaluation and technical review only; no copying, modification, redistribution, hosting, training, or commercial use without prior written permission.
Maintainer / contact: Panos Gkilis · BedVibe Studios · bedvibe@bedvibe.studio
v0.1.0 developer preview. A separate packaged consumer build (Google verification + installer) is future work, not this repo.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/Mormolykos/bedvibe-mail-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server