<?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: BeachFinder</title>
    <description>The latest articles on DEV Community by BeachFinder (@beachfinder).</description>
    <link>https://dev.to/beachfinder</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%2F4039692%2F70a3734c-23fd-46af-a4bb-635ad55ce09d.png</url>
      <title>DEV Community: BeachFinder</title>
      <link>https://dev.to/beachfinder</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/beachfinder"/>
    <language>en</language>
    <item>
      <title>I shipped a ChatGPT plugin backed by a remote MCP server — 184,900 beaches, live data, one backend for every AI assistant</title>
      <dc:creator>BeachFinder</dc:creator>
      <pubDate>Tue, 21 Jul 2026 09:12:36 +0000</pubDate>
      <link>https://dev.to/beachfinder/i-shipped-a-chatgpt-plugin-backed-by-a-remote-mcp-server-184900-beaches-live-data-one-backend-57eb</link>
      <guid>https://dev.to/beachfinder/i-shipped-a-chatgpt-plugin-backed-by-a-remote-mcp-server-184900-beaches-live-data-one-backend-57eb</guid>
      <description>&lt;p&gt;This week my ChatGPT plugin &lt;strong&gt;BeachFinder&lt;/strong&gt; got approved and published. It lets ChatGPT answer questions like "warmest beach near Valencia right now?" or "compare three beaches near Miami for families" from live data — 184,900 real swim spots worldwide, with current sea temperature, waves, wind, UV and community reports.&lt;/p&gt;

&lt;p&gt;Here is the architecture decision that made it worth writing about: &lt;strong&gt;the plugin is just a thin skin over a remote MCP server.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  One backend, every assistant
&lt;/h2&gt;

&lt;p&gt;The Model Context Protocol server lives at &lt;code&gt;getbeachfinder.com/mcp&lt;/code&gt; (no auth, 12 read-only tools). The exact same endpoint serves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the ChatGPT plugin (&lt;a href="https://chatgpt.com/plugins/plugin_asdk_app_6a55316d0c488191abdc21d086fdddb0" rel="noopener noreferrer"&gt;published this week&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Claude Desktop / Claude.ai connectors&lt;/li&gt;
&lt;li&gt;Cursor and any other MCP client&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So every new "AI app store" that appears is mostly a metadata submission, not new code. If you are building anything data-backed for AI assistants in 2026, I would start with the MCP server and treat each assistant surface as a distribution channel.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned in review
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Read-only tools sail through.&lt;/strong&gt; Every tool is a search/read. No write, no auth, no user data. Review was smooth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safety framing belongs in the tool descriptions.&lt;/strong&gt; BeachFinder never declares a spot "safe to swim" — the tools say so explicitly, and defer to flags, lifeguards and local authorities. Reviewers notice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Example prompts are your listing's landing page.&lt;/strong&gt; Ours map 1:1 to the strongest tools (conditions lookup, comparison, activity providers). Generic prompts waste the slot.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The data part
&lt;/h2&gt;

&lt;p&gt;The hard work was never the plugin — it was the dataset: 184,900 deduplicated swim spots (OpenStreetMap + a long enrichment pipeline), live marine data via Open-Meteo, photos, community reports. The MCP layer is basically read-only RPC over that.&lt;/p&gt;

&lt;p&gt;Try it: search "BeachFinder" in ChatGPT plugins, or point any MCP client at &lt;code&gt;https://getbeachfinder.com/mcp&lt;/code&gt; (docs at &lt;a href="https://getbeachfinder.com/tools" rel="noopener noreferrer"&gt;getbeachfinder.com/tools&lt;/a&gt;). Feedback very welcome — solo developer, I will take all of it.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>chatgpt</category>
      <category>mcp</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
