MCP6 min read

npx ldm-inbox-check-mcp — zero-install deliverability tool

`npx -y ldm-inbox-check-mcp` and you're done. No global install, no maintenance, always latest. The fastest way to wire deliverability into any MCP client.

The npm ecosystem solved one thing beautifully: running a command-line tool without installing it. npx downloads the package, runs it, and gets out of the way. For MCP servers this is the perfect distribution model — you want the latest version every time you launch Claude Desktop, and you do not want to manage a global install. This article shows how to use it and what to know about the quirks.

The whole article in 30 seconds

Drop npx -y ldm-inbox-check-mcp into your MCP client config with your API key. Restart the client. You now have placement tests, authentication checks and folder placement at your agent's fingertips. No install step, ever.

What npx gets you vs a global install

You could do npm install -g ldm-inbox-check-mcp and point your MCP client at the resulting binary. It works. It also gets stale immediately.

  • npx: always runs the latest version published to npm. Zero maintenance. Tiny cold-start cost on the first run after an update (a few seconds).
  • Global install: fast every run. Pinned to whichever version you last installed. You have to remember tonpm update -g.

For a developer laptop, npx wins on every axis that matters. For production (containers, shared servers), pin the version — see the self-hosting article.

The one-line config for Claude Desktop

Claude Desktop reads claude_desktop_config.json at launch. Paths:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Minimal config:

{
  "mcpServers": {
    "inbox-check": {
      "command": "npx",
      "args": ["-y", "ldm-inbox-check-mcp"],
      "env": { "INBOX_CHECK_API_KEY": "ic_live_..." }
    }
  }
}

The -y flag tells npx to auto-accept the prompt that asks you if you want to install the package. Without it, Claude Desktop would hang forever on first launch waiting for a Y/N that never comes.

Fully quit Claude Desktop (Cmd+Q on macOS, not just close the window) and relaunch. The hammer icon in the composer should list the Inbox Check tools.

The one-line config for Cursor

Cursor's MCP settings live under Settings → MCP → Add new MCP server. Fill in:

Name:    inbox-check
Command: npx
Args:    -y ldm-inbox-check-mcp
Env:     INBOX_CHECK_API_KEY=ic_live_...

Restart Cursor. In a composer window, @inbox-check should appear as a tool source.

Zed and other clients

The pattern is identical. Zed reads its config at ~/.config/zed/settings.json under the context_servers key. Continue.dev and other MCP-compatible clients accept the same command/args/env tuple.

Environment variable conventions

Only one variable is required:

  • INBOX_CHECK_API_KEY — your key, starting with ic_live_. Get one from account settings on the dashboard.

Optional:

  • INBOX_CHECK_API_BASE — override the default endpoint. Only needed if you are on a private deployment.
  • INBOX_CHECK_DEFAULT_DOMAIN — a default sender domain to use when the agent does not specify one. Saves one round-trip on every test.
  • MCP_VERBOSE — set to 1 to log every tool call to stderr. Useful for debugging wonky agent behaviour.
Keep the key out of your client config file if you can

Claude Desktop's config file lives in plain text on your laptop. If your laptop backups are end-to-end encrypted, this is fine for a personal key. If they are not, consider pulling the key from a keychain. On macOS you can use a shell wrapper that reads from security find-generic-password and prints it to stdout.

Versioning: using a tag

By default npx -y ldm-inbox-check-mcp resolves to the latest published version on npm. If you want to pin to a specific version or a release channel:

# Pin to exact version.
npx -y ldm-inbox-check-mcp@0.7.2

# Follow a channel (e.g. beta).
npx -y ldm-inbox-check-mcp@beta

# Stay on a major line.
npx -y ldm-inbox-check-mcp@^0.7

A team that values reproducibility over freshness would pin to an exact version and bump it deliberately. A solo developer who wants the latest features should just run @latest (the default).

Caching behaviour of npx

npx does not re-download the package on every run. It caches under ~/.npm/_npx (macOS/Linux) or %LOCALAPPDATA%\npm-cache\_npx (Windows). On subsequent runs:

  • Same version requested → uses cached install. Sub-second start-up.
  • Newer version available → downloads and replaces cache. First-run penalty, usually 2–5 seconds.
  • Exact version pinned → never re-downloads.

That is why npx -y ldm-inbox-check-mcp feels slow once every few weeks (when we publish an update) and fast the rest of the time.

Forcing a refresh

# Nuke the npx cache for this package.
rm -rf ~/.npm/_npx

# Or force a specific package download.
npm cache clean --force
npx -y ldm-inbox-check-mcp@latest

Offline fallback

If you are on a plane, or your corporate proxy is blocking registry.npmjs.org, npx will fail on a cache miss. Three ways to survive:

  1. Keep the cache warm. Run npx -y ldm-inbox-check-mcp --version before you leave wifi.
  2. Install globally as a backup. npm install -g ldm-inbox-check-mcp. Even if npx fails, the binary stays on PATH.
  3. Configure your corp proxy. Set npm_config_registry or use a local npm mirror like Verdaccio.

Debugging output

When things go wrong, check:

Is the key being passed?

Run the server manually from a terminal to confirm:

INBOX_CHECK_API_KEY=ic_live_... \
  MCP_VERBOSE=1 \
  npx -y ldm-inbox-check-mcp

# Expect to see: "server listening on stdio, api key loaded"
# If you see: "INBOX_CHECK_API_KEY missing" -> env var not being passed.

Is the client finding the binary?

On macOS, Claude Desktop may not inherit your shell's PATH. If npx isn't found, use the absolute path:

which npx
# -> /Users/you/.nvm/versions/node/v22.0.0/bin/npx

# Then in config:
{
  "mcpServers": {
    "inbox-check": {
      "command": "/Users/you/.nvm/versions/node/v22.0.0/bin/npx",
      "args": ["-y", "ldm-inbox-check-mcp"],
      "env": { "INBOX_CHECK_API_KEY": "ic_live_..." }
    }
  }
}

Is the server actually running?

With MCP_VERBOSE=1 the server logs every tool call to stderr. Claude Desktop captures MCP server stderr in ~/Library/Logs/Claude/mcp*.log. Tail that file while you trigger a call.

Common gotcha: quitting with Cmd+W

Closing the Claude Desktop window with Cmd+W does NOT restart MCP servers. They only reload on full quit (Cmd+Q on macOS, File → Exit on Windows). After a config change you must fully quit.

Frequently asked questions

Does npx work behind a corporate proxy?

Yes, if you configure npm with npm config set proxy ... and npm config set https-proxy .... Otherwise the first-run download will fail silently. Test with npm ping to confirm registry reachability.

Why is the first run slow?

npx has to download the package and all its dependencies on first run. After that, it uses the cache. The package is small (under 5 MB) so first run is usually 2–5 seconds.

Can I use this with pnpm or yarn instead of npm?

Yes. pnpm dlx ldm-inbox-check-mcp and yarn dlx ldm-inbox-check-mcp work identically. Use whichever package manager you prefer; the cache behaviour is comparable.

How do I know when a new version is out?

Watch the package on npm (npm view ldm-inbox-check-mcp versions) or subscribe to release notes on the dashboard. Because you are using npx without a pin, you will just get the new version on next launch.
Related reading

Check your deliverability across 20+ providers

Gmail, Outlook, Yahoo, Mail.ru, Yandex, GMX, ProtonMail and more. Real inbox screenshots, SPF/DKIM/DMARC, spam engine verdicts. Free, no signup.

Run Free Test →

Unlimited tests · 20+ seed mailboxes · Live results · No account required