Files
hermes-mcp/.planning/phases/02-v1-launch-deployment/02-01-SUMMARY.md
2026-06-12 07:23:06 -04:00

142 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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:** BLOCKED — waiting on user
Current `FACEBOOK_DEFAULT_ACCESS_TOKEN` is expired (expired 2026-05-12). Instagram credentials are empty placeholders.
**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
```bash
# 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
```