MCP server

The EcomSolo MCP server lets an AI assistant query your data directly. Connect it once and you can ask, in plain language:

What were my total sales and shipping per store last month?

and get a real answer computed across every Shopify store connected to your account — not a guess, and not one store at a time.

Claude answering a multi-store sales question with EcomSolo data

MCP (the Model Context Protocol) is the open standard assistants use to talk to external systems. Our server is a thin layer over the same /v1 API: identical data, identical permissions, identical rate limits.

Endpoint

https://api.ecomsolo.com/mcp

Authentication is the same API key you use everywhere else — an Authorization: Bearer esk_live_… header. See Authentication for creating one.

The server implements MCP protocol revision 2026-07-28 over Streamable HTTP. It is stateless: there is no session to establish and no handshake to complete.

Connecting

Claude Code (CLI)

One command:

claude mcp add --transport http ecomsolo https://api.ecomsolo.com/mcp \
  --header "Authorization: Bearer esk_live_YOUR_KEY"

Verify with claude mcp list — you should see ecomsolo: ✔ Connected. Then ask your question in any Claude Code session.

claude.ai and Claude Desktop

Custom connectors on claude.ai and Claude Desktop require OAuth, which this server does not offer yet — an API key cannot be entered there directly. Use Claude Code for now; OAuth support is on our roadmap.

Other clients

Any MCP client that supports Streamable HTTP and lets you set an Authorization header works: point it at the endpoint above and pass Bearer esk_live_….

What the assistant can do

Four tools are exposed:

ToolWhat it does
list_datasetsLists every queryable dataset and its fields, so the assistant can discover the data model instead of guessing field names.
run_queryRuns a SoloQL query across all your stores and returns the rows.
run_saved_reportLists your saved reports, or runs one by id — the reliable way to reproduce a number you already see in the app.
trigger_exportLists your export configurations, or triggers one. Requires a key with the exports scope.

Questions that work well

  • "Compare total sales per store for the last 30 days."
  • "Which products sold best across all my stores in July?"
  • "Run my Monthly Revenue report and summarise what changed."
  • "How much did I collect in shipping last quarter, by country?"

The assistant will usually call list_datasets first to learn the field names, then run_query. That is expected, and it is why answers are grounded in your real data rather than invented.

What it cannot do

The API is read-only. There are no tools to create, update or delete anything in your stores. An assistant connected to EcomSolo can read your data and trigger an export you have already configured — nothing else.

Exports are asynchronous: trigger_export returns a job id as soon as the job is queued, not when the file is ready. Poll with GET /v1/export-jobs/{id} to download it.

Permissions, scopes and limits

Everything that governs the REST API governs MCP identically, because it is the same code underneath:

  • Plan — the API is included on Advanced and above.
  • Scopesread_data for queries and reports, exports for triggering exports. A key missing a scope gets a clear message the assistant can relay.
  • Store restrictions — if a key is limited to certain stores, MCP sees only those stores. The assistant cannot widen that.
  • Rate limits — MCP calls count against the same per-minute budget as regular API calls. See Rate limits.
  • Revocation — revoke the key and the connection stops working immediately.

Security

Treat an MCP connection as what it is: you are granting an AI assistant read access to your business data. A few things worth knowing.

  • Create a dedicated key for the assistant rather than reusing one that is already wired into a production integration. You can then revoke it without breaking anything else.
  • Grant the narrowest scopes that do the job. If you never want the assistant triggering exports, do not give it the exports scope.
  • If the key should only see some stores, restrict it to those stores when you create it.
  • The conversation, including the data returned, goes to whichever AI provider you connected. That is inherent to the arrangement, not specific to EcomSolo — but it is worth a deliberate decision rather than a default one.

FAQ

Does this cost extra? No. MCP is part of the API, included on Advanced and above at no additional charge. There are no per-call fees.

Do I need a separate key for MCP? Technically no — any API key works. In practice yes, we recommend one, so it can be revoked independently.

Can the assistant change my Shopify data? No. The API is read-only. The only tool with any effect is trigger_export, which runs an export you configured yourself.

Which stores does it see? Every store connected to your EcomSolo account, unless the key is restricted to a subset. A single question is answered across all of them at once.

What if the assistant gets a field name wrong? It gets a validation error explaining the problem and can correct itself — usually by calling list_datasets to find the right name.