From bc58befd5e258bd0be901f22a416816ba007b198 Mon Sep 17 00:00:00 2001 From: Garfield Date: Fri, 12 Jun 2026 06:39:07 -0400 Subject: [PATCH] =?UTF-8?q?feat(ui):=20v1=20launch=20=E2=80=94=20consumer?= =?UTF-8?q?=20hero,=20onboarding=20flow,=20Obsidian=20app=20card?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hermes-k8s.yaml | 15 +- product/app/app-k8s.yaml | 2 +- product/app/index.html | 199 +++++++++++++++++------- product/site/Dockerfile | 1 + product/site/index.html | 47 ++++++ product/site/server.mjs | 1 + product/site/squaremcp-k8s-ingress.yaml | 2 +- product/site/squaremcp-logo-256.bmp | Bin 0 -> 262198 bytes src/Dockerfile | 2 + src/index.ts | 2 +- src/manifest.ts | 7 +- 11 files changed, 211 insertions(+), 67 deletions(-) create mode 100644 product/site/squaremcp-logo-256.bmp diff --git a/hermes-k8s.yaml b/hermes-k8s.yaml index 7c2845c..83b9b6f 100644 --- a/hermes-k8s.yaml +++ b/hermes-k8s.yaml @@ -22,7 +22,7 @@ spec: fsGroup: 1000 containers: - name: hermes-mcp - image: localhost:32000/hermes-mcp@sha256:57be9369be928208bc2e4764fb15162e1339907a4b42669aa995cc3cc24abd94 + image: localhost:32000/hermes-mcp@sha256:1ada6f03a81ad53cd3b641b8934ae99e1a29651ac05f0bb7fbed790bb9f9d1ed imagePullPolicy: Always securityContext: allowPrivilegeEscalation: false @@ -151,9 +151,16 @@ spec: value: "https://hermes.squaremcp.com" - name: WHATSAPP_APP_SECRET value: "04d52724efa5f3ac5eb3f2b673c3d70a" - # TODO: set PILOT_CUSTOMER_ID when Lodge Brothers customer is created - # - name: PILOT_CUSTOMER_ID - # value: "" + - name: PILOT_CUSTOMER_ID + value: "9a3f1a23-3080-4f9f-932c-02dae813ee96" + - name: FACEBOOK_DEFAULT_ACCESS_TOKEN + value: "EAAYG3FLDWzMBRcrHOWVw9bwkseFICVahHOnEFAit2z2WYIvGJ2mtH26ZACcYArw2KKnlq7xYzScOtBiKfGzpljhn3Pb41q9qfsczS468ZCwUmj9iNI8ttIjpOv26MyOO16d6qwkwXqu0nVDeqm8DE1lg4ZA7YShxCZBRh80sPHFlT1NcD5m59qQBWk2d0hgtGXxA3dmdBpQ3Y7Q0DlyWrfPG4xYen1Esw3VBZBKdgqPMhtZA09KN4CQQbv" + - name: FACEBOOK_DEFAULT_PAGE_ID + value: "1152192567968569" + - name: INSTAGRAM_DEFAULT_ACCESS_TOKEN + value: "" + - name: INSTAGRAM_DEFAULT_BUSINESS_ACCOUNT_ID + value: "" - name: WHATSAPP_DEFAULT_ACCESS_TOKEN value: "EAAYG3FLDWzMBRV4qrRvksNnVzCI4wGUvF4R8jjy6pusWBxriRwP9B3ZCRcd3VpDsjoURhJMEQJiNZCcSIJZCcQGsusZANzTpQF9hWrhHgLXUU9tJZCuoEAWTUYA9C29JgQ9BPblpUxEQRKE3p9tZBsl9ChngJy45kXJ9apOYreJclyya0ebgCxZBmndBpCPuAZDZD" - name: WA_VERIFY_TOKEN diff --git a/product/app/app-k8s.yaml b/product/app/app-k8s.yaml index cd0ecd7..d66c423 100644 --- a/product/app/app-k8s.yaml +++ b/product/app/app-k8s.yaml @@ -15,7 +15,7 @@ spec: spec: containers: - name: squaremcp-app - image: localhost:32000/squaremcp-app@sha256:c9545e6ac1adcfc6dbfb162f4dbff5db39d9fbf4c5bd95899c74d70174dd3cfa + image: localhost:32000/squaremcp-app@sha256:c2bc1ee1bd6eed3981c6cf4c253d61cc1022373720f65debaea03dd8b53ed494 imagePullPolicy: Always ports: - containerPort: 8080 diff --git a/product/app/index.html b/product/app/index.html index 220c17d..8a254c1 100644 --- a/product/app/index.html +++ b/product/app/index.html @@ -92,9 +92,9 @@
-

Connect your platforms

-

Link your social accounts to publish, analyze, and manage content from one place.

- +

Connect your accounts

+

Connect once. Then ask Claude or ChatGPT to post, search your notes, or send email — without touching any of these apps.

+
@@ -106,114 +106,124 @@
- -
-
🎵
-
-

TikTok

-

Publish videos and view analytics

- Not connected -
- +
+ Start here — connect one of these four to get started with Claude and ChatGPT.
- -
+ +
+
📓
+
+

Obsidian

+

Search and edit your notes vault

+ Not connected +
+ +
+ +
+
✉️
+
+

Email

+

Gmail, Yahoo, and IMAP accounts

+ Not connected +
+ +
+ +
f

Facebook

Post to pages and manage content

- Not connected + Not connected
- -
-
📷
+
+
📷

Instagram

Publish reels and images

- Not connected + Not connected
- +
+ More platforms +
+ +
in

LinkedIn

Share posts, images, and videos

- Not connected + Not connected
-
-
𝕏
+
𝕏

Twitter / X

Tweet with media support

- Not connected + Not connected
- -
-
✈️
-
-

Telegram

-

Send messages via bot

- Not connected -
- -
- - -
-
🎮
-
-

Discord

-

Send messages to channels

- Not connected -
- -
- -
-
💬
+
💬

WhatsApp

Business messaging

- Not connected + Not connected
- +
+
✈️
+
+

Telegram

+

Send messages via bot

+ Not connected +
+ +
+ +
+
🎮
+
+

Discord

+

Send messages to channels

+ Not connected +
+ +
+
-
💬
+
💬

Slack

Send messages to channels

- Not connected + Not connected
- -
-
✉️
+
+
🎵
-

Email

-

IMAP/SMTP accounts

- Not connected +

TikTok

+

Publish videos and view analytics

+ Not connected
- +
@@ -283,5 +293,76 @@ + + diff --git a/product/site/Dockerfile b/product/site/Dockerfile index 5625b77..f1df96b 100644 --- a/product/site/Dockerfile +++ b/product/site/Dockerfile @@ -5,6 +5,7 @@ COPY product/site/index.html /usr/share/nginx/html/index.html COPY product/site/styles.css /usr/share/nginx/html/styles.css COPY product/site/script.js /usr/share/nginx/html/script.js COPY product/site/squaremcp-logo.svg /usr/share/nginx/html/squaremcp-logo.svg +COPY product/site/squaremcp-logo-256.bmp /usr/share/nginx/html/squaremcp-logo-256.bmp COPY product/site/squaremcp-hero-loop.mp4 /usr/share/nginx/html/squaremcp-hero-loop.mp4 COPY product/site/squaremcp-tiktok-launch.mp4 /usr/share/nginx/html/squaremcp-tiktok-launch.mp4 COPY product/site/squaremcp-broker-demo.mp4 /usr/share/nginx/html/squaremcp-broker-demo.mp4 diff --git a/product/site/index.html b/product/site/index.html index 9fb7e08..80b3caf 100644 --- a/product/site/index.html +++ b/product/site/index.html @@ -24,6 +24,53 @@ + + +
+
+
+
Now available for individuals
+

Tell Claude what to post.
It handles your notes, email, and social.

+

+ Connect your Obsidian vault, email inbox, Facebook page, and Instagram account once. + Then just ask Claude or ChatGPT — draft a post, search your notes, send a follow-up email. + No switching apps. +

+
+ 📓 Obsidian vault + ✉️ Email (Gmail / Yahoo) + 📘 Facebook Pages + 📷 Instagram +
+ +
+ +
+
+ +
diff --git a/product/site/server.mjs b/product/site/server.mjs index f74bcf4..6405298 100644 --- a/product/site/server.mjs +++ b/product/site/server.mjs @@ -15,6 +15,7 @@ const contentTypes = { ".js": "text/javascript; charset=utf-8", ".json": "application/json; charset=utf-8", ".mp4": "video/mp4", + ".bmp": "image/bmp", }; function resolvePath(urlPath) { diff --git a/product/site/squaremcp-k8s-ingress.yaml b/product/site/squaremcp-k8s-ingress.yaml index bd5904a..6e479ed 100644 --- a/product/site/squaremcp-k8s-ingress.yaml +++ b/product/site/squaremcp-k8s-ingress.yaml @@ -15,7 +15,7 @@ spec: spec: containers: - name: squaremcp-site - image: localhost:32000/squaremcp-site@sha256:1330b918347b873b8dc18dc309349bc47c300463c7b6d5e43d4270bb17366269 + image: localhost:32000/squaremcp-site@sha256:e07e2020651f058136048e73052b8680caede18bb17596383060c3648900276b imagePullPolicy: Always ports: - containerPort: 8080 diff --git a/product/site/squaremcp-logo-256.bmp b/product/site/squaremcp-logo-256.bmp new file mode 100644 index 0000000000000000000000000000000000000000..46228a5ee9fd078bfe8cc976ac9fe52d3a2fb1b6 GIT binary patch literal 262198 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 H1PlCsd%e!p literal 0 HcmV?d00001 diff --git a/src/Dockerfile b/src/Dockerfile index 0523174..c40d848 100644 --- a/src/Dockerfile +++ b/src/Dockerfile @@ -1,6 +1,7 @@ FROM node:20-alpine AS builder WORKDIR /app COPY package*.json ./ +COPY scripts/ ./scripts/ RUN npm install COPY tsconfig.json ./ COPY src/ ./src/ @@ -9,6 +10,7 @@ RUN npx tsc FROM node:20-alpine WORKDIR /app COPY package*.json ./ +COPY scripts/ ./scripts/ RUN npm install --omit=dev COPY --from=builder /app/dist ./dist EXPOSE 3456 diff --git a/src/index.ts b/src/index.ts index 7eb2623..65b37d6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -510,7 +510,7 @@ app.get('/login', (req, res) => {

Sign in to continue

-

Connect your SquareMCP account to authorize access.

+

One login connects Claude and ChatGPT to your notes, email, and social accounts.

${errMsg ? `

${errMsg}

` : ''}
diff --git a/src/manifest.ts b/src/manifest.ts index 3f9d194..516fab2 100644 --- a/src/manifest.ts +++ b/src/manifest.ts @@ -768,6 +768,11 @@ function filterPaths(fullSpec: Record, allowed: Set): R } const CHATGPT_PATHS = new Set([ + // Obsidian + '/api/obsidian/search', + '/api/obsidian/note', + '/api/obsidian/note/append', + '/api/obsidian/sync', // Email '/api/email/profile', '/api/email/search', @@ -815,7 +820,7 @@ export function getOpenApiSpecChatGPT(serverUrl: string) { info: { ...full.info, title: 'SquareMCP', - description: 'AI Social Media Gateway — send WhatsApp, email, LinkedIn, Instagram, Facebook, Twitter/X, TikTok, Telegram, and Discord messages from ChatGPT.', + description: 'AI assistant for Obsidian notes, email, and social media — search and edit your vault, manage email, and post to WhatsApp, LinkedIn, Instagram, Facebook, Twitter/X, TikTok, Telegram, and Discord from ChatGPT.', }, paths: filterPaths(full, CHATGPT_PATHS), };