Skip to content
SocialsForAI
Menu

Post to social media from Hermes Agent

Hermes Agent, posting to Bluesky, X and LinkedIn.

Add one `mcp_servers` entry to Hermes's config, reload, and the agent can draft, dry run and publish from the CLI or your messaging apps.

The short answer · Updated Nov 1, 2026

To give Hermes Agent social media posting, add SocialsForAI's server under mcp_servers in ~/.hermes/config.yaml with url: "https://socialsforai.com/api/mcp" and an Authorization: Bearer header, then run /reload-mcp. The tools appear as mcp_socials_create_post and so on. The REST API at https://socialsforai.com/v1 works too.

What Hermes Agent is

Hermes Agent is "the self-improving AI agent built by Nous Research," per its docs. It runs wherever you host it, from a small VPS to a GPU cluster, and you use it from the command line or from messaging platforms including Telegram, Discord and Slack.

Its MCP support connects it to external tool servers. Remote servers are HTTP entries with a URL and optional headers, which is what our server needs.

config.yaml entry

Hermes's MCP docs put servers under mcp_servers in ~/.hermes/config.yaml. An entry has either command (stdio) or url (HTTP), and headers are sent with every request:

Run /reload-mcp to load it; the docs say it reloads servers from config and refreshes the tool list. The docs also describe ${VAR} placeholders resolved from environment variables. If you'd rather not keep the key in the file, test that form on your version first.

yaml
# ~/.hermes/config.yaml
mcp_servers:
  socials:
    url: "https://socialsforai.com/api/mcp"
    headers:
      Authorization: "Bearer sk_..."

REST fallback

Hermes can also call HTTP APIs directly. The REST endpoints mirror the MCP tools: GET /v1/accounts, POST /v1/connect-links, POST /v1/posts, GET /v1/posts/:id, with the same dry runs, idempotency keys and error codes. Our plain-text docs at /llms.txt are written for an agent to read. Full reference in the docs.

Tool names in Hermes

Hermes prefixes each MCP tool with mcp_ and the server name, so ours become mcp_socials_list_accounts, mcp_socials_create_connect_link, mcp_socials_create_post, mcp_socials_get_post and the rest. The inputs are the same as on any client and are listed on the hub under every tool and its inputs.

Three prompts to start with

Use these from the Hermes CLI or a connected messaging app.

  • "Draft a Bluesky post about today's release notes, dry run it, and send me the preview." Calls mcp_socials_list_accounts, then mcp_socials_create_post with dry_run: true. After your approval, the same call without dry_run and with an idempotency_key.
  • "Which of my accounts need reconnecting?" Calls mcp_socials_list_accounts and reports any with status: "needs_reauth", then mcp_socials_create_connect_link for those platforms if you ask.
  • "Post the same announcement to Bluesky and X, short version for X." Calls mcp_socials_create_post with both account ids and platform_options.x.text, then reports each target's status and URL.

A reporting setup and a posting setup

Because Hermes runs on your own server and can be reached from several messaging apps, it's worth deciding what it may do from where. A read-only configuration, with create_post and cancel_post excluded through the tools filter, can still answer "what went out this week" through mcp_socials_list_posts, check failures through mcp_socials_get_post, and report spend through mcp_socials_get_usage, which returns active accounts, posts and the estimated cost on your plan.

For the posting setup, ask Hermes to keep scheduled posts rather than holding drafts itself: scheduled_at up to 365 days ahead puts the post on our queue, so it goes out on time even if the Hermes host is down. Until then mcp_socials_cancel_post can withdraw it.

Approval with Hermes tool filters

Hermes's per-server tools filter takes include or exclude lists (glob patterns allowed). Excluding create_post gives a read-only reporting setup; for posting, instruct Hermes to always dry run and wait for your explicit approval in the chat. The limits our server applies to every post, whatever Hermes decides, are listed under keeping a human in the loop.

Fixing Hermes setup problems

Hermes-side problems usually show up as missing tools after a reload. An error from a tool call itself has a code and a fix; each code is explained in the error list on the hub.

  • No mcp_socials_ tools after /reload-mcp: check the YAML indentation and that the entry has url, not command. A 401 in the logs means the header value is wrong.
  • The tools vanished after you switched to a ${VAR} placeholder: the variable may not be set where Hermes runs, or your version may not resolve it there. Put the key back in the file to confirm, then set the variable for the Hermes process.
  • Some tools are missing but not others: a tools filter on the entry is including or excluding them. Check the patterns.

Set up Hermes Agent in four steps

  1. 01

    Create a workspace key

    Sign up at /signup or send POST /v1/workspaces from the machine Hermes runs on. Copy the sk_ key.

  2. 02

    Add the server to config.yaml

    Under mcp_servers in ~/.hermes/config.yaml, add socials with url https://socialsforai.com/api/mcp and headers Authorization: Bearer sk_....

  3. 03

    Reload

    Run /reload-mcp. The socials tools appear with the mcp_socials_ prefix.

  4. 04

    Connect a Bluesky account

    Ask Hermes, from the CLI or a messaging app, for a Bluesky connect link. Open it, enter an app password, then ask Hermes which accounts it can post to.

Questions

What developers ask

Can Hermes Agent post to social media?

Yes, through an MCP server. Add ours under mcp_servers and Hermes can post to X, Bluesky, LinkedIn, Mastodon and Telegram today.

Does Hermes support remote MCP servers?

Yes. Its docs show HTTP entries with url and a headers map, including an Authorization bearer header.

What are the tool names in Hermes?

Hermes prefixes MCP tools with the server name: mcp_socials_create_post, mcp_socials_list_accounts and so on.

Can I limit which tools Hermes sees?

Yes, with tools.include or tools.exclude on the server entry. Exclude create_post for a read-only setup.

Do I need MCP, or can Hermes use the REST API?

Either works. MCP gives Hermes tool descriptions automatically; REST works from any HTTP-capable tool.

Get an API key and send your first post in five minutes.