Files
hermes-mcp/.planning/phases/02-v1-launch-deployment/02-01-SUMMARY.md

5.2 KiB
Raw Blame History

SquareMCP v1 Launch Deployment — Execution Summary

Date: 2026-06-12 Phase: 02-v1-launch-deployment Commit: bc58bef Branch: main Executor: kimi-cli


What was deployed

1. hermes-mcp API (hermes.squaremcp.com)

Image: localhost:32000/hermes-mcp@sha256:1ada6f03a81ad53cd3b641b8934ae99e1a29651ac05f0bb7fbed790bb9f9d1ed

Changes:

  • Added 4 Obsidian endpoints to getOpenApiSpecChatGPT() in src/manifest.ts:
    • GET /api/obsidian/search
    • GET /api/obsidian/note
    • PUT /api/obsidian/note
    • POST /api/obsidian/note/append
    • GET /api/obsidian/sync
  • Updated ChatGPT OpenAPI description to mention Obsidian, email, and social
  • Updated OAuth login subtitle: "One login connects Claude and ChatGPT to your notes, email, and social accounts."
  • Fixed src/Dockerfile to copy scripts/ before npm install (postinstall patch-imapflow.cjs was failing builds)

Live verification:

  • GET /health → 200, toolCount 55
  • GET /openapi-chatgpt.json → 33 paths, Obsidian paths present
  • GET /api/obsidian/search?query=SquareMCP → returns notes successfully

2. product/site (squaremcp.com)

Image: localhost:32000/squaremcp-site@sha256:e07e2020651f058136048e73052b8680caede18bb17596383060c3648900276b

Changes:

  • Added consumer hero section above enterprise hero (mortgage broker / SMB angle)
  • Added Twilio logo asset squaremcp-logo-256.bmp (256x256, 262KB)
  • Updated Dockerfile + server.mjs to serve BMP with image/x-ms-bmp MIME type

Live verification:

  • https://squaremcp.com contains consumer-hero section
  • https://squaremcp.com/squaremcp-logo-256.bmp → 200, image/x-ms-bmp

3. product/app (app.squaremcp.com)

Image: localhost:32000/squaremcp-app@sha256:c2bc1ee1bd6eed3981c6cf4c253d61cc1022373720f65debaea03dd8b53ed494

Changes:

  • Added Obsidian card to platform grid
  • Reordered platforms: v1 platforms first (Obsidian, Email, Facebook, Instagram)
  • Added onboarding banner
  • Updated welcome copy and CTA

Live verification:

  • https://app.squaremcp.com contains "Obsidian" card

4. Infrastructure / K8s

Manifests updated:

  • hermes-k8s.yaml — hermes-mcp image SHA + added FACEBOOK_DEFAULT_* and INSTAGRAM_DEFAULT_* env var placeholders
  • product/site/squaremcp-k8s-ingress.yaml — squaremcp-site image SHA
  • product/app/app-k8s.yaml — squaremcp-app image SHA

Applied: all three manifests to fetcherpay namespace. All pods healthy.

5. Twilio WhatsApp webhook (Alex Ferrari pilot prep)

  • Configured Messaging Service MG17ba9689810cc62a20f2bab0cc857035 inbound webhook to https://hermes.squaremcp.com/webhook/twilio/whatsapp
  • Configured phone number +19547385805 SMS URL to same webhook
  • Verified webhooks return 403 on unsigned requests (correct fail-closed behavior)

What is blocked / remaining

Action 3 — Facebook + Instagram credentials

Status: DEPLOYED but TOKEN INVALID — waiting on user to regenerate

Credentials were deployed to K8s from the Obsidian vault values, but Facebook API returns HTTP 500 "An unknown error has occurred" for all calls. Even debug_token and the old expired token now return 500, suggesting an app-level issue or corrupted token. User needs to re-test/regenerate the Page access token in Graph API Explorer.

Needed from Facebook Developer Console → Graph API Explorer:

  • Page access token with scopes: pages_manage_posts, pages_read_engagement, pages_show_list, instagram_basic, instagram_content_publish
  • GET /me/accounts?fields=name,id,instagram_business_account{username,id}
  • Values to deploy:
    • FACEBOOK_DEFAULT_ACCESS_TOKEN
    • INSTAGRAM_DEFAULT_ACCESS_TOKEN (same token)
    • INSTAGRAM_DEFAULT_BUSINESS_ACCOUNT_ID
    • FACEBOOK_DEFAULT_PAGE_ID (likely unchanged: 1152192567968569)

Optional for v1.1: FACEBOOK_APP_ID + FACEBOOK_APP_SECRET to enable long-lived token exchange.

Action 4 — Create ChatGPT Custom GPT

Status: PENDING — blocked by Action 3 (needs working Facebook/Instagram to test)

Requires manual browser work in ChatGPT UI:

  • Schema URL: https://hermes.squaremcp.com/openapi-chatgpt.json
  • OAuth client ID/secret from hermes-k8s.yaml

Action 5 — Apply to Claude.ai marketplace

Status: PENDING — blocked by Action 3

Requires manual browser work in Claude.ai UI. Also still needs a 512×512 logo.


Verification commands

# Health
curl https://hermes.squaremcp.com/health

# OpenAPI spec includes Obsidian
curl https://hermes.squaremcp.com/openapi-chatgpt.json | jq '[.paths | keys[] | select(startswith("/api/obsidian"))]'

# Obsidian search works
curl -H "x-api-key: $MCP_API_KEY" "https://hermes.squaremcp.com/api/obsidian/search?query=SquareMCP&limit=2"

# Site consumer hero
curl -s https://squaremcp.com | grep consumer-hero

# App Obsidian card
curl -s https://app.squaremcp.com | grep Obsidian

# Facebook still broken until token refresh
curl -H "x-api-key: $MCP_API_KEY" https://hermes.squaremcp.com/api/facebook/page

Files changed in this deployment

hermes-k8s.yaml
product/app/app-k8s.yaml
product/app/index.html
product/site/Dockerfile
product/site/index.html
product/site/server.mjs
product/site/squaremcp-k8s-ingress.yaml
product/site/squaremcp-logo-256.bmp
src/Dockerfile
src/index.ts
src/manifest.ts