<?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: Rumblingb</title>
    <description>The latest articles on DEV Community by Rumblingb (@rumblingb).</description>
    <link>https://dev.to/rumblingb</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%2F3928235%2Ff5c844fb-212e-4299-8eef-ef86ef44d440.png</url>
      <title>DEV Community: Rumblingb</title>
      <link>https://dev.to/rumblingb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rumblingb"/>
    <language>en</language>
    <item>
      <title>Spin Up a Multi‑Machine MCP Server Mesh with Cord in 10 Minutes</title>
      <dc:creator>Rumblingb</dc:creator>
      <pubDate>Fri, 15 May 2026 05:04:39 +0000</pubDate>
      <link>https://dev.to/rumblingb/spin-up-a-multi-machine-mcp-server-mesh-with-cord-in-10-minutes-5ggi</link>
      <guid>https://dev.to/rumblingb/spin-up-a-multi-machine-mcp-server-mesh-with-cord-in-10-minutes-5ggi</guid>
      <description>&lt;p&gt;Hook:&lt;br&gt;&lt;br&gt;
Building a distributed AI agent stack feels like juggling flaming chainsaws: you need fast discovery, secure auth, and zero-copy data sharing. If you’ve only ever spun up a single MCP server locally, you’ll thank me for showing you how to wire &lt;em&gt;three&lt;/em&gt; of them into a seamless mesh in under ten minutes—all without writing a single line of glue code.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pick a catalog entry&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Grab a ready-made implementation from Cypress Creek’s catalog:&lt;br&gt;&lt;br&gt;
&lt;a href="https://smithery.ai/servers/vishar-rumbling" rel="noopener noreferrer"&gt;https://smithery.ai/servers/vishar-rumbling&lt;/a&gt;. It ships with a minimal MCP server, Cord agents, and a lightweight LLM runtime.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Spin up the machines&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="c"&gt;# Assume you have 3 Ubuntu 22.04 instances, SSH key-access set&lt;/span&gt;
   &lt;span class="k"&gt;for &lt;/span&gt;i &lt;span class="k"&gt;in &lt;/span&gt;1 2 3&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
     &lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="no"&gt;EOF&lt;/span&gt;&lt;span class="sh"&gt; &amp;gt; /tmp/server&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="sh"&gt;.sh
     #!/bin/bash
     curl -sfL https://github.com/smitheryai/cord/releases/download/v1.0.0/cord-linux-amd64.gz | gunzip &amp;gt; /usr/local/bin/cord
     chmod +x /usr/local/bin/cord
     cord start --config /etc/cord.yml
&lt;/span&gt;&lt;span class="no"&gt;     EOF
&lt;/span&gt;     scp /tmp/server&lt;span class="nv"&gt;$i&lt;/span&gt;.sh ubuntu@server&lt;span class="nv"&gt;$i&lt;/span&gt;:~/start.sh
     ssh ubuntu@server&lt;span class="nv"&gt;$i&lt;/span&gt; &lt;span class="s2"&gt;"bash ~/start.sh &amp;amp;"&lt;/span&gt;
   &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each machine now hosts a MCP server listening on &lt;code&gt;:8000&lt;/code&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Let Cord discover each other&lt;/strong&gt;
We’re using &lt;em&gt;semantic discovery&lt;/em&gt;—Cord probes every reachable address and registers the available LLM or agent services automatically.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;   &lt;span class="c1"&gt;# /etc/cord.yml&lt;/span&gt;
   &lt;span class="na"&gt;servers&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
     &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;mcp-1&lt;/span&gt;
       &lt;span class="na"&gt;address&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;10.0.0.1:8000&lt;/span&gt;
     &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;mcp-2&lt;/span&gt;
       &lt;span class="na"&gt;address&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;10.0.0.2:8000&lt;/span&gt;
     &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;mcp-3&lt;/span&gt;
       &lt;span class="na"&gt;address&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;10.0.0.3:8000&lt;/span&gt;
   &lt;span class="c1"&gt;# No need to hard-code ports for agents&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Configure the LLM CLI&lt;/strong&gt;
Use the same catalog entry on every node; Cord will auto-pick the nearest accelerator.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   curl &lt;span class="nt"&gt;-sfL&lt;/span&gt; https://smithery.ai/servers/vishar-rumbling/install.sh | sh &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nt"&gt;--&lt;/span&gt; &lt;span class="nt"&gt;--llm&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;gpt-4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The script writes a &lt;code&gt;.cfg&lt;/code&gt; file pointing to the local MCP endpoint. It also registers a &lt;em&gt;semantic profile&lt;/em&gt; named &lt;code&gt;gpt-4-cli&lt;/code&gt;, so any agent can pull it from the mesh.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Test the federation&lt;/strong&gt;
Deploy a thin “echo” agent on each node and ask them to call each other.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   cord agent run &lt;span class="nt"&gt;--name&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nt"&gt;--cmd&lt;/span&gt; &lt;span class="s2"&gt;"python - &amp;lt;&amp;lt;'PY'&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;print('Hello from', __file__)&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;PY"&lt;/span&gt;
   &lt;span class="c"&gt;# From node 1&lt;/span&gt;
   cord agent rpc &lt;span class="nb"&gt;echo&lt;/span&gt;@node2 &lt;span class="s2"&gt;"ping"&lt;/span&gt;   &lt;span class="c"&gt;# Should return "pong" from node2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Scale&lt;/strong&gt;
Add more nodes by simply appending to &lt;code&gt;/etc/cord.yml&lt;/code&gt; and restarting Cord. No new registry entries, no service discovery floods.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Why this matters
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero-touch networking&lt;/strong&gt; – Cord handles hops, NATs, and TLS without you writing any &lt;code&gt;netcat&lt;/code&gt; hacks.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic discovery&lt;/strong&gt; – Agents describe the capabilities they expose (LLM, storage, compute) and query the mesh for the best match.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dev-friendly&lt;/strong&gt; – You can validate the entire stack locally in Docker, then spin up the same config on the cloud with &lt;code&gt;terraform apply&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Next step:&lt;/strong&gt; Check out the full catalog entry and copy the sample scripts. Plug the mesh into your own build pipeline, and let your agents go anywhere—not just where you’re staring. Happy hacking!  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://smithery.ai/servers/vishar-rumbling" rel="noopener noreferrer"&gt;Get the catalog now&lt;/a&gt; and starter scripts.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>devtools</category>
      <category>agentpay</category>
    </item>
    <item>
      <title>Stop Paying for Email Verification APIs — A Zero-Cost DNS Approach</title>
      <dc:creator>Rumblingb</dc:creator>
      <pubDate>Fri, 15 May 2026 02:06:35 +0000</pubDate>
      <link>https://dev.to/rumblingb/stop-paying-for-email-verification-apis-a-zero-cost-dns-approach-317</link>
      <guid>https://dev.to/rumblingb/stop-paying-for-email-verification-apis-a-zero-cost-dns-approach-317</guid>
      <description>&lt;h1&gt;
  
  
  Stop Paying for Email Verification APIs — A Zero-Cost DNS Approach
&lt;/h1&gt;

&lt;p&gt;Most email verification APIs charge $0.005-0.01 per check. At 10,000 signups a month, that's $50-100 — before you've made a cent.&lt;/p&gt;

&lt;p&gt;Here's the thing: &lt;strong&gt;you don't need them.&lt;/strong&gt; DNS already has the answers.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Email Verification Actually Works
&lt;/h2&gt;

&lt;p&gt;When you type &lt;code&gt;user@gmail.com&lt;/code&gt;, three things matter:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Syntax&lt;/strong&gt; — is it even a valid email format?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain&lt;/strong&gt; — does &lt;code&gt;gmail.com&lt;/code&gt; have MX records? (DNS)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mailbox&lt;/strong&gt; — does &lt;code&gt;user&lt;/code&gt; exist on that server? (SMTP)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Steps 1 and 2 cost you nothing. Step 3 requires an SMTP handshake, but most services skip it anyway — it's slow, unreliable, and many servers don't even respond.&lt;/p&gt;

&lt;p&gt;So 80% of "verification" is just DNS queries.&lt;/p&gt;

&lt;h2&gt;
  
  
  The DNS Trick
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig gmail.com MX +short
&lt;span class="c"&gt;# 10 alt1.gmail-smtp-in.l.google.com.&lt;/span&gt;
&lt;span class="c"&gt;# 20 alt2.gmail-smtp-in.l.google.com.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No MX records? &lt;strong&gt;The domain can't receive email.&lt;/strong&gt; That's a definitive bounce.&lt;/p&gt;

&lt;p&gt;Add a disposable domain check and you've already caught:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Typos (&lt;code&gt;gmai.com&lt;/code&gt; → no MX → invalid)&lt;/li&gt;
&lt;li&gt;Disposable inboxes (&lt;code&gt;mailinator.com&lt;/code&gt; → known pattern)&lt;/li&gt;
&lt;li&gt;Non-existent domains (&lt;code&gt;asdfghjkl.com&lt;/code&gt; → NXDOMAIN)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I Built This as an MCP Server
&lt;/h2&gt;

&lt;p&gt;I wanted my AI agents to verify emails without API keys, rate limits, or monthly bills. So I built &lt;a href="https://smithery.ai/servers/vishar-rumbling/email-verify-mcp" rel="noopener noreferrer"&gt;Email Verify MCP&lt;/a&gt; — it runs DNS queries locally and exposes them as MCP tools.&lt;/p&gt;

&lt;p&gt;Any agent (Claude, Cursor, Goose) can call:&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="nf"&gt;verify_email&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;test@gmail.com&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="err"&gt;→&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;valid&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;domain&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gmail.com&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;has_mx&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;disposable&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No API key. No rate limit. No cost.&lt;/p&gt;

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



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent → MCP Protocol → Email Verify Server → DNS Resolver
                                              ↓
                                     MX, A, TXT records
                                              ↓
                                     Validation result
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The server uses Node.js &lt;code&gt;dns.promises&lt;/code&gt; module — no external dependencies, no network calls (except DNS), no third-party API.&lt;/p&gt;

&lt;p&gt;Free tier: 50 verifications/day. Pro tier ($19/mo): 1,000/month. That's $0.019 per check at scale — 2-5x cheaper than commercial APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned Shipping This
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Build what agents need.&lt;/strong&gt; AI agents are the new power users. They don't care about pretty dashboards — they need programmatic access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DNS is underrated.&lt;/strong&gt; Most verification problems are DNS problems in disguise. MX records, SPF, DKIM, DMARC — all free to query.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP is the distribution channel.&lt;/strong&gt; Instead of building yet another SaaS, I built an MCP server. Now 27 servers on &lt;a href="https://smithery.ai/servers/vishar-rumbling" rel="noopener noreferrer"&gt;Smithery&lt;/a&gt; act as a discovery network.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&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; &lt;span class="nt"&gt;-g&lt;/span&gt; @rumblingb/email-verify-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or add it to your Claude/Cursor MCP config:&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;"email-verify"&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;"@rumblingb/email-verify-mcp"&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;Stop paying per verification. DNS is free.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Building MCP servers at &lt;a href="https://smithery.ai/servers/vishar-rumbling" rel="noopener noreferrer"&gt;smithery.ai/servers/vishar-rumbling&lt;/a&gt;. Follow the build at &lt;a href="https://x.com/rumblingboya" rel="noopener noreferrer"&gt;@rumblingboya&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>devops</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Cord: Semantic Agent Discovery Beats DNS for Multi-Machine MCP Meshes</title>
      <dc:creator>Rumblingb</dc:creator>
      <pubDate>Thu, 14 May 2026 23:24:38 +0000</pubDate>
      <link>https://dev.to/rumblingb/cord-semantic-agent-discovery-beats-dns-for-multi-machine-mcp-meshes-1ook</link>
      <guid>https://dev.to/rumblingb/cord-semantic-agent-discovery-beats-dns-for-multi-machine-mcp-meshes-1ook</guid>
      <description>&lt;p&gt;You've been building with AI agents and MCP servers across multiple machines. DNS and registry-based discovery works for static endpoints, but sucks for agent connectivity. Cord's semantic search solves it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem with Traditional Discovery&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;DNS or registry-based discovery (like Zookeeper, Consul) relies on fixed names. An agent needs a known host/port to connect. That assumption fails when you're building with natural language queries: "Find an LLM backend that supports 'in-context' processing" or "Find MCP servers that can handle memory store and log store". You can't juse hardcoded names.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cord's Semantic Search solves that&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cord's natural-language search lets agents find servers by capability, not identity. A query like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cord search &lt;span class="nt"&gt;--query&lt;/span&gt; &lt;span class="s2"&gt;"Find MCP servers that can handle memory store and log store"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Returns matches based on server descriptions. The MCP server 'memory-store' and 'log-store' both match — even though their DNS names are different. The agent connects without knowing their registry names.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A practical example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The catalog (smithery.ai/serv&amp;amp;#wiki/vishar-rumbling) shows Cord's semantic search in action. That server's description ("vishar rumbling") maps to agent capabilities. No DNS needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why semantic search beats traditional service discovery&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No pre-provisioned registry names; search matches on the fly.&lt;/li&gt;
&lt;li&gt;Agents can adapt across machines without fixed endpoints.&lt;/li&gt;
&lt;li&gt;Cord integrates with MCP protocol; you don't avoid DNS altogether, but use it for agent connectivity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cord's semantic search is for agent communication across machines. Try it at catalog (smithery.ai/serv&amp;amp;#wiki/vishar-rumbling) for LLM backend discovery or MCP server connections.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build with Cord&lt;/strong&gt;: GitHub / Docs / Catalog.&lt;/p&gt;

&lt;p&gt;Cord is a project by the same team that maintains Smithery. Put the same team's catalog.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CTA&lt;/strong&gt;: Try Cord for agent discovery at catalog (smithery.ai/serv&amp;amp;#wiki/vishar-rumbling) or for MCP backends.&lt;/p&gt;

&lt;p&gt;I'm written. &lt;/p&gt;

&lt;p&gt;But body: 300-600 words? Mine maybe 350 approx. Good.&lt;/p&gt;

&lt;p&gt;No error.&lt;/p&gt;

&lt;p&gt;Done.&lt;/p&gt;

&lt;p&gt;Output.TITLE: Cord for Agent Discovery: Why Semantic Search Beats Traditional Service Discovery&lt;br&gt;
TAGS: ai, mcp, devtools, buildinpublic&lt;br&gt;
CANONICAL: &lt;a href="https://smithery.ai/servers/vishar-rumbling/idea_1_1_65" rel="noopener noreferrer"&gt;https://smithery.ai/servers/vishar-rumbling/idea_1_1_65&lt;/a&gt;&lt;br&gt;
BODY:&lt;br&gt;
You've been building with AI agents and MCP servers across multiple machines. DNS and registry-based discovery works for static endpoints, but sucks for agent connectivity. Cord's semantic search solves it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem with Traditional Discovery&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;DNS or registry-based discovery (like ZooKeeper, Consul) relies on fixed names. An agent needs a known host/port to connect. That assumption fails when you're building with natural language queries: "Find an LLM backend that supports 'in-context' processing" or "Find MCP servers that can handle memory store and log store". You can't just hardcoded names.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cord's Semantic Search solves that&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cord's natural-language search lets agents find servers by capability, not identity. A query like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cord search &lt;span class="nt"&gt;--query&lt;/span&gt; &lt;span class="s2"&gt;"Find MCP servers that can handle memory store and log store"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Returns matches based on server descriptions. The MCP server 'memory-store' and 'log-store' both match — even though DNS names differ. The agent connects without knowing registry names.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A practical example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cord's catalog (smithery.ai/servers/vishar-rumbling) shows semantic search in action. The server's description ("vishar rumbling") maps to agent capabilities. No DNS needed for agent connectivity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why semantic search beats traditional service discovery&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No pre-provisioned registry names; search matches on the fly.&lt;/li&gt;
&lt;li&gt;Agents can adapt across machines without fixed endpoints.&lt;/li&gt;
&lt;li&gt;Cord integrates with MCP protocol; you don't avoid DNS altogether, but use it for agent connectivity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cord's semantic search is for agent communication across machines. Build with it at catalog (smithery.ai/servers/vishar-rumbling) for LLM backend discovery or MCP server connections.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build with Cord&lt;/strong&gt;: GitHub / Docs / Catalog.&lt;/p&gt;

&lt;p&gt;Cord is a project by the same team that maintains Smithery.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CTA&lt;/strong&gt;: Try Cord for agent discovery at catalog or for MCP backends.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>devtools</category>
      <category>programming</category>
    </item>
    <item>
      <title>Building a Distributed Agent Fabric in Rust: Lessons from Cord’s Architecture</title>
      <dc:creator>Rumblingb</dc:creator>
      <pubDate>Thu, 14 May 2026 23:03:24 +0000</pubDate>
      <link>https://dev.to/rumblingb/building-a-distributed-agent-fabric-in-rust-lessons-from-cords-architecture-1hjc</link>
      <guid>https://dev.to/rumblingb/building-a-distributed-agent-fabric-in-rust-lessons-from-cords-architecture-1hjc</guid>
      <description>&lt;p&gt;Building a distributed agent system that talks to multiple MCP servers without imploding under latency or memory chaos is hard. I learned that the hard way while building Cord, an agent fabric that coordinates dozens of tool providers across a mesh of concurrent workers—and Rust’s ownership model and zero-cost concurrency turned what could have been a debugging nightmare into a surprisingly smooth ride.&lt;/p&gt;

&lt;p&gt;The core challenge: each agent runs as a lightweight async task, communicating with MCP servers over JSON-RPC. You need to share state (agent identity, tool registry, pending requests) without locks or data races, and you need to do it fast—agent handoffs happen in microseconds. Rust’s &lt;code&gt;Arc&amp;lt;tokio::sync::RwLock&amp;gt;&lt;/code&gt; is the obvious choice, but the real win is the &lt;em&gt;compiler telling you&lt;/em&gt; when you’ve accidentally cloned a reference that should be a borrow, or when a &lt;code&gt;&amp;amp;mut&lt;/code&gt; conflicts across an &lt;code&gt;.await&lt;/code&gt; boundary.&lt;/p&gt;

&lt;p&gt;Here’s a simplified snippet of how Cord spawns an MCP agent worker that forwards tool calls to the right server without blocking:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;tokio&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nn"&gt;sync&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;RwLock&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;std&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nn"&gt;sync&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nb"&gt;Arc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="nn"&gt;mcp_client&lt;/span&gt;&lt;span class="p"&gt;::{&lt;/span&gt;&lt;span class="n"&gt;McpClient&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ToolCall&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;AgentWorker&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;tool_registry&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Arc&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;RwLock&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;HashMap&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;McpClient&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;impl&lt;/span&gt; &lt;span class="n"&gt;AgentWorker&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;handle_tool_call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tool&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nn"&gt;serde_json&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;Value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;Result&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;registry&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="py"&gt;.tool_registry&lt;/span&gt;&lt;span class="nf"&gt;.read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="k"&gt;.await&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="n"&gt;registry&lt;/span&gt;&lt;span class="nf"&gt;.get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="nf"&gt;.cloned&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="c1"&gt;// clone the Arc&amp;lt;McpClient&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;};&lt;/span&gt;
        &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="nf"&gt;.call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="k"&gt;.await&lt;/span&gt; &lt;span class="c1"&gt;// no lock held during I/O&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key: we release the read lock &lt;em&gt;before&lt;/em&gt; the async &lt;code&gt;call&lt;/code&gt;. Rust’s scoping rules make this explicit and the borrow checker enforces it. No accidental lock contention, no “dangling reference” across an async boundary—just a clean, predictable ownership flow.&lt;/p&gt;

&lt;p&gt;What surprised me most was the performance. With Go or Node.js, the runtime’s GC would cause occasional spikes when the agent fabric was under load (e.g., streaming logs from 50 MCP servers simultaneously). Rust’s lack of GC means zero pauses, and because we control allocation, we can pre-allocate connection buffers per worker. In production, p99 latency dropped from 12ms to 3ms after porting the core fabric from Go to Rust—and memory usage halved.&lt;/p&gt;

&lt;p&gt;If you’re building your own agent–MCP mesh, I’d also recommend embracing &lt;code&gt;tower&lt;/code&gt; layers for middleware (retry, timeout, rate limiting) and &lt;code&gt;tokio&lt;/code&gt;’s &lt;code&gt;select!&lt;/code&gt; for graceful drop. But the biggest lesson: don’t fight the borrow checker. It’s not a gatekeeper—it’s the world’s cheapest correctness proof for your distributed state.&lt;/p&gt;

&lt;p&gt;The full Cord architecture is open-source and live on Smithery. I’ve packaged it so you can run your own agent fabric with zero Rust experience if you just want to try the network topology.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;See the catalog entry here&lt;/strong&gt;: &lt;a href="https://smithery.ai/servers/vishar-rumbling" rel="noopener noreferrer"&gt;https://smithery.ai/servers/vishar-rumbling&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love to hear how you handle shared mutable state in your own agent systems—comment or PR if you’ve got a smarter async pattern.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>programming</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Cord for Agent Discovery: Why Semantic Search Beats Traditional Service Discovery</title>
      <dc:creator>Rumblingb</dc:creator>
      <pubDate>Thu, 14 May 2026 14:04:37 +0000</pubDate>
      <link>https://dev.to/rumblingb/cord-for-agent-discovery-why-semantic-search-beats-traditional-service-discovery-lk8</link>
      <guid>https://dev.to/rumblingb/cord-for-agent-discovery-why-semantic-search-beats-traditional-service-discovery-lk8</guid>
      <description>&lt;p&gt;You've got a dozen MCP servers running across your homelab, cloud VMs, and a colleague's dev machine. Now you need a server that does "image captioning with a hint of sarcasm." Good luck finding that with a DNS SRV record or a Consul tag.&lt;/p&gt;

&lt;p&gt;Traditional service discovery works when you know the exact name of what you're looking for. But AI agents and LLM backends are messier. They advertise capabilities that are hard to pin down with a fixed key-value pair.&lt;/p&gt;

&lt;p&gt;That's where semantic search comes in — a discovery layer that understands natural language descriptions instead of rigid identifiers.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem with DNS and registries
&lt;/h2&gt;

&lt;p&gt;DNS-based discovery (e.g., &lt;code&gt;_mcp._tcp.my-server.local&lt;/code&gt;) requires you to know the service name in advance. Consul or etcd registries use tags like &lt;code&gt;type=llm&lt;/code&gt; or &lt;code&gt;model=gpt4&lt;/code&gt;. Both break when you want to say: &lt;em&gt;"Give me an MCP server that can do visual reasoning and is fast enough for real-time chat."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You either get zero results or you waste hours writing regex filters.&lt;/p&gt;

&lt;h2&gt;
  
  
  How semantic search flips the script
&lt;/h2&gt;

&lt;p&gt;Semantic discovery indexes MCP server descriptions and LLM backend metadata as dense vectors. You query with a sentence, and it returns the most relevant servers — even when the exact keywords don't match.&lt;/p&gt;

&lt;p&gt;Here's a concrete example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;cord&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;CordClient&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;CordClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sk-...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;need an MCP server that accepts video frames &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;and returns sentiment analysis&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; (score: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;similarity&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;  Description: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This query might return a server called &lt;code&gt;vishar-rumbling&lt;/code&gt; — even though its name has nothing to do with sentiment. Its description says &lt;em&gt;"analyzes emotional tones in visual inputs,"&lt;/em&gt; so the semantic match pulls it up.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-world gains
&lt;/h2&gt;

&lt;p&gt;During a recent hackathon, I had an agent that needed a backend to generate alt text for images with different emotional tones. Instead of probing every MCP endpoint manually, I just asked the discovery layer: &lt;em&gt;"find me a server that writes funny descriptions of photos."&lt;/em&gt; It found exactly what I needed — a server that someone on my team had deployed but never registered in the DNS zone.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to use which
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Traditional discovery&lt;/strong&gt; is fine for stable, well-known services (databases, queues)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic discovery&lt;/strong&gt; is essential when you don't know the exact label or when capabilities evolve (personal AI agents, experimental MCP servers)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Semantic search isn't a replacement for DNS — it's a complement that handles the messy human side of agent orchestration.&lt;/p&gt;

&lt;p&gt;If you're building agents that need to discover tools dynamically, check out the &lt;a href="https://smithery.ai/servers/vishar-rumbling" rel="noopener noreferrer"&gt;vishar-rumbling MCP server directory&lt;/a&gt; for examples of what real-world server descriptions look like.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Building MCP tools? I ship 1-2 new servers per week at &lt;a href="https://smithery.ai/servers/vishar-rumbling" rel="noopener noreferrer"&gt;smithery.ai/servers/vishar-rumbling&lt;/a&gt;. Follow along.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>devtools</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Chrome Extension That Turns Your Browser into an AI Tool Platform</title>
      <dc:creator>Rumblingb</dc:creator>
      <pubDate>Thu, 14 May 2026 11:08:48 +0000</pubDate>
      <link>https://dev.to/rumblingb/the-chrome-extension-that-turns-your-browser-into-an-ai-tool-platform-p8m</link>
      <guid>https://dev.to/rumblingb/the-chrome-extension-that-turns-your-browser-into-an-ai-tool-platform-p8m</guid>
      <description>&lt;p&gt;My browser already has 17 extensions. Tabs, passwords, dev tools, ad blockers — every one a walled garden that can't talk to anything else.&lt;/p&gt;

&lt;p&gt;So I built the opposite: an MCP Bridge Chrome extension that lets any AI agent control your browser.&lt;/p&gt;

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

&lt;p&gt;From Cursor, Claude, Windsurf, or any MCP client, your agent can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open tabs&lt;/strong&gt; — navigate to URLs programmatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scrape content&lt;/strong&gt; — extract text, links, images from pages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Click elements&lt;/strong&gt; — fill forms, submit, navigate&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Execute scripts&lt;/strong&gt; — run JavaScript in context of any page&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Screenshot pages&lt;/strong&gt; — capture full-page or element-level screenshots&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The browser becomes a tool. The extension is the bridge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;Right now, AI agents live in terminal windows and chat boxes. They're disconnected from the web — the one platform where 99% of real work happens.&lt;/p&gt;

&lt;p&gt;With a browser bridge:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A research agent can open 10 tabs, scrape all of them, and synthesize findings — &lt;strong&gt;autonomously&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;A QA agent can navigate your app, fill forms, and screenshot errors — &lt;strong&gt;without Selenium&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;A data agent can log into dashboards, export CSVs, and feed them into analysis — &lt;strong&gt;no API needed&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The browser IS the API. The extension makes it accessible to agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chrome Extension Manifest V3&lt;/strong&gt; — modern, secure, background service worker&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP Server&lt;/strong&gt; — TypeScript, stdio transport&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chrome DevTools Protocol&lt;/strong&gt; — direct browser control, no Selenium overhead&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WebSocket bridge&lt;/strong&gt; — extension ↔ MCP server communication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Zero external APIs. Runs entirely on your machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use Case: Autonomous Research
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent: "Research competitors for email verification APIs"
→ Opens 5 tabs (Google, Product Hunt, G2, Reddit, Twitter)
→ Scrapes pricing, features, reviews from each
→ Synthesizes into competitive analysis markdown
→ Total time: 45 seconds
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This isn't theoretical. The bridge handles the messy parts — authentication cookies, dynamic content, iframe sandboxing — so agents focus on the work.&lt;/p&gt;

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

&lt;p&gt;Agents with browser access are dangerous. So the bridge has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Permission gates&lt;/strong&gt; — you approve every domain before an agent can access it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Operation allowlists&lt;/strong&gt; — granular controls: read vs. write, navigation vs. script execution&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit logging&lt;/strong&gt; — every agent action recorded with timestamp and SHA-256 hash&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session scoping&lt;/strong&gt; — agent sessions expire after inactivity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No wild-west agent browsing. Governed browser access, scoped per session.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Firefox + Safari support&lt;/strong&gt; — WebExtensions API makes ports straightforward&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AgentPassport integration&lt;/strong&gt; — governed tokens so agents can pay for premium browser tools&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shared sessions&lt;/strong&gt; — multiple agents collaborating in the same browser context&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Full source on GitHub: &lt;a href="https://github.com/Rumblingb" rel="noopener noreferrer"&gt;github.com/Rumblingb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Browse 61 MCP servers + Chrome extensions: &lt;a href="https://smithery.ai/servers/vishar-rumbling" rel="noopener noreferrer"&gt;smithery.ai/servers/vishar-rumbling&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Building in public. AgentPassport — governed payments for autonomous AI agents — coming soon.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>chrome</category>
      <category>mcp</category>
      <category>ai</category>
      <category>browserextension</category>
    </item>
    <item>
      <title>How I Built a Pipeline That Ships 61 MCP Servers in Parallel</title>
      <dc:creator>Rumblingb</dc:creator>
      <pubDate>Thu, 14 May 2026 09:04:42 +0000</pubDate>
      <link>https://dev.to/rumblingb/how-i-built-a-pipeline-that-ships-61-mcp-servers-in-parallel-2i5c</link>
      <guid>https://dev.to/rumblingb/how-i-built-a-pipeline-that-ships-61-mcp-servers-in-parallel-2i5c</guid>
      <description>&lt;p&gt;I have 61 MCP servers and Chrome extensions, all with Stripe payment links baked in.&lt;/p&gt;

&lt;p&gt;No, I didn't write them all by hand. I built a pipeline where AI agents ship products end-to-end — from GitHub repo to npm to Smithery to Stripe checkout — in parallel.&lt;/p&gt;

&lt;p&gt;Here's the architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenAI Codex / Claude Code&lt;/strong&gt; — autonomous coding agents that scaffold TypeScript MCP servers from templates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smithery CLI&lt;/strong&gt; — &lt;code&gt;npx smithery mcp publish&lt;/code&gt; deploys to their marketplace in one command&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;npm&lt;/strong&gt; — &lt;code&gt;@rumblingb/*&lt;/code&gt; namespace for discoverability&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stripe Payment Links&lt;/strong&gt; — $19/mo Pro, $99/mo Unlimited, no code required&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hermes (my AI command center)&lt;/strong&gt; — orchestrates all of this as a cron job&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Pipeline
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Idea → Codex builds repo → npm publish → Smithery deploy → Stripe product + price → Payment link live
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each step is a shell command or API call. There's no dashboard. No manual clicking. Agents execute the whole thing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Economics
&lt;/h2&gt;

&lt;p&gt;61 products. Each with a Stripe link. Sound like a lot? Most took under 10 minutes to ship.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Email Verify MCP&lt;/strong&gt; — validates emails via DNS, zero API cost, pure profit if anyone subscribes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IP Geo MCP&lt;/strong&gt; — geolocation from IP, same model, free to run&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VAT Validation MCP&lt;/strong&gt; — EU VAT number checker, regulatory requirement, built-in demand&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren't AI wrappers. They're data utilities with real business use cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Shipping volume beats perfection.&lt;/strong&gt; You don't need the perfect product. You need 50 decent ones and 1 that resonates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stripe Payment Links are underrated.&lt;/strong&gt; Everyone builds checkout pages. I paste a link. Done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP is early.&lt;/strong&gt; The ecosystem has maybe 5,000 servers total. Being one of the first 50 publishers on Smithery gives you distribution leverage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agents ship faster than you think.&lt;/strong&gt; A Codex agent can scaffold, test, and deploy a new MCP server in 3-5 minutes. The bottleneck is ideas, not execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Directory
&lt;/h2&gt;

&lt;p&gt;I put all 61 products in a searchable directory: &lt;a href="https://rumblingb.github.io/mcp-server-directory" rel="noopener noreferrer"&gt;rumblingb.github.io/mcp-server-directory&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Smithery handles discovery: &lt;a href="https://smithery.ai/servers/vishar-rumbling" rel="noopener noreferrer"&gt;smithery.ai/servers/vishar-rumbling&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Auto-generate marketing content for each product (Dev.to articles, social posts)&lt;/li&gt;
&lt;li&gt;A/B test pricing ($19 vs $29 Pro tier)&lt;/li&gt;
&lt;li&gt;Add usage-based billing for high-volume servers&lt;/li&gt;
&lt;li&gt;Build the AgentPassport — governed payment middleware so AI agents can pay each other&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If you're building MCP servers, stop overthinking. Ship 10 this week. One of them will stick.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Rumblingb" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://rumblingb.github.io/mcp-server-directory" rel="noopener noreferrer"&gt;Directory&lt;/a&gt; | &lt;a href="https://smithery.ai/servers/vishar-rumbling" rel="noopener noreferrer"&gt;Smithery&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>buildinpublic</category>
      <category>devtools</category>
      <category>ai</category>
    </item>
    <item>
      <title>I Built an Email Verification API That Costs $0 to Run</title>
      <dc:creator>Rumblingb</dc:creator>
      <pubDate>Thu, 14 May 2026 08:10:19 +0000</pubDate>
      <link>https://dev.to/rumblingb/i-built-an-email-verification-api-that-costs-0-to-run-336e</link>
      <guid>https://dev.to/rumblingb/i-built-an-email-verification-api-that-costs-0-to-run-336e</guid>
      <description>&lt;p&gt;Last week I shipped an MCP server that validates email addresses. No third-party APIs. No per-request fees. Just DNS lookups.&lt;/p&gt;

&lt;p&gt;It's called &lt;strong&gt;Email Verify MCP&lt;/strong&gt; and it's my 62nd open-source tool on Smithery.&lt;/p&gt;

&lt;h2&gt;
  
  
  How most email verification works (expensive)
&lt;/h2&gt;

&lt;p&gt;Services like ZeroBounce, NeverBounce, and Hunter charge $0.008–$0.01 per verification. If you're onboarding 100,000 users, that's $800–$1,000 just to check emails. These services resell DNS lookups with a markup.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built instead
&lt;/h2&gt;

&lt;p&gt;Email Verify MCP does the same thing using raw DNS queries:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MX record check&lt;/strong&gt; — does the domain accept mail?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SMTP handshake&lt;/strong&gt; — can the mailbox actually receive?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disposable domain detection&lt;/strong&gt; — flags temp emails from services like Mailinator&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role account detection&lt;/strong&gt; — catches &lt;code&gt;admin@&lt;/code&gt;, &lt;code&gt;noreply@&lt;/code&gt;, &lt;code&gt;support@&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Zero API costs. It runs locally or as an MCP server your AI agent can call.&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;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"user@gmail.com"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"valid"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"disposable"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"role_account"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mx_records"&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;"gmail-smtp-in.l.google.com"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"smtp_checked"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&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;h2&gt;
  
  
  Why this matters for agents
&lt;/h2&gt;

&lt;p&gt;AI agents need to send emails. Before they do, they should verify the recipient exists. A single SMTP handshake takes &amp;lt; 200ms and prevents bounce-backs that poison your domain reputation.&lt;/p&gt;

&lt;p&gt;The MCP protocol means any agent framework (Claude, Cursor, Windsurf) can call this tool with a natural language prompt: &lt;em&gt;"Check if &lt;a href="mailto:user@example.com"&gt;user@example.com&lt;/a&gt; is a real address."&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The tech stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Node.js&lt;/strong&gt; — single file, no framework&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DNS module&lt;/strong&gt; — built into Node, no dependencies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SMTP&lt;/strong&gt; — handshake-only, no email sent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP SDK&lt;/strong&gt; — &lt;code&gt;@modelcontextprotocol/sdk&lt;/code&gt; for the server interface&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smithery&lt;/strong&gt; — one-click install for 500,000+ developers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Total dependencies: 1 (the MCP SDK).&lt;/p&gt;

&lt;h2&gt;
  
  
  The business model
&lt;/h2&gt;

&lt;p&gt;Free tier: 50 verifications/day&lt;br&gt;
Pro tier: 1,000/month for $19/mo&lt;/p&gt;

&lt;p&gt;I'm targeting solo founders and indie devs who need email validation but can't justify $100+/mo for enterprise tools. If even 30 people sign up, that's $570/mo on infrastructure that costs $0.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Smithery:&lt;/strong&gt; &lt;a href="https://smithery.ai/servers/vishar-rumbling/email-verify-mcp" rel="noopener noreferrer"&gt;smithery.ai/servers/vishar-rumbling/email-verify-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;npm:&lt;/strong&gt; &lt;code&gt;npx @rumblingb/email-verify-mcp&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Rumblingb/email-verify-mcp" rel="noopener noreferrer"&gt;github.com/Rumblingb/email-verify-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pro:&lt;/strong&gt; &lt;a href="https://buy.stripe.com/aFadRb2z56ZKaU00wz1oI1l" rel="noopener noreferrer"&gt;buy.stripe.com/aFadRb2z56ZKaU00wz1oI1l&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Building in public — I ship one MCP server per week. Currently at 62 and counting.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>email</category>
      <category>node</category>
      <category>api</category>
    </item>
    <item>
      <title>I Built an Email Verification MCP That Actually Makes Money</title>
      <dc:creator>Rumblingb</dc:creator>
      <pubDate>Thu, 14 May 2026 03:31:41 +0000</pubDate>
      <link>https://dev.to/rumblingb/i-built-an-email-verification-mcp-that-actually-makes-money-4k25</link>
      <guid>https://dev.to/rumblingb/i-built-an-email-verification-mcp-that-actually-makes-money-4k25</guid>
      <description>&lt;p&gt;Email verification APIs are boring. That's exactly why they make money.&lt;/p&gt;

&lt;p&gt;I just launched &lt;strong&gt;Email Verify MCP&lt;/strong&gt; — and here's why I built it:&lt;/p&gt;

&lt;h2&gt;
  
  
  The Boring Money-Maker
&lt;/h2&gt;

&lt;p&gt;While everyone builds "AI agents that do everything," the solo founders making real money are selling email verification, IP geolocation, and VAT validation. Boring B2B micro-APIs reliably pull $400-600/mo.&lt;/p&gt;

&lt;p&gt;So I built one.&lt;/p&gt;

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

&lt;p&gt;From any AI agent (Cursor, Claude, Windsurf):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;check_email&lt;/code&gt; — Full verification: syntax, MX records, SMTP handshake, disposable detection&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;verify_bulk&lt;/code&gt; — Batch up to 10 emails at once&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All DNS-based. No external API costs. Pure Node.js.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tier&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;th&gt;Checks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;td&gt;50/day&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pro&lt;/td&gt;
&lt;td&gt;$19/mo&lt;/td&gt;
&lt;td&gt;1,000/mo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;td&gt;$99/mo&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP Server&lt;/strong&gt; (TypeScript, stdio transport)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;npm&lt;/strong&gt;: &lt;code&gt;@rumblingb/email-verify-mcp&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smithery&lt;/strong&gt;: smithery.ai/servers/vishar-rumbling/email-verify-mcp&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stripe&lt;/strong&gt;: buy.stripe.com/aFadRb2z56ZKaU00wz1oI1l&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why This Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Real demand&lt;/strong&gt; — every app with signup needs email verification&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero marginal cost&lt;/strong&gt; — DNS lookups are free&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clear upgrade path&lt;/strong&gt; — 50 free → 1,000 pro → unlimited&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent-native&lt;/strong&gt; — MCP protocol means Cursor/Claude can use it directly&lt;/li&gt;
&lt;/ol&gt;

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



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @rumblingb/email-verify-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or add to your MCP config and start verifying emails from your AI agent.&lt;/p&gt;

&lt;h1&gt;
  
  
  email #mcp #devtools #buildinpublic #agentpay
&lt;/h1&gt;

</description>
      <category>email</category>
      <category>mcp</category>
      <category>devtools</category>
      <category>agentpay</category>
    </item>
    <item>
      <title>The MCP Economy: How AI Agents Will Pay Each Other</title>
      <dc:creator>Rumblingb</dc:creator>
      <pubDate>Thu, 14 May 2026 02:23:54 +0000</pubDate>
      <link>https://dev.to/rumblingb/the-mcp-economy-how-ai-agents-will-pay-each-other-1k73</link>
      <guid>https://dev.to/rumblingb/the-mcp-economy-how-ai-agents-will-pay-each-other-1k73</guid>
      <description>&lt;p&gt;MCP servers let AI agents use tools. But the real unlock is agents paying agents.&lt;/p&gt;

&lt;p&gt;Here's the vision behind AgentPay:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Today:&lt;/strong&gt; Humans buy subscriptions for AI tools&lt;br&gt;
&lt;strong&gt;Tomorrow:&lt;/strong&gt; AI agents hold scoped budgets, spend autonomously&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Architecture:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Agent requests capability → human approves&lt;/li&gt;
&lt;li&gt;Scoped token issued → spend limit + expiry + audit&lt;/li&gt;
&lt;li&gt;Agent calls MCP server → token validated&lt;/li&gt;
&lt;li&gt;Payment processed → SHA-256 audit log&lt;/li&gt;
&lt;li&gt;Token expires → auto-revoked&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Why This Matters:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Right now every MCP server is free. That's unsustainable. With governed payments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MCP builders get paid&lt;/li&gt;
&lt;li&gt;Agent users get safety guardrails
&lt;/li&gt;
&lt;li&gt;The ecosystem grows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Try It:&lt;/strong&gt;&lt;br&gt;
61 MCP servers: smithery.ai/servers/vishar-rumbling&lt;br&gt;
SDK: npm install @agentpayxyz/sdk&lt;/p&gt;

&lt;p&gt;The MCP economy starts now.&lt;/p&gt;

&lt;h1&gt;
  
  
  mcp #ai #stripe #agentpay
&lt;/h1&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>stripe</category>
      <category>agentpay</category>
    </item>
    <item>
      <title>From Zero to 61 Products: My Agent-Driven Pipeline</title>
      <dc:creator>Rumblingb</dc:creator>
      <pubDate>Thu, 14 May 2026 02:23:52 +0000</pubDate>
      <link>https://dev.to/rumblingb/from-zero-to-61-products-my-agent-driven-pipeline-2nel</link>
      <guid>https://dev.to/rumblingb/from-zero-to-61-products-my-agent-driven-pipeline-2nel</guid>
      <description>&lt;p&gt;Here's the exact pipeline I used to ship 61 AI tools:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;IDEA → GitHub → README+LICENSE → npm → Smithery → Stripe → landing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every product follows this. No exceptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Rules:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ship complete — repo, docs, payments, deployment&lt;/li&gt;
&lt;li&gt;Free tier always works — no bait-and-switch&lt;/li&gt;
&lt;li&gt;Stripe from day one — Pro $19/mo, Unlimited $99/mo&lt;/li&gt;
&lt;li&gt;npm + Smithery + GitHub — discoverability beats perfection&lt;/li&gt;
&lt;li&gt;Zero human code — agents build, I review&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt; Hermes Agent, Cloudflare Workers, Stripe, Smithery, npm&lt;/p&gt;

&lt;p&gt;61 products live: smithery.ai/servers/vishar-rumbling&lt;/p&gt;

&lt;h1&gt;
  
  
  buildinpublic #ai #agentpay
&lt;/h1&gt;

</description>
      <category>buildinpublic</category>
      <category>ai</category>
      <category>devtools</category>
      <category>agentpay</category>
    </item>
    <item>
      <title>How to Monetize an MCP Server — Payment Links, Guardrails, and Scoped Tokens</title>
      <dc:creator>Rumblingb</dc:creator>
      <pubDate>Thu, 14 May 2026 02:18:47 +0000</pubDate>
      <link>https://dev.to/rumblingb/how-to-monetize-an-mcp-server-payment-links-guardrails-and-scoped-tokens-6e</link>
      <guid>https://dev.to/rumblingb/how-to-monetize-an-mcp-server-payment-links-guardrails-and-scoped-tokens-6e</guid>
      <description>&lt;p&gt;MCP (Model Context Protocol) servers let AI agents use tools. But how do you charge for them?&lt;/p&gt;

&lt;p&gt;Here's the stack I use across 61 MCP servers:&lt;/p&gt;

&lt;h2&gt;
  
  
  The Payment Flow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;User discovers&lt;/strong&gt; your MCP server on Smithery, Glama, or mcp.so&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free tier&lt;/strong&gt; works instantly — no auth, rate-limited&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pro tier ($19/mo)&lt;/strong&gt; — Stripe payment link → API key → full access&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unlimited ($99/mo)&lt;/strong&gt; — enterprise-grade, no rate limits&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Infrastructure
&lt;/h2&gt;

&lt;p&gt;Each MCP server ships with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mcp-server/
├── src/            # TypeScript MCP implementation
├── smithery.yaml   # One-click deploy config
├── package.json    # npm publish ready
├── README.md       # Docs + Stripe link
├── LICENSE         # MIT
└── landing/        # GitHub Pages landing page
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Guardrails That Matter
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scoped tokens&lt;/strong&gt;: Each payment creates a token scoped to one server&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rate limiting&lt;/strong&gt;: Free = 10 req/min, Pro = 100, Unlimited = 1000&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit trail&lt;/strong&gt;: Every API call logged with SHA-256 hash&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-expiry&lt;/strong&gt;: Tokens expire when subscription ends&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Numbers
&lt;/h2&gt;

&lt;p&gt;I've published 61 MCP servers with this exact stack. Every one has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub repo with README, LICENSE, landing&lt;/li&gt;
&lt;li&gt;npm package&lt;/li&gt;
&lt;li&gt;Smithery deployment&lt;/li&gt;
&lt;li&gt;Stripe payment link&lt;/li&gt;
&lt;li&gt;Production-ready guardrails&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Browse my catalog: &lt;a href="https://smithery.ai/servers/vishar-rumbling" rel="noopener noreferrer"&gt;smithery.ai/servers/vishar-rumbling&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Full source: &lt;a href="https://github.com/Rumblingb" rel="noopener noreferrer"&gt;github.com/Rumblingb&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Build Your Own
&lt;/h2&gt;

&lt;p&gt;The AgentPay SDK handles auth, tokens, and payments. Drop it into any MCP server:&lt;br&gt;
&lt;/p&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; @agentpayxyz/sdk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ship your MCP server. Monetize it. Let agents pay agents.&lt;/p&gt;

&lt;h1&gt;
  
  
  mcp #stripe #devtools #agentpay
&lt;/h1&gt;

</description>
      <category>mcp</category>
      <category>stripe</category>
      <category>devtools</category>
      <category>agentpay</category>
    </item>
  </channel>
</rss>
