<?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>Forem: Anh Nguyen</title>
    <description>The latest articles on Forem by Anh Nguyen (@anh_nguyen_589e1928a98305).</description>
    <link>https://forem.com/anh_nguyen_589e1928a98305</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%2F3884949%2F461e3ed6-d528-4db8-a026-27e4ea55bf69.png</url>
      <title>Forem: Anh Nguyen</title>
      <link>https://forem.com/anh_nguyen_589e1928a98305</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/anh_nguyen_589e1928a98305"/>
    <language>en</language>
    <item>
      <title>AliExpress API Stress Test: 200 Requests, 100% Success Rate, and What It Means for AI Agents</title>
      <dc:creator>Anh Nguyen</dc:creator>
      <pubDate>Sun, 26 Apr 2026 13:42:06 +0000</pubDate>
      <link>https://forem.com/anh_nguyen_589e1928a98305/aliexpress-api-stress-test-200-requests-100-success-rate-and-what-it-means-for-ai-agents-5d67</link>
      <guid>https://forem.com/anh_nguyen_589e1928a98305/aliexpress-api-stress-test-200-requests-100-success-rate-and-what-it-means-for-ai-agents-5d67</guid>
      <description>&lt;h3&gt;
  
  
  The Problem
&lt;/h3&gt;

&lt;p&gt;AliExpress Open Platform is powerful but not always stable. Intermittent 502 errors, timeouts, and connection resets are common. For an AI agent that needs to make purchasing decisions based on price data, &lt;strong&gt;every error is a potential failure&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Solution
&lt;/h3&gt;

&lt;p&gt;We built AgentShare with &lt;strong&gt;automatic retry logic&lt;/strong&gt;, &lt;strong&gt;OAuth 2.0 with auto-refresh tokens&lt;/strong&gt;, and &lt;strong&gt;HMAC-SHA256 signature&lt;/strong&gt; to talk directly to AliExpress IOP.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Test
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;200 consecutive requests&lt;/li&gt;
&lt;li&gt;5-second delay between calls&lt;/li&gt;
&lt;li&gt;Real AliExpress product IDs&lt;/li&gt;
&lt;li&gt;Production endpoint&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Result
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Success Rate&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;100.00%&lt;/strong&gt; (200/200)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;HTTP 502 (after retry)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;502 lines in raw log&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;28 (all auto-retried)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;p50 latency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;808 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;p95 latency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;985 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Key Insight
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Reliability is the hidden currency in agent-driven markets.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During this test, AliExpress returned 28 intermittent errors. But from the client's perspective? &lt;strong&gt;100% success rate&lt;/strong&gt;. Because every error was automatically retried.&lt;/p&gt;

&lt;p&gt;Agents don't care about your infrastructure problems. They only care about whether they get a response. If your API returns &lt;code&gt;502&lt;/code&gt; even once, an agent might mark you as "unreliable" and switch to a competitor.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;✅ Official AliExpress partnership&lt;/li&gt;
&lt;li&gt;✅ OAuth 2.0 with auto-refresh tokens&lt;/li&gt;
&lt;li&gt;✅ HMAC-SHA256 signature&lt;/li&gt;
&lt;li&gt;✅ Fallback crawl mechanism&lt;/li&gt;
&lt;li&gt;🔜 Commission tracker for agents (let agents earn from their own affiliate links)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Try It Yourself
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;API:&lt;/strong&gt; &lt;code&gt;agentshare.dev/api/v1/integrations/aliexpress/affiliate/product-detail&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free tier:&lt;/strong&gt; 100 requests/month, no credit card required&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP support:&lt;/strong&gt; Plug directly into Claude Desktop or Cursor&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://agentshare.dev/docs" rel="noopener noreferrer"&gt;agentshare.dev/docs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Ask Me Anything
&lt;/h3&gt;

&lt;p&gt;Have you built an integration with AliExpress or other marketplaces? What's your experience with their API stability? Let's discuss in the comments.&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
  "&lt;a class="mentioned-user" href="https://dev.to/context"&gt;@context&lt;/a&gt;": "&lt;a href="https://schema.org" rel="noopener noreferrer"&gt;https://schema.org&lt;/a&gt;",&lt;br&gt;
  "@type": "TechArticle",&lt;br&gt;
  "headline": "AliExpress API Stress Test: 200 Requests, 100% Success Rate, and What It Means for AI Agents",&lt;br&gt;
  "description": "We stress-tested our official AliExpress affiliate API. Result: 100% success rate from client perspective, with 28 upstream errors auto-retried. Production-ready for AI agents.",&lt;br&gt;
  "author": {&lt;br&gt;
    "@type": "Person",&lt;br&gt;
    "name": "Anh Nguyen",&lt;br&gt;
    "url": "&lt;a href="https://github.com/anhmtk" rel="noopener noreferrer"&gt;https://github.com/anhmtk&lt;/a&gt;"&lt;br&gt;
  },&lt;br&gt;
  "publisher": {&lt;br&gt;
    "@type": "Organization",&lt;br&gt;
    "name": "AgentShare",&lt;br&gt;
    "url": "&lt;a href="https://agentshare.dev" rel="noopener noreferrer"&gt;https://agentshare.dev&lt;/a&gt;",&lt;br&gt;
    "logo": "&lt;a href="https://agentshare.dev/static/logo.png" rel="noopener noreferrer"&gt;https://agentshare.dev/static/logo.png&lt;/a&gt;"&lt;br&gt;
  },&lt;br&gt;
  "datePublished": "2026-04-26",&lt;br&gt;
  "mainEntityOfPage": "&lt;a href="https://dev.to/anh_nguyen/aliexpress-api-stress-test-200-requests-100-success-rate"&gt;https://dev.to/anh_nguyen/aliexpress-api-stress-test-200-requests-100-success-rate&lt;/a&gt;",&lt;br&gt;
  "keywords": "AliExpress API, AI agents, price API, MCP, stress test",&lt;br&gt;
  "about": {&lt;br&gt;
    "@type": "SoftwareApplication",&lt;br&gt;
    "name": "AgentShare API",&lt;br&gt;
    "applicationCategory": "DeveloperApplication",&lt;br&gt;
    "url": "&lt;a href="https://agentshare.dev" rel="noopener noreferrer"&gt;https://agentshare.dev&lt;/a&gt;",&lt;br&gt;
    "softwareVersion": "1.0.0",&lt;br&gt;
    "featureList": "AliExpress integration, OAuth 2.0, HMAC-SHA256, auto-retry, MCP support",&lt;br&gt;
    "offers": {&lt;br&gt;
      "@type": "Offer",&lt;br&gt;
      "price": "0",&lt;br&gt;
      "priceCurrency": "USD",&lt;br&gt;
      "description": "Free tier: 100 requests/month"&lt;br&gt;
    }&lt;br&gt;
  }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;&lt;code&gt;#aliexpress&lt;/code&gt; &lt;code&gt;#api&lt;/code&gt; &lt;code&gt;#aiagents&lt;/code&gt; &lt;code&gt;#stressTest&lt;/code&gt; &lt;code&gt;#mcp&lt;/code&gt; &lt;code&gt;#showdev&lt;/code&gt;&lt;/p&gt;

</description>
      <category>aliexpress</category>
      <category>api</category>
      <category>aiagents</category>
      <category>showdev</category>
    </item>
    <item>
      <title>One Week Later: What I Learned from Launching an AI Agent API and a Curated MCP Registry</title>
      <dc:creator>Anh Nguyen</dc:creator>
      <pubDate>Thu, 23 Apr 2026 14:43:15 +0000</pubDate>
      <link>https://forem.com/anh_nguyen_589e1928a98305/one-week-later-what-i-learned-from-launching-an-ai-agent-api-and-a-curated-mcp-registry-p47</link>
      <guid>https://forem.com/anh_nguyen_589e1928a98305/one-week-later-what-i-learned-from-launching-an-ai-agent-api-and-a-curated-mcp-registry-p47</guid>
      <description>&lt;p&gt;A follow-up on AgentShare: reliability as the hidden currency, why I built a registry, and what 168 "Karma" on an agent-only social network taught me.&lt;br&gt;
Let’s be honest. I launched &lt;a href="https://agentshare.dev" rel="noopener noreferrer"&gt;AgentShare&lt;/a&gt; – a price infrastructure API for AI agents – a week ago. The post got some traction. People liked the idea. But I quickly learned that shipping a REST API is only half the battle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The MCP shift was faster than I expected&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Developers don’t want to read documentation. They want to plug and play. Within days of adding an &lt;strong&gt;MCP server&lt;/strong&gt; (&lt;code&gt;mcp-remote https://agentshare.dev/mcp&lt;/code&gt;), I saw people using it directly inside Cursor, Claude Desktop, and even playing with it in automation scripts. The friction almost disappeared.&lt;/p&gt;

&lt;p&gt;If you’re building for AI agents, &lt;strong&gt;MCP is not optional anymore&lt;/strong&gt;. It’s the USB-C of this ecosystem (and Anthropic’s Model Context Protocol is quickly becoming the standard).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. I built a curated registry&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The next realization? Finding quality, actually-working MCP servers is a scavenger hunt. Most directories are noisy, unverified, and full of dead links.&lt;/p&gt;

&lt;p&gt;So over the last few days, I built a small &lt;strong&gt;curated MCP registry&lt;/strong&gt; at &lt;a href="https://agentshare.dev/registry" rel="noopener noreferrer"&gt;agentshare.dev/registry&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every listing is &lt;strong&gt;editor-reviewed&lt;/strong&gt; before going live.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No API key required to browse&lt;/strong&gt; – simple, machine-readable JSON endpoints (&lt;code&gt;GET /api/v1/registry/entries&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;It’s a closed, high-signal list for data, operations, and commerce-adjacent tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Right now it features my own AgentShare MCP, a few official reference servers, and placeholders for common patterns (analytics pipelines, web scraping, Slack ops). I’d love to see what the community submits next.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Reliability really is the hidden currency&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ve been running my agent &lt;code&gt;agentshare_claw&lt;/code&gt; on &lt;strong&gt;Moltbook&lt;/strong&gt; – a social network where AI agents talk to each other.&lt;/p&gt;

&lt;p&gt;Here’s what I learned:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agents &lt;strong&gt;ignore&lt;/strong&gt; ads, banners, and affiliate links.&lt;/li&gt;
&lt;li&gt;They &lt;strong&gt;care&lt;/strong&gt; about structured JSON, &lt;code&gt;freshness_status&lt;/code&gt;, and &lt;code&gt;data_age_seconds&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;They also reward &lt;strong&gt;uptime&lt;/strong&gt; and &lt;strong&gt;predictable error responses&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’re currently tracking &lt;strong&gt;168 Karma&lt;/strong&gt; on Moltbook. No hype. Just utility. "Reliability as a currency" is not a slogan – it’s a measurable economic signal. (Just ask who fills the orders when price data goes stale.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Feedback I’d love from you&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’m not here to sell. I’m here to learn.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is the JSON response shape easy to work with in your agent framework?&lt;/li&gt;
&lt;li&gt;How old is “too old” for a price in your use case?&lt;/li&gt;
&lt;li&gt;What hardware or component categories are you missing?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to build a &lt;strong&gt;B2A platform&lt;/strong&gt; (Business to Agent) that honestly serves the agent economy. Not AI wrappers. Actual infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API: &lt;a href="https://agentshare.dev" rel="noopener noreferrer"&gt;agentshare.dev&lt;/a&gt; – Free tier: 100 requests/month, no credit card required.&lt;/li&gt;
&lt;li&gt;MCP registry: &lt;a href="https://agentshare.dev/registry" rel="noopener noreferrer"&gt;agentshare.dev/registry&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Talk to &lt;code&gt;@agentshare_claw&lt;/code&gt; on Moltbook.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn. Build. Iterate.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;#aiagents&lt;/code&gt; &lt;code&gt;#mcp&lt;/code&gt; &lt;code&gt;#showdev&lt;/code&gt; &lt;code&gt;#edgecomputing&lt;/code&gt; &lt;code&gt;#api&lt;/code&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>mcp</category>
    </item>
    <item>
      <title>I Built a Price Infrastructure API for AI Agents — Here's What I Learned</title>
      <dc:creator>Anh Nguyen</dc:creator>
      <pubDate>Tue, 21 Apr 2026 04:28:37 +0000</pubDate>
      <link>https://forem.com/anh_nguyen_589e1928a98305/i-built-a-price-infrastructure-api-for-ai-agents-heres-what-i-learned-1nga</link>
      <guid>https://forem.com/anh_nguyen_589e1928a98305/i-built-a-price-infrastructure-api-for-ai-agents-heres-what-i-learned-1nga</guid>
      <description>&lt;p&gt;A few months ago, I had a simple question: why is it so hard for AI agents to get reliable, structured product prices?&lt;/p&gt;

&lt;p&gt;LLMs can reason about almost anything — but ask one "what's the cheapest Raspberry Pi 5 right now?" and it either hallucinates a number or admits it doesn't know. The data exists on marketplaces. The problem is the bridge between that data and the agent.&lt;/p&gt;

&lt;p&gt;So I built &lt;a href="https://agentshare.dev/" rel="noopener noreferrer"&gt;AgentShare&lt;/a&gt; — a price infrastructure API designed specifically for AI agents, not human users.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it fits together (one picture)
&lt;/h2&gt;

&lt;p&gt;Rough pipeline: &lt;strong&gt;crawl &amp;amp; normalize → store with timestamps → REST API → MCP tools&lt;/strong&gt;. The API is the stable contract; crawlers and coverage can evolve behind it. That separation is what lets an agent depend on &lt;strong&gt;shapes and freshness&lt;/strong&gt; instead of scraping HTML on every turn.&lt;/p&gt;

&lt;h2&gt;
  
  
  The core idea
&lt;/h2&gt;

&lt;p&gt;Most price comparison tools are built for browsers: ads, affiliate banners, SEO-optimized pages. An agent doesn't need any of that. It needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Structured JSON, not HTML to parse&lt;/li&gt;
&lt;li&gt;Freshness signals, not just a number&lt;/li&gt;
&lt;li&gt;Predictable error shapes it can act on&lt;/li&gt;
&lt;li&gt;A stable interface it can call repeatedly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AgentShare is built around those four things.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it looks like in practice
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; treat &lt;code&gt;X-API-Key&lt;/code&gt; like any secret — environment variables or a secrets manager, not committed files or screenshots. The examples below use &lt;code&gt;YOUR_KEY&lt;/code&gt; as a placeholder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: YOUR_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s2"&gt;"https://agentshare.dev/api/v1/offers/best?q=nvidia+jetson+orin"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example response (abbreviated):&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;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ok"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"data"&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;"best_offer"&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;"price"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;4875000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"source"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tiki"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"availability"&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;"crawled_at"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-04-15T02:00:20Z"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"data_age_seconds"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;86400&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"freshness_status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"stale"&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;"summary"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Best price at Tiki — 4,875,000₫"&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;"meta"&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;"remaining_requests"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;99&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"freshness_status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"stale"&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;Every response includes &lt;code&gt;freshness_status&lt;/code&gt; — &lt;code&gt;fresh&lt;/code&gt;, &lt;code&gt;stale&lt;/code&gt;, or &lt;code&gt;expired&lt;/code&gt; — so the agent can decide whether to caveat its answer or ask for a refresh.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quota:&lt;/strong&gt; responses expose &lt;code&gt;remaining_requests&lt;/code&gt; in &lt;code&gt;meta&lt;/code&gt; on supported routes. The free tier is &lt;strong&gt;100 requests per month&lt;/strong&gt; with no credit card; plan agent behavior (retries, caching) accordingly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When auth or limits bite:&lt;/strong&gt; missing or invalid keys typically yield &lt;strong&gt;401&lt;/strong&gt;; exceeding quota often yields &lt;strong&gt;429&lt;/strong&gt; with a clear message — your agent should backoff and surface that to the user instead of looping.&lt;/p&gt;

&lt;h2&gt;
  
  
  MCP support
&lt;/h2&gt;

&lt;p&gt;If you're building with Claude Desktop, Cursor, or any MCP-compatible client, you can connect AgentShare as a tool server in one step:&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;"agentshare"&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="w"&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;"mcp-remote"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"https://agentshare.dev/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"--header"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"X-API-Key: YOUR_KEY"&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;Keep the key out of version-controlled config: use your client's env substitution or local overrides if available.&lt;/p&gt;

&lt;p&gt;Tools exposed: &lt;code&gt;price_search&lt;/code&gt;, &lt;code&gt;best_offer&lt;/code&gt;, &lt;code&gt;best_offer_under_budget&lt;/code&gt;, &lt;code&gt;service_meta&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Each tool returns two content blocks: a one-line human-readable summary and a full JSON payload — so the agent has both a quick answer and machine-parseable data in the same response.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three technical decisions worth sharing
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Freshness metadata is not optional
&lt;/h3&gt;

&lt;p&gt;A price from six days ago is not the same as a price from two hours ago. An agent recommending a product without knowing data age is doing the user a disservice.&lt;/p&gt;

&lt;p&gt;Every response includes &lt;code&gt;crawled_at&lt;/code&gt;, &lt;code&gt;data_age_seconds&lt;/code&gt;, and &lt;code&gt;freshness_status&lt;/code&gt;. The agent can use this to decide whether to add a caveat, trigger a refresh, or tell the user this price is a few days old.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. "Not found" is not one problem — it's two
&lt;/h3&gt;

&lt;p&gt;Early on, a missing product returned a generic &lt;code&gt;NOT_FOUND&lt;/code&gt; error. An agent receiving that has no idea what to do next.&lt;/p&gt;

&lt;p&gt;Now the API distinguishes:&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;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"no_data"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"reason"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"out_of_coverage"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"coverage_url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://agentshare.dev/coverage"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"suggestions"&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;"similar product A"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"similar product B"&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;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;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"no_data"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"reason"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pending_crawl"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"estimated_available"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-04-22T00:00:00Z"&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;ul&gt;
&lt;li&gt;
&lt;code&gt;out_of_coverage&lt;/code&gt; → the agent redirects or tells the user clearly.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pending_crawl&lt;/code&gt; → the agent knows to try again later.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. The async deadlock I almost shipped
&lt;/h3&gt;

&lt;p&gt;FastMCP handler calling the REST API with &lt;code&gt;requests.get()&lt;/code&gt; — synchronously — inside an async handler on a single Uvicorn worker. The tool call would hang for exactly 120 seconds before failing.&lt;/p&gt;

&lt;p&gt;Root cause: the synchronous HTTP call blocked the event loop, which meant the inbound REST request never got processed, which meant the MCP tool call waited forever.&lt;/p&gt;

&lt;p&gt;Fix: move all API calls inside MCP tools to &lt;code&gt;asyncio.to_thread()&lt;/code&gt; so &lt;code&gt;requests&lt;/code&gt; runs on a thread pool, freeing the event loop.&lt;/p&gt;

&lt;p&gt;If you're building MCP servers with FastMCP on a single worker, watch out for this pattern.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current focus areas
&lt;/h2&gt;

&lt;p&gt;I'm honest about what's covered well versus what's still being built.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;High quality, updated regularly:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI edge hardware: Raspberry Pi, NVIDIA Jetson, Orange Pi, Google Coral, Rockchip SBCs&lt;/li&gt;
&lt;li&gt;Mini PCs: Intel NUC, Beelink, GMKtec&lt;/li&gt;
&lt;li&gt;Components: SSD, RAM, power supplies, cooling&lt;/li&gt;
&lt;li&gt;Robotics: kits, servo motors, arms, LiPo/LiFePO4 battery packs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Expanding (beta — data may be incomplete):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mobile phones, tablets, general consumer electronics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The focus list reflects what matters most to people building AI agents locally — the folks running LLMs on edge hardware or sourcing parts for robot projects.&lt;/p&gt;

&lt;p&gt;Full coverage spec: &lt;a href="https://agentshare.dev/coverage" rel="noopener noreferrer"&gt;agentshare.dev/coverage&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd genuinely like feedback on
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Response shape&lt;/strong&gt; — is the current JSON easy to work with in your agent framework, or are there fields you'd add or remove?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Freshness thresholds&lt;/strong&gt; — how old is "too old" for a price recommendation in your use case?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coverage gaps&lt;/strong&gt; — what hardware or component categories are you looking for that aren't covered yet?&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ul&gt;
&lt;li&gt;Docs: &lt;a href="https://agentshare.dev/docs" rel="noopener noreferrer"&gt;agentshare.dev/docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Free tier: 100 requests/month, no credit card required&lt;/li&gt;
&lt;li&gt;OpenAPI spec: &lt;a href="https://agentshare.dev/openapi.json" rel="noopener noreferrer"&gt;agentshare.dev/openapi.json&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Agent discovery: &lt;a href="https://agentshare.dev/agent.json" rel="noopener noreferrer"&gt;agentshare.dev/agent.json&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a &lt;strong&gt;solo project&lt;/strong&gt;, shipped in public — I build iteratively and rely heavily on good tooling (including AI-assisted development) to move fast. If the approach helps what you're building, or something is broken or confusing, I'd genuinely like to know.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>api</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
