Files
hermes-mcp/OPENCODE.md
Garfield 73f83c0d86 feat: WhatsApp + LinkedIn integrations, SquareMCP rebrand, opencode docs
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)
2026-05-05 01:25:26 -04:00

94 lines
2.5 KiB
Markdown

# 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)
```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"
}
}
}
}
```
### Global (`~/.config/opencode/config.json`)
```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:
```json
{
"$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 |