<?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: Chirag Kumar</title>
    <description>The latest articles on DEV Community by Chirag Kumar (@simplychiragk).</description>
    <link>https://dev.to/simplychiragk</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%2F3947802%2F808ea04c-48e3-4c4a-8cf0-e337dc2d34f5.png</url>
      <title>DEV Community: Chirag Kumar</title>
      <link>https://dev.to/simplychiragk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/simplychiragk"/>
    <language>en</language>
    <item>
      <title>Stop Hand-Editing MCP Configs: A Zero-Dependency Go CLI</title>
      <dc:creator>Chirag Kumar</dc:creator>
      <pubDate>Sat, 23 May 2026 14:45:26 +0000</pubDate>
      <link>https://dev.to/simplychiragk/stop-hand-editing-mcp-configs-a-zero-dependency-go-cli-2h9p</link>
      <guid>https://dev.to/simplychiragk/stop-hand-editing-mcp-configs-a-zero-dependency-go-cli-2h9p</guid>
      <description>&lt;p&gt;If you are experimenting with Model Context Protocol (MCP) servers using AI clients like Claude Desktop, Cursor, or terminal agents, you've probably hit this friction point: &lt;strong&gt;managing the configuration file.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Adding a new local or remote server usually means:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hunting down the hidden &lt;code&gt;mcp_config.json&lt;/code&gt; file (which lives in entirely different directories depending on your OS and the client you use).&lt;/li&gt;
&lt;li&gt;Manually editing a deeply nested JSON structure.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It sounds simple until you miss a comma, leave a trailing comma, or break a bracket, and suddenly your AI client crashes or fails to boot. &lt;/p&gt;

&lt;p&gt;I got tired of breaking my configs, so I built a tiny utility to handle it straight from the terminal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Enter &lt;code&gt;agmcp&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/simplychiragk/agmcp" rel="noopener noreferrer"&gt;agmcp&lt;/a&gt; is a CLI manager written in pure Go that safely reads, patches, and writes deeply nested JSON configurations without destroying existing keys or breaking your client apps with syntax errors.&lt;/p&gt;

&lt;p&gt;Here is a demo of how agmcp works:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fybi6nm54k3dcjzp3iezm.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fybi6nm54k3dcjzp3iezm.gif" alt="agmcp Demo" width="800" height="134"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Why build this?
&lt;/h3&gt;

&lt;p&gt;There are package managers for everything, but MCP configs are uniquely annoying because they are just raw JSON files sitting in arbitrary system paths. I wanted a tool that was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Blazing Fast &amp;amp; Lightweight:&lt;/strong&gt; Written in Go using strictly the standard library (&lt;code&gt;encoding/json&lt;/code&gt;, &lt;code&gt;os&lt;/code&gt;, &lt;code&gt;path/filepath&lt;/code&gt;). Absolutely no CGO.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safe:&lt;/strong&gt; It performs safe JSON patching. It won't overwrite or format over other custom settings your client might have saved in the file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frictionless:&lt;/strong&gt; It cross-compiles for Linux and Windows, with native install scripts that handle OS-level PATH injection automatically.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Usage
&lt;/h3&gt;

&lt;p&gt;Once installed, you don't even need to know where the config file is. You just run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Add a GitHub MCP server&lt;/span&gt;
agmcp add github npx &lt;span class="nt"&gt;-y&lt;/span&gt; @modelcontextprotocol/server-github

&lt;span class="c"&gt;# Remove a server&lt;/span&gt;
agmcp remove github

&lt;span class="c"&gt;# List active servers&lt;/span&gt;
agmcp list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Try it out
&lt;/h3&gt;

&lt;p&gt;If you are testing a lot of servers locally, give it a try. It is entirely open-source, and I'd love to get feedback from other developers on the Go architecture or the JSON patching approach.&lt;/p&gt;

&lt;p&gt;GitHub Repository: &lt;a href="https://github.com/simplychiragk/agmcp" rel="noopener noreferrer"&gt;https://github.com/simplychiragk/agmcp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me know what you think or if you run into any edge cases with specific MCP clients!&lt;/p&gt;

</description>
      <category>go</category>
      <category>cli</category>
      <category>opensource</category>
      <category>mcp</category>
    </item>
  </channel>
</rss>
