<?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: Madhavi Pasumarthi(#madhaviai)</title>
    <description>The latest articles on DEV Community by Madhavi Pasumarthi(#madhaviai) (@madhaviai).</description>
    <link>https://dev.to/madhaviai</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%2F3936149%2F9538f203-64dd-4b89-a2b0-d28126195c04.png</url>
      <title>DEV Community: Madhavi Pasumarthi(#madhaviai)</title>
      <link>https://dev.to/madhaviai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/madhaviai"/>
    <language>en</language>
    <item>
      <title>Hi, this post brings you real-world MCP production challenges and approaches to solve.
Feel free to share additional issues, production experiences, or solutions in the comments.</title>
      <dc:creator>Madhavi Pasumarthi(#madhaviai)</dc:creator>
      <pubDate>Mon, 18 May 2026 15:22:42 +0000</pubDate>
      <link>https://dev.to/madhaviai/hi-this-post-brings-you-real-world-mcp-production-challenges-and-approaches-to-solve-feel-free-1m1j</link>
      <guid>https://dev.to/madhaviai/hi-this-post-brings-you-real-world-mcp-production-challenges-and-approaches-to-solve-feel-free-1m1j</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/madhaviai/the-real-problems-start-after-your-mcp-server-works-2al5" class="crayons-story__hidden-navigation-link"&gt;The Real Problems Start After Your MCP Server Works&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/madhaviai" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F3936149%2F9538f203-64dd-4b89-a2b0-d28126195c04.png" alt="madhaviai profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/madhaviai" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Madhavi Pasumarthi(#madhaviai)
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Madhavi Pasumarthi(#madhaviai)
                
              
              &lt;div id="story-author-preview-content-3690301" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/madhaviai" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3936149%2F9538f203-64dd-4b89-a2b0-d28126195c04.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Madhavi Pasumarthi(#madhaviai)&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/madhaviai/the-real-problems-start-after-your-mcp-server-works-2al5" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 18&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/madhaviai/the-real-problems-start-after-your-mcp-server-works-2al5" id="article-link-3690301"&gt;
          The Real Problems Start After Your MCP Server Works
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/mcp"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;mcp&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/llm"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;llm&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/madhaviai/the-real-problems-start-after-your-mcp-server-works-2al5" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/madhaviai/the-real-problems-start-after-your-mcp-server-works-2al5#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              1&lt;span class="hidden s:inline"&gt; comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>ai</category>
      <category>architecture</category>
      <category>llm</category>
      <category>mcp</category>
    </item>
    <item>
      <title>The Real Problems Start After Your MCP Server Works</title>
      <dc:creator>Madhavi Pasumarthi(#madhaviai)</dc:creator>
      <pubDate>Mon, 18 May 2026 15:02:13 +0000</pubDate>
      <link>https://dev.to/madhaviai/the-real-problems-start-after-your-mcp-server-works-2al5</link>
      <guid>https://dev.to/madhaviai/the-real-problems-start-after-your-mcp-server-works-2al5</guid>
      <description>&lt;p&gt;I've been spending a lot of time building and deploying MCP servers, experimenting with tool orchestration, agent workflows, and different ways to make LLM systems interact with external systems more reliably.&lt;/p&gt;

&lt;p&gt;&lt;a href="*MCP%20support%20evolution%20chart*"&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%2Fw9nex6bxy31bdacb54yf.png" alt="MCP support evolution chart" width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At first, MCPs feel simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Expose tools&lt;/li&gt;
&lt;li&gt;Connect an agent&lt;/li&gt;
&lt;li&gt;Call functions&lt;/li&gt;
&lt;li&gt;Done&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But once MCP servers start becoming useful in real workflows, a completely different class of engineering problems begins appearing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Context explosion&lt;/li&gt;
&lt;li&gt;Unreliable tool selection&lt;/li&gt;
&lt;li&gt;Hallucinated tool calls&lt;/li&gt;
&lt;li&gt;Scaling bottlenecks&lt;/li&gt;
&lt;li&gt;Permission boundaries&lt;/li&gt;
&lt;li&gt;Non-deterministic agent behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This post is &lt;strong&gt;not a "how to build an MCP server"&lt;/strong&gt; guide.&lt;/p&gt;

&lt;p&gt;Instead, it's a quick breakdown of the &lt;strong&gt;real engineering problems&lt;/strong&gt; that start appearing after MCPs move to production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem #1 — Too Many Tools Make Agents Worse
&lt;/h2&gt;

&lt;p&gt;One of the biggest MCP engineering problems today is tool overload.&lt;/p&gt;

&lt;p&gt;At small scale:&lt;br&gt;
&lt;code&gt;adding tools feels powerful.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;At larger scale:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent
 ├── 120 tools
 ├── Massive context
 ├── Tool confusion
 └── Lower reliability
     └── Similar tools compete
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is where &lt;strong&gt;tool grouping&lt;/strong&gt; becomes extremely important. Some tools must stay &lt;strong&gt;partitioned and selectively loaded&lt;/strong&gt;. More tools do not automatically create &lt;strong&gt;smarter agents&lt;/strong&gt;, sometimes they create &lt;strong&gt;noisier&lt;/strong&gt; ones.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Fix direction:&lt;/strong&gt; Group tools by domain and load them selectively per request context. See how GitHub MCP handles tool discovery and scoping &lt;a href="https://github.com/github/github-mcp-server/tree/main/pkg/tooldiscovery" rel="noopener noreferrer"&gt;github/github-mcp-server/pkg/tooldiscovery&lt;/a&gt;. Atlassian Rovo takes a similar approach for Jira + Confluence tool scoping &lt;a href="https://github.com/atlassian/atlassian-mcp-server" rel="noopener noreferrer"&gt;atlassian/atlassian-mcp-server&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Problem #2 — Context Windows Become Infrastructure Problems
&lt;/h2&gt;

&lt;p&gt;One thing that becomes obvious very quickly after deploying MCPs is that token usage is no longer just an LLM problem. Every MCP design decision plays a key role:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tool description&lt;/li&gt;
&lt;li&gt;Schema&lt;/li&gt;
&lt;li&gt;API payload&lt;/li&gt;
&lt;li&gt;Output tokens&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Fix direction:&lt;/strong&gt; Design lean schemas, surface only what the agent needs. See how Stripe's agent toolkit keeps tool payloads focused and minimal &lt;a href="https://github.com/stripe/agent-toolkit" rel="noopener noreferrer"&gt;stripe/agent-toolkit&lt;/a&gt;. The official MCP memory server is also a clean reference for output-efficient tool design &lt;a href="https://github.com/modelcontextprotocol/servers/tree/main/src/memory" rel="noopener noreferrer"&gt;modelcontextprotocol/servers/src/memory&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Problem #3 — Deterministic Tool Calls Are Hard
&lt;/h2&gt;

&lt;p&gt;One of the biggest misconceptions in MCP systems is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"If the tool exists, the agent will use it correctly."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In practice, overlapping descriptions, ambiguous naming, and similar tools cause agents to &lt;strong&gt;pick incorrect tools&lt;/strong&gt; surprisingly often.&lt;/p&gt;

&lt;p&gt;The real challenge is not making tools callable, it's making the &lt;strong&gt;correct tool callable at the correct time&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;tighter and clearer&lt;/strong&gt; the &lt;strong&gt;tool description&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The more deterministic the agent behavior becomes&lt;/li&gt;
&lt;li&gt;The fewer hallucinated calls happen&lt;/li&gt;
&lt;li&gt;The more reliable orchestration becomes&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Fix direction:&lt;/strong&gt; Write tool descriptions like API contracts, single responsibility, zero ambiguity. Google Gemini CLI's tool definitions folder is a strong reference for well-scoped, clearly named tools &lt;a href="https://github.com/google-gemini/gemini-cli/tree/main/packages/core/src/tools" rel="noopener noreferrer"&gt;google-gemini/gemini-cli/src/tools&lt;/a&gt;. Cloudflare MCP also demonstrates clean, single-purpose tool design &lt;a href="https://github.com/cloudflare/mcp-server-cloudflare" rel="noopener noreferrer"&gt;cloudflare/mcp-server-cloudflare&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Problem #4 — MCP Servers Become Distributed Systems
&lt;/h2&gt;

&lt;p&gt;Once MCP traffic grows, MCP servers stop behaving like simple integrations. They start behaving like &lt;strong&gt;distributed backend systems&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;At production scale:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;retries matter,
state management matters,
observability matters,
routing matters,
and horizontal scaling matters.

Client Request
      ↓
Load Balancer
      ↓
Stateless MCP Instance
      ↓
Redis / Session Store
      ↓
External APIs
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Fix direction:&lt;/strong&gt; Build stateless MCP handlers from day one and wire in observability early. Cloudflare Workers MCP shows how to run stateless, edge-deployed MCP instances at scale &lt;a href="https://github.com/cloudflare/workers-mcp" rel="noopener noreferrer"&gt;cloudflare/workers-mcp&lt;/a&gt;. GitHub MCP's observability layer is worth studying before you scale &lt;a href="https://github.com/github/github-mcp-server/tree/main/pkg/observability" rel="noopener noreferrer"&gt;github/github-mcp-server/pkg/observability&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  A Walkthrough of GitHub's MCP Evolution
&lt;/h2&gt;

&lt;p&gt;GitHub discussed how their MCP server gradually evolved while solving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Huge tool surfaces&lt;/li&gt;
&lt;li&gt;Context overload&lt;/li&gt;
&lt;li&gt;Scaling problems&lt;/li&gt;
&lt;li&gt;Auth workflows&lt;/li&gt;
&lt;li&gt;Distributed infrastructure concerns&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Their architecture eventually moved toward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stateless MCP servers&lt;/li&gt;
&lt;li&gt;Redis-backed session handling&lt;/li&gt;
&lt;li&gt;Grouped tool sets&lt;/li&gt;
&lt;li&gt;Dynamic tooling concepts&lt;/li&gt;
&lt;li&gt;OAuth-based auth flows&lt;/li&gt;
&lt;li&gt;Scoped tool visibility&lt;/li&gt;
&lt;li&gt;Aggressive token optimization
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Client
   ↓
MCP Server
   ↓
Tool Sets
   ├── Repo tools
   ├── PR tools
   ├── Actions tools
   └── Issue tools
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;MCP engineering will increasingly depend on:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Strong authentication gateways&lt;/li&gt;
&lt;li&gt;Scoped permissions&lt;/li&gt;
&lt;li&gt;Tighter tool descriptions&lt;/li&gt;
&lt;li&gt;TTL caches&lt;/li&gt;
&lt;li&gt;Deterministic orchestration&lt;/li&gt;
&lt;li&gt;Context-efficient architectures&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>llm</category>
    </item>
  </channel>
</rss>
