{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown","redocly_category":"MCP Server","api_domain":"MCP"},"seo":{"title":"MCP Server troubleshooting","description":"Fix Sales Layer MCP Server connection problems, including invalid_token, 401 Unauthorized, missing tools, and OAuth authorization failures.","siteUrl":"https://docs.api.saleslayer.com/","image":"/assets/sales-layer-horizontal-dark-green.224c048d0bb386d3c2683ba504140512b6233d3c6cbf706ca81e2e3f2f02dbd0.9c1bb791.svg","keywords":["Sales Layer","Sales Layer API","REST API","OpenAPI","PIM API","Product Information Management API","DAM API","Catalog API","product catalog API","product data synchronization","ecommerce integration API","ERP integration","marketplace integration","image management API","digital asset management API","API integration","Model Context Protocol","MCP server","Sales Layer MCP","AI assistant connector","PIM AI assistant"],"lang":"en-US","meta":[{"name":"og:type","content":"website"},{"name":"og:site_name","content":"Sales Layer REST API Documentation"},{"name":"og:title","content":"Sales Layer REST API Documentation"},{"name":"og:description","content":"Technical REST API docs for Sales Layer PIM, Catalog, DAM, ecommerce, ERP, and marketplace integrations."},{"name":"og:image","content":"/assets/sales-layer-horizontal-dark-green.224c048d0bb386d3c2683ba504140512b6233d3c6cbf706ca81e2e3f2f02dbd0.9c1bb791.svg"},{"name":"twitter:card","content":"summary_large_image"},{"name":"twitter:site","content":"@saleslayer"},{"name":"twitter:title","content":"Sales Layer REST API Documentation"},{"name":"twitter:description","content":"Technical REST API docs for Sales Layer PIM, Catalog, DAM, ecommerce, ERP, and marketplace integrations."},{"name":"twitter:image","content":"/assets/sales-layer-horizontal-dark-green.224c048d0bb386d3c2683ba504140512b6233d3c6cbf706ca81e2e3f2f02dbd0.9c1bb791.svg"}],"llmstxt":{"hide":false,"title":"Sales Layer REST API Documentation","description":"Technical guides and OpenAPI references for Sales Layer DAM and Catalog REST APIs.","sections":[{"title":"Guides","description":"Static API guides for authentication, headers, query parameters, responses, rate limiting, and best practices.","includeFiles":["guides/**/*.md","changelog.md"]},{"title":"API Reference","description":"OpenAPI-based references and API overview pages for Sales Layer REST APIs.","includeFiles":["apis/**/*.md","apis/**/*.yaml"]},{"title":"Postman collections","description":"Importable Postman collection and environment instructions for testing Sales Layer REST APIs.","includeFiles":["postman/**/*.md"]},{"title":"MCP server","description":"Documentation for the Sales Layer MCP Server, its tools, access profiles, and how AI assistants consume the Catalog REST API.","includeFiles":["mcp-server/**/*.md"]}]},"jsonLd":{"@context":"https://schema.org","@type":"WebSite","name":"Sales Layer REST API Documentation","url":"https://docs.api.saleslayer.com/","publisher":{"@type":"Organization","name":"Sales Layer","url":"https://www.saleslayer.com/"}}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"mcp-server-troubleshooting","__idx":0},"children":["MCP Server troubleshooting"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Connection problems with the MCP Server almost always trace back to one of a handful of causes. Work through this page before escalating."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"start-here","__idx":1},"children":["Start here"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Most failures come from a single mistake: ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["the Catalog Token was configured as a bearer token or API key instead of being entered in the Sales Layer authorization screen."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The remote server does not accept the Catalog Token as a direct credential. It exchanges it for OAuth credentials during the authorization flow. If your client configuration has an API key field filled in with the Catalog Token, clear it and reconnect using OAuth."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"connection-and-authorization","__idx":2},"children":["Connection and authorization"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"invalid_token","__idx":3},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["invalid_token"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Catalog Token was entered as an API key or bearer token in the client configuration."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Remove any API key or bearer token authentication from the client's server configuration."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Switch the authentication method to OAuth 2.0, using dynamic discovery if the client offers it."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Reconnect, and enter the Catalog Token only in the Sales Layer authorization screen."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"401-unauthorized","__idx":4},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["401 Unauthorized"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The client is not sending a valid OAuth access token, or the authorization flow never finished."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Disconnect the server in your client, reconnect, and complete the whole OAuth flow without closing the browser window early."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"the-authorization-window-never-opens","__idx":5},"children":["The authorization window never opens"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Browser popups are blocked, or the client cannot start the OAuth flow."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Allow popups for the client's domain and try again. In a desktop client, check that it is permitted to open an external browser."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"no-tools-appear-after-connecting","__idx":6},"children":["No tools appear after connecting"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The server was added but authorization did not complete, so no tool list was negotiated."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Disconnect and reconnect, and confirm the browser redirect finishes and returns you to the client. Then ask the assistant to list its available tools again."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"client-specific-problems","__idx":7},"children":["Client-specific problems"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"claude-web-will-not-connect","__idx":8},"children":["Claude Web will not connect"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Claude Web requires the base URL:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"text","header":{"controls":{"copy":{}}},"source":"https://mcp.saleslayer.com\n","lang":"text"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://mcp.saleslayer.com/mcp"]}," in Claude Web is a known failure. Remove the custom connector, add it again with the base URL, and check that popups and redirects are allowed."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"microsoft-copilot-studio-will-not-connect","__idx":9},"children":["Microsoft Copilot Studio will not connect"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Copilot Studio needs OAuth configured manually in some versions. Use:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Value"},"children":["Value"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Authorization URL"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://mcp.saleslayer.com/oauth/authorize"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Token URL"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://mcp.saleslayer.com/oauth/token"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Grant type"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Authorization Code with PKCE"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Code challenge method"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["S256"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client secret"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Leave empty"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Copilot Studio versions without PKCE and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["S256"]}," support cannot connect to the remote server."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"n8n-returns-401","__idx":10},"children":["n8n returns 401"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The platform is treating the MCP Server as a REST API and sending a bearer token, which the remote server does not accept."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Three options, in order of preference:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use an MCP client node that supports OAuth 2.0 and can complete the authorization flow."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/catalog"},"children":["Catalog REST API"]}," directly with the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-API-KEY"]}," header. For workflows that hit fixed endpoints and do not need an assistant to decide anything, this is the better design."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use a local MCP deployment, if your organization allows it."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A fully headless deployment that cannot complete an interactive authorization is not a fit for the remote MCP Server. Use the REST API."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"data-and-permissions","__idx":11},"children":["Data and permissions"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"the-assistant-cannot-create-or-update-anything","__idx":12},"children":["The assistant cannot create or update anything"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The connection is using the Read-only profile."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Disconnect and reconnect with Full access, either by selecting it in the authorization screen or by connecting to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://mcp.saleslayer.com/full/mcp"]},". See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/mcp-server/permissions"},"children":["Access profiles and permissions"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Confirm that write access is appropriate before switching. Read-only is the safer default for analysis work."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"a-search-returns-nothing","__idx":13},"children":["A search returns nothing"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Usually a language mismatch. Plain text search covers the default language only."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ask the assistant to search a specific language field, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contains(prod_title_es, 'Abrigo')"]},", or ask it how to search across languages, which runs ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["help_search_multilingual"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Also check that the catalog actually has records matching your status filter. Ask for counts by status first."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"results-look-stale","__idx":14},"children":["Results look stale"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The catalog changed outside the current session, and cached data is still being served."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Under Full access, ask the assistant to clear the cache. Under Read-only, start a new session. Writes made through the MCP Server invalidate the cache automatically, so this only affects changes made elsewhere."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"local-installs","__idx":15},"children":["Local installs"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For problems with a local Claude Desktop install — the package failing to start, Node version issues, or configuration file locations — see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/mcp-server/local-development"},"children":["Local development"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"built-in-diagnostics","__idx":16},"children":["Built-in diagnostics"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The assistant can diagnose some issues itself:"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Validate my Sales Layer token and tell me which catalog it points to."]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["I am getting empty results when searching for products. What should I check?"]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["What version of the MCP server am I connected to?"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These run ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validate_token"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["help_troubleshoot"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["version"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"escalating-to-support","__idx":17},"children":["Escalating to support"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the problem persists, contact ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://support.saleslayer.com/support/solutions/folders/206000105217"},"children":["Sales Layer Support"]}," with:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The client or platform, and its version."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The exact server URL you used."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The authentication method configured."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The exact error message, with a screenshot if possible."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["What the authorization screen did, and whether the redirect completed."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Which access profile you selected."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Never send your full Catalog Token"]},", in a ticket or anywhere else. Support will guide you through validating it securely."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-pages","__idx":18},"children":["Related pages"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/mcp-server/quickstart"},"children":["Quickstart"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/mcp-server/authentication"},"children":["Authentication"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/mcp-server/permissions"},"children":["Access profiles and permissions"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/mcp-server/local-development"},"children":["Local development"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/guides/error-responses"},"children":["REST API error responses"]}]}]}]},"headings":[{"value":"MCP Server troubleshooting","id":"mcp-server-troubleshooting","depth":1},{"value":"Start here","id":"start-here","depth":2},{"value":"Connection and authorization","id":"connection-and-authorization","depth":2},{"value":"invalid_token","id":"invalid_token","depth":3},{"value":"401 Unauthorized","id":"401-unauthorized","depth":3},{"value":"The authorization window never opens","id":"the-authorization-window-never-opens","depth":3},{"value":"No tools appear after connecting","id":"no-tools-appear-after-connecting","depth":3},{"value":"Client-specific problems","id":"client-specific-problems","depth":2},{"value":"Claude Web will not connect","id":"claude-web-will-not-connect","depth":3},{"value":"Microsoft Copilot Studio will not connect","id":"microsoft-copilot-studio-will-not-connect","depth":3},{"value":"n8n returns 401","id":"n8n-returns-401","depth":3},{"value":"Data and permissions","id":"data-and-permissions","depth":2},{"value":"The assistant cannot create or update anything","id":"the-assistant-cannot-create-or-update-anything","depth":3},{"value":"A search returns nothing","id":"a-search-returns-nothing","depth":3},{"value":"Results look stale","id":"results-look-stale","depth":3},{"value":"Local installs","id":"local-installs","depth":2},{"value":"Built-in diagnostics","id":"built-in-diagnostics","depth":2},{"value":"Escalating to support","id":"escalating-to-support","depth":2},{"value":"Related pages","id":"related-pages","depth":2}],"frontmatter":{"seo":{"title":"MCP Server troubleshooting","description":"Fix Sales Layer MCP Server connection problems, including invalid_token, 401 Unauthorized, missing tools, and OAuth authorization failures."},"keywords":{"includes":["MCP troubleshooting","invalid_token","401 Unauthorized","MCP connection error","OAuth PKCE"]},"metadata":{"redocly_category":"MCP Server","api_domain":"MCP"}},"lastModified":"2026-08-25T09:21:23.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/mcp-server/troubleshooting","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}