<?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: James Gabriele</title>
    <description>The latest articles on DEV Community by James Gabriele (@4regab).</description>
    <link>https://dev.to/4regab</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%2F3414599%2F2dbe571a-d16d-4c62-a9a4-908c0d16a80a.jpeg</url>
      <title>DEV Community: James Gabriele</title>
      <link>https://dev.to/4regab</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/4regab"/>
    <language>en</language>
    <item>
      <title>Made a Spooky Study Tool!</title>
      <dc:creator>James Gabriele</dc:creator>
      <pubDate>Thu, 04 Dec 2025 19:33:05 +0000</pubDate>
      <link>https://dev.to/kirodotdev/made-a-spooky-study-tool-2kec</link>
      <guid>https://dev.to/kirodotdev/made-a-spooky-study-tool-2kec</guid>
      <description>&lt;p&gt;I wanted a study tool that was completely free. No paywalls, no limits on features, no "upgrade to pro" popups. So I built DeepTerm an open-source app that turns PDFs into cards and reviewers using AI or add it manually.&lt;/p&gt;

&lt;p&gt;This is the story of how I built it from scratch using Kiro, from the first design to the final deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;My girlfriend needed a reviewer maker for her studies. Every tool we tried either had limits or wanted money for basic features. Gizmo has generation limits. Other tools are clunky or expensive.&lt;/p&gt;

&lt;p&gt;I thought: why not build one myself and make it free for everyone?&lt;/p&gt;

&lt;h2&gt;
  
  
  What DeepTerm Does
&lt;/h2&gt;

&lt;p&gt;You upload a PDF or paste text. The AI extracts key terms and definitions automatically. Then you can study with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flashcards with flip animations and spaced repetition&lt;/li&gt;
&lt;li&gt;Learn mode that tracks your progress through stages&lt;/li&gt;
&lt;li&gt;Match game for memorization practice&lt;/li&gt;
&lt;li&gt;Practice tests based on what you mastered&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cards move through stages: new, learning, review, mastered. This is spaced repetition - it helps you remember things longer.&lt;/p&gt;

&lt;p&gt;But the real magic is in the gamification: XP system, achievements, Pomodoro timer, ambient sounds, export features, and a spooky Halloween theme with a flashlight study mode.&lt;/p&gt;

&lt;h2&gt;
  
  
  Planning and Design in Figma
&lt;/h2&gt;

&lt;p&gt;I started by sketching the user flow. Upload PDF → AI generates cards → Study modes → Track progress. Simple.&lt;/p&gt;

&lt;p&gt;Then I designed the UI in Figma. I wanted it clean but fun. Two themes: normal (light and warm) and spooky (dark purple Halloween vibes).&lt;/p&gt;

&lt;p&gt;The key screens I designed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Landing page with hero section and features&lt;/li&gt;
&lt;li&gt;Dashboard with materials list&lt;/li&gt;
&lt;li&gt;Learn mode with progress tracking&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Setting Up the Foundation with Kiro
&lt;/h2&gt;

&lt;p&gt;I opened Kiro and started a new Next.js project. But first, I created steering rules to optimize my workflow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# My Custom Steering Rules&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Do not make markdown files unless asked
&lt;span class="p"&gt;-&lt;/span&gt; Use controlPwshProcess instead of executePwsh for all commands
&lt;span class="p"&gt;-&lt;/span&gt; Read multiple files in parallel with readMultipleFiles
&lt;span class="p"&gt;-&lt;/span&gt; Follow Next.js 16 App Router patterns
&lt;span class="p"&gt;-&lt;/span&gt; Use TypeScript strict mode
&lt;span class="p"&gt;-&lt;/span&gt; Mobile-first responsive design
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These rules made Kiro much faster and more accurate. The parallel file reading alone saved time.&lt;/p&gt;

&lt;p&gt;Then I set up the tech stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js 16 with App Router&lt;/li&gt;
&lt;li&gt;TypeScript in strict mode&lt;/li&gt;
&lt;li&gt;Tailwind CSS for styling&lt;/li&gt;
&lt;li&gt;Supabase for database and auth&lt;/li&gt;
&lt;li&gt;Google Gemini for AI generation&lt;/li&gt;
&lt;li&gt;Zustand for state management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Kiro helped me configure everything. It created the folder structure, set up TypeScript configs, and installed all dependencies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Converting Figma to Code with MCP
&lt;/h2&gt;

&lt;p&gt;This is where Figma MCP became a game changer. I uploaded my Figma designs to Kiro and said "convert this to code."&lt;/p&gt;

&lt;p&gt;Kiro analyzed the design and generated:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Landing page with hero section, features grid, and footer&lt;/li&gt;
&lt;li&gt;Responsive layout with Tailwind classes&lt;/li&gt;
&lt;li&gt;Component structure following my steering rules&lt;/li&gt;
&lt;li&gt;TypeScript interfaces for props&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What would have taken me hours of manual work happened in minutes. The generated code was clean, responsive, and followed best practices.&lt;/p&gt;

&lt;p&gt;I did this for each major page:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Landing page&lt;/li&gt;
&lt;li&gt;Dashboard layout&lt;/li&gt;
&lt;li&gt;Flashcard interface&lt;/li&gt;
&lt;li&gt;Study modes&lt;/li&gt;
&lt;li&gt;Pomodoro timer&lt;/li&gt;
&lt;li&gt;Settings pages&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each time, Kiro converted the Figma design to near pixel-perfect React components.&lt;/p&gt;

&lt;p&gt;I spent extra time on the spooky theme. Dark backgrounds, purple accents, Halloween-inspired text. The flashlight effect was just a crazy idea I com up with - a dark overlay with a radial gradient following the cursor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Database Schema and Supabase Setup
&lt;/h2&gt;

&lt;p&gt;I needed to store users, materials, flashcards, and progress data. I let Kiro designed the database schema.&lt;/p&gt;

&lt;p&gt;Setting up Supabase was tricky at first. I struggled with SQL functions. That's when I installed Supabase Powers in Kiro.&lt;/p&gt;

&lt;p&gt;Instantly, Kiro understood my schema. It helped me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create SQL functions for rate limiting&lt;/li&gt;
&lt;li&gt;Debug complex queries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What took me hours of trial and error before was fixed in minutes with Supabase Powers.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Integration with Google Gemini
&lt;/h2&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%2Fojvci25s4c9eb00u20lu.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%2Fojvci25s4c9eb00u20lu.png" alt="Material Creation" width="800" height="554"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The core feature is AI generation. Users upload PDFs, and Gemini extracts flashcards or reviewer content.&lt;/p&gt;

&lt;p&gt;I set up multiple API keys for rotation to handle rate limits. Kiro helped me build:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// API route for flashcard generation&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;POST&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;NextRequest&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// 1. Parse PDF or text input&lt;/span&gt;
  &lt;span class="c1"&gt;// 2. Check user rate limits (10/day)&lt;/span&gt;
  &lt;span class="c1"&gt;// 3. Call Gemini with structured prompts&lt;/span&gt;
  &lt;span class="c1"&gt;// 4. Parse AI response into cards&lt;/span&gt;
  &lt;span class="c1"&gt;// 5. Save to database&lt;/span&gt;
  &lt;span class="c1"&gt;// 6. Return formatted response&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The tricky part was prompt engineering. I needed Gemini to return consistent JSON with terms and definitions. Vibe mode helped me iterate on prompts until the output was reliable.&lt;/p&gt;

&lt;p&gt;I also added a reviewer maker that organizes content into categories with color coding. Different extraction modes: full definitions, sentence summaries, or just keywords.&lt;/p&gt;

&lt;h2&gt;
  
  
  Study Modes and Spaced Repetition
&lt;/h2&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%2Fsjsb3ksctg0s6ck65czf.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%2Fsjsb3ksctg0s6ck65czf.png" alt="Study Modes" width="800" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each study mode needed different logic:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flashcards&lt;/strong&gt;: Simple flip animation with next/previous navigation. Cards show term first, flip to definition.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn Mode&lt;/strong&gt;: Adaptive algorithm that shows cards based on mastery level. New cards appear more often, mastered cards less often.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Match Game&lt;/strong&gt;: Drag and drop interface matching terms to definitions. Timer and scoring system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Practice Test&lt;/strong&gt;: Mixed question types based on card difficulty. Multiple choice, fill-in-the-blank, true/false.&lt;/p&gt;

&lt;p&gt;The spaced repetition algorithm was complex. Cards have states (new, learning, review, mastered) and intervals that increase based on how well you know them.&lt;/p&gt;

&lt;p&gt;Kiro helped me implement the spaced repetition algorithm. It tracks when to show each card next based on your performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Spooky Theme and Flashlight Effect
&lt;/h2&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%2Fp2rws6yvfuibh2vmu4dj.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%2Fp2rws6yvfuibh2vmu4dj.png" alt="Flashlight Effect" width="732" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This was the fun part. I wanted something unique that no other study app had.&lt;/p&gt;

&lt;p&gt;The spooky theme was straightforward - dark backgrounds, purple colors, Halloween-inspired text throughout the UI.&lt;/p&gt;

&lt;p&gt;But the flashlight effect was tricky. I needed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dark overlay covering the entire screen&lt;/li&gt;
&lt;li&gt;Radial gradient that follows mouse/touch&lt;/li&gt;
&lt;li&gt;Smooth animation without performance issues&lt;/li&gt;
&lt;li&gt;Works on mobile and desktop&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result is mystical! Turn on spooky mode and flashlight effect, and you study in complete darkness with only a circle of light around your cursor while studying. It's surprisingly immersive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gamification and Productivity Features
&lt;/h2&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%2Ftt9lke74rk42jvcqrp3e.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%2Ftt9lke74rk42jvcqrp3e.png" alt="Gamification" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I added XP and achievements to make studying more engaging:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Earn XP for completing cards, study sessions, streaks&lt;/li&gt;
&lt;li&gt;Level up from Novice to Grandmaster&lt;/li&gt;
&lt;li&gt;Unlock achievements for milestones&lt;/li&gt;
&lt;li&gt;Track study streaks and statistics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Pomodoro timer was another major feature:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Customizable work/break intervals&lt;/li&gt;
&lt;li&gt;Task list with reminders&lt;/li&gt;
&lt;li&gt;Ambient sounds (rain, cafe, nature)&lt;/li&gt;
&lt;li&gt;Background image upload on local storage&lt;/li&gt;
&lt;li&gt;Fullscreen focus mode&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%2F0mfrorxl6o82xj7og2xs.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%2F0mfrorxl6o82xj7og2xs.png" alt="Pomodoro" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kiro Vibe Mode helped me build the timer logic with proper state management. The notification system works across the entire app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Export and Sharing Features
&lt;/h2&gt;

&lt;p&gt;Users wanted to export their materials and share them with classmates.&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%2Fuxugl9axtjs7o4c9dyvh.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%2Fuxugl9axtjs7o4c9dyvh.png" alt="Sharing Features" width="410" height="236"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Export features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PDF generation with jsPDF (two-column layout)&lt;/li&gt;
&lt;li&gt;DOCX export with proper formatting&lt;/li&gt;
&lt;li&gt;Clean, printable designs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sharing system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate unique share codes&lt;/li&gt;
&lt;li&gt;Public pages that don't require login&lt;/li&gt;
&lt;li&gt;Copy-to-library feature for shared materials&lt;/li&gt;
&lt;li&gt;Privacy controls (active/inactive links)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The sharing logic was complex because of security. I needed public access without exposing private data. Supabase RLS policies handled this perfectly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing and Optimization
&lt;/h2&gt;

&lt;p&gt;I used Vitest for testing and fast-check for property-based tests. Kiro helped me set up automated testing with hooks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run tests after every code change&lt;/li&gt;
&lt;li&gt;Check builds before deployment&lt;/li&gt;
&lt;li&gt;Lint code automatically&lt;/li&gt;
&lt;li&gt;Property-based testing for edge cases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The hooks saved me time because tests ran in the background. I got instant feedback if something broke.&lt;/p&gt;

&lt;p&gt;Performance optimization:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Server components where possible&lt;/li&gt;
&lt;li&gt;Dynamic imports for heavy features&lt;/li&gt;
&lt;li&gt;Image optimization with WebP&lt;/li&gt;
&lt;li&gt;Lazy loading for non-critical components&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Results
&lt;/h2&gt;

&lt;p&gt;DeepTerm launched with all features working:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI-powered flashcard and reviewer maker&lt;/li&gt;
&lt;li&gt;Four study modes with spaced repetition&lt;/li&gt;
&lt;li&gt;Spooky theme with flashlight effect&lt;/li&gt;
&lt;li&gt;Pomodoro timer and productivity features&lt;/li&gt;
&lt;li&gt;Export and sharing capabilities&lt;/li&gt;
&lt;li&gt;Gamification with XP and achievements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The app is completely free and open source. No limits, no paywalls, no "upgrade to pro" nonsense.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned About Kiro and MCP
&lt;/h2&gt;

&lt;p&gt;This project taught me how powerful Kiro can be with the right setup:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Figma MCP&lt;/strong&gt;: Converting designs to code saved me days of work. What used to be tedious manual translation became instant generation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supabase Powers&lt;/strong&gt;: Database debugging that used to take hours was fixed in minutes. Kiro understood my schema and wrote perfect SQL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context7 MCP&lt;/strong&gt;: Access to up-to-date documentation was crucial for Next.js 16 features that weren't in the training data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom Steering Rules&lt;/strong&gt;: Small optimizations like parallel file reading and background processes made a huge difference in speed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent Hooks&lt;/strong&gt;: Automated testing and builds meant I could focus on features instead of manual tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;

&lt;p&gt;DeepTerm is live at &lt;a href="https://deepterm.me" rel="noopener noreferrer"&gt;Deepterm&lt;/a&gt;. Upload a PDF and see the AI generate flashcards in seconds. Try the spooky theme and flashlight mode - it's surprisingly fun to study in the dark.&lt;/p&gt;

&lt;p&gt;The code is on GitHub if you want to host your own version or contribute features.&lt;/p&gt;

&lt;p&gt;Building this taught me that with the right tools (Kiro + MCP + Hooks), you can build anything. The only limit is your imagination.&lt;/p&gt;

&lt;h1&gt;
  
  
  kiro
&lt;/h1&gt;

</description>
      <category>kiro</category>
      <category>webdev</category>
      <category>studytool</category>
      <category>ai</category>
    </item>
    <item>
      <title>Building an MCP Server That Solves Every Developer's Rules Management Problem</title>
      <dc:creator>James Gabriele</dc:creator>
      <pubDate>Thu, 28 Aug 2025 21:16:54 +0000</pubDate>
      <link>https://dev.to/kirodotdev/building-an-mcp-server-that-solves-every-developers-rules-management-problem-o86</link>
      <guid>https://dev.to/kirodotdev/building-an-mcp-server-that-solves-every-developers-rules-management-problem-o86</guid>
      <description>&lt;h2&gt;
  
  
  The Problem Every Developer Knows Too Well
&lt;/h2&gt;

&lt;p&gt;You're working on a project in Cursor, following your carefully crafted coding rules and style guides. Everything is perfect. Then you switch to another AI IDE or CLI, and... your workspace is suddenly cluttered with duplicate .md files.&lt;/p&gt;

&lt;p&gt;This exact frustration led me to build the &lt;strong&gt;Agent Rules MCP Server&lt;/strong&gt; - a solution that lets you store all your coding rules in GitHub and fetch them on-demand, no matter which AI tool you're using.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built: Agent Rules MCP Server
&lt;/h2&gt;

&lt;p&gt;The Agent Rules MCP Server transforms how developers handle coding standards by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Centralized Storage&lt;/strong&gt;: Keep all coding rules in one GitHub repository&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;On-Demand Access&lt;/strong&gt;: Pull specific rules without cluttering your workspace
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Format Support&lt;/strong&gt;: Works with &lt;code&gt;.md&lt;/code&gt;, &lt;code&gt;.mdc&lt;/code&gt;, &lt;code&gt;.chatmode.md&lt;/code&gt;, &lt;code&gt;.prompt.md&lt;/code&gt;, and &lt;code&gt;.instructions.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Fallbacks&lt;/strong&gt;: Automatically switches to direct raw GitHub user content access when API limits are reached.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Config&lt;/strong&gt;: Works immediately with any public repos - no GitHub token required&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The server provides two core MCP tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;get_rules&lt;/code&gt;: Fetch rules for specific rules (e.g. react, security, typescript, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;list_rules&lt;/code&gt;: Browse all available rule topics with descriptions&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%2Fyvzpy6lkfr93crg0d1zw.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%2Fyvzpy6lkfr93crg0d1zw.png" alt="agent-rules" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;

&lt;p&gt;The Agent Rules MCP Server is available on NPM and works with any MCP-compatible AI tool. Check out the &lt;a href="https://github.com/4regab/agent-rules-mcp" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt; for setup instructions and example configurations.&lt;/p&gt;

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

&lt;p&gt;Built with modern TypeScript and these key technologies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP TypeScript SDK&lt;/strong&gt;: For seamless AI tool integration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub API&lt;/strong&gt;: For reliable file access with smart fallbacks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Node.js&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The server implements intelligent caching and concurrent request handling, with automatic fallbacks to raw GitHub URLs when API limits are reached.&lt;/p&gt;

&lt;h2&gt;
  
  
  Overcoming Challenges
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The MCP Schema Compatibility Issue
&lt;/h3&gt;

&lt;p&gt;The biggest hurdle was discovering that MCP has strict JSON Schema limitations. My server worked perfectly with other IDEs but failed when connecting to Kiro. Through feedback, we identified and solved the schema compatibility issues, redesigning complex validation patterns.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub API Rate Limiting
&lt;/h3&gt;

&lt;p&gt;Rather than forcing users to manage API tokens, I built a smart fallback system that seamlessly switches to direct GitHub raw github content file access when rate limits are hit. This makes the tool accessible to everyone without needing for Github token.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Means for Developers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No More Rules Duplication&lt;/strong&gt;: One source of development rules for all your AI IDEs or CLIs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-Tool Compatibility&lt;/strong&gt;: Use the same rules in Cursor, Copilot, Kiro, Windsurf, or any MCP-compatible AI tool&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Maintenance&lt;/strong&gt;: Rules live in GitHub where they belong, not scattered across local files&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Kiro Advantage: AI-Powered Development
&lt;/h2&gt;

&lt;p&gt;What made this project special wasn't just the end result - it was how I built it using &lt;strong&gt;Kiro's Specs features&lt;/strong&gt;. Here's how Kiro transformed my development process:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Specs-Driven Development
&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%2Fotxwyoj2izf91aowhkam.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%2Fotxwyoj2izf91aowhkam.png" alt="Specs" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I spent over an hour using Kiro's Specs feature to plan everything before writing a single line of code. It was a collaborative architecture design session with Kiro:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Defined the exact problem and solution approach&lt;/li&gt;
&lt;li&gt;Specified technical requirements (TypeScript, Node, MCP SDK, GitHub API)&lt;/li&gt;
&lt;li&gt;Mapped out tool functionality and error handling strategies&lt;/li&gt;
&lt;li&gt;Created a PRD that Kiro will follow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result? When Kiro generated code, it perfectly matched our planned architecture. No confusion, no scope creep, just clean implementation.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Steering Rules for Consistency
&lt;/h3&gt;

&lt;p&gt;Kiro's steering system kept coding standards consistent throughout the project. Instead of repeatedly explaining my preferences, I set up steering rules that automatically guided every code generation session.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Kiro as a Debugging Partner
&lt;/h3&gt;

&lt;p&gt;The most impressive moment came when my MCP server wouldn't connect to Kiro itself due to JSON Schema compatibility issues. I simply copied the error messages and described the problem. Kiro immediately identified that MCP doesn't support complex schema features like &lt;code&gt;oneOf&lt;/code&gt; and &lt;code&gt;anyOf&lt;/code&gt;, then rewrote my parameter schemas to use simpler patterns - saving me time.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Give new instructions while its running
&lt;/h3&gt;

&lt;p&gt;This hidden feature I discovered while using Kiro is that you can give it new instructions by giving it new steering file while its working. Just make a .md file containing feedback, tasks, clarifications, etc., then add it to the steering files. Kiro will detect it and follow it as it works. By doing this, you can reduce many problems Kiro produces while operating or when you forgot to add more information to your prompt.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways for AI-Assisted Development
&lt;/h2&gt;

&lt;p&gt;Working with Kiro taught me that the future of coding isn't about AI replacing developers - it's about &lt;strong&gt;true collaboration&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Plan First&lt;/strong&gt;: Use specs to align on goals before coding&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set Standards&lt;/strong&gt;: Steering rules eliminate repetitive explanations
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Debug Together&lt;/strong&gt;: AI can solve complex technical problems faster than solo research&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stay Focused&lt;/strong&gt;: One conversation, one specific goal at a time&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;em&gt;What coding standards do you struggle to keep consistent across projects? How do you currently manage rules across different AI tools? Share your experiences in the comments below!&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  kiro #ai #mcp #productivity
&lt;/h1&gt;

</description>
      <category>kiro</category>
      <category>mcp</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
