/ Directory / Playground / Anthropic DXT
● Official anthropics ⚡ Instant

Anthropic DXT

by anthropics · anthropics/dxt

Desktop Extensions (DXT) — package an MCP server as a one-click installer for Claude Desktop, with manifest, runtime, and signature.

DXT (Desktop Extensions) is Anthropic's official format for shipping MCPs to non-technical users. Bundle your MCP server, dependencies, and manifest into a .dxt file that users double-click to install in Claude Desktop. Loaded as a skill resource, it gives Claude knowledge to help you author and validate DXT packages.

Why use it

Key features

Live Demo

What it looks like in practice

ready

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "anthropic-dxt-skill": {
      "command": "npx",
      "args": [
        "-y",
        "@anthropic-ai/dxt"
      ]
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "anthropic-dxt-skill": {
      "command": "npx",
      "args": [
        "-y",
        "@anthropic-ai/dxt"
      ]
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "anthropic-dxt-skill": {
      "command": "npx",
      "args": [
        "-y",
        "@anthropic-ai/dxt"
      ]
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "anthropic-dxt-skill": {
      "command": "npx",
      "args": [
        "-y",
        "@anthropic-ai/dxt"
      ]
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "anthropic-dxt-skill",
      "command": "npx",
      "args": [
        "-y",
        "@anthropic-ai/dxt"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "anthropic-dxt-skill": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@anthropic-ai/dxt"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add anthropic-dxt-skill -- npx -y @anthropic-ai/dxt

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use Anthropic DXT

Package your MCP as a DXT for non-technical users

👤 MCP authors with users beyond engineers ⏱ ~60 min intermediate

When to use: You don't want to ask users to edit JSON config files.

Prerequisites
  • Working MCP server — Use mcp-python-sdk or mcp-go to build first
Flow
  1. Init manifest
    Use DXT skill. Run dxt init in my MCP repo. Walk me through the manifest fields.✓ Copied
    → manifest.json scaffolded
  2. Declare config prompts
    My MCP needs an API_KEY. Add it as a user-prompt config field in the manifest.✓ Copied
    → User prompt field with description
  3. Build and test
    Run dxt pack. Install in Claude Desktop. Verify config prompts appear.✓ Copied
    → .dxt file installs cleanly; prompts render

Outcome: Your MCP installable by anyone with Claude Desktop in 2 clicks.

Pitfalls
  • Bundle size > 100MB — Trim deps; use --node-version to avoid bundling heavy node modules

Validate a DXT before publishing or sideloading

👤 Users + authors checking package integrity ⏱ ~10 min beginner

When to use: You're about to install or distribute a .dxt and want safety.

Flow
  1. Inspect manifest
    Run dxt validate path/to/extension.dxt. Show me what permissions it requests.✓ Copied
    → Permission summary
  2. Verify signature
    If signed, verify the publisher matches expected.✓ Copied
    → Signature ok or warning

Outcome: Confidence that the .dxt does what it claims.

Ship internal DXTs to your company without going public

👤 Platform teams distributing internal MCPs ⏱ ~90 min advanced

When to use: Internal MCPs need company-wide rollout, not GitHub release.

Flow
  1. Build with private signing
    Build the .dxt with our internal CA signature.✓ Copied
    → Signed .dxt
  2. Distribute via internal share
    Drop into our SharePoint with install instructions.✓ Copied
    → Team can install

Outcome: Internal MCP rollout without DevOps friction.

Combinations

Pair with other MCPs for X10 leverage

anthropic-dxt-skill + mcp-python-sdk

Build with Python SDK, ship with DXT

Develop the MCP with mcp-python-sdk, package as DXT for non-tech users.✓ Copied
anthropic-dxt-skill + mcp-go-mark3labs

Single-binary Go MCP wrapped in DXT

Cross-compile mcp-go binary; bundle in DXT.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
dxt init () Starting a new DXT 0
dxt pack () Build for distribution 0
dxt validate path Pre-install check 0
dxt sign path, key Publishing 0

Cost & Limits

What this costs to run

API quota
N/A — local
Tokens per call
N/A
Monetary
Free (MIT)
Tip
Trim node_modules with npm prune --production before pack

Security

Permissions, secrets, blast radius

Credential storage: Keys for sign in env vars
Data egress: None at build time

Troubleshooting

Common errors and fixes

Bundle too large

Use externalized runtime; declare deps as external in manifest where possible

Install fails with 'invalid signature'

Re-sign or use --skip-signature for local testing

Manifest validation error

Run dxt validate and fix the listed schema issues; common: missing display_name

Alternatives

Anthropic DXT vs others

AlternativeWhen to use it insteadTradeoff
Direct npx configUsers are devs comfortable editing JSONLower friction for techies, higher for everyone else
Smithery installerYou want a third-party install registryDXT is upstream/native; smithery is broader ecosystem tooling

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills