Overview
Ecomhint runs one remote MCP server for Claude, ChatGPT, and compatible clients. Connect once with your Ecomhint account. The connection can access only the audits, findings, and tasks that account owns, and every action stays inside Ecomhint.
Credits work on any store. Name it in the chat and the tools use it; nothing has to be set up in the dashboard first. Once your newest audit is in the conversation, you can open any finding with its evidence and fix steps, keep the task list current, and start the next audit without leaving the chat.
Server endpoint
Use the same Streamable HTTP endpoint in every supported client.
https://ecomhint.com/api/mcpThe easiest place to copy it is your MCP page, where you can also review active clients and your shared audit credits.
Connect Claude
- In Claude, open Customize, then Connectors.
- Select +, choose Add custom connector, and paste the endpoint above.
- Add the connector, select Connect, and sign in to your Ecomhint account.
- Review and approve the requested permissions.
- In a conversation, use +, then Connectors, to enable Ecomhint.
On a Claude Team or Enterprise workspace, an Owner must add the custom connector under Organization settings first; members then connect their own Ecomhint accounts. See the current Claude instructions if the labels in your account differ.
Connect ChatGPT
- Open Settings, choose Security and login, and enable Developer mode.
- Open ChatGPT Plugins, select +, and enter the Ecomhint name and description.
- Under Connection, choose a public endpoint and paste the URL above.
- Create the connection and review the discovered tools and permissions.
- Add Ecomhint from the tools menu in a new conversation.
- On the first protected action, sign in to Ecomhint and approve access.
Until the public Ecomhint listing is approved, this is a developer-mode setup. Developer mode availability depends on your ChatGPT account and workspace policy. See the official OpenAI instructions if the interface changes.
Headless clients and API keys
Prefer OAuth whenever the client can open a browser, as Claude Code and Cursor can. For a client that cannot, such as a script or a CI job, create a named key under MCP. The full key is shown once.
- Send it as
Authorization: Bearer ehk_…. - A key signs in as your Ecomhint account, not as one store.
- A key can do everything an approved client can, starting audits included, until you revoke it.
- Keep it outside source control and logs. Create separate named keys for separate clients.
- You can have up to five active keys.
Permissions
ecomhint.readRead your stores, audit credits, reports, findings, progress, audit status, and tasks. It cannot add or edit a task itself. Reading the task list does bring in what your newest audit found and marks the tasks it proved fixed as verified.
ecomhint.auditStart or cancel an audit, switch the active store, pin the pages an audit checks, and add or change tasks. Starting a new audit spends one of your shared audit credits.
The sign-in screen can also ask to stay connected. That lets the client renew its access on its own, so it does not ask you to sign in again each time the access runs out. Revoking the client ends it.
An audit reads the public storefront the way a visitor does, and everything a tool writes lands inside your Ecomhint account.
What a connected client cannot do
- Reach your store admin, orders, customers, or payments.
- Accept a store login or password. Those go in Store Settings.
- Stop an audit that has already started.
- Mark a task Verified. Only a later audit does that.
- Remove a project, delete a report, or change your plan. Those stay in the dashboard.
- Run two audits at once on your account.
Stores and projects
A project in Ecomhint is one store, shown by its domain. Every store your account has audited or saved is a project, and the connection works with all of them. get_account lists them and marks the active one.
- The active store is the default. The tools use it when you name no store, and the dashboard shows it.
- Name another store and the tools use that one.
run_auditaudits it without switching the active store, so the dashboard stays where you left it. To see that audit on the web, pick the store in the project switcher. set_storeswitches the active store. The client reads the address back first and switches only after you agree. You can switch as often as you like, in the chat or on the Projects page.- Paste a product page and the audit still runs on the whole store. Audits check the pages of the last run and discover a page they have never seen. Ask the client to pin a product, collection, or cart URL when a report says a page could not be reached or the wrong page was picked. Pinning works for any of your stores.
- Store logins stay in the dashboard. Store Settings edits the project selected in the sidebar, so switch to the store first, then save its Basic Auth login or Shopify storefront password. No tool accepts one.
- Audit tasks belong to the store whose audit found them. A task you add in the chat is not tied to a store and shows in every store's list.
Example prompts
Ask in normal language, using the finding names from your own audit. These examples show what you can ask for and the tools that provide the information or make the change. The client chooses its calls based on your request and what is already in the conversation.
Understand the latest audit
“What should I fix first on my store?”
An overview of your latest audit and the fixes to start with.
Related tools: get_account, get_latest_report
“Can you explain all the primary blockers in this audit?”
An explanation of every primary blocker. If the report is already in the conversation, its blocker details are available without another read.
Related tools: get_latest_report
“Show me all the quick wins, not just the preview.”
The complete quick-win list, including findings beyond the three shown on the card.
Related tools: get_report
“How do I fix the missing rating on mobile?”
The selected finding with its page, available evidence, fix guidance, and linked task.
Related tools: get_check_result
Plan the work
“Has the store improved since the last audit?”
A comparison of what was fixed, returned, stayed open, or appeared for the first time. Requires at least two audits.
Related tools: list_reports, compare_reports
“What work is still open?”
Your open tasks, updated with findings and verified fixes from the newest audit.
Related tools: list_tasks
“Mark the mobile rating task as done.”
Marks the matching task done. A later audit must confirm the fix before it becomes verified.
Related tools: list_tasks, update_task
Run and follow an audit
“How many audit credits do I have left?”
Your remaining audit credits, shared by web and MCP, and when they reset.
Related tools: get_account
“Run a new full audit of my store now.”
Starts a full audit of your active store, or of any store URL you name. A new run spends one audit credit.
Related tools: get_account, run_audit
“Is my audit still running?”
The current phase and progress. A supported progress card can keep you updated automatically.
Related tools: get_audit_status
Work with several stores
“Audit outlet.example.com as well.”
Starts a full audit of that store. It spends one audit credit and leaves your active store and dashboard as they were.
Related tools: run_audit
“Which of my stores needs the most work?”
Each store’s newest score with its High, Medium, and Low issue counts. Every answer names the store it is about.
Related tools: get_account, list_reports
“Compare my main store with outlet.example.com.”
The newest audit of each store side by side: the score, the category scores, and the blockers each one still has.
Related tools: list_reports, get_report
“What is still open on outlet.example.com?”
That store’s task list. Tasks you added in the chat show up for every store.
Related tools: list_tasks
“Make outlet.example.com my default store.”
Reads the address back, then switches your active store once you agree. The dashboard follows.
Related tools: set_store
Finding names work better than vague references once the conversation gets long. For example, ask “Show me the evidence for the missing mobile rating” after discussing that finding.
Cards in the chat
In clients that support MCP Apps, starting an audit can show a progress card that keeps itself up to date. When the audit finishes, that card can turn into its summary. Opening your latest audit can also show the summary, with the score, issue counts, primary blockers, weakest categories, and up to three quick wins where those details are available.
Contextual actions let you continue from the part of the report you are reading. When the client supports follow-up messages, these buttons send a question into the conversation:
- Explain all blockers asks for an explanation of every primary blocker. It appears when the report contains blocker details, with the number of blockers in the label.
- How do I fix this? asks for the selected quick win with its available evidence and fix guidance.
- Show all quick wins asks for the complete list. It appears when there are more quick wins than the preview shows, with the total in the label.
- Compare with the previous audit asks what improved, regressed, or stayed open. It appears only when an earlier audit exists.
These questions continue in the chat. Reading more findings uses the report data without opening another summary card. The separate Open full report link opens the complete report on the Ecomhint website.
In clients without card support, the same audit data remains available through the conversation.
Tool reference
Fifteen tools, in the order a client discovers them. For an initial audit overview, get_account checks your account and active store, and get_latest_report opens the newest report. get_check_result provides the evidence and fix guidance for one selected finding.
Tools that read one store take an optional store URL. Without it they use your active store. Tools that take a report id work on any of your stores.
| Tool | Purpose | What it changes |
|---|---|---|
cancel_audit | Cancels an audit that has not started yet and gives its audit credit back. A running audit cannot be stopped. | Cancels a queued audit |
compare_reports | Two audits side by side: what is fixed, what came back, what is new, and what still fails. | Reads only |
create_task | Adds one task of your own to the fix-it list. It is not tied to a store, so it shows in every store’s list. | Writes tasks |
get_account | Your active store, every store on the account, the pages the next audit checks, the billing period, audit credits used and left, any audit already running, and what this connection may do. | Reads only |
get_audit_status | Where a running audit is: percentage, phase, the detail line behind it, whether it has gone quiet, whether it is overdue and may come back incomplete, and when to ask again. | Reads only |
get_check_result | One selected finding in full: what was measured, the page it was measured on, the fix steps for your platform, and its task. Clients that support it show the audit capture and the target wireframe in a finding card. | Reads only |
get_latest_report | Opens the newest audit of your active store, or of a store you name, with its priorities and an interactive summary card in clients that support it. | Reads only |
get_progress | Score and issue counts across the recent audits of one store, oldest first. Uses your active store unless you name another. | Reads only |
get_report | One audit by id, with filters and paging over its findings. It returns data without opening another summary card. | Reads only |
list_reports | The audits of one store, newest first, each with its score change and issue counts. Uses your active store unless you name another. | Reads only |
list_tasks | The fix-it list for your active store, or for a store you name. Reading it also adds what that store’s newest audit found and marks the tasks it proved fixed as verified. | Updates the task list |
run_audit | Starts one full audit of your active store, or of any store you name, and spends one audit credit. Naming a store does not switch the active store. An incomplete report can be re-run in place without spending a credit. If that store already has an audit queued or running, you get that audit back. Another store can be audited once it finishes. | Starts an audit |
set_store | Switches the active store, the one the dashboard shows and the tools use when you name no store, after reading the address back to you. | Switches the active store |
update_store_pages | Pins the product, collection, and cart page the next audit checks, for your active store or a store you name. | Sets page URLs |
update_task | Marks a task done, reopens it, dismisses it, or restores a dismissed one. | Writes tasks |
Audit credits
- Full Access includes 10 audit credits a month, any store. At $29 a month that is $2.90 per audit.
- Audits you start on the web and audits you start from a chat spend the same audit credits.
- Credits are shared across all your stores. Auditing a second store spends one credit, the same as your first.
- One audit credit is spent the moment a run is accepted.
- Your account runs one audit at a time, on the web or in a chat. Asking again for the same store while its audit is queued or running hands back that audit and costs nothing. An audit of another store is refused until the first one finishes.
- A run that fails without producing a report gives its credit back.
- A queued audit can be canceled and gives its credit back. A running one cannot be stopped.
- An eligible incomplete report can be re-run in place up to three times without spending another credit. This is for a report with pages the audit could not reach and free re-runs remaining. The new result replaces that report. A complete report cannot be re-run for free. To check that store again, run a new audit, which spends one credit.
- Unused credits do not carry over to the next billing period.
get_accountreturns how many credits are used and when they reset.
Disconnect and revoke
Remove Ecomhint in the client settings, or revoke that one client from MCP in your dashboard, where approved clients and API keys each have a Revoke button. Revoking from the dashboard takes effect at once and stops every further request from that client. Your reports, tasks, stores, and subscription stay as they are.
Troubleshooting
Subscription required
Reconnect with the account that owns the active subscription and check Plan & Billing in Ecomhint.
Store not configured
Nothing to fix in the dashboard. Name the store in your request, for example “Audit shop.example.com”, or ask the client to make it your active store and confirm the address it reads back.
No audit credits left
Your reports and tasks stay readable. The error and get_account both say when your credits reset.
An audit is already running
Your account runs one audit at a time, whether it started on the web or in a chat. Ask the client which audit is running, wait for it to finish, then start the next one. A queued audit can be canceled. A running one cannot.
A free re-run is refused
A free re-run is only for an audit that came back incomplete, up to three times per report. For a complete report, run a new audit instead. It spends one audit credit.
The dashboard shows another store
An audit started in a chat does not switch the store the dashboard shows. Pick the store in the project switcher, or ask the client to make it your active store.
Too many requests
All connections on your account share one request limit, by default about 60 requests a minute. Past it, the client gets a rate limit error that says how many seconds to wait. Wait up to a minute, then ask again.
No images in the answer
Ask about one finding by name. Report summaries leave the screenshots out on purpose, so the images come with the single finding.
No card, only text
The progress and summary cards need a client that renders them. Where that is missing you get the same answer written out, so nothing is lost.
The client asks you to sign in again
Reconnect and approve the same permissions. A sign-in expires, and a revoked or reset connection asks for a new one. In Claude, go to Customize > Connectors, find Ecomhint, and select Connect. In ChatGPT, go to ChatGPT Plugins, open Ecomhint, and connect it again.
Still stuck?
Email [email protected] with the client name and the error it displayed. Never send an access token or API key.