ClawLink

How to connect Facebook to Hermes Agent

Connect a Facebook Page to Hermes Agent with ClawLink: sign in once, no Facebook developer app, no Page Access Token to mint. 39 Facebook tools your agent calls from chat.

Get started for free
Hermes Agent
Hermes Agent
ClawLink
ClawLink
Facebook
Facebook
FacebookOAUTH2MCP

Read Facebook Page posts and engagement. Once connected, Hermes Agent can read and act on Facebook from chat — pairing, token refresh, and tool wiring handled for you.

39 tools

Most guides for giving Hermes Agent Facebook access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical Facebook setup: pair once in the browser and your always-on Hermes agent can act on Facebook for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.

Copy this prompt into Hermes to install the plugin and pair your account.

Prompt for Hermes
Set up ClawLink for Hermes and tell me when it's ready.

1. Install the plugin:
hermes plugins install ClawLink-HQ/hermes-plugin --enable

2. Start pairing. It prints an approval link, so show me the link and stop, don't wait:
hermes clawlink begin

3. I'll approve it in my browser, then reply "approved".

4. When I say approved, finish setup:
hermes clawlink finish

5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.

Setup

It takes three steps to connect Hermes to Facebook.

  1. 1

    Install and pair

    Install the ClawLink plugin, then pair Hermes with a one-time browser approval:

    hermes plugins install ClawLink-HQ/hermes-plugin --enable
  2. 2

    Connect Facebook

    One-click OAuth in the dashboard.

  3. 3

    Use it from chat

    Ask Hermes Agent: "What can you do with Facebook?"

Install by command

The prompt above walks Hermes through this. By hand, it is four commands and a browser approval:

hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin    # prints an approval link — open it and approve
hermes clawlink finish   # after approving in the browser
hermes clawlink test

Then connect Facebook in the ClawLink dashboard — a one-click OAuth approval, no API keys.

Verify the connection by asking Hermes:

Run facebook_list_managed_pages and show me the Pages you can reach. For the one I pick, use facebook_create_post to publish the text I paste next. Show me the post id and the permalink when it is live.

Using a different agent?

The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:

npx -y @useclawlink/cli login

login opens the same browser approval and stores a credential locally. Once Facebook is connected in the dashboard, that agent calls the same 39 Facebook tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.

Facebook MCP for Hermes

Looking for a Facebook MCP server for Hermes Agent? ClawLink connects Facebook to Hermes Agent and exposes 39 Facebook tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw Facebook integration works the same way.

Search for this and you will be told to create a Facebook developer app, add Facebook Login, request pages_manage_posts, then exchange a user token for a Page Access Token before you can publish anything. That is the correct way to build your own integration and it is the reason most people give up. ClawLink connects through Facebook's OAuth consent screen using an app that is already registered, so you sign in, choose which Pages to grant, and the 39 tools below work from Hermes chat. There is no app to register, no Page Access Token for you to mint or refresh, and nothing stored on your machine.

Facebook, Meta Ads, and Instagram are three connections

One Meta login, three separate ClawLink integrations. Knowing which one owns a tool saves a confusing session.

  • This page covers the Page surface: posts, photos, videos, comments, Page insights, Page roles, and Messenger.
  • Ad spend lives on the Hermes Meta Ads integration: campaigns, ad sets, creatives, audiences, and Business Manager structure. It connects differently, by pasting an access token, because Meta's app review for ad management is still open.
  • Instagram publishing and comments live on the Hermes Instagram integration, including Stories, carousels, and Instagram insights.

If a tool you expect is missing, check which of the three you actually connected before assuming the catalog failed to load.

What the Hermes Agent Facebook integration can do

39 Facebook tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 39.

30 of 39 Facebook tools for Hermes

ToolWhat it does
Create comment facebook_create_commentComment on a Facebook Page post
Create photo post facebook_create_photo_postCreate a photo post on a Facebook Page
Create post facebook_create_postCreate a post on a Facebook Page
Get comments facebook_get_commentsList comments on a Facebook Page post
Get page conversations facebook_get_page_conversationsList conversations on a Facebook Page
Get page details facebook_get_page_detailsGet Facebook Page details
Get page insights facebook_get_page_insightsGet Facebook Page insights
Get page posts facebook_get_page_postsList posts from a Facebook Page
Get post facebook_get_postGet a single Facebook Page post
Get post insights facebook_get_post_insightsGet insights for a Facebook Page post
Get post reactions facebook_get_post_reactionsGet reactions on a Facebook Page post
List managed pages facebook_list_managed_pagesList Facebook Pages you manage
Send message facebook_send_messageSend a message from a Facebook Page
Update post facebook_update_postUpdate a Facebook Page post
Get comment facebook_get_commentRetrieves details of a specific Facebook comment
Get conversation messages facebook_get_conversation_messagesRetrieves messages from a specific conversation
Get current user facebook_get_current_userValidates the access token and retrieves the authenticated user's own profile via /me
Get message details facebook_get_message_detailsRetrieves details of a specific message sent or received by the Page
Get page photos facebook_get_page_photosRetrieves photos from a Facebook Page
Get page roles facebook_get_page_rolesRetrieves a list of people and their tasks/roles on a Facebook Page
Get page tagged posts facebook_get_page_tagged_postsRetrieves posts where a Facebook Page is tagged or mentioned
Get page videos facebook_get_page_videosRetrieves videos from a Facebook Page
Get scheduled posts facebook_get_scheduled_postsRetrieves scheduled and unpublished posts for a Facebook Page
Assign page task facebook_assign_page_taskAssigns tasks/roles to a business-scoped user or system user for a specific Facebook Page
Create photo album facebook_create_photo_albumCreates a new photo album on a Facebook Page
Create video post facebook_create_video_postCreates a video post on a Facebook Page
Like post or comment facebook_like_post_or_commentAdds a LIKE reaction to a Facebook post or comment
Mark message seen facebook_mark_message_seenMarks a user's message as seen by the Page, visibly updating the read status in the user's
Publish scheduled post facebook_publish_scheduled_postPublishes a previously scheduled or unpublished Facebook post immediately
Reschedule post facebook_reschedule_postChanges the scheduled publish time of an unpublished Facebook post

Try it: find the Facebook tool you need

Browse the 30 Facebook tools

Click any tool to see exactly what Hermes can do and copy a ready-to-use prompt.

Example prompts

Run facebook_list_managed_pages and show me the Pages you can reach. For the one I pick, use facebook_create_post to publish the text I paste next. Show me the post id and the permalink when it is live.

For my main Page, pull facebook_get_page_insights for the last 7 days and facebook_get_page_posts for the same window, then facebook_get_post_insights on each. Tell me which post earned the most reach and what it had in common with the runner-up.

Use facebook_get_page_posts to find my three most recent posts, then facebook_get_comments on each. Group the comments into questions, complaints, and praise. Draft a reply to every question and wait for my approval before calling facebook_create_comment.

Run facebook_get_page_conversations for my Page and show me the threads with unanswered messages. For each, pull facebook_get_conversation_messages so I can see the context, then draft a reply. Do not call facebook_send_message until I say go.

How the Facebook tools behave

Facts from the manifest that change how a prompt should be written.

  • facebook_list_managed_pages is the first call in almost every workflow. Nothing else resolves a Page name to an id, and Page ids are long numeric strings that cannot be guessed. Skipping this step is the direct cause of the error-100 card above.
  • Posting has four distinct tools. facebook_create_post for text and links, facebook_create_photo_post for a single image, facebook_upload_photos_batch with facebook_create_photo_album for several, and facebook_create_video_post for video. Asking for "post this image" without naming one leaves the choice to the model.
  • Scheduling and publishing are separate. facebook_get_scheduled_posts, facebook_reschedule_post, and facebook_publish_scheduled_post let an agent stage work for you to release, which is the practical way to keep a human in the loop without blocking the agent.
  • Two insight tools, two levels. facebook_get_page_insights reports on the Page; facebook_get_post_insights reports on one post. A request for "engagement last week" usually needs both.
  • Messenger is in this integration. facebook_get_page_conversations, facebook_send_message, facebook_send_media_message, facebook_mark_message_seen, and facebook_toggle_typing_indicator cover the inbox. These write to real conversations with real people, so they deserve an explicit approval step in the prompt.
  • Comment tools distinguish reading from moderating. facebook_get_comments reads, facebook_create_comment and facebook_update_comment write, and facebook_delete_comment removes. "Clean up the comments" is ambiguous across three of those.

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Facebook working from chat.

ManualClawLink
Connection flowRegister a Facebook app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift.Users connect Facebook through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code.
Ongoing maintenanceYou own refresh logic, permission debugging, environment config, and every provider-specific edge case for Facebook.ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure.
Agent usabilityYou still need to expose the right Facebook actions to the runtime in a format your agent can reliably use.39 tools for Facebook are already exposed through ClawLink, so the agent can read and act from chat immediately.

Composio also exposes Facebook to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect Facebook in the browser, and the 39 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.

Troubleshooting

Hermes paired but still can't use Facebook

Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.

Connection succeeds but no tools appear

Reconnect Facebook from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.

"Tool schema not loaded yet" error when calling Facebook tools

Facebook tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Facebook call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.

Facebook returns 403 or "permission denied" on one action while others work

Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.

Facebook returns error code 100 with "Unsupported get request" or "(#100) Object does not exist" on a Page call

Almost always a placeholder Page id. An agent that has not listed anything yet will invent something like YOUR_PAGE_ID or a plausible numeric string, and because the shape is valid the call reaches Facebook and comes back as a missing object rather than a bad argument. The fix is to list first and act second: facebook_list_managed_pages returns the real ids and names, and facebook_get_page_details confirms you have the one you meant. The second cause is a Page you did not include at consent time, which produces the same error because the connection genuinely cannot see it. Reconnect from the dashboard and tick the Page. Note that on a manual build this same error usually means you passed a user token where a Page Access Token was needed; that cause does not apply here, because the hosted connection handles the token exchange.

Ask the agent to diagnose it:

Run facebook_list_managed_pages and show me every Page id and name you can see. Then run facebook_get_page_details on the one I name. Do not retry the failing call until both have returned.
Facebook returns 403 or "(#200) Permissions error" when publishing, while reads work

Reading a Page and posting to it are different permissions, so a connection can list your Pages, pull insights, and then fail on the first publish. Two things cause it. The first is a partial approval: Facebook's consent screen lets you decline individual permissions, and declining the publishing one leaves a connection that looks healthy until a write is attempted. Reconnect and accept the full set. The second is your own role on the Page: Facebook requires a role with content permissions to publish, so an account with analyst access can read insights and never post. Check the Page's access settings in Meta Business Suite. facebook_get_page_roles shows what the connected identity holds.

Ask the agent to diagnose it:

Run facebook_get_page_roles for the Page I name and tell me what role the connected account has. Then report the exact error body from the failed publish, including the code and error_subcode.
A Facebook tool returns "tool not found", or the agent asks for a Meta Ads tool on this connection

Two different things produce this. If the name looks right, the tool catalog had not loaded when the first call went out; schemas load on demand, so retrying once normally fixes it. If the agent is reaching for something like metaads_get_insights or a campaign tool, the problem is that it is on the wrong integration. Ad campaigns, ad sets, creatives, and ad spend live on the separate Meta Ads connection, and the Facebook tools here cover Pages, posts, comments, photos, videos, and Messenger. Connect Meta Ads as well if you need both, and say which surface you mean in the prompt.

Ask the agent to diagnose it:

List the Facebook tools you actually have access to. Tell me which one posts to a Page, and whether you also have any Meta Ads tools available.
OAuth finished in the browser but the account is still missing

Try reconnecting Facebook and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.

FAQ

Is there a Hermes Agent Facebook integration?

Yes. ClawLink is the fastest way to connect Hermes to Facebook: link your Facebook account once in the browser and Hermes Agent can call the Facebook API through 39 ready-made tools — no custom code or token handling.

How do I connect Facebook to Hermes with ClawLink?

Install the plugin with hermes plugins install ClawLink-HQ/hermes-plugin --enable, then pair once: run hermes clawlink begin, approve the link in your browser, and run hermes clawlink finish. Connect Facebook in the dashboard and Hermes can use it from the next message — no config files or API keys to manage.

How long does it take to connect Facebook to Hermes Agent?

About two minutes. Sign in, click Connect next to Facebook in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.

Why use ClawLink instead of wiring Facebook up myself?

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Facebook working from chat.

Do I need a Facebook developer app to connect Facebook to an AI agent?

Not for this connection. The requirement is real when you build the integration yourself, because Meta issues tokens to apps rather than to people, so a DIY route means registering an app, adding Facebook Login, requesting the permissions your calls need, and going through App Review before anyone outside your test list can use it. ClawLink connects through an app that is already registered, so what you do instead is approve access on Facebook's own consent screen and pick the Pages you want to include. The permission model does not change: Facebook still decides what the grant covers and still lets you revoke it from your account's Business Integrations settings.

Do I have to deal with Page Access Tokens?

No, and this is the part that trips up most manual builds. Publishing to a Page needs a Page Access Token rather than a user token, which is why so many Stack Overflow answers about error 100 end with "switch to a Page Access Token". That exchange happens inside the hosted connection. From chat you name the Page and call the tool; there is no token type for you to pick, and nothing expires that you have to notice and rebuild.

Which Pages can the agent reach?

Only the ones you granted during sign-in, and only if your Facebook account has a role on them. Facebook's consent screen shows a Page picker, and unticking a Page there keeps it out of the connection permanently until you reconnect. Ask the agent to run facebook_list_managed_pages first: whatever comes back is the complete list of what it can touch, which is the fastest way to confirm the connection matches what you intended.

Is it safe to connect a Facebook Page to an AI agent?

The mechanics worth checking are these. The grant is scoped to the Pages you selected, so a Page you did not tick is not reachable. Nothing about your login is stored: the connection holds an authorization, not a password, and Facebook lists it under Business Integrations in your settings where you can revoke it without involving us. The agent's reach is the 39 named tools on this page rather than an open API session, and the ones that write are individually named, including facebook_create_post, facebook_delete_post, and facebook_send_message. If you want a read-only period while you build trust, say so in the prompt and ask the agent to draft posts for approval rather than publish them; facebook_get_scheduled_posts and facebook_publish_scheduled_post make a review step easy to keep.

Hermes paired but still can't use Facebook

Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.