How to connect Baselinker to Hermes Agent
Connect BaseLinker to Hermes Agent, the AI assistant (not the Hermes courier): paste one BaseLinker API token and 106 tools work from chat. Stored server-side.


BaseLinker is a comprehensive e-commerce management platform that integrates with various marketplaces, online stores, carriers, and accounting systems to streamline order processing, inventory management, and sales automation.. Once connected, Hermes Agent can read and act on Baselinker from chat — pairing, token refresh, and tool wiring handled for you.
Most guides for giving Hermes Agent Baselinker 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 Baselinker setup: pair once in the browser and your always-on Hermes agent can act on Baselinker 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 Baselinker.
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 Baselinker
Paste your API key in the dashboard.
- 3
Use it from chat
Ask Hermes Agent: "What can you do with Baselinker?"
The whole pairing handshake. Run these once, then paste your BaseLinker token in the dashboard:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin # approve the link in your browser
hermes clawlink finish
hermes clawlink testThe token itself comes from BaseLinker first: Account → My Account → API → copy or generate. You still generate it; the difference is that it then lives server-side instead of in an env file on your machine.
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 Baselinker is connected in the dashboard, that agent calls the same 106 Baselinker tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.
Baselinker MCP for Hermes
Looking for a Baselinker MCP server for Hermes Agent? ClawLink connects Baselinker to Hermes Agent and exposes 106 Baselinker tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw Baselinker integration works the same way.
BaseLinker's API needs a token, full stop. The search answers are right about that, and they are wrong about everything after it: they assume you will wire the token into an MCP server or tool scripts yourself, and they answer the word 'Hermes' with the courier. This page is about Hermes Agent, the AI assistant. You generate the token once in BaseLinker (Account → My Account → API), paste it into a hosted setup page, and the 106 BaseLinker tools work from chat while the token sits server-side. The custody changes; the token does not disappear.
What the Hermes Agent Baselinker integration can do
106 Baselinker 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 Baselinker tools for Hermes
| Tool | What it does |
|---|---|
Add inventory baselinker_add_inventory | Add or update a BaseLinker catalog (inventory) |
Add inventory category baselinker_add_inventory_category | Add or update a category in the BaseLinker catalog |
Add inventory document baselinker_add_inventory_document | Create a new inventory document in BaseLinker storage |
Add inventory manufacturer baselinker_add_inventory_manufacturer | Add or update a manufacturer in the BaseLinker catalog |
Get connect integration contractors baselinker_get_connect_integration_contractors | Retrieve a list of contractors connected to a selected Base Connect integration |
Get connect integrations baselinker_get_connect_integrations | Retrieve a list of all Base Connect integrations on this account |
Get courier accounts baselinker_get_courier_accounts | Retrieve the list of accounts connected to a given courier |
Get courier fields baselinker_get_courier_fields | Retrieve the form fields required for creating shipments with a specific courier |
Get courier packages status history baselinker_get_courier_packages_status_history | Retrieve the history of status changes for courier packages |
Get couriers list baselinker_get_couriers_list | Retrieve a list of available couriers from BaseLinker |
Get external storage products quantity baselinker_get_external_storage_products_quantity | Retrieve stock quantities from an external storage (shop/wholesaler) connected to BaseLinker |
Get external storages list baselinker_get_external_storages_list | Retrieve a list of external storages (shops, warehouses, wholesalers) connected to BaseLinker that can be referenced via API |
Get inventories baselinker_get_inventories | Retrieve a list of catalogs (inventories) available in the BaseLinker storage |
Get inventory available text field keys baselinker_get_inventory_available_text_field_keys | Retrieve a list of product text fields that can be overwritten for a specific integration |
Get inventory categories baselinker_get_inventory_categories | Retrieve a list of categories for a BaseLinker catalog |
Get inventory document items baselinker_get_inventory_document_items | Retrieve items from inventory documents in BaseLinker |
Get inventory document series baselinker_get_inventory_document_series | Retrieve available inventory document series |
Get inventory documents baselinker_get_inventory_documents | Retrieve a list of inventory documents |
Get inventory extra fields baselinker_get_inventory_extra_fields | Retrieve extra fields defined for BaseLinker catalog inventory items |
Get inventory integrations baselinker_get_inventory_integrations | Retrieve a list of integrations where text values in the catalog can be overwritten |
Get inventory manufacturers baselinker_get_inventory_manufacturers | Retrieve a list of manufacturers from the BaseLinker catalog |
Get inventory payers baselinker_get_inventory_payers | Retrieve a list of payers available in BaseLinker storage |
Get inventory price groups baselinker_get_inventory_price_groups | Retrieve price groups existing in BaseLinker storage |
Get inventory printout templates baselinker_get_inventory_printout_templates | Retrieve a list of all configured printout templates available for inventory (products) |
Get inventory product logs baselinker_get_inventory_product_logs | Retrieve a list of events related to product changes in the BaseLinker catalog |
Get inventory products data baselinker_get_inventory_products_data | Retrieve detailed data for selected products from the BaseLinker inventory |
Get inventory products list baselinker_get_inventory_products_list | Retrieve basic data of chosen products from BaseLinker catalogs |
Get inventory products prices baselinker_get_inventory_products_prices | Retrieve gross prices of products from BaseLinker inventories |
Get inventory products stock baselinker_get_inventory_products_stock | Retrieve stock data of products from BaseLinker catalogs |
Get inventory purchase order items baselinker_get_inventory_purchase_order_items | Retrieve items from a specific purchase order in BaseLinker |
Try it: find the Baselinker tool you need
Browse the 30 Baselinker tools
Click any tool to see exactly what Hermes can do and copy a ready-to-use prompt.
Example prompts
Use baselinker_get_courier_packages_status_history for order <id> and summarise the latest status events in plain language.
List products with baselinker_get_inventory_products_list for <catalog id> and show current stock with baselinker_get_inventory_products_stock, flagging anything below its reserve.
Pull baselinker_get_couriers_list and the fields for the main courier with baselinker_get_courier_fields so we can see what a shipment needs.
How the BaseLinker tools behave
The 106 tools are organized around three families; these are the details that matter.
- Courier data is first-class. Courier lists, accounts, form fields, and package status history are all separate tools.
- Inventory is a whole family. Products, stock, prices, categories, documents, manufacturers, price groups, payers, and printout templates each have their own read tools.
- Base Connect is readable.
baselinker_get_connect_integrationsandbaselinker_get_connect_integration_contractorslist what the account has wired up. - Writes exist but stay explicit.
baselinker_add_inventoryand its document, category, and manufacturer variants change catalog data; confirm before executing.
ClawLink vs. building it yourself
The alternative to ClawLink is usually manual API key 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 Baselinker working from chat.
| Manual | ClawLink | |
|---|---|---|
| Credential handling | Collect, validate, store, and rotate the Baselinker API key yourself, then make sure every tool call uses the right account. | Users complete the hosted ClawLink setup once and the connected Baselinker account becomes available to the agent without you building credential management. |
| Ongoing maintenance | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for Baselinker. | 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 Baselinker actions to the runtime in a format your agent can reliably use. | 106 tools for Baselinker are already exposed through ClawLink, so the agent can read and act from chat immediately. |
ClawLink vs. Composio
Composio also exposes Baselinker 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 Baselinker in the browser, and the 106 tools above work from chat. There is no SDK and no config file, and the Baselinker key you paste at setup is stored server-side rather than kept in your environment. Choosing between them? Read the full Composio alternatives comparison.
Troubleshooting
Hermes paired but still can't use Baselinker
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 Baselinker 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 Baselinker tools
Baselinker 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 Baselinker 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.
Baselinker 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.
BaseLinker returns 403 or "insufficient permissions"
The engines teach four causes: the token's scope restricts the endpoint, a sub-account restriction on what the token may touch, the X-BLToken header being wrong or missing, and a token that needs regenerating from the main admin account. The full-access-token versus scoped-token model is the mental model to keep: a scoped token rejects what is outside its scope, so check the token's scope before assuming the connection is broken.
Ask the agent to diagnose it:
Quote the exact error from the failed BaseLinker call. Then tell me which BaseLinker method you called and whether you know the token's scope. Do not retry the call yet.BaseLinker hits 429 or rate limits
The taught numbers: 100 requests per minute by default, paid Accelerations raising that up to 500, and capped endpoints, with getOrders returning at most 100 records per call. An agent enumerating orders walks straight into that wall. Narrow the work: date-bounded queries, fewer records per call, and the agent reporting what it got before continuing.
Ask the agent to diagnose it:
Tell me how many BaseLinker calls you made in the last minute and which method you were calling. Quote the error verbatim. Do not call BaseLinker again until I reply.BaseLinker results look incomplete
When calls succeed but data comes back short, the taught causes are the token's scope and sub-account restrictions: a scoped token or a restricted sub-account sees a subset, and lists end at that boundary rather than erroring. Ask the agent which token scope it is acting under and whether the endpoint returned a count or a cap marker, which distinguishes a scope limit from a rate limit.
Ask the agent to diagnose it:
Tell me which BaseLinker method returned the short list and what count it reported versus what you expected. Do not retry the call yet.API key setup works but results look incomplete
Double-check that the API key for Baselinker has the right scopes or account access. A valid key can still be too limited for some reads or writes.
FAQ
Is there a Hermes Agent Baselinker integration?
Yes. ClawLink is the fastest way to connect Hermes to Baselinker: link your Baselinker account once in the browser and Hermes Agent can call the Baselinker API through 106 ready-made tools — no custom code or token handling.
How do I connect Baselinker 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 Baselinker in the dashboard and Hermes can use it from the next message — no config files, and the Baselinker key you paste is stored server-side instead of in your environment.
How long does it take to connect Baselinker to Hermes Agent?
About two minutes. Sign in, click Connect next to Baselinker in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.
Why use ClawLink instead of wiring Baselinker up myself?
The alternative to ClawLink is usually manual API key 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 Baselinker working from chat.
Which Hermes is this?
Hermes Agent, the AI assistant. The courier named Hermes, Evri in the UK, is a different product, and the engines answer the connect query with the courier unless the page disambiguates. If you are connecting a parcel carrier inside BaseLinker's dashboard, that is BaseLinker's own carrier setup, not this integration.
What token do I need?
The BaseLinker API token from Account → My Account → API. You still generate it: the engines and this page agree a token is unavoidable. What this setup changes is who holds it, so the token never sits in an environment file or a client config on your machine.
What can the agent do in BaseLinker?
Courier accounts, courier lists and their form fields, package status history, inventories and their products, stock, categories, documents, manufacturers, price groups, payers, external storages and their quantities, and Base Connect integrations. It is an e-commerce operations surface: orders, stock, and carrier state across the shops you have wired up.
Is it safe to hand BaseLinker a token?
The engines teach least privilege, human approval for writes, and scoped middleware over raw master keys. Here the token is server-side and revocable from the dashboard, so the practical rules are: generate the token with the narrowest access your work needs, keep write prompts explicit, and disconnect in the dashboard when done.
Hermes paired but still can't use Baselinker
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 Cloudcart integration
CloudCart is an e-commerce platform that enables businesses to create and manage online stores efficiently.
Hermes Shippo integration
Generate shipping labels, track packages, and manage fulfillment
Hermes Zoho Inventory integration
Manage stock levels, orders, warehouses, and fulfillment