Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>BCDR DR Plan AssistantNew to Visual Studio Code? Get it now.
BCDR DR Plan Assistant

BCDR DR Plan Assistant

bcdr-msd

| (0) | Free
Detects your service's ServiceTree ID from the repo, checks BCDR assessment due status, runs hygiene/DHE pre-checks, and generates the DR plan (Minimal DRP) document.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

BCDR DR Plan Assistant

Helps a BCDR Champ produce a service's DR plan (Minimal DRP) document without leaving VS Code. It detects your service's ServiceTree ID from the repo, checks the BCDR assessment due status, runs read-only hygiene / DHE data-quality pre-checks, and generates the pre-filled Minimal DRP .docx — optionally reusing the §7/§8 content from a previously approved plan.

Read-only and advisory: it reads Service Tree + BCDR Manager (Kusto) and writes a document. It never submits, approves, or mutates anything.

Features

  • Auto-detects the ServiceTree ID from repo markers (see below); falls back to a picker when none is found.
  • Assessment status — shows whether the service's BCDR assessment is due / due soon.
  • Data-quality pre-check — surfaces open BCDR hygiene issues and Service Tree DHE (Data Handling Exception) violations before you generate.
  • Generates the Minimal DRP .docx — pre-filled from Service Tree + BCDR Manager dependencies (the §2 Resiliency Overview auto-sorted into Platform Managed / Service Controlled-Configured / One Instance), then auto-opens it.
  • Prior-plan reuse (optional) — point it at a previously approved DR plan (SharePoint link or local .docx) to reuse the §7 recovery/validation and §8 failback steps. Fresh test evidence is always required and never reused.

Commands

Open the Command Palette (⇧⌘P) and run:

Command What it does
BCDR: Generate DR Plan Document Generates the Minimal DRP .docx and opens it.
BCDR: Check DR Assessment Status Shows the assessment due status for the service.
BCDR: Select Service (ServiceTree ID) Manually set/override the ServiceTree ID.

ServiceTree ID detection

The extension auto-detects the ID from these files (highest confidence first):

File Field
agency.json / catalog.json .serviceTreeId
Ev2 ServiceModel.json .serviceMetadata.serviceIdentifier
es-metadata.yml / .yaml accountableOwners.service
*.bicep / ARM template a serviceTreeId-style tag
azure.yaml / azure.yml serviceTreeId:

If none is found (or the folder isn't a service repo), it asks you to pick the service.

Requirements

  • Python 3 — the extension shells out to shared Python scripts.
  • Sign-in — a Microsoft work-account sign-in (Accounts menu) or az login for the Kusto / Service Tree lookups.
  • The shared scripts/ folder — bundled with the plugin, not inside the .vsix. When installed from a .vsix, set bcdr.scriptsPath (see below).
  • Prior-plan reuse (optional) — Playwright (pip install playwright) + signed-in Edge to download a SharePoint plan. Sensitivity-labeled (MIP-encrypted) docs can't be parsed — save an unprotected copy and select it as a local .docx.

BCDR Manager MCP setup (optional, Windows)

The MCP server can retrieve a prior DR-plan URL that the Kusto export redacts. It requires Windows for MSAL's native token broker (WAM), Node.js, access to the internal AAET npm feed, and BCDR Manager API authorization. macOS/Linux continue to use Kusto. Contact bcdrmanagerdev@microsoft.com if API calls return 403.

Run these steps in PowerShell under your normal Windows account (no administrator session required). Keep credentials in your user-level npm configuration, never in the repository.

  1. Install the Azure Artifacts authentication helper, configure only the BCDR scope, and authenticate to the feed:
npm.cmd install --global vsts-npm-auth
npm.cmd config set '@bcdrmanager:registry' 'https://msazure.pkgs.visualstudio.com/_packaging/AzureAsiaEngineeringTeam/npm/registry/' --location=user
vsts-npm-auth -config "$env:USERPROFILE\.npmrc"

Use your configured corporate npm mirror where required; do not disable TLS verification if direct access to the public registry is blocked.

  1. Install the server in a stable directory. --save-exact pins the resolved version; rerun this command only when deliberately installing/upgrading the server:
npm.cmd install --prefix "$env:USERPROFILE\.bcdrmanager\runtime" --save-exact @bcdrmanager/mcp-server@latest
  1. Sign in to production through WAM. Complete any account/MFA prompts yourself:
node "$env:USERPROFILE\.bcdrmanager\runtime\node_modules\@bcdrmanager\mcp-server\dist\index.js" login prod
  1. For Copilot, the workspace MCP configuration launches the installed server with node. Run MCP: List Servers, select bcdr, and start it after reviewing the trust prompt. Use Show Output for diagnostics. After fixing an earlier extension lookup failure, run Developer: Reload Window to reset its session-level MCP fallback flag.

The extension also launches this same installed entry point directly. It never runs npx or installs packages during a lookup: feed credentials are required only for installation/upgrades, not reconnection. An npm E401 during installation means feed authentication needs refreshing; it does not establish whether API access is granted. A successful initialize/tool listing verifies the local server, while a successful read-only tool call is needed to verify API authorization.

For a custom install, set BCDR_MCP_SERVER_PATH in the extension process environment and update the Copilot configuration to the same entry point. BCDR_API_BASE_URL (or the Python script's --base-url) can select another environment; the WAM login environment must match. Copilot's env is separate from the extension's process environment. Production is the default. Avoid login --force unless intentionally clearing cached credentials.

The full upstream instructions are in the BCDR MCP Server README.

Settings

Setting Default Description
bcdr.autoRun true Auto-detect the service and check status on repo open / active-file change.
bcdr.dueSoonThresholdDays 30 Show a "due soon" warning when the assessment is due within this many days.
bcdr.pythonPath (auto) Path to the Python 3 interpreter. When empty, auto-detects py -3 / python / python3 (Windows) or python3 / python (macOS/Linux).
bcdr.scriptsPath "" Path to the shared scripts/ folder. Required for a .vsix install (the scripts aren't bundled); when empty, resolved relative to the install location.
bcdr.useBcdrManagerMcp true Try the pre-installed Windows BCDR Manager MCP for prior-plan URLs; fall back to Kusto when unavailable. See the setup steps above.

Privacy & telemetry

This extension collects anonymous usage telemetry to improve reliability, sent via @vscode/extension-telemetry. It honors your VS Code telemetry setting — set telemetry.telemetryLevel to off to turn off all collection.

  • Collected: which BCDR commands run and their step outcomes, coarse error categories, and operation durations.
  • Not collected: file contents, ServiceTree IDs / other GUIDs (redacted to [GUID_REDACTED]), access tokens, or personal data.

Data is handled per the Microsoft Privacy Statement.

Notes

  • Installed from a .vsix? The Python scripts/ live in the plugin, not the package — set bcdr.scriptsPath to …/bcdr-presubmit-validator/scripts.
  • If commands keep prompting for sign-in, run az login once (the CLI caches a long-lived token that the scripts reuse).
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft