How to connect Contentful to Hermes Agent
Connect Contentful to Hermes with ClawLink via hosted OAuth, no Contentful PAT to create, scope, or rotate. 106 tools your agent can call from chat.


Headless CMS for structured content and digital experiences. Once connected, Hermes Agent can read and act on Contentful from chat — pairing, token refresh, and tool wiring handled for you.
Most guides for giving Hermes Agent Contentful 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 Contentful setup: pair once in the browser and your always-on Hermes agent can act on Contentful 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.
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 Contentful.
1Install and pair
Install the ClawLink plugin, then pair Hermes with a one-time browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable- 2
Connect Contentful
One-click OAuth in the dashboard.
- 3
Use it from chat
Ask Hermes Agent: "What can you do with Contentful?"
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 testThen connect Contentful in the ClawLink dashboard — a one-click OAuth approval, no API keys.
Verify the connection by asking Hermes:
Use contentful_get_content_types for the environment I name and list the content types. Do not fetch entries yet, I want the top level first.
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 loginlogin opens the same browser approval and stores a credential locally. Once Contentful is connected in the dashboard, that agent calls the same 106 Contentful tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.
Contentful MCP for Hermes
Looking for a Contentful MCP server for Hermes Agent? ClawLink connects Contentful to Hermes Agent and exposes 106 Contentful tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw Contentful integration works the same way.
Contentful is one of the pages where the headline claim is literally true: this connection uses hosted OAuth, so no Contentful personal access token is ever created, and no PAT expiry or scope audit sits on your to-do list. The manual path search results teach is the opposite of that: generate a CMA token, run an npx MCP server, keep the token current. Here the plugin pairing happens once, Contentful authorization happens in the browser, and the 106 tools below appear in chat. The PAT-shaped questions people search for, expiry, scope inheritance, delivery-token-vs-management-token mistakes, all of them stop existing once there is no token for you to manage.
What the Hermes Agent Contentful integration can do
106 Contentful 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 106.
30 of 106 Contentful tools for Hermes
| Tool | What it does |
|---|---|
Activate content type contentful_activate_content_type | Activate (publish) a content type |
Archive asset contentful_archive_asset | Archive an asset |
Archive entry contentful_archive_entry | Archive an entry |
Archive release contentful_archive_release | Archive a release |
Get app definition contentful_get_app_definition | Retrieve details of a specific app definition |
Get asset contentful_get_asset | Retrieve a single asset by ID |
Get content types contentful_get_content_types | Retrieve all content types in an environment |
Get editor interface contentful_get_editor_interface | Retrieve editor interface configuration |
Get app bundle contentful_get_app_bundle | Retrieves details of a specific app bundle by its ID |
Get content type snapshot contentful_get_content_type_snapshot | Retrieve a snapshot of a content type by snapshot ID |
Get content type snapshots contentful_get_content_type_snapshots | Get all snapshots of a content type in Contentful |
Get entry comment contentful_get_entry_comment | Retrieve a specific comment from an entry in Contentful |
Get entry references contentful_get_entry_references | Retrieve references to a specific entry in Contentful |
Get entry snapshots contentful_get_entry_snapshots | Get all snapshots of an entry in Contentful |
Get environment contentful_get_environment | Retrieve details of a specific environment by its ID within a space |
Get organization contentful_get_organization | Retrieves details of a specific organization by its ID |
Get organization access grant contentful_get_organization_access_grant | Retrieves the access grant status for a specific organization |
Get organizations contentful_get_organizations | Get all organizations an account has access to in Contentful |
Get organizations AI providers contentful_get_organizations_ai_providers | Retrieves all AI providers configured for an organization in Contentful |
Get organizations app actions categories contentful_get_organizations_app_actions_categories | Retrieves app action categories for a Contentful organization |
Get organizations app def event subscription contentful_get_organizations_app_def_event_subscription | Retrieve details of an app event subscription by organization and app definition ID |
Get organizations app definitions contentful_get_organizations_app_definitions | Retrieves all app definitions for a specific organization |
Get organizations app definitions access grants contentful_get_organizations_app_definitions_access_grants | Get all app access grants for a specific app definition within an organization |
Get organizations app definitions actions contentful_get_organizations_app_definitions_actions | Get all actions of an app definition within an organization |
Get organizations app definitions actions2 contentful_get_organizations_app_definitions_actions2 | Read a specific app action from an app definition within an organization |
Get organizations app definitions app bundles contentful_get_organizations_app_definitions_app_bundles | Get all app bundles for a specific app definition within an organization |
Get organizations app definitions functions contentful_get_organizations_app_definitions_functions | Get all functions of an app definition within an organization |
Get organizations app definitions keys contentful_get_organizations_app_definitions_keys | Retrieve all app keys for a specific app definition in a Contentful organization |
Get organizations app definitions signing secret contentful_get_organizations_app_definitions_signing_secret | Retrieve the current app signing secret for an app definition |
Get organizations enablements contentful_get_organizations_enablements | Retrieves feature enablements for a specific organization in Contentful |
Try it: find the Contentful tool you need
Browse the 30 Contentful tools
Click any tool to see exactly what Hermes can do and copy a ready-to-use prompt.
Example prompts
Use contentful_get_content_types for the environment I name and list the content types. Do not fetch entries yet, I want the top level first.
Pull the snapshots for entry <id> with contentful_get_entry_snapshots and the comments with contentful_get_entry_comment. Tell me what changed in the last week and what people are discussing.
Use contentful_get_entry_references for entry <id> and tell me which other entries link to it. Flag anything that would break if this entry was archived.
List the app definitions in my organization with contentful_get_organizations_app_definitions and their functions and keys. Tell me which apps hold signing secrets and when they were last touched.
How the Contentful tools behave
Details that decide whether a Contentful prompt is a quick answer or a long crawl.
- Ids, not names, and space plus environment. Content types, entries, assets, and environments are addressed by id, and most objects live in a space and an environment pair. An id from documentation fails exactly like a typo, and a missing environment id fails like a permission error.
- Environments are separate worlds. Roles and membership are per space, and content is per environment. The agent can only see what the connected account can see, so confirm the environment in the prompt when you are not getting expected entries.
- Snapshots are the version history.
contentful_get_entry_snapshotsandcontentful_get_content_type_snapshotsread past versions, which is how an agent audits what changed without the audit log. - Comments and references are entry-level.
contentful_get_entry_commentandcontentful_get_entry_referencesare the cheapest way to answer "what is waiting on a decision" and "what depends on this". - Writes are shared and visible. Activating a content type or archiving an entry, asset, or release lands in content other people are working in, so a confirmation step in the prompt is worth it.
- App definitions are org-level. The
contentful_get_organizations_app_*family reads the extension surface: app bundles, functions, keys, signing secrets, and access grants. That is where the admin questions live.
ClawLink vs. building it yourself
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 Contentful working from chat.
| Manual | ClawLink | |
|---|---|---|
| Connection flow | Register a Contentful app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift. | Users connect Contentful through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code. |
| Ongoing maintenance | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for Contentful. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| Agent usability | You still need to expose the right Contentful actions to the runtime in a format your agent can reliably use. | 106 tools for Contentful are already exposed through ClawLink, so the agent can read and act from chat immediately. |
ClawLink vs. Composio
Composio also exposes Contentful 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 Contentful in the browser, and the 106 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 Contentful
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 Contentful 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 Contentful tools
Contentful 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 Contentful 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.
Contentful 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.
Contentful returns 403 or insufficient permissions on some calls while others work
This is the shape the engines answer with Contentful-side permission logic, and the answers are right, so start there: an entry or asset lives in a space and an environment, and the connected account must have roles in that space and be a member of that environment. Using a Delivery token for management writes, or an account missing org-level roles, produces exactly this error. Two causes are specific to hosted agents and worth checking before re-authorizing anything. The first is placeholder values: an id like YOUR_ID or example entry id from documentation fails as a permission error because the call targets an object you do not have, and the error does not say so. The second is environment drift: the call targets environment A while the connection and the content you care about are in environment B. Have the agent tell you the exact space, environment, and id from the failed call before changing any roles.
Ask the agent to diagnose it:
Call contentful_get_content_types and contentful_get_environment for the space and environment you were using. Tell me the exact error body from the failed call and which id it mentioned. Do not retry the failed call yet.A Contentful tool name is not found, or no Contentful tools appear at all
Two different failures again. If Hermes shows no Contentful tools, the connection or pairing is incomplete: confirm the plugin was installed with --enable, both hermes clawlink begin and hermes clawlink finish ran, and Contentful shows as connected. If most tools work and one name fails, the name is wrong, and the error lists the closest real ones. There is also the first-call timing case unique to this setup: schemas load on demand, so the opening Contentful call in a fresh session can arrive before the catalog and needs one retry. The advice search results give for this symptom, wrong token type and local config files, assumes a server you are not running.
Ask the agent to diagnose it:
List the Contentful tools you have access to. If there are none, say so plainly and do not call Contentful again. If there are, tell me which one reads an entry by id and use that exact name.Contentful starts returning rate-limit or throttling errors mid-task
Contentful rate-limits API traffic by plan and endpoint, and an agent walking a whole space is the traffic shape that meets it: every content type, then every entry, one call at a time. The fix is not to retry immediately, it is to change the shape of the work: ask for one environment or one content type instead of a full audit, and have the agent say what it intends to enumerate before it starts. If a bulk pass is genuinely needed, run it in stages across turns. The response headers describe the remaining allowance, so the agent can report where it stands instead of guessing.
Ask the agent to diagnose it:
Tell me how many Contentful calls you have made in the last minute and what you were enumerating. Quote any rate-limit headers from the last response. Do not call Contentful again until I reply.OAuth finished in the browser but the account is still missing
Try reconnecting Contentful 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 Contentful integration?
Yes. ClawLink is the fastest way to connect Hermes to Contentful: link your Contentful account once in the browser and Hermes Agent can call the Contentful API through 106 ready-made tools — no custom code or token handling.
How do I connect Contentful 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 Contentful 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 Contentful to Hermes Agent?
About two minutes. Sign in, click Connect next to Contentful in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.
Why use ClawLink instead of wiring Contentful 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 Contentful working from chat.
Do I still need a Contentful personal access token?
No. This connection authenticates through hosted OAuth, so there is no PAT for you to generate, and no token file on the machine running Hermes. The official Contentful MCP server is where the token requirement lives: its setup teaches you to create a Contentful Management API token and run npx @contentful/mcp-server yourself. That is the path this page removes. One search shape worth separating: when people ask about Contentful "without an API key", Google sometimes answers about the LLM vendor key instead, because Contentful's own AI skills need one. This page's claim is narrower and true: no Contentful credential is yours to manage.
What can the agent actually do in Contentful?
Read and write the content surface a team argues about: entries and their comments, references, and version snapshots; assets and their archives; content types and their snapshots; environments; and the organization-level app definitions, app bundles, functions, and signing secrets that Contentful apps are built from. The reads dominate the tool list, which is the safe default. The writes that exist, activating a content type or archiving an entry, asset, or release, change shared content, so treat them as changes people will see. Pulling an entry's references and snapshots is the underrated part: that is how an agent grounds itself in what content depends on what before touching anything.
How is this different from the official Contentful MCP server?
The official contentful-mcp-server is a real product and it is the answer search engines give for "best contentful mcp server". It is also a local-server setup: you install it, supply a CMA token, and point a client at it. The capability overlap is real, so the choice is about operations. Here there is no server process to keep alive, no token lifecycle to own, and the connection shows up alongside your other accounts with one place to revoke. The roundup queries will keep being won by Contentful's own docs, and that is fine; the connect query is what this page answers.
The agent says a Contentful tool is not found
The searches for this error teach local-server fixes: the wrong token type, a claude_desktop_config.json typo, a stale npx cache. None of those apply here because nothing runs locally. On this setup a missing tool is almost always a timing case: schemas load on demand, so the first Contentful call in a fresh session can arrive before the catalog and needs one retry. If tools stay missing after that, the pairing is the suspect, and the fix is checking that both hermes clawlink begin and hermes clawlink finish ran and that Contentful shows as connected in the dashboard.
Hermes paired but still can't use Contentful
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.
Related
Hermes GitHub integration
Manage repositories, issues, pull requests, and workflows
Connect PagerDuty
Manage incidents, on-call schedules, and services
Connect SafetyCulture
SafetyCulture (formerly iAuditor) is a workplace operations platform that enables teams to conduct digital inspections, manage audits, track issues, schedule tasks, and maintain compliance through mobile and web applications.