<?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: Dmytro Bilukha</title>
    <description>The latest articles on DEV Community by Dmytro Bilukha (@mit9).</description>
    <link>https://dev.to/mit9</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%2F4137611%2F5770f9f2-e9d1-45e5-bae5-87f69be9da19.png</url>
      <title>DEV Community: Dmytro Bilukha</title>
      <link>https://dev.to/mit9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mit9"/>
    <language>en</language>
    <item>
      <title>Real-World Agentic E-Commerce: Rebuilding My Grocery Cart with Claude and MCP</title>
      <dc:creator>Dmytro Bilukha</dc:creator>
      <pubDate>Thu, 24 Sep 2026 08:03:50 +0000</pubDate>
      <link>https://dev.to/mit9/real-world-agentic-e-commerce-rebuilding-my-grocery-cart-with-claude-and-mcp-3b82</link>
      <guid>https://dev.to/mit9/real-world-agentic-e-commerce-rebuilding-my-grocery-cart-with-claude-and-mcp-3b82</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Fsilpo-agent-cli%2Fmain%2Fassets%2Fdemo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Fsilpo-agent-cli%2Fmain%2Fassets%2Fdemo.gif" alt="Demo Animation" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most agentic AI demos today focus on synthetic benchmarks, toy calculators, or coding assistants editing small functions.&lt;/p&gt;

&lt;p&gt;What does consumer AI automation look like when plugged into real production systems?&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://github.com/MIt9/silpo-agent-cli" rel="noopener noreferrer"&gt;silpo-agent-cli&lt;/a&gt;, a terminal CLI and Claude Code agent skill that interfaces with the official Model Context Protocol (MCP) server of Silpo, one of Ukraine's largest supermarket networks.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Problem It Solves
&lt;/h3&gt;

&lt;p&gt;Every week, grocery shopping involves 80% repeat purchases: coffee, milk, bread, produce, water. Re-adding these items in a web or mobile GUI wastes 15–20 minutes of repetitive tapping.&lt;/p&gt;

&lt;p&gt;By exposing grocery basket operations to an agent via MCP, we can automate:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Re-aggregating regular cadence purchases.&lt;/li&gt;
&lt;li&gt;Checking for active sales and discounts on staple goods.&lt;/li&gt;
&lt;li&gt;Batch updating the real remote cart.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Safety &amp;amp; Guardrails By Design
&lt;/h3&gt;

&lt;p&gt;Automating purchases must balance speed with financial safety. &lt;code&gt;silpo-agent-cli&lt;/code&gt; enforces a strict guardrail:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The CLI stops at "Cart is Ready".&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It fills your authentic shopping basket, verifies stock, and prints the summary. The final checkout step, delivery address selection, and payment card confirmation remain strictly in the human user's hands.&lt;/p&gt;




&lt;h3&gt;
  
  
  Quick Installation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;silpo-agent-cli
&lt;span class="c"&gt;# or via uvx without installation:&lt;/span&gt;
uvx silpo-agent-cli reorder
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  AI Agent Skill Integration
&lt;/h3&gt;

&lt;p&gt;Point Claude Code at the bundled skill definition:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;"Reorder my usual groceries, replace oat milk with brand on sale if available, keep budget under 1500 UAH."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude inspects history, balances costs, and fills your basket.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt; — &lt;a href="https://github.com/MIt9/silpo-agent-cli" rel="noopener noreferrer"&gt;github.com/MIt9/silpo-agent-cli&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PyPI Package&lt;/strong&gt; — &lt;code&gt;silpo-agent-cli&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Video Walkthrough&lt;/strong&gt; — &lt;a href="https://www.youtube.com/watch?v=2RPE0OwBEzA" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>ai</category>
      <category>automation</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Stream High-Resolution Stock Video Directly Into AI Agent Pipelines with pexels-cli</title>
      <dc:creator>Dmytro Bilukha</dc:creator>
      <pubDate>Thu, 24 Sep 2026 08:01:15 +0000</pubDate>
      <link>https://dev.to/mit9/stream-high-resolution-stock-video-directly-into-ai-agent-pipelines-with-pexels-cli-4ilh</link>
      <guid>https://dev.to/mit9/stream-high-resolution-stock-video-directly-into-ai-agent-pipelines-with-pexels-cli-4ilh</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Fpexels-cli%2Fmain%2Fassets%2Fdemo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Fpexels-cli%2Fmain%2Fassets%2Fdemo.gif" alt="Demo Animation" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Automated media production pipelines often require sourcing hundreds of relevant B-roll clips and stock images. Traditional SDKs return bloated JSON payloads containing hundreds of metadata keys that waste context windows when fed into LLMs or classifiers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/MIt9/pexels-cli" rel="noopener noreferrer"&gt;pexels-cli&lt;/a&gt; (&lt;code&gt;px&lt;/code&gt;) is an open-source, high-performance CLI tool for Pexels built with &lt;code&gt;uv&lt;/code&gt; and Python 3.10+.&lt;/p&gt;




&lt;h3&gt;
  
  
  Key Innovations for AI Pipelines
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Classifier-Ready &lt;code&gt;--state&lt;/code&gt; Mode&lt;/strong&gt;: Emits condensed, single-line JSONL candidates specifically structured for non-generative classification engines (e.g. Laya).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Query Deduplication&lt;/strong&gt;: Execute multiple search terms in parallel while automatically discarding duplicate video/photo IDs across result sets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payload Pruning (&lt;code&gt;--fields&lt;/code&gt;)&lt;/strong&gt;: Whitelist only necessary keys (&lt;code&gt;id&lt;/code&gt;, &lt;code&gt;url&lt;/code&gt;, &lt;code&gt;duration&lt;/code&gt;, &lt;code&gt;width&lt;/code&gt;, &lt;code&gt;height&lt;/code&gt;) to maximize token efficiency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Asynchronous Parallel Downloader&lt;/strong&gt;: Efficient streaming downloader with Rich terminal bars.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Quick Start
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uv tool &lt;span class="nb"&gt;install &lt;/span&gt;pexels-ai-cli
&lt;span class="c"&gt;# or&lt;/span&gt;
pipx &lt;span class="nb"&gt;install &lt;/span&gt;pexels-ai-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example: Pipeline Chaining
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Search, deduplicate, format for decision model, and pipe&lt;/span&gt;
px videos &lt;span class="nt"&gt;--queries&lt;/span&gt; &lt;span class="s2"&gt;"tokyo night,shibuya crossing"&lt;/span&gt; &lt;span class="nt"&gt;--per-page&lt;/span&gt; 5 &lt;span class="nt"&gt;--state&lt;/span&gt; &lt;span class="nt"&gt;--dedupe&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  | laya-cli classify &lt;span class="nt"&gt;--questions-inline&lt;/span&gt; &lt;span class="s1"&gt;'{"relevant": {"type": "noul", "prompt": "Contains neon lighting?"}}'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  | jq &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="s1"&gt;'select(.predictions.relevant &amp;gt; 0.8) | .state'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt; — &lt;a href="https://github.com/MIt9/pexels-cli" rel="noopener noreferrer"&gt;github.com/MIt9/pexels-cli&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>cli</category>
      <category>ai</category>
      <category>automation</category>
    </item>
    <item>
      <title>Connect Claude to Perplexity AI Pro with Zero Search API Fees</title>
      <dc:creator>Dmytro Bilukha</dc:creator>
      <pubDate>Thu, 24 Sep 2026 07:57:58 +0000</pubDate>
      <link>https://dev.to/mit9/connect-claude-to-perplexity-ai-pro-with-zero-search-api-fees-5hmf</link>
      <guid>https://dev.to/mit9/connect-claude-to-perplexity-ai-pro-with-zero-search-api-fees-5hmf</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Fperplexity-pro-mcp%2Fmain%2Fassets%2Fdemo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Fperplexity-pro-mcp%2Fmain%2Fassets%2Fdemo.gif" alt="Demo Animation" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Modern LLMs struggle with recent software releases, live news, and undocumented breaking changes. While solutions like Tavily, Serper, or Google Custom Search exist, they introduce recurring per-call fees and lack the deep multi-source synthesis of specialized search engines.&lt;/p&gt;

&lt;p&gt;If you already have a Perplexity Pro account, you can bridge it directly into Claude Desktop or Claude Code.&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://github.com/MIt9/perplexity-pro-mcp" rel="noopener noreferrer"&gt;perplexity-pro-mcp&lt;/a&gt; — a lightweight MCP server that queries Perplexity Pro via your session credentials.&lt;/p&gt;




&lt;h3&gt;
  
  
  What it Provides
&lt;/h3&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;Capability&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;perplexity_search&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Real-time web querying with synthesized answers, sources, and citations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;perplexity_follow_up&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Contextual multi-turn question answering inside the same research thread&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;perplexity_threads&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Manage and resume prior search sessions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;perplexity_export&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Export structured research reports to Markdown/PDF&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;It also exposes Perplexity's built-in focus modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;internet&lt;/code&gt;: Broad web search&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;academic&lt;/code&gt;: ArXiv, PubMed, and peer-reviewed journals&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;reddit&lt;/code&gt;: Community sentiment, troubleshooting discussions, and raw developer advice&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;youtube&lt;/code&gt;: Video transcripts and summaries&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2-Minute Setup
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Retrieve Session Cookie
&lt;/h4&gt;

&lt;p&gt;Log into &lt;a href="https://www.perplexity.ai" rel="noopener noreferrer"&gt;perplexity.ai&lt;/a&gt;, open DevTools (&lt;code&gt;F12&lt;/code&gt;), head to the &lt;strong&gt;Network&lt;/strong&gt; tab, click any request to &lt;code&gt;perplexity.ai&lt;/code&gt;, and copy your full &lt;code&gt;Cookie&lt;/code&gt; header string.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Configure Claude Code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add perplexity &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;PERPLEXITY_COOKIE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&amp;lt;YOUR_COOKIE&amp;gt;"&lt;/span&gt; &lt;span class="nt"&gt;--&lt;/span&gt; npx &lt;span class="nt"&gt;-y&lt;/span&gt; perplexity-pro-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Or Claude Desktop (&lt;code&gt;claude_desktop_config.json&lt;/code&gt;)
&lt;/h4&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;"perplexity"&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;"npx"&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;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"perplexity-pro-mcp"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&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;"PERPLEXITY_COOKIE"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&amp;lt;YOUR_COOKIE&amp;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;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;h3&gt;
  
  
  Example Interaction
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Prompt to Claude&lt;/strong&gt;: "What are the latest breaking changes in Next.js 15 canary releases and how do I adapt my Server Actions?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Claude executes &lt;code&gt;perplexity_search(query="Next.js 15 canary breaking changes server actions", mode="copilot")&lt;/code&gt;. Instead of hallucinatory advice, Claude returns verified code snippets accompanied by direct source citations.&lt;/p&gt;

&lt;p&gt;Check out the repo on GitHub: &lt;a href="https://github.com/MIt9/perplexity-pro-mcp" rel="noopener noreferrer"&gt;github.com/MIt9/perplexity-pro-mcp&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Manage ElevenLabs ElevenReader From Claude Desktop and Cursor via MCP</title>
      <dc:creator>Dmytro Bilukha</dc:creator>
      <pubDate>Thu, 24 Sep 2026 07:55:30 +0000</pubDate>
      <link>https://dev.to/mit9/manage-elevenlabs-elevenreader-from-claude-desktop-and-cursor-via-mcp-4f8i</link>
      <guid>https://dev.to/mit9/manage-elevenlabs-elevenreader-from-claude-desktop-and-cursor-via-mcp-4f8i</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Fmcp-elevenreader%2Fmain%2Fassets%2Fdemo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Fmcp-elevenreader%2Fmain%2Fassets%2Fdemo.gif" alt="Demo Animation" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ElevenLabs' &lt;a href="https://elevenreader.io" rel="noopener noreferrer"&gt;ElevenReader&lt;/a&gt; is one of the most natural-sounding text-to-speech platforms for converting documents, research PDFs, and EPUBs into spoken audio.&lt;/p&gt;

&lt;p&gt;However, moving documents from research workflows or local code repositories into ElevenReader traditionally requires manual browser drag-and-drops.&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://github.com/MIt9/mcp-elevenreader" rel="noopener noreferrer"&gt;mcp-elevenreader&lt;/a&gt;, an open-source MCP server that provides full conversational control over your ElevenReader library.&lt;/p&gt;




&lt;h3&gt;
  
  
  Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Document Ingestion&lt;/strong&gt; — Upload PDFs, EPUBs, or plain text from your workspace directly to ElevenReader.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Library Tracking&lt;/strong&gt; — Query reading progress, bookmarks, and completed reads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice Selection &amp;amp; Customization&lt;/strong&gt; — Configure narrator voices and collections via chat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Install Execution&lt;/strong&gt; (Powered by &lt;code&gt;uvx&lt;/code&gt;) no virtualenv setup required.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Setup Instructions
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Retrieve Refresh Token
&lt;/h4&gt;

&lt;p&gt;Log into &lt;a href="https://elevenreader.io" rel="noopener noreferrer"&gt;elevenreader.io&lt;/a&gt;, open DevTools (&lt;code&gt;F12&lt;/code&gt;), switch to Console, and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;k&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;startsWith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;firebase:authUser:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)))).&lt;/span&gt;&lt;span class="nx"&gt;stsTokenManager&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;refreshToken&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Configure Claude Code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add elevenreader &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;ELEVEN_REFRESH_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&amp;lt;your-token&amp;gt;"&lt;/span&gt; &lt;span class="nt"&gt;--&lt;/span&gt; uvx mcp-elevenreader
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Or Claude Desktop (&lt;code&gt;claude_desktop_config.json&lt;/code&gt;)
&lt;/h4&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;"elevenreader"&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;"uvx"&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;"mcp-elevenreader"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&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;"ELEVEN_REFRESH_TOKEN"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&amp;lt;your-token&amp;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;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;h3&gt;
  
  
  Sample Prompt
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Claude, upload the file &lt;code&gt;./papers/deepseek-r1.pdf&lt;/code&gt; to my ElevenReader library and let me know when it's ready for listening."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Check out the code on GitHub: &lt;a href="https://github.com/MIt9/mcp-elevenreader" rel="noopener noreferrer"&gt;github.com/MIt9/mcp-elevenreader&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>ai</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Turn Claude into an Autonomous AI Librarian with mcp-book-lover</title>
      <dc:creator>Dmytro Bilukha</dc:creator>
      <pubDate>Thu, 24 Sep 2026 07:52:40 +0000</pubDate>
      <link>https://dev.to/mit9/turn-claude-into-an-autonomous-ai-librarian-with-mcp-book-lover-18bi</link>
      <guid>https://dev.to/mit9/turn-claude-into-an-autonomous-ai-librarian-with-mcp-book-lover-18bi</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Fmcp-book-lover%2Fmain%2Fassets%2Fdemo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Fmcp-book-lover%2Fmain%2Fassets%2Fdemo.gif" alt="Demo Animation" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Managing an extensive digital library often means context switching between Goodreads for tracking, Calibre for conversion, and various web repositories for discovery.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/MIt9/mcp-book-lover" rel="noopener noreferrer"&gt;mcp-book-lover&lt;/a&gt; is an open-source Model Context Protocol server that unifies library management, multi-source book search, format conversion, and recommendation engines inside Claude or Cursor.&lt;/p&gt;




&lt;h3&gt;
  
  
  Core Architecture &amp;amp; Capabilities
&lt;/h3&gt;

&lt;p&gt;With over 35 tools, &lt;code&gt;mcp-book-lover&lt;/code&gt; handles the full reading lifecycle:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Source Discovery&lt;/strong&gt;: Concurrent searching across Open Library, Google Books, Project Gutenberg, and regional digital archives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lossless Conversion&lt;/strong&gt;: Handles &lt;code&gt;.epub&lt;/code&gt;, &lt;code&gt;.fb2&lt;/code&gt;, &lt;code&gt;.pdf&lt;/code&gt;, &lt;code&gt;.txt&lt;/code&gt;, and compressed archives (&lt;code&gt;.fb2.zip&lt;/code&gt;), preserving table of contents, inline graphics, and metadata.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Series &amp;amp; Cycle Awareness&lt;/strong&gt;: Understands chronological reading orders and tracks volume progression.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reading Analytics&lt;/strong&gt;: Tracks annual reading challenges, average ratings, and personalized recommendations.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Quick Start
&lt;/h3&gt;

&lt;p&gt;No API keys required. Configure Claude Code or Claude Desktop with &lt;code&gt;uvx&lt;/code&gt;:&lt;/p&gt;

&lt;h4&gt;
  
  
  Claude Code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add book-lover &lt;span class="nt"&gt;--&lt;/span&gt; uvx mcp-book-lover
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Claude Desktop (&lt;code&gt;claude_desktop_config.json&lt;/code&gt;)
&lt;/h4&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;"book-lover"&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;"uvx"&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;"mcp-book-lover"&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;h3&gt;
  
  
  Example Interaction
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Prompt&lt;/strong&gt;: &lt;em&gt;"What should I read after finishing the Three-Body Problem trilogy? Search Open Library for hard sci-fi recommendations and show available formats."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Claude queries your review history, searches candidate titles, checks format compatibility, and organizes recommendations directly inside your chat.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/MIt9/mcp-book-lover" rel="noopener noreferrer"&gt;github.com/MIt9/mcp-book-lover&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>ai</category>
      <category>books</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Sub-35ms Typed AI Decisions Without Token Generation Or Hallucinations</title>
      <dc:creator>Dmytro Bilukha</dc:creator>
      <pubDate>Thu, 24 Sep 2026 07:49:20 +0000</pubDate>
      <link>https://dev.to/mit9/sub-35ms-typed-ai-decisions-without-token-generation-or-hallucinations-363k</link>
      <guid>https://dev.to/mit9/sub-35ms-typed-ai-decisions-without-token-generation-or-hallucinations-363k</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Flaya-cli%2Fmain%2Fassets%2Fdemo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Flaya-cli%2Fmain%2Fassets%2Fdemo.gif" alt="Demo Animation" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Modern AI pipelines often burn compute using 8B+ parameter generative models just to answer questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Is this support ticket urgent?"&lt;/li&gt;
&lt;li&gt;"Does this comment violate moderation policies?"&lt;/li&gt;
&lt;li&gt;"Should this request route to the billing or tech support department?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Autoregressive generation for classification introduces high latency (waiting for token-by-token decoding), unpredictable JSON formatting errors, and unnecessary costs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/MIt9/laya-cli" rel="noopener noreferrer"&gt;laya-cli&lt;/a&gt; is a high-performance CLI and daemon wrapper around &lt;a href="https://github.com/NandhaKishorM/laya" rel="noopener noreferrer"&gt;Laya&lt;/a&gt; — providing &lt;strong&gt;typed decisions&lt;/strong&gt; (&lt;code&gt;choice&lt;/code&gt;, &lt;code&gt;score&lt;/code&gt;, &lt;code&gt;noul&lt;/code&gt;) in a single forward pass without autoregressive token generation.&lt;/p&gt;




&lt;h3&gt;
  
  
  Key Capabilities
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic Typed Outputs in One Pass&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;choice&lt;/code&gt;: Discrete labels with calibrated probabilities.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;score&lt;/code&gt;: Ordinal expected values (e.g. priority 1 to 5).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;noul&lt;/code&gt;: Probability that an assertion is true.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speed&lt;/strong&gt;: ~33ms for single predictions, ~7ms per item when batched.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resident Daemon&lt;/strong&gt;: Run &lt;code&gt;laya-cli serve&lt;/code&gt; to keep weights resident in memory, eliminating cold starts for subsequent CLI or sub-process calls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unix Pipeline Compatibility&lt;/strong&gt;: Native streaming support for JSON and JSONL feeds.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Quick Installation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uv tool &lt;span class="nb"&gt;install &lt;/span&gt;laya-cli
&lt;span class="c"&gt;# or: pip install laya-cli&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usage Examples
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Interactive Categorization
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;laya-cli predict &lt;span class="s2"&gt;"User reports database timeout after running migrations"&lt;/span&gt; &lt;span class="nt"&gt;--preset&lt;/span&gt; triage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Streaming Pipeline
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;incoming_events.jsonl | laya-cli classify &lt;span class="nt"&gt;--preset&lt;/span&gt; moderation &lt;span class="nt"&gt;--format&lt;/span&gt; jsonl &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; audited.jsonl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Links &amp;amp; Community
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; — &lt;a href="https://github.com/MIt9/laya-cli" rel="noopener noreferrer"&gt;github.com/MIt9/laya-cli&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PyPI&lt;/strong&gt; — &lt;a href="https://pypi.org/project/laya-cli/" rel="noopener noreferrer"&gt;pypi.org/project/laya-cli&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>ai</category>
      <category>machinelearning</category>
      <category>performance</category>
    </item>
    <item>
      <title>Build an Automated Multi-Modal Media Pipeline with One Zero-Dependency CLI</title>
      <dc:creator>Dmytro Bilukha</dc:creator>
      <pubDate>Thu, 24 Sep 2026 07:45:59 +0000</pubDate>
      <link>https://dev.to/mit9/build-an-automated-multi-modal-media-pipeline-with-one-zero-dependency-cli-2a2b</link>
      <guid>https://dev.to/mit9/build-an-automated-multi-modal-media-pipeline-with-one-zero-dependency-cli-2a2b</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Fkie-media-cli%2Fmain%2Fassets%2Fdemo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Fkie-media-cli%2Fmain%2Fassets%2Fdemo.gif" alt="Demo Animation" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The modern generative media ecosystem is intensely fragmented. If an autonomous agent or background worker needs to create a complete promotional clip, it typically needs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;An image generator (Flux, GPT Image, Midjourney API)&lt;/li&gt;
&lt;li&gt;An image-to-video / text-to-video model (Seedance, Wan, Kling)&lt;/li&gt;
&lt;li&gt;A voiceover or sound synthesizer (ElevenLabs, Suno)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Handling multiple API keys, diverse request structures, and inconsistent polling loops creates enormous boilerplate.&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://github.com/MIt9/kie-media-cli" rel="noopener noreferrer"&gt;kie-media-cli&lt;/a&gt; to solve this: a unified, zero-dependency Node.js CLI tool for the KIE API (kie.ai).&lt;/p&gt;




&lt;h3&gt;
  
  
  Core Principles
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Zero Runtime Dependencies&lt;/strong&gt;: Written in clean, modern Node.js using native &lt;code&gt;fetch&lt;/code&gt; and standard library modules. No dependency vulnerabilities or slow install steps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unified Ergonomics&lt;/strong&gt;: Consistent commands whether you are rendering an image, generating a video, or tracking job status.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;First-Class Agent Support&lt;/strong&gt;: Pairs with Claude Code skills, letting AI coding agents invoke CLI commands reliably with strict JSON parsing.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Usage &amp;amp; Setup
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Interactive Configuration
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx &lt;span class="nt"&gt;-y&lt;/span&gt; kie-media-cli setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The wizard guides you through setting your API key, checking your current credit balance, and securing your config in &lt;code&gt;~/.kie-media/config.json&lt;/code&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Generating Media
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Generate image&lt;/span&gt;
kie generate image &lt;span class="nt"&gt;--prompt&lt;/span&gt; &lt;span class="s2"&gt;"Cyberpunk landscape, cinematic"&lt;/span&gt; &lt;span class="nt"&gt;--output&lt;/span&gt; render.png

&lt;span class="c"&gt;# Generate video&lt;/span&gt;
kie generate video &lt;span class="nt"&gt;--prompt&lt;/span&gt; &lt;span class="s2"&gt;"Slow pan across mountain peaks"&lt;/span&gt; &lt;span class="nt"&gt;--output&lt;/span&gt; scene.mp4

&lt;span class="c"&gt;# Check credit usage &amp;amp; job logs&lt;/span&gt;
kie &lt;span class="nb"&gt;history&lt;/span&gt; &lt;span class="nt"&gt;--limit&lt;/span&gt; 5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Agent Integration with Claude Code
&lt;/h3&gt;

&lt;p&gt;To let Claude generate multimedia assets autonomously:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx &lt;span class="nt"&gt;-y&lt;/span&gt; skills add MIt9/kie-skills/kie-generate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude can now inspect model options, format prompts, monitor render status, and integrate outputs into your repositories.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt; — &lt;a href="https://github.com/MIt9/kie-media-cli" rel="noopener noreferrer"&gt;github.com/MIt9/kie-media-cli&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NPM Package&lt;/strong&gt; — &lt;code&gt;kie-media-cli&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>ai</category>
      <category>cli</category>
      <category>automation</category>
    </item>
    <item>
      <title>Generate 3D Meshes (GLB, OBJ, STL) Directly From the Terminal and AI Agents</title>
      <dc:creator>Dmytro Bilukha</dc:creator>
      <pubDate>Thu, 24 Sep 2026 07:42:41 +0000</pubDate>
      <link>https://dev.to/mit9/generate-3d-meshes-glb-obj-stl-directly-from-the-terminal-and-ai-agents-4fd4</link>
      <guid>https://dev.to/mit9/generate-3d-meshes-glb-obj-stl-directly-from-the-terminal-and-ai-agents-4fd4</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Fhi3d-cli%2Fmain%2Fassets%2Fdemo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fraw.githubusercontent.com%2FMIt9%2Fhi3d-cli%2Fmain%2Fassets%2Fdemo.gif" alt="Demo Animation" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Integrating generative 3D meshes into web applications (Three.js, Babylon.js) or game engines usually involves manual asset downloads from web dashboards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/MIt9/hi3d-cli" rel="noopener noreferrer"&gt;hi3d-cli&lt;/a&gt; (&lt;code&gt;hi3d&lt;/code&gt;) is a lightweight, zero-dependency CLI tool and agent skill for generating textured 3D models via the Hi3D API.&lt;/p&gt;




&lt;h3&gt;
  
  
  Supported Output Formats
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Web &amp;amp; AR&lt;/strong&gt; — &lt;code&gt;.glb&lt;/code&gt;, &lt;code&gt;.usdz&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Game Development&lt;/strong&gt; — &lt;code&gt;.obj&lt;/code&gt;, &lt;code&gt;.fbx&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3D Printing&lt;/strong&gt; — &lt;code&gt;.stl&lt;/code&gt;, &lt;code&gt;.3mf&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Render Maps&lt;/strong&gt; — &lt;code&gt;.exr&lt;/code&gt;, &lt;code&gt;.png&lt;/code&gt;, &lt;code&gt;.bmp&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  30-Second Setup
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx &lt;span class="nt"&gt;-y&lt;/span&gt; hi3d-cli setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The interactive wizard configures your Access &amp;amp; Secret keys from &lt;a href="https://platform.hi3d.ai/console/apiKey" rel="noopener noreferrer"&gt;platform.hi3d.ai&lt;/a&gt; into &lt;code&gt;~/.hi3d/config.json&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Generating a 3D Mesh
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Generate 3D model from image reference&lt;/span&gt;
hi3d generate &lt;span class="nt"&gt;--image&lt;/span&gt; ./concept.png &lt;span class="nt"&gt;--format&lt;/span&gt; glb &lt;span class="nt"&gt;--output&lt;/span&gt; ./public/models/character.glb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Agent Integration
&lt;/h3&gt;

&lt;p&gt;Pair with Claude Code via &lt;code&gt;npx -y skills add MIt9/hi3d-skills/hi3d-generate&lt;/code&gt; to enable automated 3D modeling directly in your dev workflow.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt; — &lt;a href="https://github.com/MIt9/hi3d-cli" rel="noopener noreferrer"&gt;github.com/MIt9/hi3d-cli&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NPM&lt;/strong&gt; — &lt;code&gt;hi3d-cli&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>3d</category>
      <category>webdev</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>How I Built an MCP Server That Lets Claude Control ComfyUI</title>
      <dc:creator>Dmytro Bilukha</dc:creator>
      <pubDate>Thu, 24 Sep 2026 07:34:19 +0000</pubDate>
      <link>https://dev.to/mit9/how-i-built-an-mcp-server-that-lets-claude-control-comfyui-4daf</link>
      <guid>https://dev.to/mit9/how-i-built-an-mcp-server-that-lets-claude-control-comfyui-4daf</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fubxhi4zta668u5wv5zly.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fubxhi4zta668u5wv5zly.gif" alt="Demo Animation" width="691" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ComfyUI is arguably the most powerful node-based runtime for generative diffusion models (SDXL, Flux, Stable Video Diffusion). However, working with ComfyUI usually involves either:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Dragging virtual cables across hundreds of spaghetti nodes in a browser canvas, or&lt;/li&gt;
&lt;li&gt;Manually crafting fragile, deeply nested JSON workflow payloads.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With Anthropic’s &lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt;, there is a better way: &lt;strong&gt;treat workflow construction as an agentic planning problem.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built and open-sourced &lt;a href="https://github.com/MIt9/mcp-comfy-ui-builder" rel="noopener noreferrer"&gt;mcp-comfy-ui-builder&lt;/a&gt;. Here is how it works under the hood.&lt;/p&gt;




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

&lt;p&gt;To make an LLM like Claude reliably build ComfyUI workflows without hallucinating invalid connections or crashing the GPU, the MCP server provides 3 core subsystems:&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Embedded Knowledge Base &amp;amp; Pre-Flight Checks
&lt;/h4&gt;

&lt;p&gt;Instead of blindly sending prompts, the agent first runs &lt;code&gt;get_system_resources&lt;/code&gt;. This tool reads local GPU VRAM and memory, returning safe boundaries (max resolution, batch sizes).&lt;/p&gt;

&lt;p&gt;The server bundles &lt;code&gt;knowledge/base-nodes.json&lt;/code&gt; (62+ default nodes and compatibility rules). For custom nodes, &lt;code&gt;npm run sync-nodes&lt;/code&gt; discovers and indexes them dynamically from your live runtime.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Declarative Workflow Construction
&lt;/h4&gt;

&lt;p&gt;Rather than writing raw graph JSON, the model invokes high-level semantic tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;build_workflow&lt;/code&gt; with pre-tuned templates (&lt;code&gt;txt2img&lt;/code&gt;, &lt;code&gt;txt2img_flux&lt;/code&gt;, &lt;code&gt;img2img&lt;/code&gt;, &lt;code&gt;inpainting&lt;/code&gt;, &lt;code&gt;upscale&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;add_node&lt;/code&gt; and &lt;code&gt;connect_nodes&lt;/code&gt; for dynamic alterations&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;validate_workflow&lt;/code&gt; to ensure all type slots (MODEL, CLIP, VAE, LATENT) match before queueing&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  3. Real-Time WebSocket Execution
&lt;/h4&gt;

&lt;p&gt;Standard HTTP polling against &lt;code&gt;/prompt&lt;/code&gt; and &lt;code&gt;/history&lt;/code&gt; adds 1–2 seconds of latency.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mcp-comfy-ui-builder&lt;/code&gt; maintains a persistent WebSocket connection to ComfyUI. During generation, the server receives sub-100ms progress events, showing node-by-node updates in Claude's UI before downloading outputs via &lt;code&gt;list_outputs&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Quick Setup
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Install &amp;amp; Build
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;mcp-comfy-ui-builder
npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Configure Claude Desktop
&lt;/h4&gt;

&lt;p&gt;Add to your &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="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;"comfy-ui-builder"&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/mcp-comfy-ui-builder/dist/mcp-server.js"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&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;"COMFYUI_HOST"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"http://127.0.0.1:8188"&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;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;Now open Claude Desktop and say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Generate a futuristic cyberpunk skyline at sunset with neon reflections, upscale 2x."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Links
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; — &lt;a href="https://github.com/MIt9/mcp-comfy-ui-builder" rel="noopener noreferrer"&gt;github.com/MIt9/mcp-comfy-ui-builder&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker&lt;/strong&gt; — &lt;code&gt;docker pull siniidrozd/mcp-comfy-ui-builder&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
