<?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>Forem: Kiran Chanda</title>
    <description>The latest articles on Forem by Kiran Chanda (@kiran_chanda).</description>
    <link>https://forem.com/kiran_chanda</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%2F3370758%2Fda705cee-53d7-44f4-9a34-83888533fb9a.jpg</url>
      <title>Forem: Kiran Chanda</title>
      <link>https://forem.com/kiran_chanda</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kiran_chanda"/>
    <language>en</language>
    <item>
      <title>Are We Cultivating Innovation - or Technical Debt?</title>
      <dc:creator>Kiran Chanda</dc:creator>
      <pubDate>Fri, 10 Oct 2025 02:41:54 +0000</pubDate>
      <link>https://forem.com/kiran_chanda/are-we-cultivating-innovation-or-technical-debt-2oa1</link>
      <guid>https://forem.com/kiran_chanda/are-we-cultivating-innovation-or-technical-debt-2oa1</guid>
      <description>&lt;p&gt;🚀 AI doesn't just accelerate development — it accelerates debt when we stop understanding what we're building.&lt;/p&gt;

&lt;p&gt;AI tools now generate, refactor, and ship code faster than ever — but speed without understanding isn't innovation, it's technical debt at scale.&lt;/p&gt;

&lt;p&gt;Just like overfarming depletes soil, over-reliance on AI can quietly erode the soil of software quality.&lt;/p&gt;

&lt;p&gt;The challenge isn't how fast AI can code — it's how right we can build, together.&lt;/p&gt;

&lt;p&gt;👇 Read my latest article: "Are We Cultivating Innovation — or Technical Debt?"&lt;/p&gt;

&lt;h1&gt;
  
  
  SoftwareEngineering #TechnicalDebt #AIProductivity #CodeQuality #Innovation #DevOps #AgileTransformation #TechLeadership
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:7381534536892878848/" rel="noopener noreferrer"&gt;https://www.linkedin.com/feed/update/urn:li:activity:7381534536892878848/&lt;/a&gt; &lt;br&gt;
Full article also available on Medium: &lt;a href="https://medium.com/@techiewissen/are-we-cultivating-innovation-or-technical-debt-019b6a0e6e1d" rel="noopener noreferrer"&gt;https://medium.com/@techiewissen/are-we-cultivating-innovation-or-technical-debt-019b6a0e6e1d&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>softwareengineering</category>
      <category>technicaldebt</category>
      <category>devops</category>
    </item>
    <item>
      <title>Stop Rebuilding for AI integrations: Use Your Existing REST APIs with the MCP (MCP REST Pattern)</title>
      <dc:creator>Kiran Chanda</dc:creator>
      <pubDate>Mon, 21 Jul 2025 22:36:43 +0000</pubDate>
      <link>https://forem.com/kiran_chanda/stop-rebuilding-for-ai-integrations-use-your-existing-rest-apis-with-the-mcp-mcp-rest-pattern-2n9f</link>
      <guid>https://forem.com/kiran_chanda/stop-rebuilding-for-ai-integrations-use-your-existing-rest-apis-with-the-mcp-mcp-rest-pattern-2n9f</guid>
      <description>&lt;p&gt;A few weeks ago, I shared an insight on LinkedIn that sparked a conversation. I've since built a POC to test the feasibility - here's what I discovered.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;✅ Make existing REST APIs AI-accessible — No rebuilding required&lt;br&gt;&lt;br&gt;
✅ Protocol adapter pattern — One service translates MCP ↔ REST&lt;br&gt;&lt;br&gt;
✅ Minimal overhead — Standard HTTP&lt;br&gt;&lt;br&gt;
✅ Working POC available — &lt;a href="https://github.com/deepwissen/mcp_rest_adapter" rel="noopener noreferrer"&gt;try it here&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  The Problem That Started Everything
&lt;/h2&gt;

&lt;p&gt;After analyzing the Model Context Protocol (MCP), I had a nagging feeling that we were making AI integration harder than it needed to be. Everyone was talking about building "MCP servers" from scratch, but I kept thinking:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if MCP Servers are just microservices with a protocol wrapper?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I decided to put the idea to the test. What I built is a working example that brings the concept to life—and it could change the way we think about connecting AI to existing systems.&lt;/p&gt;
&lt;h2&gt;
  
  
  We're Solving the Wrong Problem
&lt;/h2&gt;

&lt;p&gt;Everyone was asking: &lt;em&gt;"How do we build MCP servers?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But the better question is: &lt;em&gt;"How do we make existing systems MCP-compatible?"&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  The Real Comparison
&lt;/h3&gt;

&lt;p&gt;Let me show you what I discovered:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Without MCP (Traditional):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI Agent → Custom Integration Code → REST API → Tool
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;With MCP (Current Approach):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI Agent → MCP Client → MCP Server → Tool
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;With MCP → REST Pattern (My Approach):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI Agent → MCP Client → MCP Adapter → Existing REST APIs → Existing Microservices
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The insight:&lt;/strong&gt; An MCP Server is often just a protocol wrapper around an existing REST-based microservice.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What I Built: The MCP → REST Pattern
&lt;/h2&gt;

&lt;p&gt;Instead of a theoretical discussion, let me show you what happened when I took this seriously.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Architecture
&lt;/h3&gt;

&lt;p&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%2F7h3pzsslrnlz76en8zmy.png" 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%2F7h3pzsslrnlz76en8zmy.png" alt=" " width="800" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The MCP Adapter acts as a bidirectional protocol translator that enables seamless communication between AI Agents (speaking MCP/JSON-RPC) and your existing microservices (speaking REST/HTTP).&lt;/p&gt;

&lt;h3&gt;
  
  
  Inter-Process Communication Flow
&lt;/h3&gt;

&lt;p&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%2Fc0ozk6spk2jma24bgwc9.png" 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%2Fc0ozk6spk2jma24bgwc9.png" alt=" " width="764" height="738"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each process runs independently, communicating through standard HTTP protocols. The adapter translates between MCP and REST without any process coupling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Request Flow Example: Real AI in Action
&lt;/h2&gt;

&lt;p&gt;Let me show you exactly how this works with a real user request:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User Query:&lt;/strong&gt; &lt;em&gt;"Show me all orders for customer John Doe and their shipping status"&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Auto-Discovery
&lt;/h3&gt;

&lt;p&gt;The adapter discovers your services and generates tools automatically — zero configuration required.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: AI Agent's Sequential Tool Execution
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. search_customers(name="John Doe")   
   → MCP Adapter → GET /customers/search?name=John+Doe  
   → Customer Service → Result: customer_id: "cust-456"

2. get_customer_orders(customer_id="cust-456")   
   → MCP Adapter → GET /orders?customer_id=cust-456  
   → Order Service → Result: orders: [1001, 1002, 1003]

3. get_shipping_status(order_ids=[1001, 1002, 1003])   
   → MCP Adapter → GET /orders/shipping?ids=1001,1002,1003  
   → Order Service → Result: shipping: ["shipped", "in_transit", "processing"]

4. Final synthesis:  
   → "John Doe has 3 orders: Order #1001 shipped, Order #1002 in transit, Order #1003 processing"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: The Magic — No Changes Needed
&lt;/h3&gt;

&lt;p&gt;Your existing services handle these requests exactly as they always have. &lt;strong&gt;Zero modifications required.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Yourself: Real curl Example
&lt;/h2&gt;

&lt;p&gt;Want to see the actual API calls? Here's a real example from the working POC:&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;# Call the MCP adapter to list customers&lt;/span&gt;
curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST http://localhost:8000/mcp &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "customer_list_customers_customers_get",
      "arguments": {}
    }
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Response:&lt;/strong&gt;&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;"jsonrpc"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"result"&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;"content"&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;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"[&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;  {&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;    &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;id&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;cust-001&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;    &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;John Doe&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;    &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;email&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;john@example.com&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;    &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;phone&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;+1-555-0123&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;    &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;status&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;active&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;    &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;created_at&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;2024-01-15T10:30:00Z&lt;/span&gt;&lt;span class="se"&gt;\"\n&lt;/span&gt;&lt;span class="s2"&gt;  },&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;  {&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;    &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;id&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;cust-002&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;    &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;Jane Smith&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;    &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;email&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;jane@example.com&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;    &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;phone&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;: null,&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;    &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;status&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;active&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;    &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;created_at&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;2024-02-20T14:45:00Z&lt;/span&gt;&lt;span class="se"&gt;\"\n&lt;/span&gt;&lt;span class="s2"&gt;  }&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&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;"isError"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"_meta"&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;"status_code"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"tool_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"customer_list_customers_customers_get"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"service"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"customer"&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;p&gt;&lt;strong&gt;Behind the scenes:&lt;/strong&gt; The adapter translated this MCP call to &lt;code&gt;GET /customers&lt;/code&gt; on your existing customer service, then wrapped the response in MCP format.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;p&gt;The MCP Adapter is a focused, single-purpose component with clearly defined boundaries:&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Does:&lt;/strong&gt; Protocol translation between MCP and REST&lt;br&gt;&lt;br&gt;
❌ &lt;strong&gt;Does NOT:&lt;/strong&gt; Business logic, data storage, authentication, service mesh functions&lt;/p&gt;

&lt;p&gt;This focused scope is what makes the pattern so powerful — it does one thing exceptionally well: making existing REST APIs accessible to AI agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Avoid the Rebuild: Leverage What You Already Have
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Enterprises Already Have Everything They Need
&lt;/h3&gt;

&lt;p&gt;Your existing infrastructure provides the foundation:&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Business logic&lt;/strong&gt; — Already implemented in microservices&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Security foundation&lt;/strong&gt; — AuthN/AuthZ systems provide the base&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Monitoring&lt;/strong&gt; — Observability stack can extend to AI interactions&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Reliability&lt;/strong&gt; — Services are battle-tested in production&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Compliance&lt;/strong&gt; — Audit trails and governance frameworks exist&lt;/p&gt;

&lt;p&gt;The MCP → REST Pattern leverages these proven foundations rather than rebuilding them.&lt;/p&gt;

&lt;h3&gt;
  
  
  MCP Adapter: Just Another Service
&lt;/h3&gt;

&lt;p&gt;The beauty of this approach is that the MCP Adapter is just like any other microservice in your stack:&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Same operational patterns&lt;/strong&gt; — Docker, Kubernetes, whatever you use&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Same monitoring tools&lt;/strong&gt; — Prometheus, Grafana, your existing APM&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Same scaling strategies&lt;/strong&gt; — Horizontal scaling, load balancers&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Same security models&lt;/strong&gt; — Network policies, service mesh, OAuth&lt;/p&gt;

&lt;p&gt;Your ops team already knows how to manage this. Your monitoring already covers this. Your security policies already apply to this.&lt;/p&gt;

&lt;p&gt;This pattern excels at making existing business logic AI-accessible, not replacing specialized AI infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check Out the Code
&lt;/h2&gt;

&lt;p&gt;This is just the beginning. What you've seen here is a proof of concept that validates the core insight, but there's so much more to explore.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can check the code at:&lt;/strong&gt; &lt;a href="https://github.com/deepwissen/mcp_rest_adapter" rel="noopener noreferrer"&gt;https://github.com/deepwissen/mcp_rest_adapter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to clone and play with it because:&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;The pattern works&lt;/strong&gt; — Real AI agents, real microservices, real results&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;The community needs this&lt;/strong&gt; — Too many teams are rebuilding what already exists&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;We need diverse perspectives&lt;/strong&gt; — Different use cases will uncover new insights&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Better together&lt;/strong&gt; — This becomes more powerful with community contributions&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;This POC is just the beginning. Together, we'll improve the pattern.&lt;/p&gt;

&lt;p&gt;As the community experiments with different use cases and environments, we'll learn what works, what doesn't, and what needs to be built next. The pattern will evolve based on real-world feedback and contributions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;In many cases, MCP servers are just microservices with a schema wrapper.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For teams that already have REST APIs, this insight can unlock fast, scalable AI integration with minimal effort.&lt;/p&gt;

&lt;p&gt;Of course, this is not a one-size-fits-all solution. Use this pattern where it fits best:&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Ideal for:&lt;/strong&gt; Exposing existing business logic to AI agents&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Ideal for:&lt;/strong&gt; Leveraging proven infrastructure and security&lt;br&gt;&lt;br&gt;
❌ &lt;strong&gt;Not ideal for:&lt;/strong&gt; AI-native workflows, real-time streaming, or vector data&lt;/p&gt;

&lt;p&gt;When the use case fits, the MCP → REST Pattern can replace months of effort with a single, focused translation layer.&lt;/p&gt;

&lt;p&gt;I hope you'll explore it, share your feedback, and help evolve the pattern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I'd love to hear your thoughts—or better yet, see what you build with it!&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What are your thoughts on this approach? Have you faced similar challenges integrating AI with existing systems? Let me know in the comments below!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>microservices</category>
      <category>restapi</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
