Odel
markitup mcp server

markitup mcp server

Local
@smythmyke2TypeScriptMITUpdated 3mo ago

MarkItUp AI image annotation and marketing-visual generator (variations, outpaint, bg-removal).

markitup-mcp-server

npm version MCP Registry Glama smithery badge License: MIT

MCP (Model Context Protocol) server for MarkItUp — AI-powered image annotation and marketing-visual generation. Lets Claude Code, Claude Desktop, Cursor, ChatGPT-with-MCP, and other MCP-compatible clients call MarkItUp directly.

Five tools available: markitup_credit_balance, markitup_generate, markitup_regen, markitup_extend, markitup_remove_background.

Prerequisites

  1. A MarkItUp account — sign up at https://markitup.app.
  2. A MarkItUp API key — generate one at https://markitup.app/dashboard.
  3. Node.js 18 or newer (only if installing locally; npx doesn't require a local Node.js if your MCP client bundles one).

Configure in Claude Code

Add to your MCP config (~/.claude/mcp.json or project-scoped .mcp.json):

{
  "mcpServers": {
    "markitup": {
      "command": "npx",
      "args": ["-y", "markitup-mcp-server"],
      "env": {
        "MARKITUP_API_KEY": "mk_live_..."
      }
    }
  }
}

Configure in Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "markitup": {
      "command": "npx",
      "args": ["-y", "markitup-mcp-server"],
      "env": {
        "MARKITUP_API_KEY": "mk_live_..."
      }
    }
  }
}

Configure in Cursor

Cursor uses the same JSON shape. Settings → MCP → Add Server:

{
  "mcpServers": {
    "markitup": {
      "command": "npx",
      "args": ["-y", "markitup-mcp-server"],
      "env": { "MARKITUP_API_KEY": "mk_live_..." }
    }
  }
}

Tools

markitup_credit_balance

Returns the current credit balance and subscription status.

No arguments. Use it to verify your API key works and to check credits before calling generation tools.

markitup_generate

Generates 3 polished marketing-visual variations from a screenshot. Costs 1 credit.

ArgumentTypeRequiredDescription
descriptionstringyesWhat the image shows and what to highlight
template_idstringyesOne of glassmorphic, clean_minimal, bold_marketing, dark_professional, documentation (and more)
image_urlstringone-ofPublic HTTPS URL of the source image
image_base64stringone-ofBase64-encoded image bytes (no data: prefix)
image_mime_typestringnoMIME type when supplying image_base64. Default: image/png
aspect_ratiostringnoOne of 1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9
image_sizestringno1K, 2K, or 4K

Returns: the marketing copy (headline, sub-headline) plus 3 generated image variations as base64 image content blocks. The full structured response is also available under structuredContent.

Example prompt (in Claude Code):

Use markitup_generate with the screenshot at https://example.com/dashboard.png — highlight the export button and pitch it for a marketing landing page using the bold_marketing template.

markitup_regen

Regenerate one variation from a previous markitup_generate call. Costs 1 credit by default (charge_credit: false to skip).

The LLM must pass back the text_analysis object from the previous generate's structuredContent.text so the regenerated visual stays on-brand with the same headline / sub-headline. variation_index selects which slot (0–2).

markitup_extend

AI outpaint — extend an image to a larger canvas / different aspect ratio. Costs 1 credit.

ArgumentTypeRequiredDescription
image_url / image_base64stringone-ofSource image
aspect_ratiostringyesTarget ratio (16:9, 9:16, etc.)
target_width / target_heightnumberyesOutput pixel dimensions
image_sizestringno1K, 2K, or 4K

markitup_remove_background

Remove the background from an image via Photoroom's HD model. Returns a transparent PNG. Costs 1 credit (free for active Pro/Power subscribers).

ArgumentTypeRequiredDescription
image_url / image_base64stringone-ofSource image

Environment variables

VarRequiredDescription
MARKITUP_API_KEYyesAPI key from your MarkItUp dashboard
MARKITUP_API_BASEnoOverride the API base URL. Default: https://markitup.app/api/v1. Useful for testing against staging.

Local development

git clone https://github.com/markitup/mcp-server.git
cd mcp-server
npm install
npm run build

# Point your MCP client config at the local build:
{
  "command": "node",
  "args": ["/absolute/path/to/mcp-server/dist/index.js"],
  "env": { "MARKITUP_API_KEY": "mk_test_..." }
}

Security

  • Never commit MARKITUP_API_KEY to source control.
  • If you accidentally expose a key, revoke it immediately at https://markitup.app/dashboard and create a new one.
  • Keys are SHA-256 hashed on the server; the raw key is shown only once at creation.

Errors

The server surfaces clean human-readable errors for the common cases:

  • Invalid or missing MARKITUP_API_KEY — set or rotate the key.
  • Out of MarkItUp credits — top up at https://markitup.app/credits.
  • Rate limit exceeded — wait briefly and retry.

License

MIT