MCP

MajorDTF runs a Model Context Protocol server so agents can prep, vectorize, and recolor artwork as tool calls. Get an API key from your account → API keys. Each call costs 1 credit from that account. AI Redraw is 2 credits Standard / 4 Pro; vectorize adds its 1-credit trace.

Install

One remote server, every client. Pick yours below and drop in your key. Everywhere you see mdtf_live_..., paste your real key from your account.

The buttons install with a placeholder key — open the server's settings afterward and replace mdtf_live_... with your real key.

Claude Code

Easiest — install the plugin (bundles the tools and the MajorDTF skill):

/plugin marketplace add pablodelmoral/Majordtf-MCP
/plugin install majordtf

Then set MAJORDTF_API_KEY in your environment. Or skip the plugin and add the server directly:

claude mcp add --transport http majordtf https://worker.majordtf.com/mcp/ \
  --header "Authorization: Bearer mdtf_live_..."

Claude Desktop

Use the Download for Claude Desktop button above, then drag the .mcpb into Settings → Extensions and paste your key when prompted. Prefer manual config? Settings → Developer → Edit Config:

{
  "mcpServers": {
    "majordtf": {
      "url": "https://worker.majordtf.com/mcp/",
      "headers": { "Authorization": "Bearer mdtf_live_..." }
    }
  }
}

Cursor · Windsurf · Cline · most clients

Same config (Cursor: ~/.cursor/mcp.json; Windsurf: ~/.codeium/windsurf/mcp_config.json) — or use the Add-to-Cursor button above.

{
  "mcpServers": {
    "majordtf": {
      "url": "https://worker.majordtf.com/mcp/",
      "headers": { "Authorization": "Bearer mdtf_live_..." }
    }
  }
}

VS Code

Use the button above, the CLI, or add to .vscode/mcp.json (note: servers + type):

code --add-mcp '{"name":"majordtf","type":"http","url":"https://worker.majordtf.com/mcp/","headers":{"Authorization":"Bearer mdtf_live_..."}}'
{
  "servers": {
    "majordtf": {
      "type": "http",
      "url": "https://worker.majordtf.com/mcp/",
      "headers": { "Authorization": "Bearer mdtf_live_..." }
    }
  }
}

Any other MCP client

Point it at the streamable-HTTP endpoint with your key as an Authorization header. It never enters the chat. If a client can't set headers, pass it as the tool's api_key argument instead.

https://worker.majordtf.com/mcp/

Local (stdio)

Prefer a local command? Run services/mcp/server.py; it reads the key from MAJORDTF_API_KEY.

{
  "mcpServers": {
    "majordtf": {
      "command": "python",
      "args": ["services/mcp/server.py"],
      "env": { "MAJORDTF_API_KEY": "mdtf_live_..." }
    }
  }
}

Tool: prep_artwork

prep_artwork(
  image_url="https://example.com/logo.png",
  width_in=11,
  garment_color="#1a1a1a",     # optional; one colour = knockout, omit = keep all
  thickness_protection=false,
  ai_redraw="standard"          # "off" (default) | "standard" (2cr) | "pro" (4cr)
)
# auth comes from the Authorization header you configured — not a tool argument
# -> { "file_url": "https://…/clean.png", "width": 3300, ... }

Returns the clean, full-resolution PNG file URL.

Tool: vectorize_artwork

Trace artwork into a clean vector SVG (deterministic Image-Trace replica).

vectorize_artwork(
  image_url="https://example.com/logo.png",
  width_in=11,
  n_colors=0,           # 0 = auto-detect palette (default); >16 keep all; 2-16 = exactly N
  clean_first=true,     # remove the background before tracing
  salvage="off",        # backward-compatible; exact trace by default
  redraw_tier="standard" # optional 2-credit redraw add-on; "pro" is 4
)
# -> { "file_url": "https://…/trace.svg", "format": "svg", ... }

Tool: recolor_artwork

Swap a colour (e.g. white→black) or tint the whole design. Works on a PNG or SVG.

recolor_artwork(
  image_url="https://example.com/logo.png",
  swap_from="#ffffff", swap_to="#000000"   # white -> black
  # ...or tint="#000000" to repaint every opaque pixel one colour
)
# -> { "file_url": "https://…/recolor.png", "format": "png", ... }

Tool: gangsheet_artwork

Prep several logos and lay them onto one 21" DTF gang sheet (each at its own width × quantity). Charges 1 credit per logo; quantities are free.

gangsheet_artwork(
  items=[
    { "image_url": "https://example.com/a.png", "width_in": 8, "qty": 3 },
    { "image_url": "https://example.com/b.png", "width_in": 4, "qty": 2, "bg_method": "key" }
  ],
  gap_in=0.25,
  sheet_width_in=21
)
# each logo prepped, then placed width × qty on one 21" sheet
# -> { "file_url": "https://…/gangsheet.png", "logos": 2, "total_pieces": 5,
#      "credits_charged": 2, ... }   # 1 credit per logo, quantities free

Tool: roster_artwork — coming soon

Number a whole team from one call. In development — not callable yet. Today the same job runs in the browser at majordtf.com/roster, free.

Each tool costs 1 credit (the gang sheet, 1 per logo). See the API docs for the full field reference.