Hermes MCP — Platform Setup Guide
How to obtain credentials and configure each social platform integration.
Table of Contents
TikTok
Prerequisites
Steps
- Go to Developer Portal → Manage Apps → Your App
- Add Login Kit product → set redirect URI:
https://tiktok.squaremcp.com/auth/tiktok/callback
- Add Content Posting API product → enable Direct Post
- Configure scopes:
user.info.basic, user.info.profile, user.info.stats, video.list, video.publish
- Add domain verification files to site root (TikTok provides
.txt files)
- Add sandbox test users under Sandbox → Target Users
Credentials
| Env Var |
Source |
TIKTOK_CLIENT_KEY |
App → Basic Information → Client Key |
TIKTOK_CLIENT_SECRET |
App → Basic Information → Client Secret |
TIKTOK_REDIRECT_URI |
https://tiktok.squaremcp.com/auth/tiktok/callback |
TIKTOK_DEFAULT_ACCESS_TOKEN |
Complete OAuth flow → copy access_token from callback |
Facebook
Prerequisites
- Facebook Developer account
- Facebook Page (Business/Brand page, not personal profile)
- Admin role on the page
Steps
- Go to developers.facebook.com → My Apps → Create App
- App type: Business → add Pages product
- Go to Graph API Explorer → select your app → generate token with permissions:
pages_show_list
pages_read_engagement
pages_manage_posts
publish_video
- Run
GET /me/accounts to list pages → copy the Page Access Token (not User Token)
- Copy the Page ID from the same response
Credentials
| Env Var |
Source |
FACEBOOK_DEFAULT_ACCESS_TOKEN |
Page Access Token from /me/accounts |
FACEBOOK_DEFAULT_PAGE_ID |
id field from /me/accounts response |
Instagram
Prerequisites
- Instagram Business or Creator account (personal accounts do not work)
- Instagram account connected to a Facebook Page you admin
- Same Facebook App as above, with Instagram Graph API product added
Steps
- In Instagram app: Profile → Menu → Settings → Account → Switch to Professional Account → Business
- Connect to Facebook Page under Settings → Creator tools and controls → Set up Instagram Business Profile
- In Facebook Developer Portal: add Instagram Graph API product to your app
- Open Graph API Explorer → select app → generate token with:
instagram_basic
instagram_content_publish
pages_read_engagement
- Run:
GET me/accounts?fields=name,instagram_business_account
- Find your page → copy
instagram_business_account.id
- Copy the Access Token from the explorer
Credentials
| Env Var |
Source |
INSTAGRAM_DEFAULT_ACCESS_TOKEN |
Graph API Explorer token with instagram_basic |
INSTAGRAM_DEFAULT_BUSINESS_ACCOUNT_ID |
instagram_business_account.id from /me/accounts |
LinkedIn
Prerequisites
Steps
- Create app → add Sign In with LinkedIn using OpenID Connect product
- Set redirect URI:
https://hermes.squaremcp.com/oauth/callback
- Request Share on LinkedIn product for posting permissions
- Generate a 3-legged OAuth token with scopes:
openid, profile, w_member_social
- Copy the Access Token
Credentials
| Env Var |
Source |
LINKEDIN_DEFAULT_ACCESS_TOKEN |
OAuth 2.0 token from LinkedIn Developer Portal |
Prerequisites
Steps
- Create project → create app inside project
- Enable User authentication settings → OAuth 2.0 → set callback URL
- Permissions: Read and Write
- Go to Keys and Tokens → generate User Access Tokens
- Copy Access Token and Access Token Secret
Credentials
| Env Var |
Source |
TWITTER_DEFAULT_ACCESS_TOKEN |
Keys and Tokens → Access Token |
TWITTER_DEFAULT_ACCESS_TOKEN_SECRET |
Keys and Tokens → Access Token Secret |
TWITTER_DEFAULT_API_KEY |
Keys and Tokens → API Key |
TWITTER_DEFAULT_API_SECRET |
Keys and Tokens → API Secret |
Discord
Prerequisites
Steps
- Go to discord.com/developers/applications
- Click New Application → name it (e.g., "SquareMCP Bot")
- Go to Bot tab → click Add Bot
- Under Privileged Gateway Intents, enable MESSAGE CONTENT INTENT
- Click Reset Token → copy the Bot Token
- Go to OAuth2 → URL Generator:
- Scopes:
bot
- Bot Permissions:
Send Messages, Read Message History, View Channels
- Copy the generated URL and open it in browser to invite the bot to your server
Credentials
| Env Var |
Source |
DISCORD_DEFAULT_BOT_TOKEN |
Bot tab → Token |
Telegram
Prerequisites
Steps
- Open Telegram → search @BotFather
- Send
/newbot → follow prompts → pick username (must end in bot)
- BotFather sends you a Bot Token (e.g.,
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11)
- Copy the token
Credentials
| Env Var |
Source |
TELEGRAM_DEFAULT_BOT_TOKEN |
BotFather message after creating bot |
WhatsApp (Meta Cloud API)
Prerequisites
- Meta Business Account
- WhatsApp Business Account (WABA)
- Phone number registered with WhatsApp Business Platform
Steps
- Go to business.facebook.com → WhatsApp → API Setup
- Create/select a WhatsApp Business Account
- Add a phone number → verify via SMS/voice call
- Go to Configuration → generate a Permanent Access Token:
- You need a System User in Meta Business Settings
- Assign WhatsApp Business Management permission
- Generate token with
whatsapp_business_management and whatsapp_business_messaging
- Copy:
- Phone Number ID
- WhatsApp Business Account ID (WABA ID)
- Access Token
Credentials
| Env Var |
Source |
WHATSAPP_DEFAULT_ACCESS_TOKEN |
Meta Business → System User → Permanent Token |
WHATSAPP_DEFAULT_PHONE_NUMBER_ID |
WhatsApp API Setup → Phone Number ID |
WHATSAPP_DEFAULT_BUSINESS_ACCOUNT_ID |
WhatsApp API Setup → WABA ID |
Email (IMAP/SMTP)
Supported Providers
Yahoo, Gmail, Outlook/Exchange, GoDaddy, any IMAP/SMTP provider.
Per-Account Env Vars
Replace {ACCOUNT} with the account nickname (e.g., YAHOO, GMAIL, FETCHERPAY):
| Env Var |
Example |
{ACCOUNT}_EMAIL |
gheron01@yahoo.com |
{ACCOUNT}_PASSWORD |
App-specific password |
{ACCOUNT}_IMAP_HOST |
imap.mail.yahoo.com |
{ACCOUNT}_IMAP_PORT |
993 |
{ACCOUNT}_SMTP_HOST |
smtp.mail.yahoo.com |
{ACCOUNT}_SMTP_PORT |
465 or 587 |
Notes
- Gmail requires an App Password (not your regular Google password)
- Yahoo requires an App Password generated in Account Security settings
- GoDaddy uses
imap.secureserver.net and smtpout.secureserver.net
Obsidian
Prerequisites
- Obsidian vault with Syncthing enabled
- Syncthing API key and folder ID
Steps
- Install Syncthing on the server hosting Hermes
- In Obsidian: Settings → Syncthing → copy API Key and Folder ID
- Set vault path on the server
Credentials
| Env Var |
Source |
OBSIDIAN_VAULT_PATH |
Absolute path to vault on server |
SYNCTHING_API_KEY |
Syncthing GUI → Settings → API Key |
SYNCTHING_FOLDER_ID |
Syncthing GUI → Folders → Folder ID |
SYNCTHING_URL |
http://localhost:8384 |
Quick Reference: All Env Vars