<?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: AboJad</title>
    <description>The latest articles on DEV Community by AboJad (@tornidomarocweb).</description>
    <link>https://dev.to/tornidomarocweb</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3872982%2F87d9b235-078f-44fe-b33a-b625d0698855.png</url>
      <title>DEV Community: AboJad</title>
      <link>https://dev.to/tornidomarocweb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tornidomarocweb"/>
    <language>en</language>
    <item>
      <title>I built an MCP server that shows your AI agent which files matter — before it breaks something</title>
      <dc:creator>AboJad</dc:creator>
      <pubDate>Sat, 11 Apr 2026 06:16:03 +0000</pubDate>
      <link>https://dev.to/tornidomarocweb/i-built-an-mcp-server-that-shows-your-ai-agent-which-files-matter-before-it-breaks-something-4m1p</link>
      <guid>https://dev.to/tornidomarocweb/i-built-an-mcp-server-that-shows-your-ai-agent-which-files-matter-before-it-breaks-something-4m1p</guid>
      <description>&lt;p&gt;My AI agent broke a billing function last month.&lt;/p&gt;

&lt;p&gt;It wasn't wrong about the code. It just didn't know that file touched payments. It had no way to know.&lt;/p&gt;

&lt;p&gt;That's the problem I built &lt;code&gt;context-ops-mcp&lt;/code&gt; to fix.&lt;/p&gt;




&lt;h2&gt;
  
  
  What the agent was doing wrong
&lt;/h2&gt;

&lt;p&gt;When I'd ask Claude or Cursor to make a change, the agent would either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read every file (wasting my entire context window), or
&lt;/li&gt;
&lt;li&gt;Guess which files were relevant and sometimes guess wrong&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There was no middle ground. No structured view of the repo that said: &lt;em&gt;these files are risky, these are entry points, these are probably what you need for this task.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What context-ops-mcp does
&lt;/h2&gt;

&lt;p&gt;It's a local &lt;a href="https://modelcontextprotocol.io" rel="noopener noreferrer"&gt;Model Context Protocol (MCP)&lt;/a&gt; server. You point it at your project, and your agent gets 6 tools instantly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;get_project_structure&lt;/code&gt;&lt;/strong&gt; — Full repo map, skipping noise (&lt;code&gt;node_modules&lt;/code&gt;, &lt;code&gt;.git&lt;/code&gt;, &lt;code&gt;dist&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;get_risky_files&lt;/code&gt;&lt;/strong&gt; — Flags auth, DB, env, and payment logic &lt;em&gt;before&lt;/em&gt; the agent touches it&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;get_relevant_files_for_task&lt;/code&gt;&lt;/strong&gt; — You describe a task, it ranks which files actually matter&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;get_entry_points&lt;/code&gt;&lt;/strong&gt; — Finds wiring files, HTTP handlers, bootstrap points&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;get_semantic_summary&lt;/code&gt;&lt;/strong&gt; — Surface-level exports and functions from every &lt;code&gt;.ts&lt;/code&gt; file&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;get_likely_config_files&lt;/code&gt;&lt;/strong&gt; — All config, CI, env, and build files by naming convention&lt;/p&gt;

&lt;p&gt;No cloud sync. No account. No indexer. Just &lt;code&gt;npx&lt;/code&gt; and stdio.&lt;/p&gt;




&lt;h2&gt;
  
  
  Install in 30 seconds
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx context-ops-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or add to your Claude MCP config:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"context-ops"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"context-ops-mcp"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"cwd"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/path/to/your/project"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  What it's not
&lt;/h2&gt;

&lt;p&gt;I want to be honest about this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's &lt;strong&gt;heuristic-based&lt;/strong&gt; — pattern matching, not a full AST&lt;/li&gt;
&lt;li&gt;It only reads the &lt;strong&gt;first 50 lines&lt;/strong&gt; per file for semantic checks&lt;/li&gt;
&lt;li&gt;It's &lt;strong&gt;TypeScript-first&lt;/strong&gt; — other languages get minimal treatment&lt;/li&gt;
&lt;li&gt;It does &lt;strong&gt;not replace&lt;/strong&gt; tests, code review, or IDE intelligence&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's a navigation layer. The agent still does the work — it just knows where to look first.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I built it as an MCP server
&lt;/h2&gt;

&lt;p&gt;MCP is the right abstraction for this. It plugs into Claude Code, Cursor, Windsurf, and Cline without any custom integration. You configure it once and every agent that supports MCP gets the tools automatically.&lt;/p&gt;

&lt;p&gt;The alternative was building a one-off plugin per tool. That's a maintenance nightmare.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;npm: &lt;a href="https://www.npmjs.com/package/context-ops-mcp" rel="noopener noreferrer"&gt;context-ops-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/tornidomaroc-web/context-ops-mcp" rel="noopener noreferrer"&gt;tornidomaroc-web/context-ops-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you use it and hit something broken or missing, open an issue. This is an MVP and I'm actively building on it.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>saas</category>
      <category>ai</category>
      <category>developertools</category>
    </item>
  </channel>
</rss>
