Skip to Content
APIs & ToolsMCPAuthentication

Admin MCP authentication

Admin MCP uses the same OAuth 2.0 access tokens as the Admin REST API. There is no separate MCP API key.

For the authorize → token → resource walkthrough, see the Authentication guide. This page covers what Admin MCP adds on top of that flow.

OAuth endpoints

EndpointURL
Authorizationhttps://account.finqu.com/oauth2/authorize
Tokenhttps://account.finqu.com/oauth2/access_token
Resourcehttps://account.finqu.com/oauth2/resource
Authorization server metadatahttps://account.finqu.com/.well-known/oauth-authorization-server
Admin MCPhttps://mcp.finqu.com/mcp

Supported grants include authorization_code, refresh_token, and client_credentials. PKCE S256 is advertised for public clients. See Discovery for RFC 8414 and RFC 9728.

Send the access token on every MCP request:

Authorization: Bearer YOUR_ACCESS_TOKEN

Discovery

Authorization server metadata (RFC 8414) is public at:

https://account.finqu.com/.well-known/oauth-authorization-server

MCP OAuth clients start at the Admin MCP URL:

  1. GET or POST https://mcp.finqu.com/mcp without Authorization
  2. Read WWW-Authenticate for resource_metadata (RFC 9728)
  3. Fetch protected-resource metadata (resource, authorization_servers)
  4. Run authorization code plus PKCE against https://account.finqu.com

Protected-resource metadata is published at:

https://mcp.finqu.com/.well-known/oauth-protected-resource/mcp

The same document is also served at /.well-known/oauth-protected-resource. It identifies the resource and the authorization server:

{ "resource": "https://mcp.finqu.com/mcp", "authorization_servers": ["https://account.finqu.com"], "bearer_methods_supported": ["header"], "scopes_supported": [ "profile", "sales_channel_read", "sales_channel_write", "catalog_read", "catalog_write", "sales_read", "sales_write", "customers_read", "customers_write", "partner:clients_read", "partner:clients_write" ], "resource_documentation": "https://developers.finqu.com" }

That scopes_supported list is what discovery advertises, including partner scopes. A token may also carry the other Admin REST scopes in Scopes (marketing_*, themes_*, media_*, and the rest). Those scopes still gate which admin tool calls succeed. Partner tools are not part of this guide.

MCP URL

Connect every merchant to:

https://mcp.finqu.com/mcp

The OAuth resource response (GET https://account.finqu.com/oauth2/resource) includes merchant.endpoints.admin, merchant.endpoints.api, and a per-server merchant.endpoints.mcp. Those hosts are for the admin UI, the REST API, and internal routing. Admin MCP clients use https://mcp.finqu.com/mcp only.

Admin MCP validates the access token and forwards it when admin tools call the Admin REST API. Scopes on the token therefore apply to both MCP tools and the underlying HTTP calls.

Sales channel

OAuth tokens are merchant-scoped. Many admin tools are channel-scoped: their schemas advertise an integer channel_id. Call list_channels to discover ids when a tool requires one. get_profile and list_channels do not take channel_id.

list_channels requires profile, sales_channel_read, or sales_channel_write. Without one of those scopes the tool returns insufficient_scope.

Details and error text are on Admin MCP.

Scopes

Request the minimum REST scopes your agent needs. Write scopes include the matching read permission.

Admin MCP maps scopes to which tool calls succeed as follows. All platform admin tools still appear in tools/list for merchant OAuth tokens. Legacy aliases products_* → catalog_* and orders_* → sales_* still work.

ScopeAdmin MCP tool groups
profilelist_channels (also granted by sales_channel_read / sales_channel_write). get_profile is available on any merchant token
catalog_read / catalog_writeProducts, relations, product groups, manufacturers, taxes, deliverers, reviews
inventories_read / inventories_writeInventory status, transfers, warehouses (list_storages)
customers_read / customers_writeCustomers, groups, segments, tags
sales_read / sales_writeOrders, refunds, order notes
marketing_read / marketing_writeDiscounts, marketing messages, email designer, social posts (webstore and pos)
discounts_read / discounts_writeSame marketing permissions as marketing_read / marketing_write
analytics_read / analytics_writeAnalytics, forecasts, keyword/content SEO tools
media_read / media_writeImages and videos
themes_read / themes_writeTheme files, sections, blocks, settings, section groups
settings_read / settings_writePolicies; merchant and billing address
sales_channel_read / sales_channel_writelist_channels, navigation, pages, articles, channel address and organization category, list_calendar_events

A write scope is required for create/update/delete tools in that group. For example catalog_read allows get_product and search_products but not create_product. Creating or editing a marketing message requires marketing_write (or discounts_write, which grants the same marketing permissions).

Social tools succeed when the token has any of marketing view, create, or edit, so marketing_read covers them. Marketing messages and social tools run on webstore and pos channels.

The user’s admin role still applies: a staff user without product edit permission cannot call write product tools even if the token has catalog_write.

Some tools also require a plan feature (for example inventory transfers and product relation links). Those tools error at call time if the merchant’s plan does not include the feature.

See Tools for the full catalog.

Client approval and rate limits

  • The OAuth client must be approved for the user (or auto-enabled). An unapproved client is rejected when an admin tool call is forwarded.
  • If the client has a configured rate limit, excess forwarded tool calls return 429 with the message Too many requests.

Errors

Unauthenticated or invalid requests to https://mcp.finqu.com/mcp return HTTP 401, WWW-Authenticate, and:

{ "error": "unauthorized", "message": "Authorization header required." }

Typical messages:

MessageCause
Authorization header required.Missing Authorization, or the header is not Bearer …
Invalid access token.Token failed OAuth validation
Merchant account is not active.Merchant on the token is not active
User is not an authorized staff member of this merchant.HTTP 403. The user is not staff on that merchant

Missing or foreign channel_id values are MCP tool errors, not HTTP 401 or 403. See Sales channel.

See Discovery for RFC 8414 / RFC 9728 details.