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 0000000..46228a5 Binary files /dev/null and b/product/site/squaremcp-logo-256.bmp differ 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), };