<?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: Failed Ahmad</title>
    <description>The latest articles on DEV Community by Failed Ahmad (@failedahmad).</description>
    <link>https://dev.to/failedahmad</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%2F4075271%2F509a32c9-ca72-4265-a833-6f95916d55d2.png</url>
      <title>DEV Community: Failed Ahmad</title>
      <link>https://dev.to/failedahmad</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/failedahmad"/>
    <language>en</language>
    <item>
      <title>bluesky-mcp: Manage a Bluesky Account From Your AI Assistant</title>
      <dc:creator>Failed Ahmad</dc:creator>
      <pubDate>Wed, 12 Aug 2026 22:08:05 +0000</pubDate>
      <link>https://dev.to/failedahmad/bluesky-mcp-manage-a-bluesky-account-from-your-ai-assistant-3k3d</link>
      <guid>https://dev.to/failedahmad/bluesky-mcp-manage-a-bluesky-account-from-your-ai-assistant-3k3d</guid>
      <description>&lt;h2&gt;
  
  
  What is this?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;bluesky-mcp&lt;/strong&gt; is a &lt;a href="https://modelcontextprotocol.io" rel="noopener noreferrer"&gt;Model Context Protocol&lt;/a&gt; server for managing a Bluesky account from an AI assistant: post, reply, like, repost, follow/unfollow, search, and read your timeline and notifications.&lt;/p&gt;

&lt;p&gt;It uses the official AT Protocol API with a handle + app password — no OAuth app, no approval process, and it works fine with 2FA enabled since it never touches your real account password.&lt;/p&gt;

&lt;p&gt;This is the last of a four-part series — minecraft-mcp-server, streamlabs-mcp, and devto-mcp were covered in the previous three posts, all published (and promoted) using these exact tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools exposed
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bluesky_get_timeline&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Get your home feed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bluesky_get_author_feed&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Get a user's posts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bluesky_search_posts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search public posts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bluesky_get_post&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Get post details, incl. the &lt;code&gt;cid&lt;/code&gt; needed to like/repost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bluesky_get_profile&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Get profile info&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;bluesky_get_followers&lt;/code&gt; / &lt;code&gt;bluesky_get_following&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;List a user's followers / follows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;bluesky_get_notifications&lt;/code&gt; / &lt;code&gt;bluesky_mark_notifications_read&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Read/clear notifications&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bluesky_resolve_handle&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Look up a DID from a handle&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bluesky_post&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Post, optionally as a reply&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bluesky_delete_post&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Delete your own post&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;bluesky_like&lt;/code&gt; / &lt;code&gt;bluesky_unlike&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Like / undo a like&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;bluesky_repost&lt;/code&gt; / &lt;code&gt;bluesky_unrepost&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Repost / undo a repost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;bluesky_follow&lt;/code&gt; / &lt;code&gt;bluesky_unfollow&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Follow / unfollow (by DID)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For the "un-" actions, pass the AT-URI of the &lt;em&gt;record itself&lt;/em&gt; (the like/repost/follow record, returned in &lt;code&gt;viewer.like&lt;/code&gt; / &lt;code&gt;viewer.repost&lt;/code&gt; / &lt;code&gt;viewer.following&lt;/code&gt; on posts and profiles) — not the original post or account's URI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting started
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/AhmadTariq1337/bluesky-mcp.git
&lt;span class="nb"&gt;cd &lt;/span&gt;bluesky-mcp
npm &lt;span class="nb"&gt;install
cp&lt;/span&gt; .env.example .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add your handle and an app password to &lt;code&gt;.env&lt;/code&gt; (get one from Bluesky: &lt;strong&gt;Settings → Privacy and Security → App Passwords&lt;/strong&gt;), then register it as an MCP server in your client's config — for Claude Desktop that's &lt;code&gt;claude_desktop_config.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"bluesky"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"node"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"/absolute/path/to/bluesky-mcp/index.js"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Fully quit and reopen your client (not just close the window) so it picks up the new server.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus: standalone CLI
&lt;/h2&gt;

&lt;p&gt;There's also a one-off &lt;code&gt;post.js&lt;/code&gt; script for firing a single post from the terminal without going through an AI assistant:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node post.js &lt;span class="s2"&gt;"Just shipped a new project, check it out!"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Prints a link to the live post. 300-character limit, checked before sending.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;.env&lt;/code&gt; holds your real handle and app password, and is gitignored. App passwords are scoped and revocable from Bluesky's settings, unlike your main account password.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Repo: &lt;a href="https://github.com/AhmadTariq1337/bluesky-mcp" rel="noopener noreferrer"&gt;https://github.com/AhmadTariq1337/bluesky-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;MIT licensed. Issues and PRs welcome.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;That wraps the series — four MCP servers (minecraft-mcp-server, streamlabs-mcp, devto-mcp, bluesky-mcp), all open source, all MIT licensed, all usable from any MCP-compatible client.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>bluesky</category>
      <category>ai</category>
      <category>javascript</category>
    </item>
    <item>
      <title>streamlabs-mcp: Let Your AI Assistant Run Streamlabs Desktop</title>
      <dc:creator>Failed Ahmad</dc:creator>
      <pubDate>Wed, 12 Aug 2026 22:01:45 +0000</pubDate>
      <link>https://dev.to/failedahmad/streamlabs-mcp-let-your-ai-assistant-run-streamlabs-desktop-4d21</link>
      <guid>https://dev.to/failedahmad/streamlabs-mcp-let-your-ai-assistant-run-streamlabs-desktop-4d21</guid>
      <description>&lt;h2&gt;
  
  
  What is this?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;streamlabs-mcp&lt;/strong&gt; is a &lt;a href="https://modelcontextprotocol.io" rel="noopener noreferrer"&gt;Model Context Protocol&lt;/a&gt; server that gives an AI assistant direct control over &lt;strong&gt;Streamlabs Desktop&lt;/strong&gt; — switching scenes, showing/hiding sources, adjusting audio, starting/stopping streams or recordings, managing studio mode, and more.&lt;/p&gt;

&lt;p&gt;It talks to Streamlabs Desktop's own local &lt;strong&gt;Remote Control API&lt;/strong&gt; — the same one used by Streamlabs' official mobile remote app — so there's no screen automation or unofficial hacking involved.&lt;/p&gt;

&lt;p&gt;Like the rest of this MCP series, it's not tied to one AI product. It's a plain stdio MCP server, so it works with &lt;strong&gt;any&lt;/strong&gt; MCP-compatible client — Claude Desktop, Claude Code, Cursor, or anything else that can spawn a local server.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; this is an independent, community project — not made or endorsed by Streamlabs. Some tools (like toggling your live stream) can affect a real broadcast, so give your AI assistant clear boundaries about when it's allowed to use them.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What's in the box
&lt;/h2&gt;

&lt;p&gt;59 tools across:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scenes&lt;/strong&gt; — list, get, switch, create, remove, rename, clear&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scene items&lt;/strong&gt; — visibility, transform (position/scale/rotation/crop), flip, center, fit/stretch to screen&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sources&lt;/strong&gt; — create, remove, rename, duplicate, refresh, settings, list by type&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio&lt;/strong&gt; — list sources, mute/unmute, set volume&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streaming &amp;amp; recording&lt;/strong&gt; — status, toggle streaming, toggle recording, replay buffer, save replay&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Studio mode&lt;/strong&gt; — status, enable/disable, execute transition&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scene collections&lt;/strong&gt; — list, get active, load, create, delete, rename&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notifications &amp;amp; performance&lt;/strong&gt; — list/mark notifications, push notifications, CPU/FPS/dropped-frames stats&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's a pure stdio server — no cloud relay, no external service. Your assistant talks straight to Streamlabs Desktop over your own machine's loopback connection, and setup is just one token.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting started
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/AhmadTariq1337/streamlabs-mcp.git
&lt;span class="nb"&gt;cd &lt;/span&gt;streamlabs-mcp
npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Grab your token from Streamlabs Desktop under &lt;strong&gt;Settings → Remote Control&lt;/strong&gt;, then point your MCP client at &lt;code&gt;node /path/to/streamlabs-mcp/index.js&lt;/code&gt; with &lt;code&gt;STREAMLABS_TOKEN&lt;/code&gt; set in its environment. Full config examples for Claude Desktop, Claude Code, and Cursor are in the README.&lt;/p&gt;

&lt;p&gt;Once it's running, try asking your assistant something like &lt;em&gt;"list my Streamlabs scenes"&lt;/em&gt; or &lt;em&gt;"what's my current streaming status?"&lt;/em&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Repo: &lt;a href="https://github.com/AhmadTariq1337/streamlabs-mcp" rel="noopener noreferrer"&gt;https://github.com/AhmadTariq1337/streamlabs-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;MIT licensed. Issues and PRs welcome — especially since parts of the underlying API aren't a versioned public contract and can shift between Streamlabs releases.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>mcp</category>
      <category>streaming</category>
      <category>ai</category>
      <category>javascript</category>
    </item>
    <item>
      <title>minecraft-mcp-server: Giving AI Agents a Body Inside Minecraft</title>
      <dc:creator>Failed Ahmad</dc:creator>
      <pubDate>Wed, 12 Aug 2026 21:58:18 +0000</pubDate>
      <link>https://dev.to/failedahmad/minecraft-mcp-server-giving-ai-agents-a-body-inside-minecraft-5b8d</link>
      <guid>https://dev.to/failedahmad/minecraft-mcp-server-giving-ai-agents-a-body-inside-minecraft-5b8d</guid>
      <description>&lt;h2&gt;
  
  
  What is this?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;minecraft-mcp-server&lt;/strong&gt; is a &lt;a href="https://modelcontextprotocol.io" rel="noopener noreferrer"&gt;Model Context Protocol&lt;/a&gt; server that puts an AI agent &lt;em&gt;inside&lt;/em&gt; a real Minecraft Java Edition world through &lt;a href="https://github.com/PrismarineJS/mineflayer" rel="noopener noreferrer"&gt;mineflayer&lt;/a&gt;. It exposes &lt;strong&gt;61 tools&lt;/strong&gt; covering movement, building, mining, combat, farming, inventory, villager trading, and world perception — so any MCP-compatible client can spawn a bot that actually sees the world, walks around it, and acts on it.&lt;/p&gt;

&lt;p&gt;This isn't tied to any single AI product. It speaks plain MCP over stdio, so it works with &lt;strong&gt;any MCP host&lt;/strong&gt; — Claude Desktop, Claude Code, Cursor, Cline, Windsurf, your own custom MCP client, or anything else that can launch a local MCP server. If your agent can talk MCP, it can play Minecraft.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Built for singleplayer worlds opened via "Open to LAN," offline-mode/cracked servers (e.g. TLauncher), and standard online-mode servers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Tool chest — what your agent can do
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🔌 Connection&lt;/td&gt;
&lt;td&gt;connect, disconnect, status&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;👀 Perception&lt;/td&gt;
&lt;td&gt;position, nearby blocks, block lookup, find block, nearby entities, inventory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🚶 Movement&lt;/td&gt;
&lt;td&gt;goto position, goto player, follow player, look at, look direction, stop, jump&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🧱 Building&lt;/td&gt;
&lt;td&gt;place block, dig block, build cuboid structure, clear area&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🖐️ Interaction&lt;/td&gt;
&lt;td&gt;chat, equip item, toss item, craft item, attack entity, activate block, eat, sleep, collect block (mine + auto-pickup)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🎒 Inventory&lt;/td&gt;
&lt;td&gt;open/deposit/withdraw/close container, use furnace, give item (creative), move item slot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⚔️ Combat&lt;/td&gt;
&lt;td&gt;sprint, sneak, use held item (block/draw/drink), shoot bow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🌾 Farming&lt;/td&gt;
&lt;td&gt;till soil, plant seed, harvest crop&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🌍 World&lt;/td&gt;
&lt;td&gt;biome lookup, light level, get time, read sign&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🗣️ Social&lt;/td&gt;
&lt;td&gt;whisper, list players, open villager trades, execute trade&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🎲 Misc&lt;/td&gt;
&lt;td&gt;mount, dismount, respawn, wait&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Every tool returns structured JSON and actionable error messages — no raw stack traces dumped on your agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/AhmadTariq1337/minecraft-mcp-server.git
&lt;span class="nb"&gt;cd &lt;/span&gt;minecraft-mcp-server
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This compiles TypeScript into &lt;code&gt;dist/index.js&lt;/code&gt; — the entry point your MCP host will launch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuring your MCP client
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"minecraft"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"node"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"/absolute/path/to/minecraft-mcp-server/dist/index.js"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No API keys, no cloud dependency — everything runs locally over stdio.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick start in-game
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open your Minecraft world (singleplayer works great).&lt;/li&gt;
&lt;li&gt;Press &lt;strong&gt;Escape → Open to LAN&lt;/strong&gt; — note the port number shown in chat.&lt;/li&gt;
&lt;li&gt;Ask your agent to connect: &lt;em&gt;"Connect to localhost on port &lt;code&gt;&amp;lt;port&amp;gt;&lt;/code&gt; as &lt;code&gt;&amp;lt;bot-name&amp;gt;&lt;/code&gt;, auth offline."&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;That's it — your agent can now see the world, move, mine, build, and chat.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Version support
&lt;/h2&gt;

&lt;p&gt;This rides on mineflayer, which determines actual protocol support. At time of writing, it supports up through Minecraft 1.21.x. Mojang's newer year.drop versioning isn't yet supported upstream — older clients like OptiFine 1.21.11 or vanilla 1.21.x work out of the box.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Repo: &lt;a href="https://github.com/AhmadTariq1337/minecraft-mcp-server" rel="noopener noreferrer"&gt;https://github.com/AhmadTariq1337/minecraft-mcp-server&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;MIT licensed, issues and PRs welcome — especially around mineflayer version tracking and new tool coverage.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>mcp</category>
      <category>minecraft</category>
      <category>ai</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
