{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-ai/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown","redocly_category":"Development","owner":"MB"},"seo":{"title":"AI - Norce Backend MCP Servers — VS Code Setup","description":"How to connect the Norce Backend MCP Servers to VS Code using GitHub Copilot agent mode — including workspace config, authentication headers, LLM instructions, and verifying the connection.","keywords":"MCP, VS Code, GitHub Copilot, agent mode, setup, configuration, mcp.json, developer"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"connecting-to-norce-via-vs-code"},"children":["Connecting to Norce via VS Code"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This guide covers connecting the Norce Backend MCP Servers to VS Code using ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["GitHub Copilot agent mode"]},". Once connected, you can query and update your Norce environment directly from the Copilot chat panel — useful for environment exploration, data model design, integration debugging, and pre-go-live validation without leaving your editor."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you use a different MCP-capable extension (Continue, Cline, Roo Code), the connection principles are the same — refer to that extension's documentation for the config file location and format."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"prerequisites"},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["VS Code with the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["GitHub Copilot"]}," extension installed and signed in"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A Norce OAuth2 client with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ClientId"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ClientSecret"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AccountId"]}," — see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/ai/norce-backend-mcp-security"},"children":["Security and access"]}," for how to set this up"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Your Norce application ID for the environment you are working with"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["No additional tooling is required. VS Code connects to the Norce MCP Servers directly over HTTP — no ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mcp-remote"]}," bridge needed."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-1--create-the-mcp-config-file"},"children":["Step 1 — Create the MCP config file"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["MCP servers in VS Code are configured in a file called ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mcp.json"]},". You can place it at the workspace level (applies to one project) or at the user level (applies to all projects)."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Workspace config"]}," (recommended for project-specific Norce environments):"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".vscode/mcp.json"]}," file in the root of your workspace."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["User config"]}," (applies across all workspaces):"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Open the VS Code command palette (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Ctrl+Shift+P"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Cmd+Shift+P"]},") and run ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["MCP: Open User Configuration"]},". This opens a user-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mcp.json"]}," that uses the same format as the workspace file below."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For most Norce integration work, the workspace config is the better choice — it keeps environment-specific credentials tied to the project."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-2--add-the-server-configuration"},"children":["Step 2 — Add the server configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add the following to your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".vscode/mcp.json"]},". Replace the placeholder values with your own credentials, customer slug, and environment — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["YOUR-ENVIRONMENT"]}," is the environment part of the hostname, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["playground"]},", the same as in that environment's other Norce API URLs."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"servers\": {\n    \"norce-config\": {\n      \"type\": \"http\",\n      \"url\": \"https://YOUR-CUSTOMER-SLUG.api-se.YOUR-ENVIRONMENT.norce.tech/mcp/config/v1\",\n      \"headers\": {\n        \"ClientId\": \"your-client-id-here\",\n        \"ClientSecret\": \"your-client-secret-here\",\n        \"AccountId\": \"your-account-id-here\"\n      }\n    },\n    \"norce-product\": {\n      \"type\": \"http\",\n      \"url\": \"https://YOUR-CUSTOMER-SLUG.api-se.YOUR-ENVIRONMENT.norce.tech/mcp/product/v1\",\n      \"headers\": {\n        \"ClientId\": \"your-client-id-here\",\n        \"ClientSecret\": \"your-client-secret-here\",\n        \"AccountId\": \"your-account-id-here\"\n      }\n    },\n    \"norce-pricing\": {\n      \"type\": \"http\",\n      \"url\": \"https://YOUR-CUSTOMER-SLUG.api-se.YOUR-ENVIRONMENT.norce.tech/mcp/pricing/v1\",\n      \"headers\": {\n        \"ClientId\": \"your-client-id-here\",\n        \"ClientSecret\": \"your-client-secret-here\",\n        \"AccountId\": \"your-account-id-here\"\n      }\n    },\n    \"norce-inventory\": {\n      \"type\": \"http\",\n      \"url\": \"https://YOUR-CUSTOMER-SLUG.api-se.YOUR-ENVIRONMENT.norce.tech/mcp/inventory/v1\",\n      \"headers\": {\n        \"ClientId\": \"your-client-id-here\",\n        \"ClientSecret\": \"your-client-secret-here\",\n        \"AccountId\": \"your-account-id-here\"\n      }\n    },\n    \"norce-supplier\": {\n      \"type\": \"http\",\n      \"url\": \"https://YOUR-CUSTOMER-SLUG.api-se.YOUR-ENVIRONMENT.norce.tech/mcp/supplier/v1\",\n      \"headers\": {\n        \"ClientId\": \"your-client-id-here\",\n        \"ClientSecret\": \"your-client-secret-here\",\n        \"AccountId\": \"your-account-id-here\"\n      }\n    }\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add or remove servers based on what your project needs. The five available server paths are: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["config/v1"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["product/v1"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pricing/v1"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["inventory/v1"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["supplier/v1"]},"."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Credentials in version control:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".vscode/mcp.json"]}," should not be committed with credentials in it. Add ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".vscode/mcp.json"]}," to your ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".gitignore"]},", or use VS Code's input variables (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["${input:clientId}"]},") to prompt for credentials at runtime rather than storing them in the file."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-3--enable-agent-mode-in-copilot"},"children":["Step 3 — Enable agent mode in Copilot"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["MCP tools are available in Copilot's ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["agent mode"]},". Open the Copilot chat panel (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Ctrl+Alt+I"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Cmd+Option+I"]},"), click the mode selector at the top of the panel, and switch from ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Ask"]}," to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Agent"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In agent mode, Copilot can discover and call MCP tools automatically based on what you ask."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-4--verify-the-connection"},"children":["Step 4 — Verify the connection"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Click the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["tools icon"]}," (or the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["@"]}," mention area) in the Copilot chat panel to see which MCP tools are available. Your Norce tools should appear listed under their server names."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can also ask Copilot directly:"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["\"Which Norce MCP tools do you have access to?\""]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the tools do not appear, check that the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mcp.json"]}," file is valid JSON and that the server URLs and credentials are correct. See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/ai/norce-backend-mcp-troubleshooting"},"children":["Troubleshooting and FAQ"]}," for common problems."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-5--add-your-instructions"},"children":["Step 5 — Add your instructions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Give Copilot context about your environment so it knows which storefront you are working with and how to coordinate across servers. The best place for this in VS Code is a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".github/copilot-instructions.md"]}," file in your repository root — Copilot reads this automatically in agent mode."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".github/copilot-instructions.md"]}," with content like:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"markdown","header":{"controls":{"copy":{}}},"source":"## Norce environment\n\nYou have access to the Norce Backend MCP Servers for [client name].\n\nApplication IDs:\n- [Storefront name] (stage): [application ID]\n- [Storefront name] (production): [application ID]\n\nUse stage by default. Never write to production without explicit confirmation.\n\nWhen a task spans multiple domains, coordinate the servers automatically.\nFor imports that involve products, prices, and supplier data, import product\ncontent first, then run price and supplier imports in parallel.\n","lang":"markdown"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You may also want to connect the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Norce Assistant MCP"]}," alongside the Backend servers — it knows the full Norce API reference and is useful for understanding unfamiliar fields or constructing OData filters without leaving the editor. See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/ai/norce-backend-mcp-working-across-servers"},"children":["Working across MCP servers"]}," for how to combine it with the Backend servers and what to add to your instructions."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Adjust for the servers you have connected and the environments available in this workspace. For a full instruction block covering all five servers, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/ai/using-the-norce-backend-mcp-servers#suggested-llm-instructions"},"children":["Suggested LLM instructions"]},"."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"you-are-ready"},"children":["You are ready"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Try a first prompt in agent mode:"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["\"Give me a full overview of this Norce environment — applications, active price lists, and warehouse codes.\""]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Copilot will coordinate calls across the Config, Pricing, and Inventory servers and return a structured summary. From there you can explore the environment, validate configuration, debug integrations, or design data models — all within the editor."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For a full list of developer workflows, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/ai/norce-backend-mcp-developer"},"children":["Norce Backend MCP Servers for Developers and Solution Architects"]},"."]}]},"headings":[{"value":"Connecting to Norce via VS Code","id":"connecting-to-norce-via-vs-code","depth":1},{"value":"Prerequisites","id":"prerequisites","depth":2},{"value":"Step 1 — Create the MCP config file","id":"step-1--create-the-mcp-config-file","depth":2},{"value":"Step 2 — Add the server configuration","id":"step-2--add-the-server-configuration","depth":2},{"value":"Step 3 — Enable agent mode in Copilot","id":"step-3--enable-agent-mode-in-copilot","depth":2},{"value":"Step 4 — Verify the connection","id":"step-4--verify-the-connection","depth":2},{"value":"Step 5 — Add your instructions","id":"step-5--add-your-instructions","depth":2},{"value":"You are ready","id":"you-are-ready","depth":2}],"frontmatter":{"seo":{"title":"AI - Norce Backend MCP Servers — VS Code Setup","description":"How to connect the Norce Backend MCP Servers to VS Code using GitHub Copilot agent mode — including workspace config, authentication headers, LLM instructions, and verifying the connection.","keywords":"MCP, VS Code, GitHub Copilot, agent mode, setup, configuration, mcp.json, developer"},"metadata":{"redocly_category":"Development","owner":"MB"}},"lastModified":"2026-09-16T06:55:22.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/ai/norce-backend-mcp-vscode","userData":{"isAuthenticated":false,"teams":["anonymous"]}}