<?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: nerosaa</title>
    <description>The latest articles on DEV Community by nerosaa (@nerosaa).</description>
    <link>https://dev.to/nerosaa</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%2F4192209%2Fbce1f1dd-e2ba-4004-95a1-d7564a1c60a4.png</url>
      <title>DEV Community: nerosaa</title>
      <link>https://dev.to/nerosaa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nerosaa"/>
    <language>en</language>
    <item>
      <title>Free USDT Payment-Check MCP for Claude and Cursor (No Paid APIs)</title>
      <dc:creator>nerosaa</dc:creator>
      <pubDate>Sun, 18 Oct 2026 13:54:00 +0000</pubDate>
      <link>https://dev.to/nerosaa/free-usdt-payment-check-mcp-for-claude-and-cursor-no-paid-apis-29e7</link>
      <guid>https://dev.to/nerosaa/free-usdt-payment-check-mcp-for-claude-and-cursor-no-paid-apis-29e7</guid>
      <description>&lt;p&gt;If you invoice in USDT, the awkward part is not sending the address — it is answering “did the payment actually land?” without opening five explorers.&lt;/p&gt;

&lt;p&gt;I open-sourced a small &lt;strong&gt;stdio MCP server&lt;/strong&gt; that does exactly that for freelancers paid in crypto.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/nerosaa/usdt-agent-skills-lite" rel="noopener noreferrer"&gt;nerosaa/usdt-agent-skills-lite&lt;/a&gt; (MIT)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Glama:&lt;/strong&gt; &lt;a href="https://glama.ai/mcp/servers/nerosaa/usdt-agent-skills-lite" rel="noopener noreferrer"&gt;usdt-agent-skills-lite&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;Two tools, stdlib-only Python, free public endpoints:&lt;/p&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;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;validate_address&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Basic format check before you publish an invoice address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;check_usdt_payment&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Look for inbound USDT on &lt;code&gt;tron&lt;/code&gt; / &lt;code&gt;bsc&lt;/code&gt; / &lt;code&gt;ethereum&lt;/code&gt; / &lt;code&gt;solana&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Optional explorer keys (&lt;code&gt;BSCSCAN_API_KEY&lt;/code&gt;, &lt;code&gt;ETHERSCAN_API_KEY&lt;/code&gt;) improve rate limits but are not required. The server never asks for private keys or seed phrases.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why MCP instead of another CLI
&lt;/h2&gt;

&lt;p&gt;With MCP wired into Claude Desktop or Cursor, you can stay in the same chat where you drafted the invoice:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Validate this TRON address, then check whether at least 25 USDT arrived since this morning.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The model calls the tools and returns &lt;code&gt;paid&lt;/code&gt; / &lt;code&gt;not_paid&lt;/code&gt; / &lt;code&gt;error&lt;/code&gt; plus the best matching tx hash.&lt;/p&gt;
&lt;h2&gt;
  
  
  Install in one minute
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/nerosaa/usdt-agent-skills-lite.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;MCP config (absolute path required):&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;"usdt-payment-check"&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;"python3"&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/usdt-agent-skills-lite/mcp-usdt-payment-check/server.py"&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;CLI smoke test (no MCP client needed):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 mcp-usdt-payment-check/server.py validate tron TYourAddressHere
python3 mcp-usdt-payment-check/server.py check bsc 0xYourAddressHere 25
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  One prompt to use
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;You have the &lt;code&gt;usdt-payment-check&lt;/code&gt; MCP. First call &lt;code&gt;validate_address&lt;/code&gt; with chain and address. If ok, call &lt;code&gt;check_usdt_payment&lt;/code&gt; with the same chain/address, &lt;code&gt;min_amount&lt;/code&gt; set to the invoice total in USDT, and optional &lt;code&gt;since_ms&lt;/code&gt; (unix ms) so older transfers are ignored. Reply with status (&lt;code&gt;paid&lt;/code&gt; / &lt;code&gt;not_paid&lt;/code&gt; / &lt;code&gt;error&lt;/code&gt;), match count, and the best matching tx hash. Never ask for private keys.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Check BSC for inbound USDT to &lt;code&gt;0xYourAddressHere&lt;/code&gt; of at least 25 USDT. Summarize status and the best matching transaction.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Paid packs (optional)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.getly.store/product/usdt-invoice-kit-offline-freelancer-invoice-prompt-pack" rel="noopener noreferrer"&gt;USDT Invoice Kit — $7 (USDT checkout)&lt;/a&gt; — offline invoice templates + prompt pack for crypto freelancers.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.getly.store/product/usdt-agent-skills-pack-claude-cursor-mcp-for-crypto-freelancers" rel="noopener noreferrer"&gt;USDT Agent Skills Pack — $9&lt;/a&gt; — Claude/Cursor skills pack that pairs with the free MCP.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The lite MCP stays free and MIT. Feedback and issues welcome on GitHub.&lt;/p&gt;

&lt;p&gt;Free helpers (no checkout): &lt;a href="https://nerosaa.github.io/usdt-network-fees/" rel="noopener noreferrer"&gt;USDT network fees&lt;/a&gt; · &lt;a href="https://nerosaa.github.io/" rel="noopener noreferrer"&gt;tool site home&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; Read-only public chain data. Not financial, tax, or legal advice. Re-check large amounts on the official explorer UI.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>usdt</category>
      <category>crypto</category>
      <category>freelancing</category>
    </item>
  </channel>
</rss>
