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
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)