communication-mcp-server
Allows sending emails via Gmail's SMTP server, using an App Password for authentication.
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., "@communication-mcp-serversend email to alice@test.com saying 'Hi there'"
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.
📡 Remote Communication MCP Server
A production-ready Model Context Protocol (MCP) server built with Node.js and TypeScript that exposes email communication tools over HTTP/SSE Transport (using StreamableHTTPServerTransport).
This remote implementation allows AI clients like Claude Desktop, Cursor, or MCP Inspector to connect to a publicly hosted instance (e.g., deployed on Render) rather than running the process locally.
📖 What is MCP?
The Model Context Protocol (MCP) is an open standard that enables AI applications to connect to external tools and data sources. While local MCP servers run as child processes over stdio, remote MCP servers expose a web server communicating over JSON-RPC streamed via HTTP Server-Sent Events (SSE).
┌──────────────────┐ HTTP / SSE ┌─────────────────────┐
│ AI Client │ ◄──────────────────────────────► │ Remote MCP Server │
│ (Claude/Cursor/ │ JSON-RPC over POST │ (This Project) │
│ MCP Inspector) │ & Event Stream (GET) │ │
└──────────────────┘ └─────────────────────┘Related MCP server: email-mcp
🏗️ Architecture
┌────────────────────────────────────────────────────────────────────────┐
│ AI Client │
│ (Claude Desktop / Cursor / Inspector) │
└───────────────────┬───────────────────────────────▲────────────────────┘
│ │
│ HTTP POST /mcp │ GET /mcp (SSE Stream)
▼ │
┌───────────────────────────────────────────────────┴────────────────────┐
│ Remote MCP Server (Express / Node.js) │
│ │
│ ┌───────────────────────────────────────────────────────────────┐ │
│ │ Active Sessions Store │ │
│ │ Maps: Session ID ──► MCP Server Session │ │
│ │ │ │
│ │ ┌───────────────────────────────────────────────────────────┐ │ │
│ │ │ MCP Server Session │ │ │
│ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │
│ │ │ │ Streamable Transport │ │ │ │
│ │ │ └──────────────────────────┬───────────────────────────┘ │ │ │
│ │ │ ▼ │ │ │
│ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │
│ │ │ │ McpServer │ │ │ │
│ │ │ │ ┌──────────────┐ ┌────────────────┐ ┌──────────────┐ │ │ │ │
│ │ │ │ │ health_check │ │ list_providers │ │ send_email │ │ │ │ │
│ │ │ │ └──────────────┘ └────────────────┘ └───────┬──────┘ │ │ │ │
│ │ │ └─────────────────────────────────────────────┼────────┘ │ │ │
│ │ └────────────────────────────────────────────────┼──────────┘ │ │
│ └──────────────────────────────────────────────────┼────────────┘ │
│ │ │
│ ┌────────────▼─────────────┐ │
│ │ EmailService │ │
│ │ (Nodemailer) │ │
│ └────────────┬─────────────┘ │
└──────────────────────────────────────────────────────┼─────────────────┘
│
▼
┌──────────────────────────┐
│ SMTP Server │
│ (Gmail, Outlook, etc.) │
└──────────────────────────┘📁 Project Structure
communication-mcp-server/
├── src/
│ ├── server.ts # Entry point — Express + Streamable HTTP Server
│ ├── config/
│ │ └── index.ts # Environment configuration loader
│ ├── tools/
│ │ ├── index.ts # Tool registry (registers all tools)
│ │ ├── health.tool.ts # health_check tool
│ │ ├── providers.tool.ts # list_providers tool
│ │ └── email.tool.ts # send_email tool
│ ├── services/
│ │ └── email.service.ts # Email delivery via Nodemailer
│ ├── utils/
│ │ ├── logger.ts # Pino logger (writes to stderr)
│ │ └── validators.ts # Email validation utilities
│ └── types/
│ └── index.ts # TypeScript type definitions
├── .env.example # Environment variable template
├── .gitignore # Git ignore rules
├── package.json # Dependencies & scripts
├── render.yaml # Render.com deployment blueprint
├── tsconfig.json # TypeScript configuration
└── README.md # This file🛠️ Available Endpoints & Tools
HTTP Endpoints
GET /health- Public endpoint returning server configuration and status.POST /mcp- MCP JSON-RPC message endpoint.GET /mcp- MCP Server-Sent Events (SSE) stream endpoint.DELETE /mcp- Terminates the MCP session.
Registered MCP Tools
Tool | Description | Parameters |
| Returns server status, timestamp, version, and uptime | None |
| Lists configured communication providers | None |
| Sends an email via SMTP |
|
🚀 Installation
Prerequisites
Node.js >= 18.0.0
npm >= 9.0.0
An SMTP email account (e.g., Gmail with App Password)
Setup
# 1. Clone the repository
git clone https://github.com/your-username/communication-mcp-server.git
cd communication-mcp-server
# 2. Install dependencies
npm install
# 3. Configure environment variables
cp .env.example .env
# Edit .env with your SMTP credentials, PORT, and optional API_KEY
# 4. Build the project
npm run build⚙️ Configuration
Copy .env.example to .env and fill in your values:
Variable | Description | Default / Example |
| Environment mode |
|
| Pino log level ( |
|
| HTTP Server port |
|
| Optional token to secure the MCP endpoints | (None) |
| CORS allowed origins |
|
| SMTP server hostname |
|
| SMTP server port |
|
| Use TLS ( |
|
| SMTP authentication username | — |
| SMTP authentication password (Gmail App Password) | — |
| Default sender address | — |
🏃 Running Locally
Development Mode (with hot reload)
npm run devProduction Mode
npm run build
npm start🔌 Connecting to the Server
Remote HTTP MCP servers require a client that supports HTTP/SSE transport.
1. Connecting via Claude Desktop
Claude Desktop natively supports remote MCP servers. Add the server under the mcpServers object using the sse type:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"communication-remote": {
"url": "https://your-app-name.onrender.com/mcp",
"headers": {
"Authorization": "Bearer your-optional-api-key"
}
}
}
}Note: Replace https://your-app-name.onrender.com/mcp with your actual local or deployed URL (e.g. http://localhost:3000/mcp for local testing).
2. Connecting via Cursor
Cursor supports connecting to remote MCP servers using the SSE server type:
Open Cursor Settings → Features → MCP.
Click + Add New MCP Server.
Fill in the options:
Name:
communication-remoteType:
SSEURL:
https://your-app-name.onrender.com/mcp
If you secured your server with an API_KEY, make sure you configure your client or URL to pass the authorization header or use URL query params like https://your-app-name.onrender.com/mcp?api_key=your-key.
3. Connecting via MCP Inspector
Verify your remote server's functionality visually using the MCP Inspector:
npx @modelcontextprotocol/inspector http://localhost:3000/mcp(Add headers if API key authentication is enabled)
🚢 Deployment to Render
The repository contains a render.yaml blueprint to quickly deploy this project as a Web Service on Render.
Push your code to a Git repository (GitHub/GitLab).
Go to your Render Dashboard.
Click New + → Blueprint.
Select your connected repository.
Configure the environment variables (
SMTP_HOST,SMTP_USER,SMTP_PASS,API_KEY, etc.) in the Render UI.Click Deploy.
Render will build and deploy the application, setting up an HTTPS endpoint automatically (e.g. https://communication-mcp-server.onrender.com).
🔮 Future Improvements
SMS Integration — Add SMS support via Twilio or other professional SMS API gateway.
Rate Limiting — Add Express rate limiter middleware to prevent spam/abuse on the public route.
Persistent Session Stores — Move active sessions from in-memory map to Redis to allow multi-instance auto-scaling.
JWT Authentication — Implement OAuth2/JWT-based authorization for multi-tenant users.
Message History — Database integration to track email history and delivery logs.
📄 License
MIT
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
- Alicense-qualityDmaintenanceThis MCP server provides email sending functionality using Protonmail's SMTP service. It allows both Claude Desktop and Cline VSCode extension to send emails on your behalf using your Protonmail credentials.Last updated49MIT
- Alicense-qualityDmaintenanceA production-ready MCP server that empowers AI agents to securely send emails via SMTP, supporting plain text, HTML, and attachments.Last updatedMIT
- Alicense-qualityDmaintenanceA Model Context Protocol (MCP) server that enables Claude Desktop to manage emails via SMTP and IMAP. Send emails, fetch unread messages, and create draft replies directly from conversations.Last updated43MIT

fagents-mcpofficial
Alicense-qualityBmaintenanceMCP server that enables Claude Code agents to send and read emails via SMTP/IMAP with per-agent credential isolation and audit logging.Last updatedMIT
Related MCP Connectors
Hosted email MCP for AI agents with inboxes, send/receive, memory, recovery, and credits.
Shipmail MCP server for AI agent custom-domain email inboxes with REST API and webhooks.
Phone, SMS & email for AI agents — one remote MCP endpoint, OAuth login, zero install.
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/ajaysingh16601/communication-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server