<?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: Vijay Kumar Kodam</title>
    <description>The latest articles on Forem by Vijay Kumar Kodam (@vijaykodam).</description>
    <link>https://forem.com/vijaykodam</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%2F190320%2F4234cb3c-b1da-4ca5-8eff-fcc8218863f6.jpg</url>
      <title>Forem: Vijay Kumar Kodam</title>
      <link>https://forem.com/vijaykodam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/vijaykodam"/>
    <language>en</language>
    <item>
      <title>API Gateway vs Gateway API</title>
      <dc:creator>Vijay Kumar Kodam</dc:creator>
      <pubDate>Mon, 09 Feb 2026 21:08:54 +0000</pubDate>
      <link>https://forem.com/vijaykodam/api-gateway-vs-gateway-api-36bh</link>
      <guid>https://forem.com/vijaykodam/api-gateway-vs-gateway-api-36bh</guid>
      <description>&lt;p&gt;Gateway API is an official Kubernetes project focused on L4 and L7 routing in Kubernetes. It replaces the ingress resources.&lt;/p&gt;

&lt;p&gt;An API Gateway is a central entry point for all client requests, acting as a reverse proxy that routes them to the correct backend microservices, handling cross-cutting concerns like security (auth/authz), rate limiting, monitoring, and caching, thereby simplifying microservices management and providing a unified interface for diverse clients. Examples include Amazon API Gateway. &lt;/p&gt;

&lt;p&gt;Gateway API is an interface, defined as a set of Kubernetes resources, that models service networking in Kubernetes. As a Gateway provider, you can implement Gateway API to model Kubernetes service networking in an expressive, extensible, and role-oriented way. An example for Gateway controller is NGINX Gateway Fabric.&lt;/p&gt;

&lt;p&gt;Created this simple diagram to showcase it.&lt;/p&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%2F88qozh4gioxn9sj8x2n7.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%2F88qozh4gioxn9sj8x2n7.png" alt="GW" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>aws</category>
      <category>containers</category>
    </item>
    <item>
      <title>Amazon EKS Capabilities: Quick Summary</title>
      <dc:creator>Vijay Kumar Kodam</dc:creator>
      <pubDate>Mon, 01 Dec 2025 21:53:19 +0000</pubDate>
      <link>https://forem.com/aws-builders/amazon-eks-capabilities-quick-summary-1po7</link>
      <guid>https://forem.com/aws-builders/amazon-eks-capabilities-quick-summary-1po7</guid>
      <description>&lt;p&gt;A quick summary typed by my own thumbs and infographic generated by Nano Banana Pro :)&lt;/p&gt;

&lt;p&gt;Last year, AWS offloaded EKS node management and scaling by introducing EKS Auto Mode. Customers did not have to deal with scaling nodes, upgrading nodes etc. This gave the customers more time to deploy and manage their applications. &lt;/p&gt;

&lt;p&gt;This year, EKS has decided to offload managing your ArgoCD, ACK and kro. EKS would manage them for you by running them separately. &lt;/p&gt;

&lt;p&gt;There are pros and cons for this feature. &lt;/p&gt;

&lt;p&gt;Pro being there is now one less thing to manage. Since ArgoCD, ACK and kro are not running in your EKS worker nodes, you don't pay for them. AWS takes care of running them, scaling, upgrading them and making sure they are running fine. &lt;/p&gt;

&lt;p&gt;Con is that EKS charges it as part of EKS Capabilities pricing. Not all features might be supported. Customization is not possible. &lt;/p&gt;

&lt;p&gt;So you need to decide whether this extra cost is worth it or not. It depends on the expertise of the team, how many clusters they are managing and how many applications each ArgoCD is managing. &lt;/p&gt;

&lt;p&gt;From the pricing, number of ArgoCD applications dictates how costly it is going to be, rest all other features and capabilities are relatively cheaper. &lt;/p&gt;

&lt;p&gt;My dear friend Jatin Mehrotra wrote an &lt;a href="https://dev.to/aws-builders/i-created-s3-buckets-using-argocd-ack-with-eks-capabilities-no-controllers-installed-cm0"&gt;excellent blog&lt;/a&gt; about EKS capabilities and also found a bug.  &lt;/p&gt;

&lt;p&gt;Image generated using Nano Banana Pro.&lt;/p&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%2Fa6l05jg2q2jt9i3tg15s.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%2Fa6l05jg2q2jt9i3tg15s.png" alt="EKS Capabilities" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>eks</category>
      <category>kubernetes</category>
      <category>awscommunity</category>
    </item>
    <item>
      <title>My Honest Take of Kiro, AI IDE from AWS</title>
      <dc:creator>Vijay Kumar Kodam</dc:creator>
      <pubDate>Wed, 16 Jul 2025 21:46:37 +0000</pubDate>
      <link>https://forem.com/aws-builders/my-honest-take-of-kiro-ai-ide-from-aws-487f</link>
      <guid>https://forem.com/aws-builders/my-honest-take-of-kiro-ai-ide-from-aws-487f</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Amazon Web Services (AWS) released Kiro, an agentic AI IDE yesterday. Built an app with it today. Here is my honest take of this new AI IDE. &lt;/p&gt;

&lt;p&gt;This is my first experience trying Kiro and spent around 8 hours building a TODO app with Google OAuth2 authentication.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Kiro?
&lt;/h2&gt;

&lt;p&gt;AWS released an AI powered agentic IDE powered by Claude 4.0 Sonnet. Cursor and Windsurf are it's competetors in this area. This area has been very hot with startups cloning VS Code and building AI code editors and several of them are worth couple of billion US dollars. You can learn more about Kiro at &lt;a href="https://kiro.dev/" rel="noopener noreferrer"&gt;https://kiro.dev/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Vibe Code &amp;amp; Spec Code
&lt;/h2&gt;

&lt;p&gt;Kiro supports vibe-coding as well as spec-based coding. I felt that this is a good way to teach industry best practices for a non-software engineer on how to build a software project from scratch. &lt;/p&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%2F1ot0o9wuzat18t6indkn.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%2F1ot0o9wuzat18t6indkn.png" alt="img1" width="800" height="545"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From your single line wish in natural language, it creates a big set of requirements, Design Document and properly structured Tasks list which includes not only functional tasks but also non-functional and security related tasks. &lt;/p&gt;

&lt;p&gt;Once it is ready, you could review them, edit them and then run tasks one-by-one sequentially.&lt;/p&gt;

&lt;h2&gt;
  
  
  Important Features
&lt;/h2&gt;

&lt;p&gt;There are two more concepts/features introduced by Kiro other than spec-driven development: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agent Hooks and &lt;/li&gt;
&lt;li&gt;Agent Steering. &lt;/li&gt;
&lt;/ul&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%2F61ripll8jo5o6phyva5e.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%2F61ripll8jo5o6phyva5e.png" alt="img2" width="554" height="1192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Agent Hooks
&lt;/h3&gt;

&lt;p&gt;These hooks get called when an event occurs. Currently Agent hooks supports triggering based on file operations like create, save and delete. You then mention what the Agent should do when it is triggered in natural language. No scripting, no coding, just plain English.&lt;/p&gt;

&lt;p&gt;In a very short time, I found Agent hooks to be extremely useful.  I created an agent hook to add files to git and then git commit my changes after every task is successfully completed. &lt;/p&gt;

&lt;p&gt;Here is my Agent hook for git commit on file save:&lt;/p&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%2F0d6ihyjikp557dda5lph.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%2F0d6ihyjikp557dda5lph.png" alt="img3" width="800" height="559"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Icing on the cake was that the Agent hook actually read all my code changes, summarized and added a single line commit comment which mentions what changes were done. The power of LLMs is on display in this usecase.&lt;/p&gt;

&lt;h3&gt;
  
  
  Agent Steering
&lt;/h3&gt;

&lt;p&gt;When you click the created steering docs, Agent steering creates three docs: product, structure and tech stack. They contain all the info related to your project. &lt;/p&gt;

&lt;p&gt;Here is the steering doc for project for my app:&lt;/p&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%2Fkv6fscqo2u2g6bmbz8mb.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%2Fkv6fscqo2u2g6bmbz8mb.png" alt="img4" width="800" height="607"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You could add your coding best practices, tech stack wish list, other conditions here, which will dictate how the code is generated by LLMs.&lt;/p&gt;

&lt;h2&gt;
  
  
  My TODO app
&lt;/h2&gt;

&lt;p&gt;I created a TODO app with Google sign-in as authentication method, without any AWS tech involved. Kiro is advertised as an independent AI IDE so I wanted to test that aspect.&lt;/p&gt;

&lt;p&gt;You can find the screenshots of the app in the images below. &lt;/p&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%2Fh8385tcsrc11rflepf56.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%2Fh8385tcsrc11rflepf56.png" alt="img5" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&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%2Fflp1fsjgmtorf2eqdgm5.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%2Fflp1fsjgmtorf2eqdgm5.png" alt="img6" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I got a working app with working Google authentication. Tested it with my Gmail credentials and it was working flawlessly. &lt;/p&gt;

&lt;h2&gt;
  
  
  Improvements?
&lt;/h2&gt;

&lt;p&gt;Considering Kiro is released yesterday, I believe my impressions mentioned below might be resolved sooner or later. &lt;/p&gt;

&lt;p&gt;Anyway, here I go...&lt;/p&gt;

&lt;h3&gt;
  
  
  Model Choice
&lt;/h3&gt;

&lt;p&gt;Currently Kiro is limited to only Claude 4.0 Sonnet and Claude 3.7 Sonnet. Honestly these two are the industry best for coding. &lt;/p&gt;

&lt;p&gt;However, there might be usecases where fast responses are preferred over best responses. In those case, I wish Nova models from AWS are available as a choice.&lt;/p&gt;

&lt;h3&gt;
  
  
  Slowness
&lt;/h3&gt;

&lt;p&gt;Few times faced slowness, although it is expected as there will be lot of people trying out Kiro along with Claude 4.0 Sonnet. &lt;/p&gt;

&lt;p&gt;Claude 3.7 Sonnet felt bit more faster compared to 4.0 but considering the amount of people trying it out and being Kiro in preview phase, I can totally understand this.&lt;/p&gt;

&lt;h3&gt;
  
  
  Agent Hooks
&lt;/h3&gt;

&lt;p&gt;I might have caught a bug in Agent Hooks implementation or I might be wrong. Anyway, let me spell it out. Feel free to correct me if I understood it wrong. &lt;/p&gt;

&lt;p&gt;While trying out Agent hooks, I have configured an Agent hook to be triggered whenever a file is saved. This worked fine if I run one task at a time. Whenever a file save was done, Agent hook was added to the task queue and waited until the tasks before it are done. &lt;/p&gt;

&lt;p&gt;After running one task at a time, I thought I will click "Start Task" on all the tasks so that all tasks will be executed sequentially. Here, when the first task was being executed, my git commit Agent hook got triggered by a file save and added it to the queue at the end after all the tasks.&lt;/p&gt;

&lt;p&gt;I wanted the Agent hook to be executed after every task so that each task is saved in a separate git commit. However that did not work as I anticipated. This is my understanding of how Agent hook must be called. &lt;/p&gt;

&lt;p&gt;These are early days of the release of Kiro. Will find out more about this feature going forward.&lt;/p&gt;

&lt;h3&gt;
  
  
  Debugging loop
&lt;/h3&gt;

&lt;p&gt;Few times, when I asked it to debug and fix an issue, it fell into a circular debugging loop and it was doing the same changes over and over again for more than ten times. I had to cancel the task and ask it to explain what it was doing. &lt;/p&gt;

&lt;p&gt;This might not be an issue with Kiro per se but I think it is an issue with LLM.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final note
&lt;/h2&gt;

&lt;p&gt;Kiro, Agentic AI IDE from AWS has started on a good note and using Claude 4.0 Sonnet as their model choice might be their genius move. &lt;/p&gt;

&lt;p&gt;AI Coding IDEs have been the first multi-billion dollar usecase coming out of Generative AI. AWS move to introduce Kiro at this moment in time will surely capture sizable userbase considering you pay 19$ per month to get the industry top LLM for coding. &lt;/p&gt;

&lt;p&gt;If you have not tried Kiro, do give it a try. Let me know in comments what is your Kiro experience?&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow Me
&lt;/h2&gt;

&lt;p&gt;If you are new to my posts, I regularly post about AWS, EKS, Kubernetes and Cloud computing related topics. &lt;/p&gt;

&lt;p&gt;Do follow me in &lt;a href="https://www.linkedin.com/in/vijaykodam/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;You can find all my previous blog posts in &lt;a href="https://vijay.eu/posts" rel="noopener noreferrer"&gt;my blog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>genai</category>
      <category>aws</category>
      <category>kiro</category>
    </item>
    <item>
      <title>Built an AI Agent using Strands Agents SDK</title>
      <dc:creator>Vijay Kumar Kodam</dc:creator>
      <pubDate>Mon, 07 Jul 2025 22:44:20 +0000</pubDate>
      <link>https://forem.com/aws-builders/built-an-ai-agent-using-strands-agents-sdk-2o55</link>
      <guid>https://forem.com/aws-builders/built-an-ai-agent-using-strands-agents-sdk-2o55</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Built an AI Agent using Strands Agents SDK from Amazon Web Services (AWS) which calls my Kubernetes MCP server. Read more to find out…&lt;/p&gt;

&lt;h2&gt;
  
  
  Agents and MCP
&lt;/h2&gt;

&lt;p&gt;AI Agents and Model Context Protocol are the most popular concepts in Gen AI now. Now I have created an AI Agent which calls MCP server to debug issues in my K8s cluster.&lt;/p&gt;

&lt;p&gt;Recently I created a Model Context Protocol (MCP) server for &lt;a href="https://github.com/vijaykodam/kubernetes-readonly-mcp" rel="noopener noreferrer"&gt;Kubernetes read-only operations&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Strands Agents SDK
&lt;/h2&gt;

&lt;p&gt;AWS has created an SDK for building AI Agents called &lt;a href="https://strandsagents.com/latest/" rel="noopener noreferrer"&gt;Strands Agents SDK&lt;/a&gt;. Now it added support for MCP as well.&lt;/p&gt;

&lt;p&gt;I used Strands Agents SDK and built an AI Agent which calls my K8s MCP server and debugs issues in my running K8s cluster.&lt;/p&gt;

&lt;p&gt;This demonstrates the AI Agents ability to achieve goals by perceiving the environment, reasoning and acting upon it using available tools like MCP servers.&lt;/p&gt;

&lt;h2&gt;
  
  
  First impressions
&lt;/h2&gt;

&lt;p&gt;I have built agents using Langchain/Langgraph before. Compared to that creating agents using Strands Agents is simple and straight-forward. Add to that you can now call MCP servers also. &lt;/p&gt;

&lt;p&gt;Icing on the cake is that Strands Agents supports any LLM and not only restricted to &lt;a href="https://strandsagents.com/latest/user-guide/concepts/model-providers/amazon-bedrock/" rel="noopener noreferrer"&gt;Amazon Bedrock&lt;/a&gt;. Thanks to &lt;a href="https://strandsagents.com/latest/user-guide/concepts/model-providers/litellm/" rel="noopener noreferrer"&gt;LiteLLM&lt;/a&gt; you can call most of the LLMs using this library. Strands also &lt;a href="https://strandsagents.com/latest/user-guide/concepts/model-providers/ollama/" rel="noopener noreferrer"&gt;supports Ollama&lt;/a&gt; for calling LLMs running locally. &lt;/p&gt;

&lt;p&gt;Really impressed with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Below is my detailed demo of my AI Agent:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/GDEtRssnpx4"&gt;
  &lt;/iframe&gt;
 &lt;/p&gt;

&lt;p&gt;What are you building with Strands Agents SDK?&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow Me
&lt;/h2&gt;

&lt;p&gt;If you are new to my posts, I regularly post about GenAI, AI Agents, MCP, AWS, EKS, Kubernetes and Cloud computing related topics. Do follow me on &lt;a href="https://www.linkedin.com/in/vijaykodam/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and visit my website (&lt;a href="https://vijay.eu/posts" rel="noopener noreferrer"&gt;https://vijay.eu/posts&lt;/a&gt;) where I have all my previous posts at one place.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>aws</category>
      <category>genai</category>
    </item>
    <item>
      <title>Built a game using Lovable</title>
      <dc:creator>Vijay Kumar Kodam</dc:creator>
      <pubDate>Wed, 25 Jun 2025 13:28:53 +0000</pubDate>
      <link>https://forem.com/vijaykodam/built-a-game-using-lovable-5hj6</link>
      <guid>https://forem.com/vijaykodam/built-a-game-using-lovable-5hj6</guid>
      <description>&lt;p&gt;Built a game using &lt;a href="https://lovable.dev/" rel="noopener noreferrer"&gt;Lovable&lt;/a&gt;, a vibe-coding AI platform, this weekend. &lt;/p&gt;

&lt;p&gt;Lovable organized AI Showdown during the weekend where users can build projects and compete using code-generating AI Models from OpenAI, Anthropic and Google. &lt;/p&gt;

&lt;p&gt;As part of my project, I have created a simple word ladder game, where the player can only change only single letter in each rung to add a valid English word. The game is to change the existing word one letter at a time into the target word. &lt;/p&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%2Fxlmmi21je5ceqdcm97fc.jpeg" 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%2Fxlmmi21je5ceqdcm97fc.jpeg" alt="Word ladder" width="800" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the first time I am using Lovable and I am surprised by the maturity of the product. It is very intuitive to use and it creates complete working app in the first prompt itself. &lt;/p&gt;

&lt;p&gt;I spent 2 hours creating this game, mainly to improve the word list, figure out to build huge amount of valid 3, 4 and 5 letter words, test the functionality, change the UI, check for security issues, change the UX etc.&lt;/p&gt;

&lt;p&gt;Anton Osika and team has built an amazing product. Also happy that it is from the Nordics :)&lt;/p&gt;

&lt;p&gt;Feel free to try the game and give me your feedback. &lt;/p&gt;

&lt;p&gt;Game URL: &lt;a href="https://word-ladder.lovable.app/" rel="noopener noreferrer"&gt;https://word-ladder.lovable.app/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>genai</category>
      <category>vibecoding</category>
      <category>llm</category>
      <category>lovable</category>
    </item>
    <item>
      <title>Best way to access Claude 4 Sonnet</title>
      <dc:creator>Vijay Kumar Kodam</dc:creator>
      <pubDate>Sat, 07 Jun 2025 20:15:08 +0000</pubDate>
      <link>https://forem.com/vijaykodam/best-way-to-access-claude-4-sonnet-2219</link>
      <guid>https://forem.com/vijaykodam/best-way-to-access-claude-4-sonnet-2219</guid>
      <description>&lt;p&gt;This is the best way to access Claude 4 Sonnet for Agentic coding right now!&lt;/p&gt;

&lt;p&gt;Amazon Q CLI now supports model selection using "/model" command. Upgrade your Q CLI to v1.11.0 to get this functionality.&lt;/p&gt;

&lt;p&gt;Here is quick my demo:&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/lPTw7co2vWc"&gt;
&lt;/iframe&gt;
 &lt;/p&gt;

&lt;p&gt;What are you going to build with Claude 4 Sonnet? Write below in comments!!!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>genai</category>
      <category>llm</category>
      <category>claude4sonnet</category>
    </item>
    <item>
      <title>My First Impressions of the new official EKS MCP server</title>
      <dc:creator>Vijay Kumar Kodam</dc:creator>
      <pubDate>Thu, 29 May 2025 22:18:03 +0000</pubDate>
      <link>https://forem.com/aws-builders/my-first-impressions-of-the-new-official-eks-mcp-server-3hdl</link>
      <guid>https://forem.com/aws-builders/my-first-impressions-of-the-new-official-eks-mcp-server-3hdl</guid>
      <description>&lt;p&gt;AWS released official EKS MCP Server today! &lt;/p&gt;

&lt;p&gt;I have already created &lt;a href="https://dev.to/vijaykodam/building-mcp-server-for-kubernetes-4l10"&gt;my own MCP server&lt;/a&gt; for read-only Kubernetes operations which made me appreciate these four things about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  MCP Tools
&lt;/h2&gt;

&lt;p&gt;Instead of one-to-one mapping of K8s CLI commands to EKS MCP Server tools they have created very few tools by combining functionality. For eg, manage_k8s_resource tool manages all K8s resources and supports create, replace, patch, delete, and read Kubernetes operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Manages EKS Clusters
&lt;/h2&gt;

&lt;p&gt;This EKS MCP Server not only can access your EKS clusters but it can also create and manage new EKS clusters. It creates EKS Auto mode clusters by default. It uses CloudFormation to create new EKS Clusters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Troubleshooting support
&lt;/h2&gt;

&lt;p&gt;Really like how they have given access to LLMs their EKS troubleshooting guide via a tool so that LLM can check AWS in-house knowledge of their experience troubleshooting EKS clusters. The tool name is "search_eks_troubleshoot_guide".&lt;/p&gt;

&lt;h2&gt;
  
  
  Secure
&lt;/h2&gt;

&lt;p&gt;It is always important to have least privileged access. Keeping in with that best practice, EKS MCP Server supports read only mode by default. If you are feeling adventurous add "--allow-write" option to give write access. This will still block access to sensitive info. There is another option to give access to that as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;Creating my own kubernetes MCP server gave me valuable insights into how the MCP server creation is done. &lt;/p&gt;

&lt;p&gt;This EKS MCP server has simplified MCP tooling, added own knowledge of troubleshooting, added least-privileged option and can create EKS clusters using CloudFormation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;p&gt;You can access the official &lt;a href="https://awslabs.github.io/mcp/servers/eks-mcp-server/" rel="noopener noreferrer"&gt;EKS MCP server here&lt;/a&gt;. You can read about it in &lt;a href="https://aws.amazon.com/blogs/containers/accelerating-application-development-with-the-amazon-eks-model-context-protocol-server/" rel="noopener noreferrer"&gt;their Blog post&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Really appreciate how EKS MCP server has handled all the functionality really well. Kudos to the EKS team.&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow Me
&lt;/h2&gt;

&lt;p&gt;If you are new to my posts, I regularly post about AWS, MCP, Kubernetes and Cloud computing related topics.&lt;/p&gt;

&lt;p&gt;Do follow me in &lt;a href="https://www.linkedin.com/in/vijaykodam/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and visit my &lt;a href="https://dev.to/vijaykodam"&gt;dev.to posts&lt;/a&gt;. You can find all my previous blog posts in &lt;a href="https://vijay.eu/posts" rel="noopener noreferrer"&gt;my blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Image Credits: Generated using ChatGPT 3o &lt;/p&gt;

</description>
      <category>aws</category>
      <category>kubernetes</category>
      <category>mcp</category>
      <category>llm</category>
    </item>
    <item>
      <title>Amazon Aurora DSQL is GA</title>
      <dc:creator>Vijay Kumar Kodam</dc:creator>
      <pubDate>Tue, 27 May 2025 20:49:07 +0000</pubDate>
      <link>https://forem.com/vijaykodam/amazon-aurora-dsql-is-ga-4bp8</link>
      <guid>https://forem.com/vijaykodam/amazon-aurora-dsql-is-ga-4bp8</guid>
      <description>&lt;p&gt;If I were to start a project today then I would definitely choose a database which is: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Serverless&lt;/li&gt;
&lt;li&gt;SQL database&lt;/li&gt;
&lt;li&gt;5 nines of multi-Region availability&lt;/li&gt;
&lt;li&gt;strong consistency&lt;/li&gt;
&lt;li&gt;low-latency&lt;/li&gt;
&lt;li&gt;unlimited scale rivaling DynamoDB&lt;/li&gt;
&lt;li&gt;zero infrastructure management&lt;/li&gt;
&lt;li&gt;PostgreSQL compatible&lt;/li&gt;
&lt;li&gt;AND yes, need an MCP server :)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Amazon Aurora DSQL is the distributed SQL database which ticks all of those boxes.&lt;/p&gt;

&lt;p&gt;Today, Amazon Aurora DSQL is &lt;strong&gt;Generally Available&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Below is the multi-region Amazon Aurora DSQL cluster architecture where the application running on EKS is accessing it. DSQL is running multi-region and supports concurrent read and write operations with strong data consistency.&lt;/p&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%2Fuvhdwcxb5hlj7jachx9x.webp" 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%2Fuvhdwcxb5hlj7jachx9x.webp" alt="DSQL by VijayKodam" width="701" height="821"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>sql</category>
      <category>distributedsystems</category>
      <category>database</category>
    </item>
    <item>
      <title>How to get into AWS Community Builders Program</title>
      <dc:creator>Vijay Kumar Kodam</dc:creator>
      <pubDate>Fri, 23 May 2025 20:54:07 +0000</pubDate>
      <link>https://forem.com/aws-builders/how-to-get-into-aws-community-builders-program-488n</link>
      <guid>https://forem.com/aws-builders/how-to-get-into-aws-community-builders-program-488n</guid>
      <description>&lt;p&gt;In March 2025, I got into AWS Community Builders Program. Many people reached out to me to know how to get into the program.&lt;/p&gt;

&lt;p&gt;Here is a detailed article on how to get into AWS Community Builders Program with my own experience thrown in. I hope this is useful to you all.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is AWS Community Builders program
&lt;/h2&gt;

&lt;p&gt;Here is the official description: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The AWS Community Builders program offers technical resources, education, and networking opportunities to AWS technical enthusiasts and emerging thought leaders who are passionate about sharing knowledge and connecting with the technical community.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Official page: &lt;a href="https://aws.amazon.com/developer/community/community-builders/" rel="noopener noreferrer"&gt;https://aws.amazon.com/developer/community/community-builders/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What do you need to do?
&lt;/h2&gt;

&lt;p&gt;Start with the FAQs on the official page. Those have the latest rules and conditions. Read them. Re-read them again. It is important to understand each and everyone of those questions.&lt;/p&gt;

&lt;p&gt;Here are things you need to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You must have AWS Builder ID. If you don’t have one then create one at &lt;a href="https://us-east-1.credentials.signin.aws" rel="noopener noreferrer"&gt;https://us-east-1.credentials.signin.aws&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Join the waitlist for 2026 at &lt;a href="https://pulse.aws/application/BM2AKLSX?p=0" rel="noopener noreferrer"&gt;https://pulse.aws/application/BM2AKLSX?p=0&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The application opens in Jan 2026.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  High Quality Content
&lt;/h3&gt;

&lt;p&gt;You must have at least two high quality contents created one month before the application opens. This was the condition in 2025, and I guess it will be same in 2026. So make sure you have them ready by Nov 2025.   &lt;/p&gt;

&lt;p&gt;I have purposefully mentioned &lt;strong&gt;two high quality content&lt;/strong&gt; and not an article as there are other mediums as well. You can create Youtube video, write a blog post, talk in local AWS user group, contribute to open source, write a good solution to a question in re:Post. You choose what you want to do. Make sure you have an URL to add in the application which is publicly accessible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Original Voice
&lt;/h3&gt;

&lt;p&gt;AWS wants to hear your original voice and original solution. They are interested in how best you can use AWS technology to build an original solution that solves your problem.&lt;/p&gt;

&lt;h3&gt;
  
  
  Generative AI
&lt;/h3&gt;

&lt;p&gt;Generative AI makes it trivial generating new content, images, and code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DON’T USE GenAI/LLM&lt;/strong&gt; generated text or code in your solution. GenAI generated images are okay if you clearly mention image credits immediately after the image. &lt;/p&gt;

&lt;p&gt;AWS wants to hear your original thoughts, your own experiences, and how you use AWS to improve the solution.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;One Biggest Tip&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Produce content in your mother tongue if English is not your mother tongue. Use it to your own advantage. &lt;/p&gt;

&lt;p&gt;AWS encourages you to produce content in your  own local language. You don’t have to use English. Write in Telugu, Finnish, German, Japanese, Turkish, whatever language you know.&lt;/p&gt;

&lt;h3&gt;
  
  
  LinkedIn
&lt;/h3&gt;

&lt;p&gt;If you are posting on LinkedIn then create content using LinkedIn Articles instead of LinkedIn posts. Posts are temporary. Articles are permanent and are found when you search for topics in or outside of LinkedIn. Also LinkedIn articles supports rich text formatting. Use it to create clear and long content.&lt;/p&gt;

&lt;h3&gt;
  
  
  Publicly Accessible
&lt;/h3&gt;

&lt;p&gt;All your contributions must be publicly accessible and not behind any paywalls. Try opening them in a private incognito browser window and test them before adding the URLs in the application. This way you know those URLs are working fine.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience
&lt;/h2&gt;

&lt;p&gt;In my case, I have been working with AWS for nearly ten years and EKS for the last 4-5 years. I always wanted to contribute back to the community. I have run Linux student tech community back in 2002-2005 and I am a big proponent of open source. There was an itch to write and share my learnings from the start. AWS Community Builders program felt like a correct platform for what I wanted to do in my free time.&lt;/p&gt;

&lt;p&gt;In my case, I had written couple of blogs in 2018 and 2020 and there was a big break. I tried to apply for AWS Community Builders program in 2024 and when I opened the application then I came to know that one needs to add link to their two blog posts or other content written in the last one year and those must be created at least one month before the application. I wished I had known about this before.&lt;/p&gt;

&lt;p&gt;So in mid 2024 I wrote couple of posts on my blog and also started actively posting and writing articles in LinkedIn. When the time came in Jan 2025, I applied and luckily got into the AWS Community Builders program.  This year I have written more blog posts than in the last ten years. I am more motivated to share my learnings, help the community and build solutions in the public.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits
&lt;/h2&gt;

&lt;p&gt;The biggest benefit of joining AWS Community Builders program for me is the access to the network of like-minded builders and AWS experts. Discussing with them when you are stuck on your solutions, learning from what they build, attending builders-only exclusive sessions from AWS experts are the biggest benefits for me.&lt;/p&gt;

&lt;p&gt;Here is the AWS Swag received as part of the program recently.&lt;/p&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%2F55dzooha7vwqau6fceeh.jpeg" 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%2F55dzooha7vwqau6fceeh.jpeg" alt="AWS Swag" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You get some AWS credits for doing proof of concepts or building different solutions using AWS.&lt;/p&gt;

&lt;p&gt;You also get to post on dedicated organization for builders on dev.to. You get more views and credibility for your posts.&lt;/p&gt;

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

&lt;p&gt;First and foremost you need to remember that this is a volunteer role. If you are excited to help others learn AWS technologies, share with the world your AWS learnings, and want to write or talk about it then this program is for you. There will be excellent support from AWS in this regard.&lt;/p&gt;

&lt;p&gt;I personally believe everyone can become an AWS Community Builder if you put the required effort and are willing to help the AWS community.&lt;/p&gt;

&lt;p&gt;This is my way of contributing back to the community by sharing my learnings.&lt;/p&gt;

&lt;p&gt;If you like my post then follow me on &lt;a href="https://www.linkedin.com/in/vijaykodam/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;, read my &lt;a href="https://vijay.eu/posts" rel="noopener noreferrer"&gt;personal blog&lt;/a&gt; and my dev.to posts.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>awscommunity</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>Deploying LLMs on Amazon EKS using NVIDIA GPUs</title>
      <dc:creator>Vijay Kumar Kodam</dc:creator>
      <pubDate>Fri, 16 May 2025 16:46:45 +0000</pubDate>
      <link>https://forem.com/vijaykodam/deploying-llms-on-amazon-eks-using-nvidia-gpus-ooi</link>
      <guid>https://forem.com/vijaykodam/deploying-llms-on-amazon-eks-using-nvidia-gpus-ooi</guid>
      <description>&lt;p&gt;Today I have deployed an LLM inference solution on Amazon EKS using NVidia GPU. &lt;/p&gt;

&lt;p&gt;As part of my Generative AI hands-on learning, attended an AWS hands-on workshop, where I have deployed Mistral 7B Instruct v0.3 model using Ray Serve and vLLM on Amazon EKS. &lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;p&gt;Below is the architecture diagram of the LLM inference solution I deployed on EKS.&lt;/p&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%2Fjiaez7wlsplpbr7k67ns.jpeg" 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%2Fjiaez7wlsplpbr7k67ns.jpeg" alt="LLMonEKS" width="800" height="585"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Components used
&lt;/h2&gt;

&lt;p&gt;If you want to host your own models and control entire lifecycle for security or governance reasons then deploying LLM inference on Amazon EKS is a no-brainer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.ray.io/en/latest/ray-overview/getting-started.html" rel="noopener noreferrer"&gt;Ray&lt;/a&gt; is one of the popular open-source frameworks for building and managing generative AI applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.ray.io/en/latest/serve/index.html" rel="noopener noreferrer"&gt;Ray Serve&lt;/a&gt; is a scalable model serving library for building online inference APIs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.vllm.ai/en/stable/" rel="noopener noreferrer"&gt;vLLM&lt;/a&gt; is a popular high-throughput and memory-efficient inference and serving engine for LLMs. vLLM supports Kubernetes.&lt;/p&gt;

&lt;p&gt;Used &lt;a href="https://github.com/ray-project/kuberay" rel="noopener noreferrer"&gt;kuberay operator&lt;/a&gt; for deploying Ray. This operator handles all the complexity for you so I prefer this method for deploying Ray on K8s.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.ray.io/en/latest/ray-observability/getting-started.html" rel="noopener noreferrer"&gt;Ray dashboard&lt;/a&gt; provides visibility into overall cluster health, jobs, nodes etc.&lt;/p&gt;

&lt;p&gt;Used &lt;a href="https://github.com/open-webui/open-webui" rel="noopener noreferrer"&gt;Open WebUI&lt;/a&gt; for dashboard. Installed NVIDIA Data Center GPU Manager Exporter for monitoring NVIDIA GPU usage in Grafana.&lt;/p&gt;

&lt;p&gt;Currently, AFAIK, for getting monitoring data from NVIDIA GPUs you have to install the &lt;a href="https://github.com/NVIDIA/dcgm-exporter" rel="noopener noreferrer"&gt;NVIDIA DCGM exporter&lt;/a&gt;.  It is straight-forward and exports needed metrics like GPU temperature, GPU Power usage, GPU utilization etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Ray, Open WebUI, vLLM, Mistral - All are open source software capable of scaling LLM inference very high. This is an exciting development for open source. &lt;/p&gt;

&lt;h2&gt;
  
  
  Follow Me
&lt;/h2&gt;

&lt;p&gt;If you are new to my posts, I regularly post about AWS, MCP, Kubernetes and Cloud computing related topics. &lt;/p&gt;

&lt;p&gt;Do follow me in &lt;a href="https://www.linkedin.com/in/vijaykodam/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and visit &lt;a href="https://dev.to/vijaykodam"&gt;my dev.to posts&lt;/a&gt;. You can find all my previous blog posts in &lt;a href="https://vijay.eu/posts" rel="noopener noreferrer"&gt;my blog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>aws</category>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Building MCP Server for Kubernetes</title>
      <dc:creator>Vijay Kumar Kodam</dc:creator>
      <pubDate>Fri, 16 May 2025 16:19:13 +0000</pubDate>
      <link>https://forem.com/vijaykodam/building-mcp-server-for-kubernetes-4l10</link>
      <guid>https://forem.com/vijaykodam/building-mcp-server-for-kubernetes-4l10</guid>
      <description>&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;Built my first MCP Server for read only Kubernetes operations.&lt;/p&gt;

&lt;p&gt;This MCP server was created to provide a secure way to interact with Kubernetes clusters without allowing any create, update, or delete operations. It only exposes read-only APIs to ensure your clusters remain safe while still enabling AI assistants to help you monitor and troubleshoot your Kubernetes resources.&lt;/p&gt;

&lt;h2&gt;
  
  
  Model Context Protocol
&lt;/h2&gt;

&lt;p&gt;Model Context Protocol (MCP) has been very popular lately and you can see the huge adoption as every company is releasing their official MCP server.&lt;/p&gt;

&lt;p&gt;MCP server is the new API endpoint.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Yet Another MCP Server?
&lt;/h2&gt;

&lt;p&gt;Kubernetes is equally popular and there are many Kubernetes MCP servers out there. Security is still evolving around MCP and I didn’t want to run an MCP server for K8s which can create, update or delete my K8s resources. &lt;/p&gt;

&lt;p&gt;Then I got an idea to build my own MCP server where only read only operations are part of the MCP servers tools. If there is no capability written to modify then it cannot modify the resources. &lt;/p&gt;

&lt;p&gt;Of course we could achieve it by creating a restrictive RBAC role in K8s cluster but I wanted to learn and what better way than building your own MCP server.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I built it?
&lt;/h2&gt;

&lt;p&gt;I have used FastMCP framework for building MCP server. For calling Kubernetes API server, I have used the official Kubernetes Python client. Essentially I was plumbing both those things together and building a solution around them.&lt;/p&gt;

&lt;p&gt;Each API call is created as a separate MCP tool. For example, there is one K8s API call for get pods which has been implemented as get_pods MCP tool.&lt;/p&gt;

&lt;p&gt;There is a common Kubernetes context initiated once at the start which is shared across the MCP tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;This MCP server provides the following read-only tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;list_pods&lt;/code&gt;: List all pods in a namespace or across all namespaces&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;list_deployments&lt;/code&gt;: List all deployments in a specified namespace&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;list_services&lt;/code&gt;: List all services in a namespace or across all namespaces&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;list_namespaces&lt;/code&gt;: List all namespaces in the cluster&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_events&lt;/code&gt;: Get Kubernetes events from the cluster&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_pod_logs&lt;/code&gt;: Get logs from a specific pod&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get_logs&lt;/code&gt;: Get logs from pods, deployments, jobs, or resources matching a label selector&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  TODO
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Currently I have only implemented the stdio transport. MCP added streamable_http transport recently. For watch or streaming logs such functionality might be needed. I need to check it further.&lt;/li&gt;
&lt;li&gt;Not all read only Kubernetes APIs are added. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  PyPi package
&lt;/h2&gt;

&lt;p&gt;At first, for testing purposes, I was calling the MCP server code from a single python file directly. After that added that command in the MCP config file and tested it. Then I thought it would be better if there is a single command to run the python module and after some research decided to build &lt;a href="https://pypi.org/project/kubernetes-readonly-mcp/" rel="noopener noreferrer"&gt;my own PyPi package&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I only used pip or uv to install python packages and now I got to create one. Now you can install the MCP server using “pip install kubernetes-readonly-mcp@latest”. This was a very fun and learning experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Remarks
&lt;/h2&gt;

&lt;p&gt;After building, packaging and pushing it to GitHub, I started testing it using VSCode + Cline and installed the MCP server and chat with it.&lt;/p&gt;

&lt;p&gt;This project is still in experimental phase. Use it at your own discretion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo Video
&lt;/h2&gt;

&lt;p&gt;Below is the demo of installing and usage of my first MCP server for readonly Kubernetes operations. Do let me know what is your experience with MCP?&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/bIjzZz7kbDQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;If you are new to my posts, I regularly post about AWS, MCP, Kubernetes and Cloud computing related topics. &lt;/p&gt;

&lt;p&gt;Do follow me in &lt;a href="https://www.linkedin.com/in/vijaykodam/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and visit &lt;a href="https://dev.to/vijaykodam"&gt;my dev.to posts&lt;/a&gt;. You can find all my previous blog posts in &lt;a href="https://vijay.eu/posts" rel="noopener noreferrer"&gt;my blog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>genai</category>
    </item>
    <item>
      <title>How to generate AWS Architecture diagram using AWS MCP server and Amazon Q CLI</title>
      <dc:creator>Vijay Kumar Kodam</dc:creator>
      <pubDate>Sat, 03 May 2025 22:33:52 +0000</pubDate>
      <link>https://forem.com/aws-builders/how-to-generate-aws-architecture-diagram-using-aws-mcp-server-and-amazon-q-cli-3aoo</link>
      <guid>https://forem.com/aws-builders/how-to-generate-aws-architecture-diagram-using-aws-mcp-server-and-amazon-q-cli-3aoo</guid>
      <description>&lt;p&gt;Recently AWS started adopted Model Context Protocol (MCP) and created first set of AWS MCP servers.&lt;/p&gt;

&lt;p&gt;In this blog, I will show you how to generate entire AWS architecture diagrams using single prompt with this new AWS MCP server and Amazon Q CLI. &lt;/p&gt;

&lt;p&gt;Here is the generated AWS Architecture diagram&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%2Fzi0z7w07jyxx0x7we05e.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%2Fzi0z7w07jyxx0x7we05e.png" alt="Data pipeline" width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Read more to find out how …&lt;/p&gt;
&lt;h2&gt;
  
  
  What is MCP?
&lt;/h2&gt;

&lt;p&gt;Model Context Protocol (MCP) is an open protocol that standardizes how applications provide context to LLMs. MCP provides a standardized way to connect AI models to different data sources and tools. You can read more about MCP from &lt;a href="https://modelcontextprotocol.io/introduction" rel="noopener noreferrer"&gt;their website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;LLMs are essentially text-in-text-out or data-in-data-out systems. Agents or tools give LLMs ability to interact with real world. MCP standardizes the interaction between these agents/tools and the applications, typically via MCP Client on the agent/tool side and MCP server on the application side.&lt;/p&gt;

&lt;p&gt;MCP has become popular after AWS, OpenAI, Google, and Microsoft decided to adopt the standard making it go to protocol. Now we have lots of open source MCP servers ready to use.&lt;/p&gt;

&lt;p&gt;I have tried many MCP Hosts/MCP Clients and Amazon Q CLI is the most simple and straight-forward one. Install Q CLI, login to your AWS Builder ID, and you are good to go on a free tier.&lt;br&gt;
AWS handles the LLM calling transparently. No need of any configurations for LLM.&lt;/p&gt;
&lt;h2&gt;
  
  
  Amazon Q CLI
&lt;/h2&gt;

&lt;p&gt;Amazon Q is a generative AI assistant. Recently Amazon Q CLI announced MCP support. This is a big announcement for me as it simplifies using MCP as simple as calling the Amazon Q CLI. I am a terminal guy and have been using generative AI CLI tools like Claude Code and now Amazon Q CLI.&lt;/p&gt;
&lt;h2&gt;
  
  
  Steps to install Amazon Q CLI
&lt;/h2&gt;

&lt;p&gt;What I love about Amazon Q CLI is the installation and usage.&lt;/p&gt;

&lt;p&gt;Installation is a single command in your Mac.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install amazon-q
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You must login using either AWS Builder ID or your AWS credentials. Use AWS Builder ID if you are just getting started. This is an easy way to try it using the free tier.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;q login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then you just use it by calling:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;q chat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;p&gt;Even though we don't interact with LLM directly, Amazon Q CLI uses LLM transparent to the user in the background. Based on the user's query it decides to use the AWS Diagram server via MCP Client inside AWS Q CLI. &lt;/p&gt;

&lt;p&gt;The MCP Client talks to AWS Diagrams MCP server via Model Context Protocol. Internally it pulls the needs icons, generates diagrams using Python diagrams package DSL. Once the image is generated, Q CLI stores it in the user directory.&lt;/p&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%2F73e532wey1pu38yb4f3m.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%2F73e532wey1pu38yb4f3m.png" alt="MCP Amazon Q CLI diagram" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;In this demo I am setting up &lt;a href="https://awslabs.github.io/mcp/servers/aws-diagram-mcp-server/" rel="noopener noreferrer"&gt;AWS Diagrams MCP server&lt;/a&gt; which is the tool/MCP server which Amazon Q CLI calls to generate AWS architecture diagram.&lt;/p&gt;

&lt;p&gt;Prerequisite: Install GraphViz before. See &lt;a href="https://www.graphviz.org/" rel="noopener noreferrer"&gt;https://www.graphviz.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Installing GraphViz in Mac:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install graphviz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Watch below demo where I setup the MCP server and generate AWS architecture diagrams using LLM with a single prompt.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/HQK5P_Mbp1g"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Relevant URLs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://modelcontextprotocol.io/introduction" rel="noopener noreferrer"&gt;Model Context Protocol&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line.html" rel="noopener noreferrer"&gt;Amazon Q CLI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://awslabs.github.io/mcp/" rel="noopener noreferrer"&gt;AWS MCP Servers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://awslabs.github.io/mcp/servers/aws-diagram-mcp-server/" rel="noopener noreferrer"&gt;AWS Diagram MCP server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vijay.eu" rel="noopener noreferrer"&gt;My personal blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>ai</category>
      <category>mcp</category>
      <category>awscommunity</category>
    </item>
  </channel>
</rss>
