{"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 Skills — Customization Guide","description":"How to pre-wire environment-specific IDs into Norce Backend MCP skills — finding application IDs, flag IDs, parametric IDs, and warehouse codes, and keeping skills in sync across environments and team members.","keywords":"MCP, skills, customization, application ID, flag ID, parametric ID, warehouse code, Claude Code, Claude Desktop"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"norce-backend-mcp-skills--customization-guide"},"children":["Norce Backend MCP Skills — Customization Guide"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Norce Backend MCP skills work out of the box, but they work best when pre-wired with the IDs specific to your environment. A skill that already knows your application ID, your Published flag ID, and your required parametrics can run immediately — no setup questions, no lookups, just results."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This guide explains what to customise, how to find the values, and how to keep your skills up to date as your environment changes."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"why-customisation-matters"},"children":["Why customisation matters"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The skills are written with placeholders like ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[YOUR_APPLICATION_ID]"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[PUBLISHED_FLAG_ID]"]}," because these values differ between every Norce environment. An uncustomised skill still works — the AI will ask for the missing values at runtime — but a pre-wired skill is faster, more reliable, and produces consistent results across your team."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The more specific you make a skill, the less the AI has to guess or ask. A skill that specifies your exact locales, required parametrics, and default storefront will run a more targeted check than one working from generic instructions."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"finding-the-values-you-need"},"children":["Finding the values you need"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All the values below can be looked up using the MCP servers themselves. Connect the relevant server and ask:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"application-id"},"children":["Application ID"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["\"List all applications in this environment and their IDs.\""]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_config_list_applications"]},". The application ID is the number you pass to most tool calls to identify which storefront you are working with. If you have multiple storefronts, note each one and which environment it belongs to (stage vs production)."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"flag-ids"},"children":["Flag IDs"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["\"List all product flags and their IDs.\""]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_flags"]},". Find the flags that are relevant to your skills — typically the Published flag for the readiness check, and any campaign or status flags used in the incomplete products scan."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"parametric-ids"},"children":["Parametric IDs"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["\"List all parametrics and their IDs. Which ones are required for publication?\""]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_parametrics"]},". Identify which parametrics must be populated for a product to be considered complete in your environment. Note their numeric IDs — these go into the Find Incomplete Products skill."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"warehouse-codes"},"children":["Warehouse codes"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["\"List all warehouses and their codes.\""]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_inventory_list_warehouses"]}," (for retail warehouses) or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_supplier_list_suppliers"]}," followed by a supplier detail call (for supplier warehouses). Warehouse codes are used in the Import From File skill vendor profiles."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"price-list-codes"},"children":["Price list codes"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["\"List all active price lists and their codes.\""]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_list_price_lists"]},". Price list codes are used in vendor profiles and the Investigate Price skill."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"placeholder-reference"},"children":["Placeholder reference"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The skills read the application ID from your session instructions — you do not need to hardcode it in each skill. Set it once in your LLM instructions (see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/ai/using-the-norce-backend-mcp-servers#suggested-llm-instructions"},"children":["Suggested LLM instructions"]},") and all skills will use it automatically. If you want a specific skill to always target a different storefront regardless of your default instructions, you can hardcode an application ID directly in that skill."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The remaining placeholders that do need to be set in the skill:"]},{"$$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":"Placeholder"},"children":["Placeholder"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Used in"},"children":["Used in"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"How to find it"},"children":["How to find it"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[PUBLISHED_FLAG_GROUP_ID]"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Find Incomplete Products"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_flags"]}," — find the group containing your published flags"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[PUBLISHED_FLAG_ID_1]"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[PUBLISHED_FLAG_ID_2]"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Find Incomplete Products (Option B)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_flags"]}," — use if flags are not in a shared group"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Import From File skill uses vendor-specific values (price list codes, warehouse codes, supplier codes) that are saved inside vendor profile blocks rather than as top-level placeholders. See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/ai/norce-backend-mcp-skill-import-from-file"},"children":["Import From File"]}," for how vendor profiles work."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"installing-skills"},"children":["Installing skills"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"claude-desktop"},"children":["Claude Desktop"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Claude Desktop skills are uploaded as zip files and stored in your profile, available across all conversations."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Step 1 — Create the skill file"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create a file named ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SKILL.md"]}," (the uppercase name is required). Copy the full skill content from the relevant skill article — including the YAML frontmatter block at the top — replace all placeholders with your values, and save."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The YAML frontmatter is the block between the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["---"]}," markers at the very start of the skill content. It tells Claude Desktop the skill's name and description:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"---\nname: check-product-readiness\ndescription: Runs a pre-publication readiness check on one or more Norce SKUs...\n---\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]}," identifies the skill and must be lowercase with hyphens, matching the folder name in the next step. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["description"]}," is what Claude reads to decide when to use it. Both are required — a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SKILL.md"]}," without frontmatter will not work correctly in Claude Desktop."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Step 2 — Create the zip file"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create a folder with the skill name and place ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SKILL.md"]}," inside it. The zip must contain the folder, not the file directly at the root."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"check-product-readiness.zip\n└── check-product-readiness/\n    └── SKILL.md\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["On Windows: right-click the folder → ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Compress to ZIP file"]},"."," ","On Mac: right-click the folder → ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Compress"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Step 3 — Upload to Claude Desktop"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Open Claude Desktop → ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Settings"]}," → ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Skills"]}," → ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Add skill"]},", and upload the zip file. The skill is now available in all conversations where the required MCP servers are connected."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Keep the unzipped skill folder somewhere accessible — you will need it when values change or when adding vendor profiles to the Import From File skill. To update a skill, edit ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SKILL.md"]},", re-zip, and re-upload."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"claude-code"},"children":["Claude Code"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Claude Code skills are markdown files in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".claude/commands/"]}," directory of your project. Create the directory if it does not exist."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"your-project/\n└── .claude/\n    └── commands/\n        ├── check-product-readiness.md\n        ├── find-incomplete-products.md\n        ├── check-pricing-health.md\n        ├── investigate-price.md\n        └── import-from-file.md\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Copy the skill content from the relevant skill article into the file, replace all placeholders, and save. The skill is available immediately as a slash command — no restart needed."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Invoke with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/skill-name"]},", optionally followed by arguments:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"/check-product-readiness AB-1042 AB-2201\n/find-incomplete-products Connectors\n/check-pricing-health SUMMER-2026\n/investigate-price AB-1042\n/import-from-file acme-weekly.csv\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To update a skill, open the file, edit the values, and save. You can also ask the AI to update it for you:"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["\"Update the check-product-readiness skill to use application ID 1042 instead of 1001.\""]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"vs-code-cursor-and-other-clients"},"children":["VS Code, Cursor, and other clients"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Copy the skill content from the relevant skill article. Replace ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["$ARGUMENTS"]}," with your specific input values, then paste the whole prompt into the chat."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For skills you use frequently, save a customised version as a snippet in your editor so you do not have to re-enter values each time."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"keeping-skills-up-to-date"},"children":["Keeping skills up to date"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Skills are plain text files — keeping them current is a two-minute edit when something changes, not a configuration system to maintain. A few things that should trigger a review:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Your environment changes"]}," — new application ID, a warehouse added or renamed, a price list restructured, or new storefronts added. Any hardcoded ID in the skill will produce wrong results until updated."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["A new vendor is onboarded"]}," — after a successful import from a new vendor, save the field mapping as a vendor profile in the import-from-file skill so the next import runs without setup questions."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["A flag ID or parametric ID changes"]}," — if a flag is deleted and recreated, its ID changes. If new parametrics become mandatory for publication, add them to the Find Incomplete Products skill."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["A skill starts producing unexpected output"]}," — the MCP server may have added new tools or changed a response format. Review the skill prompt and update the tool calls it references if needed."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["How to update by client:"]}]},{"$$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":"Client"},"children":["Client"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"What to do"},"children":["What to do"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Claude Code"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Edit the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".claude/commands/skill-name.md"]}," file directly. The change takes effect immediately — no restart required."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Claude Desktop"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Edit ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SKILL.md"]}," inside the skill folder, zip the folder again, go to Settings → Skills, delete the old skill, and upload the new zip."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["VS Code / Cursor"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Each paste is already a one-off — just copy the updated skill content from the relevant article the next time you use it."]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"multiple-environments"},"children":["Multiple environments"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you work with both stage and production, or multiple storefronts with different application IDs, you have two options:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Option A — One skill per environment."]}," Create separate copies of the skill with environment-specific names and IDs pre-filled:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"check-product-readiness-stage.md      ← application ID 1001\ncheck-product-readiness-prod.md       ← application ID 1042\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is cleaner for Claude Code users and avoids any risk of the AI using the wrong environment."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Option B — One skill, ask at runtime."]}," Remove the application ID placeholder and add an instruction: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Ask the user which environment (stage or production) before running — use application ID 1001 for stage and 1042 for production."]}," This keeps a single file but adds one question at the start of each run."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For Claude Desktop, Option A requires maintaining multiple zip files — one per environment. This is more overhead but avoids confusion if multiple team members use the same skill with different access needs."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"sharing-skills-across-a-team"},"children":["Sharing skills across a team"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If your team all works in the same Norce environment, a single customised skill file is the source of truth for everyone. The best way to share it:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Claude Code teams:"]}," Commit the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".claude/commands/"]}," directory to your project repository. Everyone on the team pulls the same skill files with the correct IDs already filled in. When IDs change, one person updates the file and the team gets the change on the next pull."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Claude Desktop teams:"]}," Share the customised zip file via a shared drive or internal documentation page. When the zip is updated, share the new version. Note this in your internal onboarding so new team members know where to find it."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Do not share skills that contain credentials or sensitive environment details beyond what the skill needs to function — application IDs and flag IDs are safe to share; OAuth credentials are not and should never appear in a skill file."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]}]},"headings":[{"value":"Norce Backend MCP Skills — Customization Guide","id":"norce-backend-mcp-skills--customization-guide","depth":1},{"value":"Why customisation matters","id":"why-customisation-matters","depth":2},{"value":"Finding the values you need","id":"finding-the-values-you-need","depth":2},{"value":"Application ID","id":"application-id","depth":3},{"value":"Flag IDs","id":"flag-ids","depth":3},{"value":"Parametric IDs","id":"parametric-ids","depth":3},{"value":"Warehouse codes","id":"warehouse-codes","depth":3},{"value":"Price list codes","id":"price-list-codes","depth":3},{"value":"Placeholder reference","id":"placeholder-reference","depth":2},{"value":"Installing skills","id":"installing-skills","depth":2},{"value":"Claude Desktop","id":"claude-desktop","depth":3},{"value":"Claude Code","id":"claude-code","depth":3},{"value":"VS Code, Cursor, and other clients","id":"vs-code-cursor-and-other-clients","depth":3},{"value":"Keeping skills up to date","id":"keeping-skills-up-to-date","depth":2},{"value":"Multiple environments","id":"multiple-environments","depth":2},{"value":"Sharing skills across a team","id":"sharing-skills-across-a-team","depth":2}],"frontmatter":{"seo":{"title":"AI - Norce Backend MCP Skills — Customization Guide","description":"How to pre-wire environment-specific IDs into Norce Backend MCP skills — finding application IDs, flag IDs, parametric IDs, and warehouse codes, and keeping skills in sync across environments and team members.","keywords":"MCP, skills, customization, application ID, flag ID, parametric ID, warehouse code, Claude Code, Claude Desktop"},"metadata":{"redocly_category":"Development","owner":"MB"}},"lastModified":"2026-09-16T06:55:22.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/ai/norce-backend-mcp-skills-customization","userData":{"isAuthenticated":false,"teams":["anonymous"]}}