<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ali Al-Jaafari</title>
    <description>The latest articles on DEV Community by Ali Al-Jaafari (@alih552).</description>
    <link>https://dev.to/alih552</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4005957%2Fdfcdc058-d8f2-45de-88ac-725b43d9957e.jpg</url>
      <title>DEV Community: Ali Al-Jaafari</title>
      <link>https://dev.to/alih552</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alih552"/>
    <language>en</language>
    <item>
      <title>I scanned my MCP setup and it scored 0/100. Here's what was wrong.</title>
      <dc:creator>Ali Al-Jaafari</dc:creator>
      <pubDate>Sun, 28 Jun 2026 01:40:10 +0000</pubDate>
      <link>https://dev.to/alih552/i-scanned-my-mcp-setup-and-it-scored-0100-heres-what-was-wrong-28g</link>
      <guid>https://dev.to/alih552/i-scanned-my-mcp-setup-and-it-scored-0100-heres-what-was-wrong-28g</guid>
      <description>&lt;p&gt;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:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Some of those servers have &lt;strong&gt;no authentication at all&lt;/strong&gt;. Anyone who can reach the URL can call my tools.&lt;/li&gt;
&lt;li&gt;My context window felt &lt;em&gt;full&lt;/em&gt; before I even typed a prompt.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;h2&gt;
  
  
  The tool
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;mcp-audit&lt;/code&gt; (&lt;a href="https://github.com/alih552/mcp-audit" rel="noopener noreferrer"&gt;https://github.com/alih552/mcp-audit&lt;/a&gt;) 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 &lt;strong&gt;100% locally&lt;/strong&gt; — it never connects to your servers or sends your config anywhere.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pipx install git+https://github.com/alih552/mcp-audit
mcp-audit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Here's the kind of thing it flagged on my (deliberately messy) test config:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;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
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  What each finding actually means
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;No auth on a remote server.&lt;/strong&gt; 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 &lt;em&gt;server&lt;/em&gt; has to hold the line, not the model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plaintext secrets in the config.&lt;/strong&gt; 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.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Over-broad filesystem roots.&lt;/strong&gt; 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.&lt;/p&gt;

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

&lt;p&gt;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: &lt;a href="https://alih552.github.io/mcp-forge/checklist.html" rel="noopener noreferrer"&gt;https://alih552.github.io/mcp-forge/checklist.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're &lt;em&gt;building&lt;/em&gt; an MCP server and want it secure from commit one, I also put together MCP Forge Kit (&lt;a href="https://alih552.github.io/mcp-forge/" rel="noopener noreferrer"&gt;https://alih552.github.io/mcp-forge/&lt;/a&gt;) — 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.&lt;/p&gt;
&lt;h2&gt;
  
  
  Try it on your setup
&lt;/h2&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pipx install git+https://github.com/alih552/mcp-audit
mcp-audit --json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;I'd love feedback on the checks — especially &lt;strong&gt;false positives&lt;/strong&gt; and checks you think are missing. Repo: &lt;a href="https://github.com/alih552/mcp-audit" rel="noopener noreferrer"&gt;https://github.com/alih552/mcp-audit&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>security</category>
      <category>claude</category>
    </item>
  </channel>
</rss>
