惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
IT之家
IT之家
The Cloudflare Blog
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
N
Netflix TechBlog - Medium
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
L
LangChain Blog
博客园 - Franky
美团技术团队
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
小众软件
小众软件
Y
Y Combinator Blog
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
Hugging Face - Blog
Hugging Face - Blog
Jina AI
Jina AI
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I scanned my MCP setup and it scored 0/100. Here's what w...
Ali Al-Jaafari · 2026-06-28 · via DEV Community

Ali Al-Jaafari

I've been adding MCP servers to Claude and Cursor for months — GitHub, a filesystem server, a couple of search servers, a little internal HTTP one I wrote. It works great. Then two things bugged me:

  1. Some of those servers have no authentication at all. Anyone who can reach the URL can call my tools.
  2. My context window felt full before I even typed a prompt.

Turns out it's not just me. A 2026 analysis of ~7,000 public MCP servers found 41% require no auth, 36.7% are SSRF-vulnerable, and only 8.5% use OAuth. So I wrote a tiny tool to check my own config — and it scored 0 out of 100.

The tool

mcp-audit (https://github.com/alih552/mcp-audit) is a zero-dependency CLI that reads your MCP config (Claude Desktop, Cursor, VS Code, Windsurf, or a plain .mcp.json) and tells you what's wrong. It runs 100% locally — it never connects to your servers or sends your config anywhere.

pipx install git+https://github.com/alih552/mcp-audit
mcp-audit

Here's the kind of thing it flagged on my (deliberately messy) test config:

MCP Audit — ~/.cursor/mcp.json
  7 server(s) - ~13,160 context tokens - score 0/100 (F)

[HIGH] Remote server with no authentication  (internal-api)
[HIGH] Plaintext secret in config (GitHub token)  (github)
[MED]  Unpinned auto-updating executable (npx -y)  (filesystem)
[MED]  Over-broad filesystem root '/Users'  (filesystem)
[LOW]  7 servers ~ 13,160 context tokens loaded every request

What each finding actually means

No auth on a remote server. If your MCP server is reachable over HTTP and doesn't check a token, the model — or anyone who finds the URL — can run your tools. With prompt injection in the wild, the server has to hold the line, not the model.

Plaintext secrets in the config. A GITHUB_TOKEN sitting in .mcp.json leaks through the file itself and through your git history. Move it to an env var or a secret manager.

npx -y / uvx without a pinned version. That silently runs whatever was published most recently. It's a supply-chain risk — pin the version and review updates.

Over-broad filesystem roots. A filesystem server pointed at /Users or $HOME lets the model read and write far more than your project. Scope it to the project directory.

Token bloat. This was the one I didn't expect. Every server loads its tool schemas into every request. Five servers commonly cost 50-75k tokens of context before you type a word — that's real money and real latency. Disable the servers you aren't actively using.

The fix

For the config issues: pin versions, move secrets to env vars, scope filesystem access, and put auth in front of anything remote. There's a full MCP Server Security Checklist here: https://alih552.github.io/mcp-forge/checklist.html

If you're building an MCP server and want it secure from commit one, I also put together MCP Forge Kit (https://alih552.github.io/mcp-forge/) — a secure-by-default starter (bearer + JWT auth, SSRF-safe fetch, rate limiting, validation, tests, CI). But the auditor above is free and MIT, and genuinely useful on its own.

Try it on your setup

pipx install git+https://github.com/alih552/mcp-audit
mcp-audit --json

I'd love feedback on the checks — especially false positives and checks you think are missing. Repo: https://github.com/alih552/mcp-audit