# Connect Hermes Agent to your social media accounts

Source: https://postgale.com/guides/hermes

Yes, Hermes Agent by Nous Research can post to social media through Postgale. Create a Postgale API key with approval turned on, add https://postgale.com/mcp to Hermes Agent as an MCP server with an Authorization header (or give it a skill that calls the REST API), and it can draft, schedule and publish on Instagram, Facebook, Threads, TikTok, Bluesky and Mastodon and answer comments and messages, while a person approves what goes out.

## Can Hermes Agent post to social media?

Postgale is the secure layer for AI agents on social media. Hermes Agent is an open-source agent from Nous Research that you run on your own machine or server, so it can act while nobody is watching. MCP (Model Context Protocol) is the open standard that lets AI assistants such as Claude and Cursor use outside tools. An MCP server is what they connect to.

Once connected, the agent can work on [Instagram](https://postgale.com/integrations/instagram), [Facebook Pages](https://postgale.com/integrations/facebook), [Threads](https://postgale.com/integrations/threads), [TikTok](https://postgale.com/integrations/tiktok), [Bluesky](https://postgale.com/integrations/bluesky) and [Mastodon](https://postgale.com/integrations/mastodon), and answer customers on [WhatsApp](https://postgale.com/integrations/whatsapp). X, Telegram and Discord are coming soon.

## Step 1: create a key with approval on

1. In Postgale, open Dashboard → API keys, create a key and copy it (it starts with `sk_` and is shown once). Connect the social accounts the agent may use under Dashboard → Accounts.
2. An agent that runs on its own, on a schedule or from a chat app, should use a key with approval required: create the key, then turn on approval for it under Dashboard → API keys. Everything it wants to publish, reply or send then waits for a person.
3. Make the key available to Hermes Agent as a secret, for example an environment variable `POSTGALE_API_KEY` on the machine it runs on.

## Step 2: add Postgale as an MCP server

Declare a remote (HTTP) MCP server in Hermes Agent’s configuration with these values. The file and key names depend on your Hermes Agent version; its documentation shows where MCP servers go.

Postgale MCP server:
```text
URL:        https://postgale.com/mcp
Transport:  Streamable HTTP
Header:     Authorization: Bearer sk_…
```

Restart the agent so it loads the server, then ask it which tools it has from Postgale. It should list tools such as `list_accounts`, `create_post`, `list_comments` and `send_message`.

## Can I use the REST API instead?

Yes. If you would rather keep the tool list short, give Hermes Agent a skill that calls the REST API with the same key. Save it as `SKILL.md` in a `postgale` folder wherever your setup keeps skills:

postgale/SKILL.md:
```text
---
name: postgale
description: Draft, schedule and reply on our social accounts through Postgale. Drafts by default.
---
Use the Postgale REST API at https://postgale.com/api/v1 with the header
"Authorization: Bearer $POSTGALE_API_KEY". Never print the key.

1. GET /accounts to find account ids. Only use those accounts.
2. To attach an image or video, POST /media with {"url": "<public url>"} and use
   the returned publicUrl as platformSpecificData.mediaUrl.
3. POST /posts with {"content", "platforms": [{"accountId", "platformSpecificData"}]}.
   Without scheduledFor or publishNow it is a draft. Add scheduledFor (ISO 8601 with
   a time zone) only when asked for a time. Never set publishNow unless told to.
4. Send an x-request-id header made from the task, so a retry never posts twice.
5. If a post or action comes back as pending_approval, a person must approve it in
   the Postgale dashboard. Say so and do not retry.
```

Terminal:
```bash
# List the accounts the agent may use
curl https://postgale.com/api/v1/accounts \
  -H "Authorization: Bearer $POSTGALE_API_KEY"

# Save a draft for Threads and Bluesky (no scheduledFor, no publishNow)
curl https://postgale.com/api/v1/posts \
  -H "Authorization: Bearer $POSTGALE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "x-request-id: fall-drop-001" \
  -d '{"content":"The fall drop is live.","platforms":[{"accountId":"acc_threads"},{"accountId":"acc_bluesky"}]}'
```

## Step 3: check the connection

> Ask your agent: “List my Postgale accounts, then draft this week’s three Instagram posts from the notes in my project folder. Drafts only.”

Drafts appear in the Postgale dashboard. When you ask the agent to schedule them, they wait under Approvals until a person signs off.

## How do I keep a person in the loop?

- Approval: tick “Hold posts from this app for approval” when you sign in, or in the Postgale dashboard require approval for the API key the agent uses (or for the whole workspace, or one account). Posts then wait as pending approval; comment replies and moderation, direct messages, WhatsApp sends and edits to live posts wait in the same queue. A person approves, edits or rejects each one in Dashboard → Approvals; the agent’s own key or sign-in cannot approve.
- Tool annotations: every Postgale tool declares whether it only reads, writes, or publishes live, deletes or spends. Clients that honour annotations ask before destructive tools run.
- Audit log: every write the agent makes is recorded with the key or the connected app, the action and the time.
- Revoking: each sign-in appears under Dashboard → Connected apps and each key under Dashboard → API keys; either can be revoked at any time.

## What are the limits?

- Postgale does not ship a Hermes Agent plugin; the setup uses the standard MCP server and REST API with an API key.
- The agent only sees accounts their owner connected in Postgale; connecting happens in a browser through the platform’s own sign-in.
- Each platform’s rules still apply and Postgale enforces them: Instagram needs an image or video (JPEG for images), Threads allows 500 characters, Bluesky 300, Mastodon 500 by default, and TikTok needs a privacy level chosen from the creator’s options; direct TikTok posts from an agent always wait for a person to confirm the settings.
- Requests from one key are limited to 60 per minute by default.

## Questions

### Does Postgale work with Hermes Agent?

Yes. Add https://postgale.com/mcp as an MCP server with an Authorization: Bearer header carrying a Postgale API key, or give Hermes Agent a skill that calls the REST API.

### Who made Hermes Agent?

Nous Research. It is an open-source agent you run yourself; Postgale is a separate service it connects to.

### How do I stop it posting something wrong?

Turn on approval for its key in the Postgale dashboard. Posts, comment replies, DMs and WhatsApp messages then wait for a person, and you can revoke the key at any time.

## Related

- [OpenClaw guide](https://postgale.com/guides/openclaw)
- [WhatsApp and Instagram agent](https://postgale.com/use-cases/small-business-whatsapp-instagram-agent)
- [All MCP tools](https://postgale.com/docs/mcp)
- [Postgale vs Zernio](https://postgale.com/compare/zernio)
