Garfield 18b838c268 feat: ChatGPT Custom GPT support in chat bot + sqcp SMTP routing fix
- chat.ts: system prompt now includes step-by-step ChatGPT Custom GPT
  setup (openapi.json import + OAuth), Claude/Cursor/Windsurf config,
  and mortgage broker guidance — bot no longer incorrectly says ChatGPT
  is unsupported
- smtp.ts: all sqcp_* accounts now route to mail.squaremcp.com (SQCP_SMTP_HOST)
  instead of the fetcherpay server
- tools.ts: ACCOUNT_PARAM description now lists all 14 mailboxes including
  the 7 squaremcp.com accounts so Claude picks the right one without guessing
- package.json: postinstall hook runs imapflow patch script after npm install
- hermes-k8s.yaml: updated image digest to current production build

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 18:53:42 -04:00

Hermes MCP — SquareMCP Gateway

Hermes is the MCP server powering SquareMCP. It exposes 51 tools across 11 platforms (email, Obsidian, WhatsApp, LinkedIn, TikTok, Facebook, Instagram, Twitter, Telegram, Discord, Snapchat) over Streamable HTTP, with per-user authentication, OAuth 2.0, and multi-tenant credential isolation.

Production endpoint:

https://hermes.squaremcp.com/mcp

Quick connect

claude.ai

  1. Settings → MCP Servers → Add → enter https://hermes.squaremcp.com
  2. Complete the OAuth popup (login with your SquareMCP credentials)
  3. Click "Connect MCP client"

Claude Desktop

// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "squaremcp": {
      "type": "http",
      "url": "https://hermes.squaremcp.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}

Codex CLI

# ~/.codex/config.toml
[mcp_servers.squaremcp]
url = "https://hermes.squaremcp.com/mcp"
headers = { Authorization = "Bearer YOUR_TOKEN" }

opencode

{
  "mcp": {
    "squaremcp": {
      "type": "remote",
      "url": "https://hermes.squaremcp.com/mcp",
      "headers": { "x-api-key": "YOUR_API_KEY" }
    }
  }
}

Get your token from the SquareMCP dashboard → Connect MCP Client.


Architecture

See ARCHITECTURE.md for the full architecture with diagrams.

                     nginx ingress (TLS)
                           │
              ┌────────────┼────────────┐
              │            │            │
        hermes-mcp    squaremcp-app  squaremcp-docs
        :3456          :8080          :80
        (MCP API)      (SaaS UI)     (Docs)
              │
    ┌─────────┼─────────┐
    │         │         │
  MySQL 8   Redis 7  /vaults
  (creds +  (cache +  (Obsidian)
  billing)   DLQ)

Stack: TypeScript / Node.js, Express, MySQL 8, Redis 7, MicroK8s, Docker Auth: JWT session cookies + OAuth 2.0 PKCE + API key Platform clients: 11 platforms, 51 MCP tools


Platforms

Platform Tools
Email (IMAP/SMTP) search, read, send, draft, folders
Obsidian search, read, append, update, sync
WhatsApp Business send, template, list templates
LinkedIn profile, post, search connections, message, video
TikTok profile, creator info, upload video, status
Facebook page, posts, post, photo, video
Instagram profile, media, post, reel
Twitter/X profile, tweets, search, tweet, video
Telegram me, send, photo, updates, chat
Discord me, guilds, channels, send, messages
Snapchat me, ad accounts, create snap

Authentication

Hermes accepts (in priority order):

  1. x-api-key header — global superadmin or per-customer key
  2. Authorization: Bearer <token> — JWT or OAuth access token
  3. Cookie: session=<JWT> — web session (set by /api/auth/login or /login)

Transports

Transport URL
Streamable HTTP (preferred) https://hermes.squaremcp.com/mcp
Legacy SSE https://hermes.squaremcp.com/sse

Client setup guides


Local development

npm install
cp .env.example .env   # fill in credentials
npm run dev
curl http://localhost:3456/health

Server runs on port 3456 by default.


Deployment

See DEPLOY.md for the full deployment runbook.

The short version:

npm run build
docker build -t localhost:32000/hermes-mcp:latest .
docker push localhost:32000/hermes-mcp:latest
# update sha256 digest in hermes-k8s.yaml
microk8s kubectl apply -f hermes-k8s.yaml
Description
Hermes MCP / SquareMCP monorepo
Readme 22 MiB
Languages
TypeScript 75.8%
JavaScript 9%
HTML 7.5%
Python 3.9%
CSS 2.9%
Other 0.9%