DEV Community

Edison Flores
Edison Flores

Posted on

The MCP security checklist: 9 things to check before installing any MCP server

You wouldn't install a npm package without checking its dependencies. You shouldn't install an MCP server without checking its security. Here's the checklist we use at MarketNow — 9 layers, from basic to advanced.

1. Does it have a GitHub repo?

If the install command is npx -y some-package but there's no link to the source code, don't install it. You're running code on your machine — you should be able to read it first.

Check: npm view some-package repository.url

2. Does the repo have a README and LICENSE?

A repo without a README or LICENSE is a red flag. It means the author didn't bother with basic documentation or legal terms.

Check: Visit the GitHub repo. Is there a README.md? Is there a LICENSE file?

3. Are there hardcoded secrets?

Search the code for API keys, tokens, passwords. Even if they're example values, they indicate the author doesn't understand secret hygiene.

Check: grep -r "sk_live\|ghp_\|AKIA\|password.*=" .

4. Does it request dangerous permissions?

MCP servers can access your filesystem, network, and environment variables. Check what the server declares it needs.

Check: Read the server's manifest. Does it request:

  • Filesystem access? Which paths?
  • Network access? To which domains?
  • Environment variables? Which ones?
  • Subprocess execution?

5. Has it been audited?

Running a server in an isolated sandbox (Docker with --network none, --read-only) reveals its actual runtime behavior. Has anyone done this?

Check: Look for a security audit or certificate. At MarketNow, every skill has a Sentinel certificate showing its audit score (0-10).

6. Is it a typosquat?

Attackers create repos with names similar to popular packages. prospector-mcp-email-finder (legit) vs JuanquiForty/prospector-mcp-email-finder (typosquat with a trojan).

Check: Compare the repo URL against the official npm package. Are they the same owner?

7. Does the README promote external downloads?

If the README has a "Download Latest Release" badge that links to a zip on raw.githubusercontent.com or another external URL, don't click it. This is the exact vector that delivered a Windows trojan to our marketplace.

Check: Search the README for download links. Are they pointing to the repo's own releases page, or to an external URL?

8. Has the code changed recently?

A repo that was clean 3 months ago might have malware injected last week. Check the commit history.

Check: git log --oneline -20 — any suspicious commits? Any commits by unknown contributors?

9. Is there continuous monitoring?

Static audits catch problems at one point in time. But code changes. Does anyone re-audit the server after it's been certified?

Check: Look for evidence of continuous monitoring. At MarketNow, our L3 layer re-audits every skill weekly and detects:

  • Tool catalog changes (new tools appeared)
  • Supply chain drift (git commit changed)
  • Network behavior changes (new domains contacted)
  • Permission expansion (new paths accessed)

How MarketNow automates this checklist

We run all 9 checks automatically on every skill:

L1.5  → metadata checks (1-4 above)
L1.6  → semgrep + secrets + OSV (3, 5)
L1.7  → binary/malware detection (6, 7)
L1.8  → malware family signatures (5)
L2    → gVisor sandbox baseline (5)
L3    → continuous re-audit (8, 9)
WAF   → 40 attack signatures
Honeypot → 50+ fake paths
Threat Intel → abuse.ch feeds
Enter fullscreen mode Exit fullscreen mode

Each skill gets a score (0-10) and a signed certificate. You can verify any certificate at marketnow.site/verify.

The takeaway

MCP servers are powerful — they can read your files, make network requests, and execute code. Treat them with the same caution you'd treat a npm package or a Docker container. Run the checklist before installing.

Or just use MarketNow — we run it for you.

Try it: https://marketnow.site
Install: npx -y marketnow-mcp
GitHub: https://github.com/edgarfloresguerra2011-a11y/marketnow

Edison Flores, AliceLabs LLC

Top comments (0)