<?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: Fennara</title>
    <description>The latest articles on DEV Community by Fennara (@fennaraofficial).</description>
    <link>https://dev.to/fennaraofficial</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3958101%2F60060cf0-8ae1-4872-ab6f-179b7fa1f52d.png</url>
      <title>DEV Community: Fennara</title>
      <link>https://dev.to/fennaraofficial</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fennaraofficial"/>
    <language>en</language>
    <item>
      <title>I Tested Popular Godot MCPs by Migrating a Godot 3.6 Project to Godot 4.6</title>
      <dc:creator>Fennara</dc:creator>
      <pubDate>Sun, 14 Jun 2026 03:48:43 +0000</pubDate>
      <link>https://dev.to/fennaraofficial/i-tested-popular-godot-mcps-by-migrating-a-godot-36-project-to-godot-46-34d2</link>
      <guid>https://dev.to/fennaraofficial/i-tested-popular-godot-mcps-by-migrating-a-godot-36-project-to-godot-46-34d2</guid>
      <description>&lt;p&gt;I tested three Godot MCPs by giving Codex the same task:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Connect to a Godot 3.6 project and migrate it to Godot 4.6.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Simple test.&lt;/p&gt;

&lt;p&gt;Same project. Same prompt. Different MCPs.&lt;/p&gt;

&lt;p&gt;One of them was my own MCP, Fennara. The other two were Godot AI and Godot MCP Native.&lt;/p&gt;

&lt;p&gt;The project started with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;208 errors&lt;/li&gt;
&lt;li&gt;73 warnings&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So this was not a clean small demo. It was a real messy migration test.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test 1: Fennara
&lt;/h2&gt;

&lt;p&gt;Fennara started by checking if Codex was connected to the correct Godot project.&lt;/p&gt;

&lt;p&gt;Then Codex ran diagnostics across the project.&lt;/p&gt;

&lt;p&gt;This is where Fennara helped a lot.&lt;/p&gt;

&lt;p&gt;It did not just read the editor output panel. It surfaced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;script errors&lt;/li&gt;
&lt;li&gt;scene errors&lt;/li&gt;
&lt;li&gt;shader errors&lt;/li&gt;
&lt;li&gt;old Godot API errors&lt;/li&gt;
&lt;li&gt;errors that were not clearly shown in the editor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Codex also used Fennara's &lt;code&gt;get_class_info&lt;/code&gt; tool many times.&lt;/p&gt;

&lt;p&gt;That matters because Godot 3 to Godot 4 migration has a lot of API changes.&lt;/p&gt;

&lt;p&gt;If the AI guesses the new API, it can easily write wrong code.&lt;/p&gt;

&lt;p&gt;But if the AI can ask Godot directly, the edits become much safer.&lt;/p&gt;

&lt;p&gt;When Codex edited files through Fennara, the write result immediately returned the new errors and warnings for that script.&lt;/p&gt;

&lt;p&gt;So Codex was not just writing code and hoping it worked.&lt;/p&gt;

&lt;p&gt;It was getting feedback from Godot after the edit.&lt;/p&gt;

&lt;p&gt;That is the whole point.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AI agents should not build blindly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Yes, Fennara's write tools are slower.&lt;/p&gt;

&lt;p&gt;But they are slower because they are more careful.&lt;/p&gt;

&lt;p&gt;Every action reflected in the editor instantly. I did not get the same editor caching problem that showed up in the other MCPs.&lt;/p&gt;

&lt;p&gt;After another diagnostics run, the errors went down a lot.&lt;/p&gt;

&lt;p&gt;Fennara also helped catch runtime errors. One example was old code calling &lt;code&gt;add_animation&lt;/code&gt; on &lt;code&gt;AnimationPlayer&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;By the end, Codex reached a much better state on its own. I did not manually guide it through the fixes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test 2: Godot AI
&lt;/h2&gt;

&lt;p&gt;Next I tested Godot AI.&lt;/p&gt;

&lt;p&gt;I gave Codex the same migration prompt again.&lt;/p&gt;

&lt;p&gt;It started by running the project.&lt;/p&gt;

&lt;p&gt;The problem was that the tool only said the project was running. It did not clearly return the runtime error, even though the scene was broken.&lt;/p&gt;

&lt;p&gt;Then Codex started reading game and editor logs.&lt;/p&gt;

&lt;p&gt;And this is where things became messy.&lt;/p&gt;

&lt;p&gt;The editor logs had old errors inside them.&lt;/p&gt;

&lt;p&gt;Some errors were from before the files were changed. Some were not true anymore.&lt;/p&gt;

&lt;p&gt;Codex noticed this too.&lt;/p&gt;

&lt;p&gt;It basically said the logs still had errors for lines that were not even on disk now.&lt;/p&gt;

&lt;p&gt;That is a big problem.&lt;/p&gt;

&lt;p&gt;Because if the AI trusts stale logs, it starts fixing errors that do not exist anymore.&lt;/p&gt;

&lt;p&gt;Later Codex decided to use the Godot executable directly from the terminal because the terminal output was cleaner.&lt;/p&gt;

&lt;p&gt;That helped, but then the MCP was not really giving the clean feedback loop.&lt;/p&gt;

&lt;p&gt;At one point Codex thought the migration was finished.&lt;/p&gt;

&lt;p&gt;But after reloading the project, there were still around 30 errors left.&lt;/p&gt;

&lt;p&gt;So I had to run the scene and provide screenshots a few times to help it continue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test 3: Godot MCP Native
&lt;/h2&gt;

&lt;p&gt;Then I tested Godot MCP Native.&lt;/p&gt;

&lt;p&gt;This one had similar issues.&lt;/p&gt;

&lt;p&gt;At first Codex could not find all the tools properly, so I gave it the repo README.&lt;/p&gt;

&lt;p&gt;After that, it understood the tools better.&lt;/p&gt;

&lt;p&gt;But this also showed one downside of having too many tools.&lt;/p&gt;

&lt;p&gt;The agent may not know what to use.&lt;/p&gt;

&lt;p&gt;During the migration, Codex still relied a lot on running Godot directly from terminal instead of using the MCP.&lt;/p&gt;

&lt;p&gt;And yes, Codex can still fix things that way.&lt;/p&gt;

&lt;p&gt;But the test was not only about whether Codex can eventually fix the project.&lt;/p&gt;

&lt;p&gt;The test was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How much does the MCP help Codex understand the Godot project state?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After Codex thought it was finished, I reloaded the project.&lt;/p&gt;

&lt;p&gt;There were still errors left.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Main Difference
&lt;/h2&gt;

&lt;p&gt;The biggest difference was the feedback.&lt;/p&gt;

&lt;p&gt;For Godot migration work, AI needs more than file access.&lt;/p&gt;

&lt;p&gt;It needs reliable feedback from Godot.&lt;/p&gt;

&lt;p&gt;The biggest problems I saw were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;stale editor output&lt;/li&gt;
&lt;li&gt;runtime errors not being returned clearly&lt;/li&gt;
&lt;li&gt;editor cache issues after file writes&lt;/li&gt;
&lt;li&gt;agents fixing errors that were already gone&lt;/li&gt;
&lt;li&gt;too many tools making discovery harder&lt;/li&gt;
&lt;li&gt;not enough direct Godot API context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why I built Fennara around fewer tools, but deeper feedback.&lt;/p&gt;

&lt;p&gt;Instead of being just a big command list, Fennara tries to give the agent useful Godot context:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;project diagnostics&lt;/li&gt;
&lt;li&gt;script diagnostics after edits&lt;/li&gt;
&lt;li&gt;scene and node inspection&lt;/li&gt;
&lt;li&gt;changed properties&lt;/li&gt;
&lt;li&gt;exported script variables&lt;/li&gt;
&lt;li&gt;attached script info&lt;/li&gt;
&lt;li&gt;validation warnings&lt;/li&gt;
&lt;li&gt;runtime errors&lt;/li&gt;
&lt;li&gt;class and method information from Godot&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That feedback loop is what helped Codex avoid guessing.&lt;/p&gt;

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

&lt;p&gt;Yes, this video is partly me praising my own MCP.&lt;/p&gt;

&lt;p&gt;I know.&lt;/p&gt;

&lt;p&gt;But everything I showed in the test was raw and real.&lt;/p&gt;

&lt;p&gt;The main thing I believe is this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The more reliable feedback an MCP gives the agent, the less the agent has to hallucinate.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For Godot projects, especially migrations, that matters a lot.&lt;/p&gt;

&lt;p&gt;Try different MCPs and see what works for your own workflow.&lt;/p&gt;

&lt;p&gt;Some tools may fit your style better than others.&lt;/p&gt;

&lt;p&gt;But for me, the best MCP is not the one with the biggest command list.&lt;/p&gt;

&lt;p&gt;It is the one that helps the AI understand what Godot is actually saying.&lt;/p&gt;

</description>
      <category>godot</category>
      <category>ai</category>
      <category>mcp</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>I used Fennara MCP to build a real Godot demo project</title>
      <dc:creator>Fennara</dc:creator>
      <pubDate>Thu, 04 Jun 2026 05:06:04 +0000</pubDate>
      <link>https://dev.to/fennaraofficial/i-used-fennara-mcp-to-build-a-real-godot-demo-project-34dh</link>
      <guid>https://dev.to/fennaraofficial/i-used-fennara-mcp-to-build-a-real-godot-demo-project-34dh</guid>
      <description>&lt;p&gt;I wanted to test something very specific:&lt;/p&gt;

&lt;p&gt;Can an AI agent build inside Godot with real engine feedback, instead of just writing files and hoping they work?&lt;/p&gt;

&lt;p&gt;So I made a small Godot demo project called &lt;strong&gt;Kantari&lt;/strong&gt; using Fennara.&lt;/p&gt;

&lt;p&gt;Video demo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=8y2Ub8pgNSs" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=8y2Ub8pgNSs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub repo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/fennaraOfficial/kantari-godot-demo" rel="noopener noreferrer"&gt;https://github.com/fennaraOfficial/kantari-godot-demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fennara:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.fennara.io" rel="noopener noreferrer"&gt;https://www.fennara.io&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The point of the demo
&lt;/h2&gt;

&lt;p&gt;This is not meant to be a polished commercial game.&lt;/p&gt;

&lt;p&gt;The point is to show a real saved Godot project created and iterated with Fennara: actual &lt;code&gt;.tscn&lt;/code&gt; scenes, scripts, project settings, nodes, resources, and the Fennara addon payload.&lt;/p&gt;

&lt;p&gt;Not a web scene.&lt;/p&gt;

&lt;p&gt;Not a one-file runtime trick.&lt;/p&gt;

&lt;p&gt;Not “one prompt makes a game.”&lt;/p&gt;

&lt;h2&gt;
  
  
  What Fennara is trying to solve
&lt;/h2&gt;

&lt;p&gt;Most AI coding workflows can write Godot files from the outside.&lt;/p&gt;

&lt;p&gt;That is useful, but it is also fragile.&lt;/p&gt;

&lt;p&gt;The hard part is not only:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;can the AI write a script?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The hard part is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;did the script parse?
did Godot understand the scene?
did the node paths work?
did resources load?
did the game produce runtime errors?
did the result actually look correct?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is where Fennara is focused.&lt;/p&gt;

&lt;h2&gt;
  
  
  Small toolset, deeper feedback
&lt;/h2&gt;

&lt;p&gt;Fennara MCP is not designed as a giant list of tiny Godot commands.&lt;/p&gt;

&lt;p&gt;The philosophy is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;small toolset, deep Godot feedback
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example, when an AI agent writes or edits GDScript, Fennara can ask Godot for diagnostics on the changed script.&lt;/p&gt;

&lt;p&gt;So the agent does not just get:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;file written
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It can get feedback from Godot about parse errors, type issues, warnings, or broken code it just introduced.&lt;/p&gt;

&lt;p&gt;For scene work, Fennara can inspect Godot scene and node state, including changed properties, attached scripts, exported variables, subresources, nested resources, warnings, validation issues, runtime errors, and screenshots when visual feedback matters.&lt;/p&gt;

&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;p&gt;Give the agent enough Godot context that it does not have to hallucinate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters for real projects
&lt;/h2&gt;

&lt;p&gt;A lot of AI game-dev demos look impressive until you open the project.&lt;/p&gt;

&lt;p&gt;The game might “run,” but the scene is fake, the code is brittle, node paths are wrong, resources are missing, or the whole thing only works because everything was hardcoded into one script.&lt;/p&gt;

&lt;p&gt;Real Godot projects are messier than that.&lt;/p&gt;

&lt;p&gt;They have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;scenes&lt;/li&gt;
&lt;li&gt;inherited scenes&lt;/li&gt;
&lt;li&gt;scripts&lt;/li&gt;
&lt;li&gt;exported variables&lt;/li&gt;
&lt;li&gt;signals&lt;/li&gt;
&lt;li&gt;resources&lt;/li&gt;
&lt;li&gt;subresources&lt;/li&gt;
&lt;li&gt;autoloads&lt;/li&gt;
&lt;li&gt;editor warnings&lt;/li&gt;
&lt;li&gt;runtime errors&lt;/li&gt;
&lt;li&gt;project-specific architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the AI cannot inspect those things, it is mostly guessing.&lt;/p&gt;

&lt;p&gt;Fennara tries to make the feedback loop tighter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;inspect project
edit
check diagnostics
validate scene
run
read errors
capture screenshot
patch
rerun
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That loop is closer to how a human Godot developer works.&lt;/p&gt;

&lt;h2&gt;
  
  
  Kantari demo
&lt;/h2&gt;

&lt;p&gt;Kantari is a small Godot demo project made with this workflow.&lt;/p&gt;

&lt;p&gt;The repository includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a Godot project file&lt;/li&gt;
&lt;li&gt;saved scene files&lt;/li&gt;
&lt;li&gt;gameplay scripts&lt;/li&gt;
&lt;li&gt;Fennara addon preview files&lt;/li&gt;
&lt;li&gt;project setup files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/fennaraOfficial/kantari-godot-demo" rel="noopener noreferrer"&gt;https://github.com/fennaraOfficial/kantari-godot-demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Video:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=8y2Ub8pgNSs" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=8y2Ub8pgNSs&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Fennara links
&lt;/h2&gt;

&lt;p&gt;Website:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.fennara.io" rel="noopener noreferrer"&gt;https://www.fennara.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Godot MCP page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.fennara.io/godot-mcp" rel="noopener noreferrer"&gt;https://www.fennara.io/godot-mcp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MCP setup docs:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.fennara.io/docs/mcp" rel="noopener noreferrer"&gt;https://www.fennara.io/docs/mcp&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing thought
&lt;/h2&gt;

&lt;p&gt;Fennara is not about making Godot optional.&lt;/p&gt;

&lt;p&gt;It is about helping AI agents work inside Godot with enough feedback to notice when they are wrong.&lt;/p&gt;

&lt;p&gt;The interesting part is not that the AI can make a change.&lt;/p&gt;

&lt;p&gt;The interesting part is whether it can see what broke, understand why, and keep iterating.&lt;/p&gt;

</description>
      <category>godot</category>
      <category>ai</category>
      <category>mcp</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>I tested an AI agent on a real Godot RPG project. The first script broke.</title>
      <dc:creator>Fennara</dc:creator>
      <pubDate>Fri, 29 May 2026 08:56:54 +0000</pubDate>
      <link>https://dev.to/fennaraofficial/i-tested-an-ai-agent-on-a-real-godot-rpg-project-the-first-script-broke-5gel</link>
      <guid>https://dev.to/fennaraofficial/i-tested-an-ai-agent-on-a-real-godot-rpg-project-the-first-script-broke-5gel</guid>
      <description>&lt;p&gt;Most Godot AI demos start from an empty project.&lt;/p&gt;

&lt;p&gt;I wanted to test a harder case: can an AI agent work inside an existing Godot project and recover when it makes a mistake?&lt;/p&gt;

&lt;p&gt;So I tested Fennara MCP with Codex on GDQuest’s open-source Godot 4 Open RPG project.&lt;/p&gt;

&lt;p&gt;The task was to add a progression feature where Baloo, the Bear player battler, unlocks a new combat ability called &lt;strong&gt;Tactical Guard&lt;/strong&gt; after winning an encounter.&lt;/p&gt;

&lt;p&gt;The interesting part: the first script Codex wrote was broken.&lt;/p&gt;

&lt;p&gt;Instead of silently handing me broken Godot code, Fennara sent feedback from Godot back to the AI. Codex saw the diagnostics, patched the script, and kept going.&lt;/p&gt;

&lt;p&gt;That is the part I care about.&lt;/p&gt;

&lt;p&gt;Traditional MCP gives an AI commands.&lt;/p&gt;

&lt;p&gt;Fennara gives the AI feedback from Godot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GDScript diagnostics&lt;/li&gt;
&lt;li&gt;scene validation&lt;/li&gt;
&lt;li&gt;runtime feedback&lt;/li&gt;
&lt;li&gt;scene tree inspection&lt;/li&gt;
&lt;li&gt;node properties&lt;/li&gt;
&lt;li&gt;SemanticSearch&lt;/li&gt;
&lt;li&gt;patch-and-rerun workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The point is not that AI magically built a game.&lt;/p&gt;

&lt;p&gt;The point is that AI agents need immediate feedback from the real engine before they can be trusted in real projects.&lt;/p&gt;

&lt;p&gt;Video:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=0Egu3S-9MM0" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=0Egu3S-9MM0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Godot MCP overview:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.fennara.io/godot-mcp" rel="noopener noreferrer"&gt;https://www.fennara.io/godot-mcp&lt;/a&gt;&lt;/p&gt;

</description>
      <category>godot</category>
      <category>gamedev</category>
      <category>ai</category>
      <category>mcp</category>
    </item>
  </channel>
</rss>
