Get started in 2 minutes

The free plan includes 1,000 links/month with full CLI, API, and MCP access. Pick the path that fits how you work.

Choose your path

I'm a Marketer
Use the terminal to build tracked links and validate landing pages before launching campaigns.
I use AI Agents
Hand it to Claude, ChatGPT, Cursor, or any MCP-compatible agent and let them run it.
I'm a Developer
Use the CLI in scripts, the REST API in code, or the npm package in your build pipeline.

For Marketers

You don't need to write code. Open your terminal (Mac: Terminal app, Windows: PowerShell) and follow these three steps.

1

Install

This installs the mlz command on your machine. You need Node.js 18+ installed first.

npm install -g missinglinkz
2

Log in with your API key

Paste your API key. Don't have one yet? Generate a free key first — it takes a few seconds. This saves it locally so you don't need to enter it again.

mlz auth login --key mlz_live_your_key_here
3

Run your first preflight check

Replace the URL and campaign details with your own. This builds your tracked link, checks the destination is live, and inspects the landing page for social sharing readiness.

mlz preflight --url "https://yoursite.com/landing" --campaign "summer-sale" --source "linkedin" --medium "social" --format human
PASS  ssl            URL uses HTTPS.
PASS  resolution     Destination responded with 200.
PASS  redirects      No redirects detected.
PASS  og_tags        All essential Open Graph tags present.
PASS  twitter_card   Twitter Card tags configured.
PASS  viewport       Page is configured for mobile devices.
PASS  canonical      Canonical URL matches destination.
PASS  favicon        Favicon detected.
PASS  response_time  Response time: 142ms.

ready: true  —  9 passed, 0 warnings, 0 failed
→ https://yoursite.com/landing?utm_source=linkedin&utm_medium=social&utm_campaign=summer-sale

That final URL is your tracked campaign link. Copy it and use it in your LinkedIn post, email, or ad.

What else can I do?

Check a landing page before sending traffic
mlz inspect https://yoursite.com/landing — shows OG tags, Twitter Card, favicon, load time.
Validate a URL is working
mlz check https://yoursite.com/landing — checks SSL, redirects, response time.
Check your post copy fits the platform
mlz validate --copy "Your post text here" --platform linkedin — character limits, hashtag count, CTA detection.
See your past campaigns
mlz campaigns list — shows all campaigns tied to your account.

For AI Agent Users

MissingLinkz runs as an MCP server, which means Claude, ChatGPT, Cursor, Windsurf, and any MCP-compatible agent can use it as a tool. You install it once, add the config, and your agent handles the rest.

Set up with Claude Code

If you use Claude Code in the terminal, add MissingLinkz as an MCP server:

1

Install the package

Same install as above — skip if you already did this.

npm install -g missinglinkz
2

Add MCP config

Add this to your Claude Code settings (.claude/settings.json) or Claude Desktop config. Replace the API key with your real key.

.claude/settings.json
{
  "mcpServers": {
    "missinglinkz": {
      "command": "mlz",
      "args": ["mcp"],
      "env": {
        "MLZ_API_KEY": "mlz_live_your_key_here"
      }
    }
  }
}
3

Ask your agent to use it

Claude will automatically discover the MissingLinkz tools. Just ask in natural language:

Claude Code
> "Run a preflight check on https://mysite.com/promo
   for a LinkedIn social campaign called summer-sale"

Claude uses mlz_preflight:
  url: https://mysite.com/promo
  source: linkedin, medium: social, campaign: summer-sale

PASS ssl, resolution, og_tags, twitter_card, viewport...
tracked_url: https://mysite.com/promo?utm_source=linkedin&utm_medium=social&utm_campaign=summer-sale

9/9 checks passed. Link is ready to publish.

Your agent can call mlz_preflight, mlz_build_link, mlz_inspect_destination, mlz_validate_url, mlz_validate_content, and 6 more tools.

Optional: sync the skill file

Beyond the MCP server, MissingLinkz ships a SKILL.md — a structured reference that teaches an agent every command, flag, and JSON shape so it can drive the CLI directly. Run one command to copy it into the location Claude Code and other agents scan automatically:

mlz skills sync

This installs to ~/.claude/skills/missinglinkz/SKILL.md and stamps it with the package version. After npm update -g missinglinkz, re-run mlz skills sync to refresh it — or wire mlz skills sync --check || mlz skills sync into your setup script. Use --project to install per-repo, or --path for a different agent directory.

Set up with Claude Desktop

Open Claude Desktop → Settings → Developer → Edit Config. Add the same JSON block above to claude_desktop_config.json. Restart Claude. The MissingLinkz tools will appear in the tool picker.

Set up with ChatGPT (via MCP bridge)

ChatGPT doesn't natively support MCP yet, but you can use it via an MCP bridge or by running MissingLinkz in HTTP mode and connecting it as a custom action:

1

Start the MCP server in HTTP mode

This exposes the tools as an HTTP endpoint that any client can call.

MLZ_API_KEY=mlz_live_your_key_here mlz mcp --http --port 3000
2

Connect from ChatGPT or any MCP client

Point your MCP bridge or custom GPT action to the local server:

Endpoint:  http://localhost:3000/mcp
Transport: SSE (Server-Sent Events)

Set up with Cursor / Windsurf / other IDEs

Most MCP-compatible editors use the same config format. Add this to your editor's MCP settings:

{
  "command": "mlz",
  "args": ["mcp"],
  "env": { "MLZ_API_KEY": "mlz_live_your_key_here" }
}

The MCP server exposes 13 tools. Your agent discovers them automatically and uses them when relevant.

What to ask your agent

Here are prompts that work out of the box once MissingLinkz is connected:

"Run a preflight check on this URL before I post it on LinkedIn"
Builds a tracked link, validates the destination, checks OG tags, Twitter Card, viewport, SSL, and more.
"Build UTM links for my Q3 campaign across LinkedIn, Google, and email"
Generates 3 consistently-named tracked links with proper source/medium/campaign values.
"Check if this landing page has working social previews"
Inspects OG tags, Twitter Card, favicon, and load time. Reports what's missing.
"Validate my LinkedIn post copy before I publish"
Checks character count, hashtag limits, CTA detection, and image dimensions.
"Check my usage this month"
Shows links used, links remaining, and billing period.

For Developers

Use the CLI in scripts, call the REST API from your code, or import the npm package directly. All output is JSON by default.

CLI in scripts and CI/CD

Set the API key as an environment variable and call mlz from any shell script, Makefile, or CI pipeline:

1

Set your API key

Add to your shell profile or CI secrets:

export MLZ_API_KEY=mlz_live_your_key_here
2

Build links in a loop

Generate 3 tracked links for different channels in one script:

build-links.sh
#!/bin/bash
URL="https://yoursite.com/promo"
CAMPAIGN="q3-launch"

for source in linkedin google newsletter; do
  mlz build \
    --url "$URL" \
    --campaign "$CAMPAIGN" \
    --source "$source" \
    --medium "social"
done
3

Add preflight checks to CI

Run mlz check in your GitHub Actions or pipeline to catch broken links before deploy:

GitHub Actions step
- name: Validate campaign links
  run: |
    npm install -g missinglinkz
    mlz check https://yoursite.com/promo
    mlz check https://yoursite.com/webinar
  env:
    MLZ_API_KEY: ${{ secrets.MLZ_API_KEY }}

REST API

Call the API directly from any language. Base URL: https://api.missinglinkz.io

>

Build a tracked link via API

POST to /v1/links with your campaign parameters:

cURL
$ curl -X POST https://api.missinglinkz.io/v1/links \
  -H "Authorization: Bearer mlz_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://yoursite.com/promo",
    "campaign": "q3-launch",
    "source": "linkedin",
    "medium": "social"
  }'
<

Response

Returns the tracked URL, parameters, and storage confirmation:

JSON response
{
  "tracked_url": "https://yoursite.com/promo?utm_source=linkedin&utm_medium=social&utm_campaign=q3-launch",
  "params": {
    "utm_source": "linkedin",
    "utm_medium": "social",
    "utm_campaign": "q3-launch"
  },
  "link_id": "lnk_9wlvd9qi",
  "stored": true
}

Key API endpoints

POST /v1/links
Build and store a tracked campaign link.
GET /v1/links
List links for your account. Filter by campaign.
GET /v1/campaigns
List all campaigns.
GET /v1/auth/status
Check usage, plan, and quota.

All endpoints require Authorization: Bearer mlz_live_... header. Full docs: GitHub README


You're set up. Now ship something.

Your first 1,000 links are free every month. Run a preflight check on your next campaign link and see what it catches.

mlz preflight --url "https://yoursite.com" --campaign "first-test" --source "linkedin" --medium "social"

Need help? Email [email protected] — or read the blog for walkthroughs and examples.