WhatsApp Business API (Meta Cloud API)
- New client: src/clients/whatsapp.ts
- Tools: whatsapp_send_message, whatsapp_send_template, whatsapp_list_templates
- REST endpoints: POST /api/whatsapp/send, POST /api/whatsapp/template, GET /api/whatsapp/templates
- Multi-account env var pattern: WHATSAPP_{ACCOUNT}_*
LinkedIn API (OpenID Connect)
- New client: src/clients/linkedin.ts
- Tools: linkedin_get_profile, linkedin_create_post, linkedin_search_connections, linkedin_send_message
- REST endpoints: GET /api/linkedin/profile, POST /api/linkedin/post, POST /api/linkedin/search-connections, POST /api/linkedin/message
- Multi-account env var pattern: LINKEDIN_{ACCOUNT}_*
- Uses /v2/userinfo (OpenID Connect) for profile reads
Domain migration
- hermes.fetcherpay.com -> hermes.squaremcp.com
- Updated K8s ingress, TLS cert, SERVER_URL env var
- Updated OPENCODE.md and opencode.json references
SquareMCP site
- Added logo assets (SVG, LinkedIn variants)
- Added terms.html
- Updated Dockerfile, nginx config, styles, index, privacy pages
Docs
- Added OPENCODE.md for opencode AI integration setup
- Updated .env.example with WhatsApp and LinkedIn credentials
- Added opencode.json to .gitignore (contains live API key)
Total tools: 19 (email 6, obsidian 5, whatsapp 4, linkedin 4)
2.5 KiB
2.5 KiB
Connecting hermes-mcp to opencode AI
The server is deployed at https://hermes.squaremcp.com with a Streamable HTTP MCP endpoint (MCP 1.x).
Quick setup
An opencode.json is already in this repo with the connection pre-configured. Open opencode in this directory and hermes-mcp will be available automatically.
Manual configuration
Project-level (opencode.json in project root)
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"hermes": {
"type": "remote",
"url": "https://hermes.squaremcp.com/mcp",
"headers": {
"x-api-key": "YOUR_MCP_API_KEY"
}
}
}
}
Global (~/.config/opencode/config.json)
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"hermes": {
"type": "remote",
"url": "https://hermes.squaremcp.com/mcp",
"headers": {
"x-api-key": "YOUR_MCP_API_KEY"
}
}
}
}
Replace YOUR_MCP_API_KEY with the value of MCP_API_KEY from your .env or Kubernetes secret.
Connection details
| Field | Value |
|---|---|
| Transport | Streamable HTTP (MCP 1.x) |
| Endpoint | https://hermes.squaremcp.com/mcp |
| Auth | x-api-key header (or ?key= query param, or Authorization: Bearer) |
| Legacy SSE | https://hermes.squaremcp.com/sse |
Fallback: SSE transport
If opencode requires SSE transport instead of Streamable HTTP:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"hermes": {
"type": "sse",
"url": "https://hermes.squaremcp.com/sse",
"headers": {
"x-api-key": "YOUR_MCP_API_KEY"
}
}
}
}
Available tools
| Tool | Description |
|---|---|
get_profile |
Get email address for an account |
search_messages |
Search INBOX by keyword / sender / subject |
read_message |
Read full message body by UID |
list_folders |
List all mailbox folders |
create_draft |
Save a draft to the Drafts folder |
send_email |
Send an email |
whatsapp_send_message |
Send a WhatsApp message |
whatsapp_send_template |
Send an approved WhatsApp template message |
whatsapp_get_message_status |
Check WhatsApp message delivery status |
whatsapp_list_templates |
List approved WhatsApp templates |
obsidian_search_notes |
Search notes in the Obsidian vault |
obsidian_read_note |
Read a specific note |
obsidian_append_to_note |
Append content to a note |
obsidian_update_note |
Overwrite a note |
obsidian_sync_status |
Check Obsidian sync status |