Tracking Infrastructure for Automated Marketing Teams
Human error and AI hallucinations break analytics. MissingLinkz is the strict taxonomy engine that validates links, enforces UTM rules, and prevents data fragmentation at scale.
$ mlz preflight --url "https://example.com/spring" \
--source linkedin --medium social \
--campaign spring-launch-2026
PASS ssl URL uses HTTPS.
PASS redirects No redirects detected.
FAIL resolution Destination returned 404 Not Found.
FAIL utm_taxonomy "social" not in allowed medium dictionary.
ready: false — 2 passed, 0 warnings, 2 failed
✗ Build Failed: Link returns 404. Deployment Blocked.
exit 1
See the taxonomy engine in action
Paste a messy URL and campaign values. Watch MissingLinkz normalize them into clean, consistent, analytics-safe UTMs — instantly, right here in your browser. No install, no signup.
// Hit "Clean & Validate" to see the normalized result.
Tired of doing this manually for every link? Send this to your dev team to automate it in your CI/CD pipeline — every campaign link cleaned, validated, and gated before it ships.
npm install -g missinglinkz
For AI Engineers
The default tracking middleware for the agentic web
You’re building a marketing agent. You don’t want to hand-roll regex to validate URLs, normalize UTMs, and catch 404s before your agent puts real budget behind a link. MissingLinkz is one MCP server your agent calls natively — messy strings in, clean validated links out. Stop writing tracking plumbing. Import it.
Your agent calls one tool — with whatever messy strings it has
→ mlz_build_link({
url: "https://example.com/spring",
campaign: "Spring Launch 2026!",
source: "LinkedIn",
medium: "Social"
})
It gets back structured JSON — normalized and validated
{
"tracked_url": "https://example.com/spring?utm_source=linkedin&utm_medium=social&utm_campaign=spring-launch-2026",
"params": {
"utm_source": "linkedin",
"utm_medium": "social",
"utm_campaign": "spring-launch-2026"
},
"link_id": "link_8f2a4c",
"stored": true
}
Drop it into any stack
It’s a standard MCP server (mlz mcp) and a REST API. No SDK lock-in.
{
"mcpServers": {
"missinglinkz": {
"command": "mlz",
"args": ["mcp"],
"env": { "MLZ_API_KEY": "mlz_live_…" }
}
}
}
{
"mcpServers": {
"missinglinkz": {
"command": "mlz",
"args": ["mcp"]
}
}
}
from langchain_mcp_adapters.client import (
MultiServerMCPClient)
client = MultiServerMCPClient({
"missinglinkz": {
"command": "mlz",
"args": ["mcp"],
"transport": "stdio"
}
})
tools = await client.get_tools()
# tools includes mlz_build_link, mlz_preflight
ready: true/false — not a screenshot of a web form your agent can’t read.
mlz preflight: a 404 or off-dictionary UTM exits non-zero and blocks the pipeline before spend goes live.
Pre-publish Checks
The validation engine
Don’t put $10,000 of ad spend behind a link that returns a 404. Every check runs as a build gate — broken links, fragmented UTMs, and blank social previews fail the pipeline before they go live.
$ mlz preflight --url "…/sale"
FAIL resolution 404 Not Found
✗ Deployment blocked — exit 1
A dead destination fails the build, not the campaign budget.
$ mlz build --source Facebook \
--medium "Paid Social"
✓ utm_source Facebook → facebook
✓ utm_medium Paid Social → paid-social
One canonical value per channel. No fragmented attribution.
$ mlz inspect "…/sale"
FAIL og_image Missing og:image
Preview will render blank.
Catch blank link previews before they kill click-through.
Feature Matrix
How MissingLinkz compares
| Feature | MissingLinkz | UTM.io | UTM Mind | Google Builder |
|---|---|---|---|---|
| CLI tool (terminal) | ✓ | ✗ | ✗ | ✗ |
| npm package | ✓ | ✗ | ✗ | ✗ |
| MCP server (AI agents) | ✓ | ✗ | ✗ | ✗ |
| REST API | ✓ | Paid tiers | Unknown | ✗ |
| Pre-publish validation (OG, images, links) | ✓ | ✗ | ✗ | ✗ |
| Content validation (copy rules) | ✓ | ✗ | ✗ | ✗ |
| Naming governance | ✓ | ✓ | ✓ | ✗ |
| Structured JSON output | ✓ | ✗ | ✗ | ✗ |
| Works in CI/CD pipelines | ✓ | ✗ | ✗ | ✗ |
| Web dashboard | Basic | Full | Full | Form only |
| Ad platform integrations | ✗ | Limited | ✓ (5 platforms) | ✗ |
| GA4 integration | ✗ | ✗ | ✓ | ✗ |
MissingLinkz doesn’t compete on dashboard features. It’s built for people who automate things — from terminal, from code, from AI agents. If you need a web dashboard with ad platform integrations, UTM Mind or UTM.io may be better fits. If you need campaign link infrastructure that works everywhere your code does, you’re in the right place.
Generous free tier. Pay when you need governance.
Free
1,000 links / month
Full CLI, MCP, and API. No credit card required.
- Preflight checks (URL + landing page)
- Destination intelligence (OG tags, Twitter Card, SSL, mobile)
- Full MCP server (all tools)
- Campaign taxonomy + naming suggestions
- CI/CD-ready — fail builds on broken links
- Structured JSON output
Team
Unlimited links
For RevOps and marketing teams.
- Everything in Free
- Shareable preflight reports
- Taxonomy enforcement (strict UTM dictionary, build-blocking in CI/CD)
- Shared workspace, up to 5 seats
Enterprise
Unlimited + SLA
For larger orgs with compliance needs.
- Everything in Team
- SSO / SAML
- Audit logs (who created which link, when)
- Unlimited seats
- SLA + dedicated support
Frequently asked questions
What is MissingLinkz?
MissingLinkz is tracking infrastructure for automated marketing teams — a strict taxonomy engine that validates campaign links, enforces UTM naming rules, and prevents analytics data fragmentation. It runs from the CLI, REST API, and npm package, or as an MCP server your AI agents call natively. It’s not a web dashboard; it’s the tracking middleware that works wherever your code and agents run.
How is this different from UTM.io or UTM Mind?
UTM.io and UTM Mind are web-app UTM builders with dashboards, ad platform integrations, and browser-based workflows. MissingLinkz is infrastructure — a CLI, npm package, REST API, and MCP server designed for programmatic access, automation pipelines, and AI agent workflows. We also validate OG tags, image dimensions, and content rules, which no other UTM tool does.
How is this different from Google’s Campaign URL Builder?
Google’s builder is a manual web form with zero validation. It will create a UTM link to a broken page without warning. MissingLinkz validates link health, OG tags, image dimensions, naming conventions, and content rules automatically. And it works from the command line, not just a browser.
What does mlz preflight check?
mlz preflight runs a comprehensive pre-publish check: destination URL resolves, SSL is valid, no redirect chains, Open Graph tags present and complete, Twitter Card tags configured, image dimensions meet platform requirements (LinkedIn, Facebook, X), and UTM parameters follow your naming conventions. All in a single command.
What does mlz publish_check validate?
mlz publish_check validates platform-specific content rules: character limits for different social platforms, hashtag counts, CTA detection, and copy formatting. It catches the issues that break posts after you’ve already published.
Can AI agents use MissingLinkz?
Yes. MissingLinkz includes an MCP (Model Context Protocol) server that any compatible AI tool — Claude Code, Cursor, custom agents — can call natively. Every response is structured JSON designed for machine consumption.
Is there a web interface?
Yes, at missinglinkz.io/build (coming soon). But the CLI and API are the primary interfaces. MissingLinkz is designed for people who automate things — the web builder is a convenience, not the core product.
How much does it cost?
Free tier includes 1,000 links/month with all validation checks — no credit card required. The Team plan is $49/month for unlimited links with shared workspace, taxonomy enforcement, and shareable preflight reports. Every plan runs in CI/CD with pass/fail exit codes; Team adds pipeline enforcement of your shared taxonomy, so off-dictionary links fail the build. Enterprise is contact-sales for SSO, audit logs, and SLA.
Stop deploying broken campaigns.
1,000 free validations a month. No credit card. Works locally in your terminal or natively via our MCP server.
# 1. Install globally
$ npm install -g missinglinkz
# 2. Start the MCP server for your AI agents
$ mlz mcp
# 3. Or validate a campaign locally right now
$ mlz preflight --url "https://yoursite.com" \
--campaign "q3-launch" --source linkedin --medium social
Get your free API key
1,000 validations/month. No credit card.
Your API key
Save this now — it won’t be shown again. Then run npm install -g missinglinkz and set MLZ_API_KEY.