Skip to content

Docs: Please clarify runtime policy — Node.js is bundled with Claude Desktop, Python is not; add official guidance for Python DXT packaging #89

@createcentury

Description

@createcentury

Summary
In DXT extensions, there is an important runtime difference: Claude Desktop bundles Node.js, while Python is not bundled. It would be very helpful if the official documentation explicitly clarified this, and also provided recommended best practices for packaging Python-based MCP servers into DXT (e.g. bundling Python, distributing binaries, or using a Node bridge).

Current behavior / docs

The official Anthropic engineering post explicitly states that Claude Desktop ships with Node.js built-in, eliminating external dependencies (“Built-in runtime: We ship Node.js with Claude Desktop…”).

The support documentation also says: “DXT extensions support Node.js, Python, and binary MCP servers. Claude Desktop includes a built-in Node.js environment…”

However, there is no clear official statement about Python. Community articles clarify that Python is not bundled (unlike Node.js) and developers must bundle it themselves, but there’s no centralized official guidance.

Why this matters

When distributing to non-technical end users, the extension must work in environments without a preinstalled Python runtime.

Without clear guidance, developers must guess whether to bundle Python, compile a binary, or use a Node bridge. Official recommendations would lower friction and increase DXT adoption.

Requested docs updates

Runtime policy statement

Explicitly state: “Claude Desktop bundles Node.js. Python is not bundled (as of now).” in the official README / MANIFEST.md / support docs.

Best practices for Python extensions

A. Bundled Python runtime: Include CPython in the .dxt and configure mcp_config.command with a relative path (with platforms overrides).

B. Binary approach: Package with PyInstaller / Nuitka and set server.type: "binary"; note OS-specific builds.

C. Node bridge: Implement an MCP server in Node.js that calls Python via child_process; include the Python binary inside the .dxt.

Provide minimal manifest.json examples, directory layouts, and cross-platform guidance.

Testing checklist

Add guidance to test in a clean environment with no Python installed.

Examples

Add to examples/: python-bundled, python-binary, node-bridge-to-python.

(Optional) Feature suggestions

Consider adding high-level manifest fields so the DXT CLI can automatically handle Python bundling at dxt pack time. Example:

"python_runtime": { "bundle": true, "version": "3.11.x", "path": "python-bin/" }

Provide official guidance (including licensing considerations) for distributing a minimal CPython with DXT.

Environment

Claude Desktop: latest

dxt CLI: latest

OS: macOS / Windows

References

Anthropic Engineering: “Desktop Extensions: One-click MCP server installation” — mentions Node.js built-in.

Anthropic Support: “Getting started with local MCP servers on Claude Desktop” — confirms Node.js built-in.

Community write-ups clarifying Node built-in vs Python not bundled (for reference).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions