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)
This commit is contained in:
Garfield
2026-05-05 01:25:26 -04:00
parent e3a272c332
commit 73f83c0d86
18 changed files with 1207 additions and 45 deletions

View File

@@ -37,3 +37,20 @@ SYNCTHING_URL=http://host.docker.internal:8384
SYNCTHING_API_KEY=your-syncthing-api-key
# Folder ID as set in Syncthing config
SYNCTHING_FOLDER_ID=obsidian-vault
# ── WhatsApp Business API (Meta Cloud API) ───────────────────────────────────
# Get these from https://business.facebook.com/settings/whatsapp-business-accounts
# For default account:
WHATSAPP_DEFAULT_PHONE_NUMBER_ID=your-phone-number-id
WHATSAPP_DEFAULT_ACCESS_TOKEN=your-permanent-access-token
WHATSAPP_DEFAULT_BUSINESS_ACCOUNT_ID=your-business-account-id
# For additional accounts, duplicate with WHATSAPP_{ACCOUNT}_*
# ── LinkedIn ─────────────────────────────────────────────────────────────────
# Get an access token from LinkedIn Developer Portal: https://www.linkedin.com/developers/
# Required scopes: r_liteprofile, w_member_social
# For default account:
LINKEDIN_DEFAULT_ACCESS_TOKEN=your-linkedin-access-token
LINKEDIN_DEFAULT_CLIENT_ID=your-linkedin-client-id
LINKEDIN_DEFAULT_CLIENT_SECRET=your-linkedin-client-secret
# For additional accounts, duplicate with LINKEDIN_{ACCOUNT}_*