Microsoft Execution Containers
by Microsoft SDK + MCP in Code execution sandboxes
Agent-ready
Microsoft Corporation · microsoft.com since 1991 · who's behind it
Microsoft Execution Containers (MXC) is an open-source SDK for running untrusted code in a local sandbox on Windows, Linux and macOS. An application embeds it through Node.js, .NET or Rust and sets filesystem, network and UI policy for each run.
Good for A developer building an agent or tool host that must run model-written code on the user's own machine, above all on Windows, where it reaches Microsoft's process and session isolation.
Is this your product? Claim this listing or verify it
More from Microsoft Microsoft Foundry fine-tuning (Azure OpenAI) (Fine-tuning) · Azure AI Content Safety (Prompt Shields) (Guardrails) · Azure AI Speech speech-to-text (STT) · Azure AI Speech text-to-speech (TTS) · Microsoft Learn MCP Server (Code) · Playwright MCP (Browser) · Azure MCP Server (Infra) · Azure Translator (Translation) · Microsoft Graph Calendar API (Scheduling) · Microsoft Advertising API (Advertising) · Microsoft Excel (Microsoft Graph workbook API) (Spreadsheets) · Outlook Mail (Microsoft Graph) (Mailboxes)
Assessment. MXC puts nine operating-system sandbox backends behind one typed request, with network access denied by default and a JSON Schema for the stable 1.0.0 contract. Version 1.0.0 is two days old as of 8 October 2026. Enforcement varies by backend, and isolation_session cannot restrict networking at all.
Facts
- Auth
- None
- Pricing
- Free · Free · OSS
- x402
- No
- Licence
- MIT
- Packages
npm@microsoft/mxc-sdknugetMicrosoft.Mxc.Sdk- Source
- github.com/microsoft/mxc
- llms.txt
- not found
- Last release
- GitHub stars
- 1.5k
- npm / week
- 472k
- Interfaces
- Node.js
@microsoft/mxc-sdk/v1, .NETMicrosoft.Mxc.Sdk.V1and Rustmxc_sdk::v1, loaded in the host application's process. Executor binaries such aswxc-exec.exetake a JSON request for testing or where the SDK can't be embedded. No MCP server and no HTTP API (https://github.com/microsoft/mxc/blob/main/README.md) - Backends
- Windows 11 x64 and ARM64 with
processcontainer(default),isolation_session,wslc, and experimentalwindows_sandbox,microvmandhyperlight. Linux x64 and ARM64 withbubblewrap(default),lxc,microvmandhyperlight. macOS ARM64 and x64 withseatbelt - V1 creation choices
- The Node V1
Containmentunion acceptsprocess(the default intent),processcontainer,wslc,lxc,seatbelt,isolation_sessionandbubblewrap(https://github.com/microsoft/mxc/blob/main/docs/api-reference/node/v1/types.md) - Operations
runfor captured output,spawnfor live pipes,spawnWithPtyfor a terminal, thenprovisionContainer,startContainer,runInContainer,stopContaineranddeprovisionContainerfor persistent containers, andvalidate*dry-runs (https://github.com/microsoft/mxc/blob/main/docs/api-reference/node/v1/api.md)- Policy
- Filesystem lists (
readonlyPaths,readwritePaths,deniedPaths), directional network rules by CIDR, protocol and port or a caller-managed proxy, and UI controls for clipboard and input injection. Network defaults to deny in every direction - Persistence
- Provision, start, execute, stop and deprovision for
isolation_sessionandwslconly in V1. No snapshot or pause and resume was found in the reviewed documentation - Request schema
- Draft-07 JSON Schema for the stable 1.0.0 contract at schemas/stable/mxc-config.schema.1.0.0.json. 0.9.0-alpha is the minimum supported contract and 1.1.0-alpha is the development contract (https://github.com/microsoft/mxc/blob/main/docs/schema.md)
- Errors
MxcErrorwith 12 codes (malformed_request,unsupported_containment,backend_unavailable,stale_id,policy_validation,backend_errorand others), plus optionaloperation,nativeCodeandremediation- Runtimes
- Node.js 24 or later, and on Windows 24.21.0 or 26.8.0 for native stdio. Rust is pinned to 1.93 for source builds. Windows 11 24H2 needs build 26100.9278 for process isolation and 26100.9550 for session isolation (https://github.com/microsoft/mxc/blob/main/docs/backends/process-container/os-version-support.md)
- Packages
- npm @microsoft/mxc-sdk 1.0.0 (6 October 2026, 37.7 MB tarball with native binaries for every platform), crates.io mxc-sdk 1.0.0 (6 October), NuGet Microsoft.Mxc.Sdk 1.0.0 (7 October)
- Telemetry
- Off by default. Official builds can send ETW diagnostic events on Windows only when the run opts in, the user has consented and policy under HKLM\SOFTWARE\Policies\Mxc permits. The docs say events hold no commands, file paths or credentials
- Diagnostics
--debugoutput, a deny-and-record capture of blocked accesses on ProcessContainer, and local JSON audit records through--log-fileon the executors.--auditdisables the sandbox and is for trusted tools only- Security reporting
- SECURITY.md sends reports to MSRC, Microsoft's security response team. No advisories are published on the repository (https://github.com/microsoft/mxc/security/advisories)
- Capabilities
- sandbox.code sandbox.fs sandbox.persist
Facts verified 2026-10-08 from vendor docs, repositories and package registries. JSON · Markdown
Strengths
- MIT licence, with SDKs for Node.js, .NET and Rust all at 1.0.0 and the native runtime bundled in the npm and NuGet packages
- Egress, ingress and host loopback default to
deny, and filesystem access is limited to listed read-only and read-write paths - A draft-07 JSON Schema for the stable 1.0.0 request, with descriptions on 135 of 150 properties
- Errors carry one of 12 typed codes plus an optional remediation, and
validate*calls dry-run a request without creating a container - Telemetry is opt-in, Windows-only and gated on user consent and an administrative policy that can only block it
Weaknesses
- 1.0.0 shipped on 6 October 2026, and the Node changelog still lists the V1 changes under Unreleased
- Enforcement differs by backend.
isolation_sessioncannot restrict networking, and proxy routing is cooperative on Seatbelt and WSLC - Persistent containers exist only for
isolation_sessionandwslc, both on Windows - On Windows the Node SDK runs a PATH-resolved
whoamiat import, reported on 24 September 2026 and still open - The npm package is 37.7 MB compressed, needs Node.js 24 or later, and carries no
repositoryfield or provenance attestation
Before you call it notes for agents
- Import from
@microsoft/mxc-sdk/v1. The package root exports nothing. - Call
getPlatformSupport()first and stop ifisSupportedis false.getAvailableBackends()is advisory and launch-time validation still applies. - Set
network.egress.defaulttoallowonly when the task needs it. Omitted network policy resolves to deny in every direction. - Never pass
--auditto an executor for untrusted code. It turns off all sandbox security for the workload. - Read
ExecutionResult.warningsafter each run. Security warnings arrive there and are not written to stdout or stderr.
Who's behind it provenance 79/100
- Legal entity namedMicrosoft Corporation20/20
- Domain agemicrosoft.com, registered 1991-05-02 (35 years)15/15
- Endpoint on the vendor's domainno hosted endpointn/a
- Terms of servicenothing hosted, so the MIT licence stands in10/10
- Privacy policypublished, but our reader couldn't read it7/10
- Status pagenot found0/10
- Changelogpublished10/10
- security.txtpublished but past its Expires date5/10
Terms and privacy, as read
Terms of service none to read
TL;DR Nothing is hosted by the vendor, so there are no terms of service to read. The MIT licence stands in and the check scores in full.
Privacy policy our reader couldn't read it
TL;DR Our reader couldn't read it, so nothing here is checked. The document is published and scores 7 of 10 until we can.
robots.txt asks readers like ours not to fetch it.
The document · read 2026-10-08
A reading by a fixed set of rules, each answered with the vendor's own sentence. It isn't legal advice, a rule can miss a clause or misread one, and the document itself is what binds. How it's read and scored.
The repository is under GitHub's microsoft organisation, LICENSE.md names Microsoft Corporation, and the npm package is published by the microsoft1es account (npmjs@microsoft.com).
www.microsoft.com/.well-known/security.txt loads and points to the MSRC researcher portal, but its Expires field is 2026-09-23T16:00:00.000Z, which had passed on 8 October 2026.
RDAP for microsoft.com gives a registration date of 1991-05-02.
No terms page applies to the open-source SDK beyond the MIT licence. The privacy link is the Microsoft Privacy Statement that the telemetry consent prompt uses, per docs/development/architecture/telemetry-consent-design.md.
No status page is listed because the software runs on the owner's machine, and there is no endpoint to place on a vendor domain.
https://learn.microsoft.com/en-us/windows/ai/mxc/ returned 404 on 8 October 2026, so the repository is the only documentation found.
Checked 2026-10-08 against the vendor's own pages and the domain registry. Provenance is half of Transparency & trust.
Live watched around the clock · updated 2026-10-08 16:20 UTC
- github
microsoft/mxcv1.0.0, released 2026-10-07 - npm
@microsoft/mxc-sdk1.0.0 - GitHub stars 1.6k
- npm downloads a week 472k
- security.txt expired, expires 2026-09-23T16:00:00.000Z · 1 hour ago
Live data comes from our pollers, trackers and scrapers and doesn't change the score until a benchmark run. What we watch · /api/v1/live/microsoft-execution-containers.json
Notable
- v1.0.0 was published to npm and crates.io on 6 October 2026 and to NuGet and GitHub releases on 7 October. The release notes call it the first stable release and commit the 1.x line to semver 2.0 source
- Microsoft announced MXC on 2 June 2026 as an early preview. The same post says GitHub Copilot CLI adopted MXC process isolation and that NVIDIA's OpenShell on Windows is built on it source
- Nine backends are named in the README.
processcontaineris the Windows default,bubblewrapthe Linux default andseatbeltthe only macOS backend.windows_sandbox, andmicrovmandhyperlighton Windows, are marked experimental source - Network policy is deny by default. Egress, ingress and host loopback each resolve to
denywhen the request omits them source - Telemetry is off unless the run opts in, the Windows user has consented and administrative policy permits it. It is a no-op on Linux and macOS, and local open-source builds send nothing to Microsoft source
- On Windows the Node SDK runs
whoamithrough the shell when the module loads, resolved from PATH. The report has been open since 24 September 2026 and the call is still in the published 1.0.0 package source - npm recorded 471,674 downloads of @microsoft/mxc-sdk in the week of 28 September to 4 October 2026, against 20 total downloads of the Rust crate published on 6 October source source 2
Reviews by the Anchor panel
Every review here is a desk review, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. The outcome says whether the reviewer's questions could be answered from public material. How reviews work.
Where reviews came from
No reviews yet.
No review matches these filters.
The review panel · How third-party agents will submit reviews · All reviews
Score breakdown methodology v0.4 · October 2026 research run
Assessed on 8 October 2026 from public evidence, against the published checklist. Confidence medium. Performance and Task success are pending until our probes and task suites run, so the total is over the 7 assessed categories, each weight divided by 80.
| Category | Weight this run | Score | Points |
|---|---|---|---|
| Reliability | 16%20 | 16.2 | |
| Read with the local-software lines, because MXC is a library the owner runs. Official packages on npm, NuGet and crates.io. Node.js 24 or later is stated and Windows 11 builds are listed per release, but the README gives no minimum host version for Linux or macOS (18 of 20). The Build workflow runs lint, Windows, Linux and macOS builds and SDK unit and integration tests on every push to main. Of the last 14 completed runs on main, 10 passed and 4 failed, and the newest (7 October 2026) passed. A flaky test is tracked in issue #1365 (18 of 25). 38 open issues against 261 closed. Ten open issues carry the bug label, seven of them filed since 15 September, and three outside reports from 24 September to 2 October have no reply (19 of 25). The changelogs follow Keep a Changelog with breaking changes marked, and the v1.0.0 release notes have a breaking-changes section. The Node and .NET changelogs still list the V1 changes under Unreleased with no 1.0.0 heading (11 of 15). Version 1.0.0, which the release notes call the first stable release (15). It was published on 6 October 2026, two days before this check, and three backends are marked experimental. | |||
| Performancenot scored in this run | 10%pending | pending | n/a |
| Schema & documentation | 13%16.2 | 13.2 | |
Read as an SDK with a published request contract. A draft-07 JSON Schema for the stable 1.0.0 request sits in the repository, and the Node SDK ships TypeScript declarations (25). No llms.txt. The docs are Markdown files in the repository (5 of 10). The API reference states what each operation does and has a table for choosing between captured, piped and terminal execution, and the backend guides say which policies each backend enforces and which are cooperative (15 of 20). Containment is a closed union, network actions and clipboard levels are enums, the schema has 33 enums and 39 objects closed to extra properties, and 135 of 150 properties carry a description. command is one free string (13 of 15). Ten sample scenarios, each in Rust, .NET and Node. The 12 error codes are a closed type, but we found no page that explains each one (11 of 15). A versioned /v1 entry point, a schema version table with retired contracts, a changelog for each SDK and GitHub release notes. The Node changelog has no 1.0.0 entry (12 of 15). | |||
| Agent ergonomics | 13%16.2 | 12.0 | |
One request type with command as the only required field, and run returns stdout, stderr, the exit code, a timeout flag and warnings. We found no documented cap on captured output, and the npm package is a 37.7 MB tarball (18 of 25). spawn streams output and timeoutMs bounds a run, but there is no truncation or size control on captured output (10 of 20). MxcError carries one of 12 codes with optional operation, native code and remediation, and a deny-and-record mode lists blocked accesses on ProcessContainer (18 of 20). validate* calls dry-run every lifecycle step, and lifecycle state errors are typed (already_started, stale_id). Issue #1429, open since 6 October, reports a second deprovision returning success. Not an MCP server, so no tool annotations apply (13 of 20). Network, filesystem and UI policy default to deny, and official SDKs exist for Node.js, .NET and Rust (15). | |||
| Security & auth | 14%17.5 | 12.1 | |
No credentials to issue or leak, because the library runs in the caller's process, so the middle band (20 of 30). Least privilege is the product's job. Egress, ingress and host loopback default to deny, filesystem access is limited to listed paths, UI access is denied when omitted, and validation rejects a policy the chosen backend can't enforce. The limits are documented. isolation_session cannot restrict networking, proxy routing is cooperative on Seatbelt and WSLC, the Windows DACL fallback that edits host file permissions is allowed by default, and --audit turns the sandbox off (17 of 20). The workload's output is untrusted content. The SDK keeps warnings and denial metadata out of stdout and stderr, but we found no guidance for an agent reading that output (8 of 15). Local JSON audit records for process exits, tier fallbacks, teardown and rejected configs through --log-file on the executors, and the deny-and-record capture. We found no equivalent switch documented for the in-process SDKs (10 of 15). SECURITY.md sends reports to MSRC, CodeQL runs in CI and the repository has a fuzzing pipeline. No advisories are published, although at least 20 enforcement gaps were fixed through public issues between August and October 2026. The security.txt on microsoft.com expired on 23 September 2026, and the Node SDK's PATH-resolved whoami at import (issue #1265) has had no reply since 24 September (14 of 20). | |||
| Payments & pricing | 10%12.5 | 7.5 | |
| Read with the self-hosted rule. No x402, MPP or L402 (0 of 40). MIT software with nothing to buy and no hosted option, so 20 for pricing, 20 for free use with no card and 20 because an agent can install it from npm with no account. | |||
| Task successnot scored in this run | 10%pending | pending | n/a |
| Maintenance & community | 7%8.8 | 8.1 | |
v1.0.0 on 6 October 2026 (30). Three npm releases in the last 90 days, 0.8.0 on 22 August, 0.9.0 on 28 September and 1.0.0 on 6 October (20). 261 issues closed against 38 open, with issue forms, triage labels and fixes that land within days (issue #1430 was opened on 6 October and closed on 7 October). Three outside bug reports filed between 24 September and 2 October have no comment (19 of 25). Official SDKs for Node.js, .NET and Rust, all at 1.0.0 (15). A package-lock check, CodeQL and Dependabot for GitHub Actions in CI. The npm package has no repository field and no provenance attestation (8 of 10). | |||
| Transparency & trusteditorial 86, provenance 79 | 7%8.8 | 7.3 | |
MIT for the repository and for the published npm package, whose LICENSE.md we compared with the repository's (30). Local software with no service behind it. The telemetry docs list what the optional Windows events contain (version, backend, bounded outcomes, policy fingerprints) and what they omit (commands, file paths, credentials, free-form error text), and the consent prompt links Microsoft's privacy statement. No retention period for those events is stated (24 of 30). The release notes name V1 as the compatibility boundary for 1.x under semver 2.0, breaking changes need a new versioned surface, and the schema docs mark retired contracts. No notice period with dates was found (12 of 20). Telemetry is disclosed in the README, off by default, opt-in for each run, subject to user consent and an administrative block, and absent on Linux and macOS (20). | |||
| Negative events | ≤15 | None recorded | 0 |
| Total | 76.3 · BB | ||
Weight is the published weight, and the figure under it is that category's share of the 100 points in this run. A pending category has no score and adds nothing. What changes when it's scored.
Fix list 18 items, the biggest gain first
Everything this grade says the listing lacks, from the reasons above, the checklist, the provenance checks, the deductions, what we couldn't check and what the review panel asked for. Paste it into a coding agent working on Microsoft Execution Containers, or have the agent fetch /fixes/microsoft-execution-containers.md. A fix counts at the next check, once it's public.
Show it
# Fix list: Microsoft Execution Containers From Anchor Terminal's listing at https://www.anchorterminal.com/tools/microsoft-execution-containers, the October 2026 research run, assessed 8 October 2026. Grade BB, 76.3 out of 100. This is everything the published grade says the listing lacks, the biggest possible gain to the total first. It comes from the reason given for each score, the checklist each category was scored against (https://www.anchorterminal.com/benchmark/#checklist), the provenance checks, the deductions, what we couldn't check and what the review panel asked for. A fix counts at the next check, once it's public. For a coding agent working on Microsoft Execution Containers: work through the items below in the product, its docs and its public pages. Each category gives the reason for its score, with the points each checklist item earned, and the checklist itself, so the gap is the items that earned less than their points. Change the product, not the wording, and keep a note of what you changed and where it's published. ## 1. Security & auth, 69 out of 100, up to 5.4 more on the total Why it scored 69: No credentials to issue or leak, because the library runs in the caller's process, so the middle band (20 of 30). Least privilege is the product's job. Egress, ingress and host loopback default to deny, filesystem access is limited to listed paths, UI access is denied when omitted, and validation rejects a policy the chosen backend can't enforce. The limits are documented. `isolation_session` cannot restrict networking, proxy routing is cooperative on Seatbelt and WSLC, the Windows DACL fallback that edits host file permissions is allowed by default, and `--audit` turns the sandbox off (17 of 20). The workload's output is untrusted content. The SDK keeps warnings and denial metadata out of stdout and stderr, but we found no guidance for an agent reading that output (8 of 15). Local JSON audit records for process exits, tier fallbacks, teardown and rejected configs through `--log-file` on the executors, and the deny-and-record capture. We found no equivalent switch documented for the in-process SDKs (10 of 15). SECURITY.md sends reports to MSRC, CodeQL runs in CI and the repository has a fuzzing pipeline. No advisories are published, although at least 20 enforcement gaps were fixed through public issues between August and October 2026. The security.txt on microsoft.com expired on 23 September 2026, and the Node SDK's PATH-resolved `whoami` at import (issue #1265) has had no reply since 24 September (14 of 20). The checklist (https://www.anchorterminal.com/benchmark/#checklist-security): - 0 to 30, the credential model. 30 for OAuth 2.1 with scopes, or scoped and revocable keys with rotation. 20 for plain revocable API keys. 10 for one all-powerful key. 10 off when a secret can travel in a URL query string as a documented option. - 0 to 20, read-only or least-privilege modes, and confirmation or approval for destructive actions. - 0 to 15, prompt-injection posture where the tool returns untrusted content (documented mitigations or guidance). A tool that returns no untrusted content gets 10. - 0 to 15, audit logs or per-call visibility for the operator. - 0 to 20, a security programme. security.txt or a disclosure policy, a bug bounty, SOC 2 or ISO 27001, advisories handled in public. Models are read for retention, whether API data trains models (and whether that's off by default), zero-retention options and certifications. Frameworks for telemetry defaults, approval hooks, guardrails and sandboxing. ## 2. Payments & pricing, 60 out of 100, up to 5 more on the total Why it scored 60: Read with the self-hosted rule. No x402, MPP or L402 (0 of 40). MIT software with nothing to buy and no hosted option, so 20 for pricing, 20 for free use with no card and 20 because an agent can install it from npm with no account. The checklist (https://www.anchorterminal.com/benchmark/#checklist-payments): The published rubric, also on the [x402 page](https://www.anchorterminal.com/x402/). - 40, a machine payment protocol (x402, MPP or L402) on the tool's own endpoints. 10 to 30 when it covers only some endpoints or only goes through a third party, and the note says which. - 20, per-call or per-unit pricing published without a login. 10 for public plan-only pricing, 0 for "contact sales" or prices behind a login. - 20, a free tier or trial that doesn't need a card. - 20, autonomous onboarding, meaning an agent can get access without a person signing up in a browser (keyless use, x402, a programmatic key API). Payment platforms and agent wallets rarely charge for their own API over a machine protocol, so the first line has steps for them, and the highest one that applies counts. 40 when x402, MPP or L402 runs on all their own endpoints, 30 when it runs on part of their own API, 25 when their merchants can accept one, 20 for running a facilitator, 15 for paying as a buyer, and 0 when the only protocol is their own. Merchant acceptance sits above a facilitator because the platform's own customers can charge agents through it, while a facilitator settles for sellers who wire up the protocol themselves. The counter-argument (a facilitator does more for the protocol as a whole) has a point. Each note says which step applied. Open-source software you run yourself is scored on its hosted or paid option if it has one. A free, self-hosted package with nothing to buy gets 20, 20 and 20 for the last three lines, and 0 to 40 for the first only if it ships a payment protocol. ## 3. Agent ergonomics, 74 out of 100, up to 4.2 more on the total Why it scored 74: One request type with `command` as the only required field, and `run` returns stdout, stderr, the exit code, a timeout flag and warnings. We found no documented cap on captured output, and the npm package is a 37.7 MB tarball (18 of 25). `spawn` streams output and `timeoutMs` bounds a run, but there is no truncation or size control on captured output (10 of 20). `MxcError` carries one of 12 codes with optional operation, native code and remediation, and a deny-and-record mode lists blocked accesses on ProcessContainer (18 of 20). `validate*` calls dry-run every lifecycle step, and lifecycle state errors are typed (`already_started`, `stale_id`). Issue #1429, open since 6 October, reports a second deprovision returning success. Not an MCP server, so no tool annotations apply (13 of 20). Network, filesystem and UI policy default to deny, and official SDKs exist for Node.js, .NET and Rust (15). The checklist (https://www.anchorterminal.com/benchmark/#checklist-ergonomics): - 0 to 25, context cost. For MCP, the number and size of the tool definitions (25 for ten or fewer compact tools, 15 for 11 to 30, 5 for more than 30, plus up to 10 back for toolsets, dynamic loading or read-only subsets). For APIs, whether responses can be sized (field selection, limits, summaries). - 20, pagination, filtering and output-size controls. - 20, actionable, documented error responses, codes and messages an agent can recover from. - 20, idempotency or safe retries, and for MCP the `readOnlyHint` and `destructiveHint` annotations. - 15, sensible defaults, few required parameters, and official SDKs in at least two languages. Models are read for tool use, structured output, prompt caching, context length, batch and SDKs. Frameworks for how much code and how many defaults a tool-calling agent with MCP needs. ## 4. Reliability, 81 out of 100, up to 3.8 more on the total Why it scored 81: Read with the local-software lines, because MXC is a library the owner runs. Official packages on npm, NuGet and crates.io. Node.js 24 or later is stated and Windows 11 builds are listed per release, but the README gives no minimum host version for Linux or macOS (18 of 20). The Build workflow runs lint, Windows, Linux and macOS builds and SDK unit and integration tests on every push to main. Of the last 14 completed runs on main, 10 passed and 4 failed, and the newest (7 October 2026) passed. A flaky test is tracked in issue #1365 (18 of 25). 38 open issues against 261 closed. Ten open issues carry the bug label, seven of them filed since 15 September, and three outside reports from 24 September to 2 October have no reply (19 of 25). The changelogs follow Keep a Changelog with breaking changes marked, and the v1.0.0 release notes have a breaking-changes section. The Node and .NET changelogs still list the V1 changes under Unreleased with no 1.0.0 heading (11 of 15). Version 1.0.0, which the release notes call the first stable release (15). It was published on 6 October 2026, two days before this check, and three backends are marked experimental. The checklist (https://www.anchorterminal.com/benchmark/#checklist-reliability): Hosted APIs, MCP servers, models and platforms. - 20, a public status page with component history (Statuspage, Instatus, BetterStack or the vendor's own). - 0 to 30, the incident record for the last 90 days on that page. 30 for a clean record or trivial incidents only, 20 for minor incidents only, 10 for one major outage (an hour or more of a core API down, or errors across the board), 0 for several. 5 when there's no history we could read, and the note says so. - 15, rate limits documented with numbers. - 15, documented 429 or overload handling (Retry-After, backoff guidance), and idempotency keys or safe-retry guidance where writes are involved. - 10, an SLA published for any paid tier. - 10, the surface agents use is generally available, not beta or preview. Local packages, SDKs, frameworks and stdio MCP servers. - 20, installs from an official package with supported runtimes stated. - 25, a public CI and test suite, passing on the default branch. - 0 to 25, open crash or regression issues relative to activity (25 for few and handled, 0 for many, old and unanswered). - 15, semver discipline and breaking changes called out in a changelog. - 15, version 1.0 or later, or declared stable. Protocols are read from their reference implementations, the public facilitators or servers, spec stability and test vectors. ## 5. Schema & documentation, 81 out of 100, up to 3.1 more on the total Why it scored 81: Read as an SDK with a published request contract. A draft-07 JSON Schema for the stable 1.0.0 request sits in the repository, and the Node SDK ships TypeScript declarations (25). No llms.txt. The docs are Markdown files in the repository (5 of 10). The API reference states what each operation does and has a table for choosing between captured, piped and terminal execution, and the backend guides say which policies each backend enforces and which are cooperative (15 of 20). Containment is a closed union, network actions and clipboard levels are enums, the schema has 33 enums and 39 objects closed to extra properties, and 135 of 150 properties carry a description. `command` is one free string (13 of 15). Ten sample scenarios, each in Rust, .NET and Node. The 12 error codes are a closed type, but we found no page that explains each one (11 of 15). A versioned `/v1` entry point, a schema version table with retired contracts, a changelog for each SDK and GitHub release notes. The Node changelog has no 1.0.0 entry (12 of 15). The checklist (https://www.anchorterminal.com/benchmark/#checklist-schema): APIs and MCP servers. - 25, a machine-readable contract (a public OpenAPI file or similar; for MCP, typed JSON Schema inputs on every tool). - 10, llms.txt or Markdown docs served for agents. - 0 to 20, descriptions that say what a tool is for, when to use it and when not to, read from the tool definitions in the source or the API reference. - 0 to 15, typed inputs with enums, constraints and required fields, and no free-form JSON blobs. - 0 to 15, examples and documented error responses. - 15, versioning and a public changelog. Models are read from the API reference, the OpenAPI file, llms.txt, the structured-output and tool-use docs and the model cards. Frameworks from docs a model can follow, typed interfaces, examples and the API reference. ## 6. Transparency & trust, 83 out of 100, up to 1.5 more on the total Made of editorial 86, provenance 79. Why it scored 83: MIT for the repository and for the published npm package, whose `LICENSE.md` we compared with the repository's (30). Local software with no service behind it. The telemetry docs list what the optional Windows events contain (version, backend, bounded outcomes, policy fingerprints) and what they omit (commands, file paths, credentials, free-form error text), and the consent prompt links Microsoft's privacy statement. No retention period for those events is stated (24 of 30). The release notes name V1 as the compatibility boundary for 1.x under semver 2.0, breaking changes need a new versioned surface, and the schema docs mark retired contracts. No notice period with dates was found (12 of 20). Telemetry is disclosed in the README, off by default, opt-in for each run, subject to user consent and an administrative block, and absent on Linux and macOS (20). The checklist (https://www.anchorterminal.com/benchmark/#checklist-transparency): - 0 to 30, source availability and licence clarity. 30 for open source under an OSI licence, 15 for closed with clear terms, 0 for unclear terms. - 0 to 30, data handling and retention statements that agree with each other (privacy policy, DPA, retention periods, subprocessors). - 0 to 20, a deprecation policy or notices with dates. - 0 to 20, telemetry disclosed with an opt-out (local software), or subprocessors and data locations disclosed (hosted). The other half of Transparency and trust is the provenance score, computed from checked facts (below). The category score is the mean of the two. Provenance checks not met in full (half of this category, computed from checked facts): - Privacy policy: published, but our reader couldn't read it (7 of 10) - Status page: not found (0 of 10) - security.txt: published but past its Expires date (5 of 10) ## 7. Maintenance & community, 92 out of 100, up to 0.7 more on the total Why it scored 92: v1.0.0 on 6 October 2026 (30). Three npm releases in the last 90 days, 0.8.0 on 22 August, 0.9.0 on 28 September and 1.0.0 on 6 October (20). 261 issues closed against 38 open, with issue forms, triage labels and fixes that land within days (issue #1430 was opened on 6 October and closed on 7 October). Three outside bug reports filed between 24 September and 2 October have no comment (19 of 25). Official SDKs for Node.js, .NET and Rust, all at 1.0.0 (15). A package-lock check, CodeQL and Dependabot for GitHub Actions in CI. The npm package has no `repository` field and no provenance attestation (8 of 10). The checklist (https://www.anchorterminal.com/benchmark/#checklist-maintenance): - 0 to 30, time since the last release, or the last published model or API change for a closed service. 30 within 30 days, 20 within 90, 10 within 180, 0 older. - 20, at least three releases or dated changelog entries in the last 90 days. - 0 to 25, responsiveness. Issues and pull requests answered on GitHub (the open issues and how recent the replies are). For closed services, a public changelog and a support or community channel that answers, 0 to 15. - 15, presence in the official MCP registry under a verified namespace (MCP servers), or current official SDKs (APIs and models). - 10, package health, current dependencies and CI. Models are read for deprecation notice periods and model churn rather than release counts. ## What we couldn't check What we couldn't read counted as absent. Publishing it on a page a plain HTTP fetch can read (not only in a browser) lets the next check count it. - The scout was right on vendor, packages, licence and category. One correction. The repository now carries a stability label, because the v1.0.0 release notes of 7 October 2026 call it the first stable release. The June blog's early preview label predates that. - The repository README names the product Microsoft eXecution Container (MXC), and the blog and the npm description say Microsoft Execution Containers. The listing uses the blog's form. - Why npm shows 471,674 weekly downloads for a package that reached 1.0.0 on 6 October. The blog says GitHub Copilot CLI adopted MXC, which may account for it, but we did not confirm the dependency. - Whether MXC falls under a Microsoft bug bounty programme. SECURITY.md points to MSRC in general terms. - Whether the 20 or more enforcement gaps fixed through public issues between August and October 2026 affected any published npm version on a default backend. We took no deduction. - unchecked: the GitHub REST API refused our reader with a rate limit, so the repository's creation date, the full release asset list and reply times on issues were not read. Star count and release dates came from the web pages. - unchecked: how long Microsoft retains the optional Windows telemetry events. - unchecked: nothing was installed or run. Start time, isolation and enforcement claims are the vendor's documentation, not our measurement. ## Weaknesses - 1.0.0 shipped on 6 October 2026, and the Node changelog still lists the V1 changes under Unreleased - Enforcement differs by backend. `isolation_session` cannot restrict networking, and proxy routing is cooperative on Seatbelt and WSLC - Persistent containers exist only for `isolation_session` and `wslc`, both on Windows - On Windows the Node SDK runs a PATH-resolved `whoami` at import, reported on 24 September 2026 and still open - The npm package is 37.7 MB compressed, needs Node.js 24 or later, and carries no `repository` field or provenance attestation ## What costs an agent a turn today The notes we give agents before they call it. Each one is a workaround an agent shouldn't need. - Import from `@microsoft/mxc-sdk/v1`. The package root exports nothing. - Call `getPlatformSupport()` first and stop if `isSupported` is false. `getAvailableBackends()` is advisory and launch-time validation still applies. - Set `network.egress.default` to `allow` only when the task needs it. Omitted network policy resolves to deny in every direction. - Never pass `--audit` to an executor for untrusted code. It turns off all sandbox security for the workload. - Read `ExecutionResult.warnings` after each run. Security warnings arrive there and are not written to stdout or stderr. ## When it's done Send what changed and where it's published as a dispute (https://www.anchorterminal.com/builders/#disputes, or `POST https://www.anchorterminal.com/api/v1/contact` with `"kind": "dispute"`). Disputes are answered in public, and the listing is checked again by the same checklist. Paying for an audit or a listing claim changes nothing here.
What we couldn't check
- The scout was right on vendor, packages, licence and category. One correction. The repository now carries a stability label, because the v1.0.0 release notes of 7 October 2026 call it the first stable release. The June blog's early preview label predates that.
- The repository README names the product Microsoft eXecution Container (MXC), and the blog and the npm description say Microsoft Execution Containers. The listing uses the blog's form.
- Why npm shows 471,674 weekly downloads for a package that reached 1.0.0 on 6 October. The blog says GitHub Copilot CLI adopted MXC, which may account for it, but we did not confirm the dependency.
- Whether MXC falls under a Microsoft bug bounty programme. SECURITY.md points to MSRC in general terms.
- Whether the 20 or more enforcement gaps fixed through public issues between August and October 2026 affected any published npm version on a default backend. We took no deduction.
- unchecked: the GitHub REST API refused our reader with a rate limit, so the repository's creation date, the full release asset list and reply times on issues were not read. Star count and release dates came from the web pages.
- unchecked: how long Microsoft retains the optional Windows telemetry events.
- unchecked: nothing was installed or run. Start time, isolation and enforcement claims are the vendor's documentation, not our measurement.
Sources 25
- repository README (backends, packages, telemetry summary, audit mode) github.com · seen 2026-10-08
- v1.0.0 release notes github.com · seen 2026-10-08
- npm registry record (versions, dates, engines, maintainers) registry.npmjs.org · seen 2026-10-08
- npm weekly downloads api.npmjs.org · seen 2026-10-08
- Rust crate record crates.io · seen 2026-10-08
- NuGet registration record api.nuget.org · seen 2026-10-08
- Node SDK README github.com · seen 2026-10-08
- Node SDK changelog github.com · seen 2026-10-08
- Node V1 operation signatures github.com · seen 2026-10-08
- Node V1 types, including the error codes github.com · seen 2026-10-08
- configuration schema, network defaults and contract versions github.com · seen 2026-10-08
- stable 1.0.0 JSON Schema github.com · seen 2026-10-08
- telemetry policy and consent github.com · seen 2026-10-08
- telemetry architecture, event contents and local audit records github.com · seen 2026-10-08
- Windows build requirements github.com · seen 2026-10-08
- Seatbelt backend guide (cooperative proxy) github.com · seen 2026-10-08
- Build workflow runs on main github.com · seen 2026-10-08
- open issues github.com · seen 2026-10-08
- issue on the PATH-resolved whoami at import github.com · seen 2026-10-08
- issue on LXC container-to-host egress, closed 16 September 2026 github.com · seen 2026-10-08
- security advisories github.com · seen 2026-10-08
- Microsoft security reporting policy github.com · seen 2026-10-08
- security.txt microsoft.com · seen 2026-10-08
- announcement on the Windows Developer Blog, 2 June 2026 blogs.windows.com · seen 2026-10-08
- domain registration (RDAP) rdap.verisign.com · seen 2026-10-08
Probe metrics
Not measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. The live panel above has what the pollers have seen so far, which doesn't change the score.
Pricing & changes
Free Free · OSS Free. The SDKs and native runtime are MIT and install from npm, NuGet and crates.io with no account or card. There is no hosted service and nothing to buy. Compute is the owner's own machine. The Windows backends need Windows 11 at the builds listed in the repository (checked 2026-10-08).
Recent changes
- Latest release
Follow them as a feed at /feeds/tools/microsoft-execution-containers.xml, or this listing's score history at history.json.
Connect
Install
npm install @microsoft/mxc-sdk
Through letme picks today, calling later
GET https://letme.dev/microsoft-execution-containers
letme picks this listing for sandbox.code, because it's the top-graded tool for the job. letme picks this listing for sandbox.fs, because it's the top-graded tool for the job. letme picks this listing for sandbox.persist, because it's the top-graded tool for the job.
letme.dev answers with this listing and how to call it direct, and picks the best tool for a job by capability or in words. Calling through letme (one key, the vendor's own price) comes later. Nothing on letme.dev is for people to look at; this page explains it.
Compare with
Modal Sandboxes BBVercel Sandbox BE2B BCloudflare Sandbox SDK BRunloop Devboxes BDaytona B
Head to head Blaxel Sandboxes vs Microsoft Execution Containers · Cloudflare Sandbox SDK vs Microsoft Execution Containers · Daytona vs Microsoft Execution Containers · E2B vs Microsoft Execution Containers · Microsoft Execution Containers vs Modal Sandboxes · Microsoft Execution Containers vs Runloop Devboxes · Microsoft Execution Containers vs Vercel Sandbox · Agent 37 Cloud vs Microsoft Execution Containers
Machine-readable
| Similar tool | Grade | Score | Shared capabilities | x402 |
|---|---|---|---|---|
| Modal Sandboxes Modal | BB | 75.5 | sandbox.code sandbox.fs sandbox.persist | no |
| Vercel Sandbox Vercel | B | 69.6 | sandbox.code sandbox.fs sandbox.persist | no |
| E2B E2B | B | 68.3 | sandbox.code sandbox.fs sandbox.persist | no |
| Cloudflare Sandbox SDK Cloudflare | B | 67.5 | sandbox.code sandbox.fs sandbox.persist | no |
| Runloop Devboxes Runloop | B | 64.8 | sandbox.code sandbox.fs sandbox.persist | no |
| Daytona Daytona | B | 64.3 | sandbox.code sandbox.fs sandbox.persist | no |
Machine-readable
- JSON
/api/v1/tools/microsoft-execution-containers.json· historyhistory.json· badge/badges/microsoft-execution-containers.svg· changes feed/feeds/tools/microsoft-execution-containers.xml - Markdown
/tools/microsoft-execution-containers.md· slim/tools/microsoft-execution-containers.min.md(or sendAccept: text/markdown) - Fix list
/fixes/microsoft-execution-containers.md·/fixes/microsoft-execution-containers.json - From a terminal
anchor tool microsoft-execution-containers --md(the CLI) · over MCPget_tool {"slug": "microsoft-execution-containers"}at/mcp, no key - Directory index
/api/v1/tools.json· site index/llms.txt
Verify this listing
For the vendorIs this your product? Link to this page from your own site or README, then tell us where. It shows people and agents that the listing is yours and that you know it's here. It never changes a grade, rank or review.
-
Add the badge or a link
On a light page On a dark page <a href="https://www.anchorterminal.com/tools/microsoft-execution-containers"><img src="https://www.anchorterminal.com/badges/microsoft-execution-containers.svg" alt="Microsoft Execution Containers on Anchor Terminal" height="20"></a>[](https://www.anchorterminal.com/tools/microsoft-execution-containers)<a href="https://www.anchorterminal.com/tools/microsoft-execution-containers">Microsoft Execution Containers on Anchor Terminal</a>It counts on a page on microsoft.com or one of its subdomains, a page under github.com/microsoft, or the README of github.com/microsoft/mxc.
-
Tell us where it is
We read it once now and again every week. If the link is missing two weeks in a row the listing says so, and a later check puts it back.
Agents send the same to POST /api/v1/verify as {"slug": "microsoft-execution-containers", "url": "…"}, or call the verify_listing tool at /mcp. Ten checks an hour from one address. What we check.
