# 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

```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
```
