Skip to main content
Glama
ajaysingh16601

communication-mcp-server

📡 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

health_check

Returns server status, timestamp, version, and uptime

None

list_providers

Lists configured communication providers

None

send_email

Sends an email via SMTP

to, subject, text, html?


🚀 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

NODE_ENV

Environment mode

development

LOG_LEVEL

Pino log level (debug, info, warn, error)

info

PORT

HTTP Server port

3000

API_KEY

Optional token to secure the MCP endpoints

(None)

CORS_ORIGIN

CORS allowed origins

*

SMTP_HOST

SMTP server hostname

smtp.gmail.com

SMTP_PORT

SMTP server port

587

SMTP_SECURE

Use TLS (true for port 465)

false

SMTP_USER

SMTP authentication username

SMTP_PASS

SMTP authentication password (Gmail App Password)

SMTP_FROM

Default sender address


🏃 Running Locally

Development Mode (with hot reload)

npm run dev

Production 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:

  1. Open Cursor SettingsFeaturesMCP.

  2. Click + Add New MCP Server.

  3. Fill in the options:

    • Name: communication-remote

    • Type: SSE

    • URL: 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.

  1. Push your code to a Git repository (GitHub/GitLab).

  2. Go to your Render Dashboard.

  3. Click New +Blueprint.

  4. Select your connected repository.

  5. Configure the environment variables (SMTP_HOST, SMTP_USER, SMTP_PASS, API_KEY, etc.) in the Render UI.

  6. 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

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    -
    quality
    D
    maintenance
    This 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 updated
    49
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    A production-ready MCP server that empowers AI agents to securely send emails via SMTP, supporting plain text, HTML, and attachments.
    Last updated
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    A 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 updated
    43
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    MCP server that enables Claude Code agents to send and read emails via SMTP/IMAP with per-agent credential isolation and audit logging.
    Last updated
    MIT

View all related MCP servers

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.

View all MCP Connectors

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/ajaysingh16601/communication-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server