MCP Remote Server
Integration with Gmail, providing tools for email operations such as sending, reading, and managing emails.
Integration with OpenAI, enabling access to AI models for tasks like content generation and analysis.
Integration with Salesforce using JWT-based authentication, offering tools for CRM operations such as managing contacts, accounts, and opportunities.
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., "@MCP Remote Serversummarize my latest 5 emails from Gmail"
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.
MCP Remote Server — HTTP-Streamable / Resumable (FastMCP)
A production-style remote MCP (Model Context Protocol) server built with FastMCP, exposing tools over a multi-user, HTTP-streamable (resumable) transport and deployed to the cloud via CI/CD. It integrates Gmail, Google Calendar, OpenAI, Salesforce, and a ChromaDB RAG layer behind a clean service layer, with JWT-based Salesforce auth.
Part of the SunnyLab build series — the step that took a local, single-user MCP server to a resumable, multi-user remote server on cloud. That transition is the whole point of this repo: identity moves from "whoever runs the process" to a parameter on the connection, credentials move from files on disk to secrets injected at runtime, and a dropped connection no longer loses the session. Sanitized public showcase: all secrets, keys, and infra identifiers were removed; configure your own
.env/ CI secrets.

SSE → Streamable HTTP. The transport was migrated off SSE: SSE holds one long-lived unidirectional stream, so a dropped connection loses the session and every client needs its own. Streamable HTTP (JSON-RPC 2.0) survives reconnects and serves many users on one endpoint — which is what made the multi-user story possible at all. The
MCP_MODE=sseenv value is a legacy name for "remote mode"; the wire protocol underneath is Streamable HTTP.
What it demonstrates
Remote MCP over HTTP-streamable, resumable transport — multi-user, not local stdio; clients reconnect without losing session state
Per-request user identity —
?user_id=…&client_type=…on the MCP URL selects that user's Gmail mailbox and Salesforce identity (admin/sales/finance), each initialized independentlyRuntime secret materialization — Base64 credentials and PEM keys arrive as env vars and are written to disk at startup; nothing sensitive is ever committed
Enterprise integrations — Gmail, Google Calendar, OpenAI, Salesforce (JWT Bearer), ChromaDB for RAG-backed helpdesk answers
Built-in observability — logging middleware over every tool call, a log-receiver API on a second port, and a lightweight dashboard
Cloud-native delivery — Docker, Cloud Build, GitHub Actions (all secrets via
${{ secrets.* }}; project/VM are placeholders), plus a log-retention cron
Related MCP server: gmail-mcp
Architecture
MCP clients (multi-user)
Claude Desktop · Cursor · ADK web · LangGraph
│ HTTP-streamable / resumable MCP
│ /mcp?user_id=admin&client_type=…
▼
FastMCP remote server (:8000) ── LoggingMiddleware ──► log API (:8001) ──► dashboard
├─ per-user config resolution (Gmail token · SFDC identity)
├─ tools: gmail · calendar · openai · salesforce · helpdesk(RAG) · logging
└─ service layer ──► Gmail · Calendar · OpenAI · Salesforce (JWT) · ChromaDB
│
▼
deployed on a cloud VM (Docker), CI/CD via GitHub ActionsSee mcp_server/ for tools and services.
Drawn against the concrete tool groups and the enterprise APIs each one reaches:

Tech stack
Python · MCP / FastMCP · HTTP-streamable resumable transport · Gmail & Google Calendar · OpenAI · Salesforce (JWT) · ChromaDB (RAG) · Docker · Google Cloud Build · GitHub Actions
Project structure
mcp_server/
server.py # FastMCP entrypoint (:8000, log API :8001)
config.py # env config, multi-user map, runtime credential materialization
tools/ # gmail · calendar · openai · salesforce · helpdesk · logging
services/ # integration clients + service_manager
logging_middleware.py, log_receiver.py
generate_token.py # Gmail OAuth token helper (no secrets committed)
retention_cron.py # log retention job
dashboard.py # lightweight dashboard
assets/ # architecture diagram
tests/ # per-service smoke tests + server test
.github/workflows/ # CI/CD (secrets via ${{ secrets.* }}, placeholders for project/VM)
Dockerfile · docker-compose.yml · cloudbuild.yaml
.env.example # required env vars (no real keys)Setup
cp .env.example .env # OPENAI_API_KEY, Gmail creds/tokens, Salesforce JWT, ChromaDB paths
pip install -r requirements.txt
# remote (HTTP-streamable) mode — MCP on :8000, log API on :8001
MCP_MODE=sse python mcp_server/server.pySet MCP_MODE=stdio to run it locally for a desktop MCP client instead.
Verify the integrations before connecting a client:
python -m tests.test_mcp_serverOr with Docker:
docker compose up --build # publishes 8000 (MCP); the log API stays internal to the containerConnecting a client
Point your MCP client at the server and identify the user on the URL:
http://<host>:8000/mcp?user_id=admin&client_type=claudeSupported user_id values are admin, sales, and finance; each resolves to its own Gmail token and Salesforce identity. First-time Gmail authorization is done with generate_token.py, and the resulting token is supplied as a Base64 env var — never as a committed file.
The SunnyLab build series
# | Repo | What it adds |
1 | Local MCP server (stdio), single user — Gmail · OpenAI · Salesforce as tools | |
2 | ai_mcp_fastmcp_remote-public ← you are here | Remote, HTTP-streamable resumable transport — multi-user, deployed to cloud |
3 | Orchestrator + 6 domain agents over the same tool layer | |
4 | Same capabilities, orchestrated by an explicit LangGraph state machine | |
5 | Google ADK (Gemini) web/mobile front door onto the MCP server | |
6 | Flagship — ontology-driven policy engine, order-to-cash end to end |
Note
Public portfolio showcase. Credential files (deploy keys, the Salesforce private key, OAuth tokens), .env, and infrastructure identifiers were removed before publishing. The code loads all secrets from environment variables or mounted files at runtime — none are committed.
License
MIT — free to use, modify, and distribute with attribution. Provided as is, without warranty.
The third-party services it integrates with (OpenAI, Google, Salesforce) are governed by their own terms; the diagrams and screenshots under assets/ are the author's own work.
SunnyLab — building agentic AI in public · Medium @sunnylabtv · YouTube @sunnylabtv
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.
Related MCP Servers
- Flicense-qualityDmaintenanceEnables interaction with SQLite databases, filesystem, AWS IAM, and Gmail through a master MCP server with a Streamlit UI optimized for Claude.1
- Flicense-qualityCmaintenanceEnables interacting with multiple Gmail accounts through a single MCP server, supporting search, labels, drafts, and thread management with per-account OAuth.
- Flicense-qualityBmaintenanceEnables multi-user access to Google Workspace services (Gmail, Calendar, Docs, Sheets, Slides, Drive) via remote MCP with OAuth 2.1 authentication.
Related MCP Connectors
Remote MCP server for The Colony — a social network for AI agents (posts, DMs, search, marketplace).
Remote MCP server for RunComfy Serverless API (ComfyUI): deployments and async inference.
Remote MCP for Gemini upgrade evals, prompt regressions, output diffs, and eval receipts.
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/sunnylabtv-crypto/ai_mcp_fastmcp_remote-public'
If you have feedback or need assistance with the MCP directory API, please join our Discord server