<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Remote MCP blog]]></title><description><![CDATA[Keep up to date with Remote MCP server updates]]></description><link>https://blog.remote-mcp.com</link><image><url>https://substackcdn.com/image/fetch/$s_!XBJh!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08cead5e-e805-49c0-9d52-05af6eb25f85_1024x1024.png</url><title>Remote MCP blog</title><link>https://blog.remote-mcp.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 21 Apr 2026 13:05:03 GMT</lastBuildDate><atom:link href="https://blog.remote-mcp.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[JAW9C LTD]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[remotemcp@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[remotemcp@substack.com]]></itunes:email><itunes:name><![CDATA[Josh Warwick]]></itunes:name></itunes:owner><itunes:author><![CDATA[Josh Warwick]]></itunes:author><googleplay:owner><![CDATA[remotemcp@substack.com]]></googleplay:owner><googleplay:email><![CDATA[remotemcp@substack.com]]></googleplay:email><googleplay:author><![CDATA[Josh Warwick]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[CodeMode & Recently Updated Servers: Remote MCP Updates]]></title><description><![CDATA[How code generation is replacing multi-step tool calling, and tracking the latest MCP servers on Remote-MCP.com]]></description><link>https://blog.remote-mcp.com/p/codemode-and-recently-updated-servers</link><guid isPermaLink="false">https://blog.remote-mcp.com/p/codemode-and-recently-updated-servers</guid><dc:creator><![CDATA[Josh Warwick]]></dc:creator><pubDate>Sun, 14 Dec 2025 17:22:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XBJh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08cead5e-e805-49c0-9d52-05af6eb25f85_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey everyone, it&#8217;s been a while since the last post due to a busy period for me personally. It&#8217;s also been a busy period for Remote MCP - since the last post there has been <strong>CodeMode, ChatGPT Apps,</strong> and the <strong>Official Registry</strong>. Here&#8217;s our view on <strong>CodeMode.</strong></p><p>We&#8217;re also excited to release a new page to our website: <a href="https://www.remote-mcp.com/recently-updated">Recently Updated</a><strong>. </strong>The Recently Updated page is powered by the <a href="https://github.com/modelcontextprotocol/registry">Official Registry</a>, so everyone can keep up-to-date with new Remote MCP Servers. The page only includes Remote MCP Servers that have been submitted to the registry - if you think any are worthy of inclusion on our main list, then please <a href="https://github.com/jaw9c/awesome-remote-mcp-servers">submit a PR</a> to add the server.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.remote-mcp.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Remote MCP blog is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><em>Let&#8217;s kick on</em></p><h2>CodeMode </h2><p>A new paradigm for LLM tool use. CodeMode is based on the idea that models are very good at generating code, but not quite there with multi-step tool calling. To solve this, CodeMode swaps the ask - <strong>replacing tool calling with code generation</strong>. The early results appear to be the holy grail: <strong>higher performance</strong>, with <strong>lower token use. </strong></p><p><em>So how does this work?</em></p><p>Simply put, rather than exposing <em>N</em> tools to a model, you expose a single tool:</p><blockquote><h4><code>CodeMode</code><strong> </strong></h4><p><strong>Description:</strong><code> A tool that can generate code to achieve a goal </code><br><strong>Input type:</strong><code> {&#8220;functionDescription&#8221;: string }<br></code><strong>Output type:</strong><code> {&#8220;result&#8221; string }</code></p></blockquote><p>The <strong>CodeMode</strong> tool generates code, executes, and returns the result as the tool output. This reduces multi-step tool calls into a single (albeit complex) step. How does this work?</p><p>The trick is to expose the N tools as a library, with each tool corresponding to a library function. Then we find:</p><ul><li><p>The tool input precisely defines the arguments of the tool function, fully typed</p></li><li><p>The tool output defines the return type of the function</p></li><li><p>The tool description acts as documentation on how and why to use the function.</p></li></ul><p>Now when a model generates the code to achieve the task, it can use each tool just like it was a built-in function. When executing the generated code, the tools are invoked directly by the generated library code. This means for a Remote MCP server, during the code generation step, the server&#8217;s tools are available as a full library.</p><p>There are a lot of parts to creating this setup in production - with sandboxing the code execution being critical. The <a href="https://blog.cloudflare.com/code-mode/">Cloudflare blog</a> post goes into more detail, and is a very good read on the topic using <a href="https://developers.cloudflare.com/workers/runtime-apis/bindings/worker-loader/">dynamic worker loaders</a> - a sandboxing primitive which is worth a deep dive of its own.</p><h2>Recently Updated Remote MCP Servers</h2><p>Make sure to keep track of new and and updated servers on our <a href="https://www.remote-mcp.com/recently-updated">new page</a>! </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.remote-mcp.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Remote MCP blog is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Grug Brained AI-Developer: An LLM appendix]]></title><description><![CDATA[A survivor's guide to coding when the robots are helping (badly)]]></description><link>https://blog.remote-mcp.com/p/the-grug-brained-ai-developer-an-e3a</link><guid isPermaLink="false">https://blog.remote-mcp.com/p/the-grug-brained-ai-developer-an-e3a</guid><dc:creator><![CDATA[Josh Warwick]]></dc:creator><pubDate>Thu, 14 Aug 2025 11:10:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OGnv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb889c5b9-39cf-4192-909e-30774579a1e5_512x512.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OGnv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb889c5b9-39cf-4192-909e-30774579a1e5_512x512.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OGnv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb889c5b9-39cf-4192-909e-30774579a1e5_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!OGnv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb889c5b9-39cf-4192-909e-30774579a1e5_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!OGnv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb889c5b9-39cf-4192-909e-30774579a1e5_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!OGnv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb889c5b9-39cf-4192-909e-30774579a1e5_512x512.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OGnv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb889c5b9-39cf-4192-909e-30774579a1e5_512x512.png" width="184" height="184" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b889c5b9-39cf-4192-909e-30774579a1e5_512x512.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:512,&quot;resizeWidth&quot;:184,&quot;bytes&quot;:145708,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.remote-mcp.com/i/170960866?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb889c5b9-39cf-4192-909e-30774579a1e5_512x512.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OGnv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb889c5b9-39cf-4192-909e-30774579a1e5_512x512.png 424w, https://substackcdn.com/image/fetch/$s_!OGnv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb889c5b9-39cf-4192-909e-30774579a1e5_512x512.png 848w, https://substackcdn.com/image/fetch/$s_!OGnv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb889c5b9-39cf-4192-909e-30774579a1e5_512x512.png 1272w, https://substackcdn.com/image/fetch/$s_!OGnv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb889c5b9-39cf-4192-909e-30774579a1e5_512x512.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><div><hr></div><p><em>Preface: This appendix is an unofficial addition to the original <a href="https://grugbrain.dev">Grug Brained Developer</a> guide. The original wisdom was shared by the enlightened grug brain developer themselves. This humble addition on LLM tools is offered by a fellow grug who has suffered through the AI revolution and lived to tell the tale. Original grug deserves all credit for showing the way of the grug.</em></p><div><hr></div><h2>grug meet new shiny rock maker: LLM</h2><p>grug hear much talk in developer cave about new magic tool: LLM assistant!</p><p>big brain say "LLM make you code 10x faster! replace all junior grug!"</p><p>grug suspicious</p><p>grug try github copilot, try cursor, try claude code, try many magic tool</p><p>grug have thoughts</p><h2>complexity demon get new friend</h2><p>remember complexity demon? worst enemy of grug?</p><p>well, complexity demon very excited about LLM! why?</p><p>because LLM make very easy create LOTS of code very fast! code everywhere! files everywhere!</p><p>before LLM: junior grug write 100 line bad code, take week</p><p>after LLM: junior grug generate 10,000 line bad code, take day</p><p>complexity demon rubbing hands together, very happy</p><p>grug sense great disturbance in codebase</p><h2>LLM good at some things</h2><p>grug must admit: LLM sometimes useful!</p><p>when grug forget exact syntax for sort() in new language, LLM help. good!</p><p>when grug need write same boring test 50 times with small change, LLM help. good!</p><p>when grug need understand what crazy big brain developer write 5 year ago with no comments, LLM help explain. very good!</p><p>but grug notice pattern: LLM best when grug already know answer but just lazy or forget exact spelling</p><p>LLM worst when grug not know answer and hope LLM figure out</p><p>this important distinction! many grug not understand!</p><h2>the 70% problem</h2><p>LLM get grug 70% way to solution very fast!</p><p>grug initially very excited!</p><p>then grug realize: last 30% take more time than would take grug write whole thing from start</p><p>why?</p><p>because LLM code look right but not quite right. like reflection in water: look like real thing but when grug reach for it, just splash</p><p>example grug see many times:</p><ul><li><p>LLM write authentication code, forget edge case where token expire during request</p></li><li><p>LLM write database query, not consider what happen when table have 10 million row</p></li><li><p>LLM write UI component, look perfect until user on mobile phone</p></li></ul><p>fixing these things harder than writing from scratch because grug brain must first understand what LLM brain was thinking, then understand why wrong, then fix</p><p>two complexity instead of one!</p><h2>security holes everywhere</h2><p>grug see many young grug copy paste from LLM straight to production</p><p>grug slowly reach for club</p><p>LLM learn from internet code. you know what on internet? lots of bad code! stackoverflow answers from 2012! tutorials that say "disable security for now, we fix later" (spoiler: never fix later)</p><p>grug see LLM suggest:</p><ul><li><p>SQL queries with injection holes size of mammoth</p></li><li><p>authentication that accept password "password"</p></li><li><p>encryption using Math.random() (grug cry)</p></li><li><p>API keys hardcoded in frontend (grug cry more)</p></li></ul><p>young grug not know these bad, because look like working code!</p><p>"but it compile!" young grug say</p><p>grug explain: so does <code>rm -rf /</code>, but grug not recommend</p><h2>copy paste demon multiply like rabbits</h2><p>grug look at metrics, very concerning:</p><p>before LLM: maybe 8% of code is copy paste after LLM: 12% and growing fast!</p><p>but wait, get worse!</p><p>LLM not just copy paste, LLM copy paste with small random changes!</p><p>so now grug have 47 versions of same function, all slightly different, all need maintain</p><p>grug call this "mutation plague"</p><p>when bug found in one, must find all 47 cousins and fix too</p><p>complexity demon laughing so hard, tears streaming down face</p><h2>grug observe trust paradox</h2><p>very strange thing happen:</p><p>2023: 43% of grugs trust AI output 2024: 33% of grugs trust AI output<br>2025: probably even less</p><p>but same time:</p><p>2023: 70% grugs use AI tools 2024: 76% grugs use AI tools 2025: 84% grugs use AI tools!</p><p>grug confused. grugs trust less but use more?</p><p>then grug understand: like grug relationship with project manager promises. grug not trust, but still must listen because no choice</p><h2>the junior grug problem</h2><p>junior grug love LLM! LLM make junior grug feel like senior grug!</p><p>junior grug generate entire application in afternoon!</p><p>junior grug very proud!</p><p>senior grug look at code...</p><p>senior grug need drink</p><p>problem is: junior grug not know what junior grug not know. LLM also not know what LLM not know. together make powerful combination of not knowing!</p><p>like blind grug leading blind grug, but both very confident about direction</p><h2>senior grug use different</h2><p>senior grug learn to use LLM like use intern:</p><p>"hey LLM, write boring boilerplate for API endpoint"</p><p>"hey LLM, explain what this regex do"</p><p>"hey LLM, convert this JSON to TypeScript interface"</p><p>notice: all things where senior grug already know answer, just want save time</p><p>senior grug NEVER say:</p><p>"hey LLM, design my application architecture"</p><p>"hey LLM, solve this complex business logic I don't understand"</p><p>that path lead to tears</p><h2>the review problem</h2><p>before LLM: grug review 100 lines of human code, take 30 minute</p><p>after LLM: grug review 1000 lines of LLM code, take 3 hours</p><p>but wait! LLM generate code in 3 seconds!</p><p>where time save?</p><p>no time save! time moved from writing to reviewing!</p><p>and reviewing harder because:</p><ul><li><p>code style inconsistent (LLM learn from everyone)</p></li><li><p>patterns unfamiliar (LLM mix paradigms like crazy)</p></li><li><p>assumptions hidden (LLM make many assumption, not tell grug)</p></li></ul><h2>pattern grug recommend</h2><h3>trust but verify pattern</h3><p>grug learn from old russian proverb: "doveryai, no proveryai"</p><p>mean: trust, but verify</p><p>actually, grug modify: "not trust, but verify anyway"</p><p>every line LLM write, grug read</p><p>every function LLM create, grug test</p><p>every assumption LLM make, grug question</p><p>treat LLM like very eager intern who read every programming book but never actually program before</p><h3>the small chunk strategy</h3><p>grug learn: LLM good at small thing, bad at big thing</p><p>don't ask LLM write entire application</p><p>ask LLM write one function</p><p>don't ask LLM design system</p><p>ask LLM improve one specific part</p><p>smaller chunk = less chance for complexity demon sneak in</p><h3>the rubber grug debugging</h3><p>when LLM code not work, grug use ancient technique: explain to rubber grug (or real grug if available)</p><p>but twist! make LLM explain its own code back to grug!</p><p>"explain why you chose this approach"</p><p>"what assumptions did you make?"</p><p>"what edge cases did you consider?"</p><p>often LLM realize own mistake when forced explain</p><p>(sometimes grug realize LLM smarter than grug think, but not often)</p><h2>anti-patterns grug see too much</h2><h3>the "YOLO production" pattern</h3><p>young grug copy from ChatGPT straight to main branch grug have heart attack</p><h3>the "infinite regeneration" pattern</h3><p>grug see developer click regenerate 47 times hoping for better answer definition of insanity: doing same thing expecting different result</p><h3>the "AI said so" pattern</h3><p>"but Claude said this was best practice!" grug remind: Claude also once told grug to use MongoDB for financial transactions</p><h3>the "more context = better" pattern</h3><p>developer paste entire codebase into prompt LLM have stroke generate code that reference functions that don't exist</p><h2>when use, when not use</h2><h3>grug say use LLM for:</h3><ul><li><p>writing tests (but check test actually test something)</p></li><li><p>documentation (but verify accurate)</p></li><li><p>code explanation (but verify understanding)</p></li><li><p>syntax reminder (but verify correct)</p></li><li><p>boilerplate generation (but customize after)</p></li><li><p>learning new library (but read real docs too)</p></li></ul><h3>grug say not use LLM for:</h3><ul><li><p>security-critical code</p></li><li><p>complex business logic</p></li><li><p>architecture decisions</p></li><li><p>performance optimization (LLM usually make slower)</p></li><li><p>anything involving money</p></li><li><p>anything involving personal data</p></li><li><p>anything grug not understand enough to verify</p></li></ul><h2>grug prediction for future</h2><p>LLM not going away. like cloud, like agile, like every other thing grug told would "change everything"</p><p>will change some things, not change others</p><p>good grugs who learn use tool properly will benefit</p><p>lazy grugs who rely on tool without understanding will create mess</p><p>complexity demon will grow stronger than ever</p><p>but grug survive. grug always survive. because grug know secret:</p><p><strong>at end of day, someone must understand code</strong></p><p>LLM not understand code. LLM predict next token.</p><p>human must understand. human must debug. human must maintain.</p><p>human who understand code still needed</p><p>human who only copy-paste from LLM? not so much</p><h2>grug final wisdom on LLM</h2><p>LLM like very powerful club. can build house faster, or can hit own foot harder.</p><p>choice is yours.</p><p>but remember: no matter how smart LLM get, complexity demon always waiting</p><p>stay vigilant</p><p>keep brain engaged</p><p>and always, always test the code</p><p>because grug who trust LLM completely is grug who soon look for new job</p><div><hr></div><p><em>grug go now, code review awaiting. junior grug just generated "simple" microservice architecture with 47 dependencies. grug need bigger club.</em></p>]]></content:encoded></item><item><title><![CDATA[From Hackathon to Revenue: How I Built Dialer (And How You Can Speedrun Your Own Paid MCP Server)]]></title><description><![CDATA[A complete guide to building, deploying, and monetizing AI connectors that users actually pay for In this tutorial you&#8217;ll speed-run how to create an authorised and monetised Remote MCP server.]]></description><link>https://blog.remote-mcp.com/p/from-hackathon-to-revenue-how-i-built</link><guid isPermaLink="false">https://blog.remote-mcp.com/p/from-hackathon-to-revenue-how-i-built</guid><dc:creator><![CDATA[Josh Warwick]]></dc:creator><pubDate>Fri, 25 Jul 2025 07:51:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LntP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa60711a6-8df2-4a86-b213-535bf9eef9c9_1816x1028.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A couple of weekends ago, the author decided to run a one person hackathon and created <a href="https://getdialer.app/">Dialer</a>. Dialer is a paid Remote MCP server which lets your LLM make outbound phone calls using your own phone number. It&#8217;s designed to be only useful in an LLM context. At the time of writing it has 10 paid users from a <a href="https://www.reddit.com/r/mcp/comments/1lc1u37/remote_mcp_to_make_outbound_calls_using_your_own/">single reddit post</a>. This tutorial is everything the author learnt along the way, and will enable you to create your own!</p><h1>Motivation</h1><p>MCP (Model Context Protocol) servers have been <a href="https://huggingface.co/blog/Kseniase/mcp#why-is-mcp-making-waves-now-and-not-last-november">growing</a> in popularity throughout the most part of this year in the AI community. However, if you asked any non-technical friend if they have heard of MCP, you&#8217;ll get a blank face and a &#8220;here they again&#8221; look. Then, briefly of course, you explain MCP to them. The same friend then joyfully tells you they already connect Claude to Jira, and they don&#8217;t need this &#8220;MCP&#8221; nonsense. They&#8217;re using <em>connectors.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.remote-mcp.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Remote MCP ! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LntP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa60711a6-8df2-4a86-b213-535bf9eef9c9_1816x1028.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LntP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa60711a6-8df2-4a86-b213-535bf9eef9c9_1816x1028.png 424w, https://substackcdn.com/image/fetch/$s_!LntP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa60711a6-8df2-4a86-b213-535bf9eef9c9_1816x1028.png 848w, https://substackcdn.com/image/fetch/$s_!LntP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa60711a6-8df2-4a86-b213-535bf9eef9c9_1816x1028.png 1272w, https://substackcdn.com/image/fetch/$s_!LntP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa60711a6-8df2-4a86-b213-535bf9eef9c9_1816x1028.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LntP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa60711a6-8df2-4a86-b213-535bf9eef9c9_1816x1028.png" width="1456" height="824" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a60711a6-8df2-4a86-b213-535bf9eef9c9_1816x1028.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:824,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:217932,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa60711a6-8df2-4a86-b213-535bf9eef9c9_1816x1028.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LntP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa60711a6-8df2-4a86-b213-535bf9eef9c9_1816x1028.png 424w, https://substackcdn.com/image/fetch/$s_!LntP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa60711a6-8df2-4a86-b213-535bf9eef9c9_1816x1028.png 848w, https://substackcdn.com/image/fetch/$s_!LntP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa60711a6-8df2-4a86-b213-535bf9eef9c9_1816x1028.png 1272w, https://substackcdn.com/image/fetch/$s_!LntP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa60711a6-8df2-4a86-b213-535bf9eef9c9_1816x1028.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Add connector modal in Claude</figcaption></figure></div><p>In both Claude and ChatGPT, the ability to <em>connect</em> to third party services began with Google Drive and Dropbox. Recently both providers have introduced &#8220;custom connectors&#8221; into their products to allow users to connect to custom third party tools<em>. </em>This sounds exactly like MCP, and the trick? Well it IS MCP. The Remote kind.</p><h4>What is a Remote MCP server</h4><p>A Remote MCP server is one that the service provider hosts themselves. Notion hosts a Notion MCP server, Sentry hosts Sentry and you&#8217;re about to host your own. This is the same pattern that APIs follow. To install/make use of these, all you need is the URL of the Remote MCP server in order to connect.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dESa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0331af-8bb8-4093-be0c-e620ebf8b70f_1264x662.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dESa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0331af-8bb8-4093-be0c-e620ebf8b70f_1264x662.png 424w, https://substackcdn.com/image/fetch/$s_!dESa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0331af-8bb8-4093-be0c-e620ebf8b70f_1264x662.png 848w, https://substackcdn.com/image/fetch/$s_!dESa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0331af-8bb8-4093-be0c-e620ebf8b70f_1264x662.png 1272w, https://substackcdn.com/image/fetch/$s_!dESa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0331af-8bb8-4093-be0c-e620ebf8b70f_1264x662.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dESa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0331af-8bb8-4093-be0c-e620ebf8b70f_1264x662.png" width="1264" height="662" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a0331af-8bb8-4093-be0c-e620ebf8b70f_1264x662.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:662,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:107741,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0331af-8bb8-4093-be0c-e620ebf8b70f_1264x662.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dESa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0331af-8bb8-4093-be0c-e620ebf8b70f_1264x662.png 424w, https://substackcdn.com/image/fetch/$s_!dESa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0331af-8bb8-4093-be0c-e620ebf8b70f_1264x662.png 848w, https://substackcdn.com/image/fetch/$s_!dESa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0331af-8bb8-4093-be0c-e620ebf8b70f_1264x662.png 1272w, https://substackcdn.com/image/fetch/$s_!dESa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0331af-8bb8-4093-be0c-e620ebf8b70f_1264x662.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The add custom connector modal in Claude</figcaption></figure></div><p>Now lets speed run through building our own one. We&#8217;re going to cover this in three parts. First, we&#8217;ll create our own Remote MCP server and deploy it to production so we can use it in Claude. Second we&#8217;ll add authorisation to our server so our users can identify themselves. Finally we&#8217;ll monetise our connector usage using Stripe. By the end you will be able to generate revenue from a native AI application.</p><h1>Part 1: Getting running </h1><p>First we&#8217;re going to get our Remote MCP server built and running in the cloud. This tutorial stands on the shoulders of Cloudflare, specifically <a href="https://blog.cloudflare.com/remote-model-context-protocol-servers-mcp/">this blog post</a>. We&#8217;re going to start with their basic template (with OAuth). To start, click the deploy to Cloudflare button either on the blog or pick a method:</p><h4>The easy, automatic way</h4><p>Click the deploy to Cloudflare button, sign up/in and create a new git repo.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://deploy.workers.cloudflare.com/?url=https://github.com/cloudflare/ai/tree/main/demos/remote-mcp-server" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B_Ts!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42bfac50-bbb8-4a9e-be12-76e71424cf6a_184x39.svg 424w, https://substackcdn.com/image/fetch/$s_!B_Ts!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42bfac50-bbb8-4a9e-be12-76e71424cf6a_184x39.svg 848w, https://substackcdn.com/image/fetch/$s_!B_Ts!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42bfac50-bbb8-4a9e-be12-76e71424cf6a_184x39.svg 1272w, https://substackcdn.com/image/fetch/$s_!B_Ts!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42bfac50-bbb8-4a9e-be12-76e71424cf6a_184x39.svg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B_Ts!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42bfac50-bbb8-4a9e-be12-76e71424cf6a_184x39.svg" width="284" height="60.19565217391305" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/42bfac50-bbb8-4a9e-be12-76e71424cf6a_184x39.svg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:39,&quot;width&quot;:184,&quot;resizeWidth&quot;:284,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Deploy to Cloudflare&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://deploy.workers.cloudflare.com/?url=https://github.com/cloudflare/ai/tree/main/demos/remote-mcp-server&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Deploy to Cloudflare" title="Deploy to Cloudflare" srcset="https://substackcdn.com/image/fetch/$s_!B_Ts!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42bfac50-bbb8-4a9e-be12-76e71424cf6a_184x39.svg 424w, https://substackcdn.com/image/fetch/$s_!B_Ts!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42bfac50-bbb8-4a9e-be12-76e71424cf6a_184x39.svg 848w, https://substackcdn.com/image/fetch/$s_!B_Ts!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42bfac50-bbb8-4a9e-be12-76e71424cf6a_184x39.svg 1272w, https://substackcdn.com/image/fetch/$s_!B_Ts!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42bfac50-bbb8-4a9e-be12-76e71424cf6a_184x39.svg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Make sure to checkout the repo that is created for you. Skip to the testing section.</p><h4>The longer, manual way</h4><p>Equivalently you can run the following in your favourite shell to install the template first. Note this is slightly longer as you&#8217;ll have to create a key value store in Cloudflare before deploying</p><pre><code>npm create cloudflare@latest -- my-mcp-server \
--template=cloudflare/ai/demos/remote-mcp-server
cd my-mcp-server
npm install</code></pre><p>Make sure to say &#8220;no&#8221; to deploying as we&#8217;ll need to adjust the configuration before</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bCpk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ece6a08-4508-4d6b-9b8a-fadc5ebdee00_606x96.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bCpk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ece6a08-4508-4d6b-9b8a-fadc5ebdee00_606x96.png 424w, https://substackcdn.com/image/fetch/$s_!bCpk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ece6a08-4508-4d6b-9b8a-fadc5ebdee00_606x96.png 848w, https://substackcdn.com/image/fetch/$s_!bCpk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ece6a08-4508-4d6b-9b8a-fadc5ebdee00_606x96.png 1272w, https://substackcdn.com/image/fetch/$s_!bCpk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ece6a08-4508-4d6b-9b8a-fadc5ebdee00_606x96.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bCpk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ece6a08-4508-4d6b-9b8a-fadc5ebdee00_606x96.png" width="606" height="96" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ece6a08-4508-4d6b-9b8a-fadc5ebdee00_606x96.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:96,&quot;width&quot;:606,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:17704,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ece6a08-4508-4d6b-9b8a-fadc5ebdee00_606x96.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bCpk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ece6a08-4508-4d6b-9b8a-fadc5ebdee00_606x96.png 424w, https://substackcdn.com/image/fetch/$s_!bCpk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ece6a08-4508-4d6b-9b8a-fadc5ebdee00_606x96.png 848w, https://substackcdn.com/image/fetch/$s_!bCpk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ece6a08-4508-4d6b-9b8a-fadc5ebdee00_606x96.png 1272w, https://substackcdn.com/image/fetch/$s_!bCpk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ece6a08-4508-4d6b-9b8a-fadc5ebdee00_606x96.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Select no</figcaption></figure></div><p>Now you&#8217;ll need to create a new KV (Key Value) store in Cloudflare</p><pre><code>npx wrangler kv namespace create MY_OAUTH_KV</code></pre><p>Then you&#8217;ll get an output like the following</p><pre><code>&#127744; Creating namespace with title "MY_OAUTH_KV"
&#10024; Success!
Add the following to your configuration file in your kv_namespaces array:
{
  "kv_namespaces": [
    {
      "binding": "MY_OAUTH_KV",
      "id": "XXX"
    }
  ]
}</code></pre><p>As the output says, open your <code>wrangler.jsonc</code>  and paste the KV ID we just created in the KV section. This is the configuration file for the <em><strong>worker</strong> </em>that gets created in Cloudflare. Make sure to keep the &#8220;binding" key name set to OAUTH_KV</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7IVA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3dd042-c620-4664-8e52-be6d448ddbbf_670x240.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7IVA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3dd042-c620-4664-8e52-be6d448ddbbf_670x240.png 424w, https://substackcdn.com/image/fetch/$s_!7IVA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3dd042-c620-4664-8e52-be6d448ddbbf_670x240.png 848w, https://substackcdn.com/image/fetch/$s_!7IVA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3dd042-c620-4664-8e52-be6d448ddbbf_670x240.png 1272w, https://substackcdn.com/image/fetch/$s_!7IVA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3dd042-c620-4664-8e52-be6d448ddbbf_670x240.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7IVA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3dd042-c620-4664-8e52-be6d448ddbbf_670x240.png" width="670" height="240" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0a3dd042-c620-4664-8e52-be6d448ddbbf_670x240.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:240,&quot;width&quot;:670,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29160,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3dd042-c620-4664-8e52-be6d448ddbbf_670x240.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7IVA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3dd042-c620-4664-8e52-be6d448ddbbf_670x240.png 424w, https://substackcdn.com/image/fetch/$s_!7IVA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3dd042-c620-4664-8e52-be6d448ddbbf_670x240.png 848w, https://substackcdn.com/image/fetch/$s_!7IVA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3dd042-c620-4664-8e52-be6d448ddbbf_670x240.png 1272w, https://substackcdn.com/image/fetch/$s_!7IVA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3dd042-c620-4664-8e52-be6d448ddbbf_670x240.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Finally run</p><pre><code>npx wrangler deploy</code></pre><p>To deploy your Remote MCP server. You will need to sign up/ in to Cloudflare as part of this process. This command results in the output:</p><pre><code>&#127744; Building list of assets...
&#10024; Read 8 files from the assets directory ~/my-mcp-server/static
&#127744; Starting asset upload...
No updated asset files to upload. Proceeding with deployment...
Total Upload: 958.71 KiB / gzip: 173.78 KiB
Worker Startup Time: 32 ms
Your Worker has access to the following bindings:
Binding                                                Resource
env.MCP_OBJECT (MyMCP)                                 Durable Object
env.OAUTH_KV (XXX)                                     KV Namespace
env.ASSETS                                             Assets

Uploaded my-mcp-server (9.35 sec)
Deployed my-mcp-server triggers (2.54 sec)
  https://my-mcp-server.remote-mcp.workers.dev</code></pre><h3>Testing section</h3><p>First visit the URL created by our command, in our case this is:</p><pre><code>https://my-mcp-server.remote-mcp.workers.dev  </code></pre><p>Open it up in a browser and you should see the template landing page:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!M4ID!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbccc24d5-2fe3-4e81-a57b-99d20b94c189_1946x546.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M4ID!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbccc24d5-2fe3-4e81-a57b-99d20b94c189_1946x546.png 424w, https://substackcdn.com/image/fetch/$s_!M4ID!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbccc24d5-2fe3-4e81-a57b-99d20b94c189_1946x546.png 848w, https://substackcdn.com/image/fetch/$s_!M4ID!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbccc24d5-2fe3-4e81-a57b-99d20b94c189_1946x546.png 1272w, https://substackcdn.com/image/fetch/$s_!M4ID!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbccc24d5-2fe3-4e81-a57b-99d20b94c189_1946x546.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M4ID!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbccc24d5-2fe3-4e81-a57b-99d20b94c189_1946x546.png" width="1456" height="409" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bccc24d5-2fe3-4e81-a57b-99d20b94c189_1946x546.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:409,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:93014,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbccc24d5-2fe3-4e81-a57b-99d20b94c189_1946x546.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!M4ID!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbccc24d5-2fe3-4e81-a57b-99d20b94c189_1946x546.png 424w, https://substackcdn.com/image/fetch/$s_!M4ID!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbccc24d5-2fe3-4e81-a57b-99d20b94c189_1946x546.png 848w, https://substackcdn.com/image/fetch/$s_!M4ID!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbccc24d5-2fe3-4e81-a57b-99d20b94c189_1946x546.png 1272w, https://substackcdn.com/image/fetch/$s_!M4ID!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbccc24d5-2fe3-4e81-a57b-99d20b94c189_1946x546.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The template landing page</figcaption></figure></div><p>Great! Now, the Remote MCP server is actually hosted at "/sse&#8221;. The full URL you should enter into Claude/ChatGPT is:</p><pre><code>https://my-mcp-server.remote-mcp.workers.dev/sse</code></pre><blockquote><p>Note that at the time of writing /sse is deprecated (yes already), and <em>/mcp</em> is the <a href="https://modelcontextprotocol.io/docs/concepts/transports">standard</a>. Don&#8217;t worry about this now, you can set this up later.</p></blockquote><h4>Claude</h4><p>To use Claude to test, open the &#8220;manage connectors&#8221; screen</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!biRL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5f6c7f1-3928-4fcc-9ac1-b78898f6761a_850x432.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!biRL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5f6c7f1-3928-4fcc-9ac1-b78898f6761a_850x432.png 424w, https://substackcdn.com/image/fetch/$s_!biRL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5f6c7f1-3928-4fcc-9ac1-b78898f6761a_850x432.png 848w, https://substackcdn.com/image/fetch/$s_!biRL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5f6c7f1-3928-4fcc-9ac1-b78898f6761a_850x432.png 1272w, https://substackcdn.com/image/fetch/$s_!biRL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5f6c7f1-3928-4fcc-9ac1-b78898f6761a_850x432.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!biRL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5f6c7f1-3928-4fcc-9ac1-b78898f6761a_850x432.png" width="411" height="208.88470588235293" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5f6c7f1-3928-4fcc-9ac1-b78898f6761a_850x432.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:432,&quot;width&quot;:850,&quot;resizeWidth&quot;:411,&quot;bytes&quot;:60352,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5f6c7f1-3928-4fcc-9ac1-b78898f6761a_850x432.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!biRL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5f6c7f1-3928-4fcc-9ac1-b78898f6761a_850x432.png 424w, https://substackcdn.com/image/fetch/$s_!biRL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5f6c7f1-3928-4fcc-9ac1-b78898f6761a_850x432.png 848w, https://substackcdn.com/image/fetch/$s_!biRL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5f6c7f1-3928-4fcc-9ac1-b78898f6761a_850x432.png 1272w, https://substackcdn.com/image/fetch/$s_!biRL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5f6c7f1-3928-4fcc-9ac1-b78898f6761a_850x432.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Then select &#8220;Add custom connector&#8221;, followed by pasting in your URL and click &#8220;Add&#8221;. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4pZW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65ecd51-b371-46c5-a926-05407d42103c_2020x1004.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4pZW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65ecd51-b371-46c5-a926-05407d42103c_2020x1004.png 424w, https://substackcdn.com/image/fetch/$s_!4pZW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65ecd51-b371-46c5-a926-05407d42103c_2020x1004.png 848w, https://substackcdn.com/image/fetch/$s_!4pZW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65ecd51-b371-46c5-a926-05407d42103c_2020x1004.png 1272w, https://substackcdn.com/image/fetch/$s_!4pZW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65ecd51-b371-46c5-a926-05407d42103c_2020x1004.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4pZW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65ecd51-b371-46c5-a926-05407d42103c_2020x1004.png" width="1456" height="724" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d65ecd51-b371-46c5-a926-05407d42103c_2020x1004.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:724,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:229726,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65ecd51-b371-46c5-a926-05407d42103c_2020x1004.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4pZW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65ecd51-b371-46c5-a926-05407d42103c_2020x1004.png 424w, https://substackcdn.com/image/fetch/$s_!4pZW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65ecd51-b371-46c5-a926-05407d42103c_2020x1004.png 848w, https://substackcdn.com/image/fetch/$s_!4pZW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65ecd51-b371-46c5-a926-05407d42103c_2020x1004.png 1272w, https://substackcdn.com/image/fetch/$s_!4pZW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd65ecd51-b371-46c5-a926-05407d42103c_2020x1004.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After clicking add you will see a new item in the connectors list.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0Kkq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e7cedb-74d8-4f15-9cf4-9da57085eee1_1598x204.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0Kkq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e7cedb-74d8-4f15-9cf4-9da57085eee1_1598x204.png 424w, https://substackcdn.com/image/fetch/$s_!0Kkq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e7cedb-74d8-4f15-9cf4-9da57085eee1_1598x204.png 848w, https://substackcdn.com/image/fetch/$s_!0Kkq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e7cedb-74d8-4f15-9cf4-9da57085eee1_1598x204.png 1272w, https://substackcdn.com/image/fetch/$s_!0Kkq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e7cedb-74d8-4f15-9cf4-9da57085eee1_1598x204.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0Kkq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e7cedb-74d8-4f15-9cf4-9da57085eee1_1598x204.png" width="1456" height="186" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/12e7cedb-74d8-4f15-9cf4-9da57085eee1_1598x204.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:186,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38431,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e7cedb-74d8-4f15-9cf4-9da57085eee1_1598x204.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0Kkq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e7cedb-74d8-4f15-9cf4-9da57085eee1_1598x204.png 424w, https://substackcdn.com/image/fetch/$s_!0Kkq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e7cedb-74d8-4f15-9cf4-9da57085eee1_1598x204.png 848w, https://substackcdn.com/image/fetch/$s_!0Kkq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e7cedb-74d8-4f15-9cf4-9da57085eee1_1598x204.png 1272w, https://substackcdn.com/image/fetch/$s_!0Kkq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e7cedb-74d8-4f15-9cf4-9da57085eee1_1598x204.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Click connect. This will open the following mock OAuth screen.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ULSO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc86014-3de3-4260-a920-261750af2089_2108x1274.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ULSO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc86014-3de3-4260-a920-261750af2089_2108x1274.png 424w, https://substackcdn.com/image/fetch/$s_!ULSO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc86014-3de3-4260-a920-261750af2089_2108x1274.png 848w, https://substackcdn.com/image/fetch/$s_!ULSO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc86014-3de3-4260-a920-261750af2089_2108x1274.png 1272w, https://substackcdn.com/image/fetch/$s_!ULSO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc86014-3de3-4260-a920-261750af2089_2108x1274.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ULSO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc86014-3de3-4260-a920-261750af2089_2108x1274.png" width="1456" height="880" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bfc86014-3de3-4260-a920-261750af2089_2108x1274.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:880,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:161796,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc86014-3de3-4260-a920-261750af2089_2108x1274.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ULSO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc86014-3de3-4260-a920-261750af2089_2108x1274.png 424w, https://substackcdn.com/image/fetch/$s_!ULSO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc86014-3de3-4260-a920-261750af2089_2108x1274.png 848w, https://substackcdn.com/image/fetch/$s_!ULSO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc86014-3de3-4260-a920-261750af2089_2108x1274.png 1272w, https://substackcdn.com/image/fetch/$s_!ULSO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfc86014-3de3-4260-a920-261750af2089_2108x1274.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Click approve. You&#8217;ll see the following screen </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6_3a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e968b8b-ef4b-402b-827f-e3b965f6a9d3_1534x876.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6_3a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e968b8b-ef4b-402b-827f-e3b965f6a9d3_1534x876.png 424w, https://substackcdn.com/image/fetch/$s_!6_3a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e968b8b-ef4b-402b-827f-e3b965f6a9d3_1534x876.png 848w, https://substackcdn.com/image/fetch/$s_!6_3a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e968b8b-ef4b-402b-827f-e3b965f6a9d3_1534x876.png 1272w, https://substackcdn.com/image/fetch/$s_!6_3a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e968b8b-ef4b-402b-827f-e3b965f6a9d3_1534x876.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6_3a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e968b8b-ef4b-402b-827f-e3b965f6a9d3_1534x876.png" width="1456" height="831" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4e968b8b-ef4b-402b-827f-e3b965f6a9d3_1534x876.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:831,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:79634,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e968b8b-ef4b-402b-827f-e3b965f6a9d3_1534x876.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6_3a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e968b8b-ef4b-402b-827f-e3b965f6a9d3_1534x876.png 424w, https://substackcdn.com/image/fetch/$s_!6_3a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e968b8b-ef4b-402b-827f-e3b965f6a9d3_1534x876.png 848w, https://substackcdn.com/image/fetch/$s_!6_3a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e968b8b-ef4b-402b-827f-e3b965f6a9d3_1534x876.png 1272w, https://substackcdn.com/image/fetch/$s_!6_3a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e968b8b-ef4b-402b-827f-e3b965f6a9d3_1534x876.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Then you&#8217;ll be taken back to Claude. Open the connectors menu and you&#8217;ll now see your server:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1n9w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dd76be-adfd-45ce-ab6b-e61d99dea611_762x142.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1n9w!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dd76be-adfd-45ce-ab6b-e61d99dea611_762x142.png 424w, https://substackcdn.com/image/fetch/$s_!1n9w!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dd76be-adfd-45ce-ab6b-e61d99dea611_762x142.png 848w, https://substackcdn.com/image/fetch/$s_!1n9w!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dd76be-adfd-45ce-ab6b-e61d99dea611_762x142.png 1272w, https://substackcdn.com/image/fetch/$s_!1n9w!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dd76be-adfd-45ce-ab6b-e61d99dea611_762x142.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1n9w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dd76be-adfd-45ce-ab6b-e61d99dea611_762x142.png" width="762" height="142" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/69dd76be-adfd-45ce-ab6b-e61d99dea611_762x142.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:142,&quot;width&quot;:762,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:24429,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dd76be-adfd-45ce-ab6b-e61d99dea611_762x142.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1n9w!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dd76be-adfd-45ce-ab6b-e61d99dea611_762x142.png 424w, https://substackcdn.com/image/fetch/$s_!1n9w!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dd76be-adfd-45ce-ab6b-e61d99dea611_762x142.png 848w, https://substackcdn.com/image/fetch/$s_!1n9w!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dd76be-adfd-45ce-ab6b-e61d99dea611_762x142.png 1272w, https://substackcdn.com/image/fetch/$s_!1n9w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69dd76be-adfd-45ce-ab6b-e61d99dea611_762x142.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>With a single tool:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mvYU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9467cb8-7fa8-4f17-8832-542107641fe9_766x230.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mvYU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9467cb8-7fa8-4f17-8832-542107641fe9_766x230.png 424w, https://substackcdn.com/image/fetch/$s_!mvYU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9467cb8-7fa8-4f17-8832-542107641fe9_766x230.png 848w, https://substackcdn.com/image/fetch/$s_!mvYU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9467cb8-7fa8-4f17-8832-542107641fe9_766x230.png 1272w, https://substackcdn.com/image/fetch/$s_!mvYU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9467cb8-7fa8-4f17-8832-542107641fe9_766x230.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mvYU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9467cb8-7fa8-4f17-8832-542107641fe9_766x230.png" width="766" height="230" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e9467cb8-7fa8-4f17-8832-542107641fe9_766x230.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:230,&quot;width&quot;:766,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23776,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9467cb8-7fa8-4f17-8832-542107641fe9_766x230.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mvYU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9467cb8-7fa8-4f17-8832-542107641fe9_766x230.png 424w, https://substackcdn.com/image/fetch/$s_!mvYU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9467cb8-7fa8-4f17-8832-542107641fe9_766x230.png 848w, https://substackcdn.com/image/fetch/$s_!mvYU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9467cb8-7fa8-4f17-8832-542107641fe9_766x230.png 1272w, https://substackcdn.com/image/fetch/$s_!mvYU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9467cb8-7fa8-4f17-8832-542107641fe9_766x230.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>To try out the server, ask Claude to add two numbers. You&#8217;ll need to instruct it to use the tools like:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FwAN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9992ba9b-afe2-43be-ba3a-2c04deee17f2_1640x404.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FwAN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9992ba9b-afe2-43be-ba3a-2c04deee17f2_1640x404.png 424w, https://substackcdn.com/image/fetch/$s_!FwAN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9992ba9b-afe2-43be-ba3a-2c04deee17f2_1640x404.png 848w, https://substackcdn.com/image/fetch/$s_!FwAN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9992ba9b-afe2-43be-ba3a-2c04deee17f2_1640x404.png 1272w, https://substackcdn.com/image/fetch/$s_!FwAN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9992ba9b-afe2-43be-ba3a-2c04deee17f2_1640x404.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FwAN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9992ba9b-afe2-43be-ba3a-2c04deee17f2_1640x404.png" width="1456" height="359" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9992ba9b-afe2-43be-ba3a-2c04deee17f2_1640x404.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:359,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:57721,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9992ba9b-afe2-43be-ba3a-2c04deee17f2_1640x404.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FwAN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9992ba9b-afe2-43be-ba3a-2c04deee17f2_1640x404.png 424w, https://substackcdn.com/image/fetch/$s_!FwAN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9992ba9b-afe2-43be-ba3a-2c04deee17f2_1640x404.png 848w, https://substackcdn.com/image/fetch/$s_!FwAN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9992ba9b-afe2-43be-ba3a-2c04deee17f2_1640x404.png 1272w, https://substackcdn.com/image/fetch/$s_!FwAN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9992ba9b-afe2-43be-ba3a-2c04deee17f2_1640x404.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Which will prompt you to use the Remote MCP tool:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Yq7t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7502f741-4ec4-40f0-b83a-9379256235cc_1646x1216.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Yq7t!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7502f741-4ec4-40f0-b83a-9379256235cc_1646x1216.png 424w, https://substackcdn.com/image/fetch/$s_!Yq7t!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7502f741-4ec4-40f0-b83a-9379256235cc_1646x1216.png 848w, https://substackcdn.com/image/fetch/$s_!Yq7t!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7502f741-4ec4-40f0-b83a-9379256235cc_1646x1216.png 1272w, https://substackcdn.com/image/fetch/$s_!Yq7t!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7502f741-4ec4-40f0-b83a-9379256235cc_1646x1216.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Yq7t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7502f741-4ec4-40f0-b83a-9379256235cc_1646x1216.png" width="1456" height="1076" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7502f741-4ec4-40f0-b83a-9379256235cc_1646x1216.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1076,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:192166,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7502f741-4ec4-40f0-b83a-9379256235cc_1646x1216.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Yq7t!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7502f741-4ec4-40f0-b83a-9379256235cc_1646x1216.png 424w, https://substackcdn.com/image/fetch/$s_!Yq7t!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7502f741-4ec4-40f0-b83a-9379256235cc_1646x1216.png 848w, https://substackcdn.com/image/fetch/$s_!Yq7t!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7502f741-4ec4-40f0-b83a-9379256235cc_1646x1216.png 1272w, https://substackcdn.com/image/fetch/$s_!Yq7t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7502f741-4ec4-40f0-b83a-9379256235cc_1646x1216.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hit allow once to make the request</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6P3G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8a0d08-cda6-48fe-be82-425e25b1d51d_1650x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6P3G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8a0d08-cda6-48fe-be82-425e25b1d51d_1650x1080.png 424w, https://substackcdn.com/image/fetch/$s_!6P3G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8a0d08-cda6-48fe-be82-425e25b1d51d_1650x1080.png 848w, https://substackcdn.com/image/fetch/$s_!6P3G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8a0d08-cda6-48fe-be82-425e25b1d51d_1650x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!6P3G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8a0d08-cda6-48fe-be82-425e25b1d51d_1650x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6P3G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8a0d08-cda6-48fe-be82-425e25b1d51d_1650x1080.png" width="1456" height="953" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d8a0d08-cda6-48fe-be82-425e25b1d51d_1650x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:953,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:110288,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8a0d08-cda6-48fe-be82-425e25b1d51d_1650x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6P3G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8a0d08-cda6-48fe-be82-425e25b1d51d_1650x1080.png 424w, https://substackcdn.com/image/fetch/$s_!6P3G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8a0d08-cda6-48fe-be82-425e25b1d51d_1650x1080.png 848w, https://substackcdn.com/image/fetch/$s_!6P3G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8a0d08-cda6-48fe-be82-425e25b1d51d_1650x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!6P3G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d8a0d08-cda6-48fe-be82-425e25b1d51d_1650x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Success! Now lets break down what&#8217;s in the template.</p><h3>The MCP server (index.ts)</h3><p>The MyMCP class is where we manage the MCP server itself. Tools within the <code>init()</code> method, here you can see the <em>add </em>tool definition. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h0j7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb71be5ef-e018-4904-ab16-5a873342c9ac_1336x460.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h0j7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb71be5ef-e018-4904-ab16-5a873342c9ac_1336x460.png 424w, https://substackcdn.com/image/fetch/$s_!h0j7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb71be5ef-e018-4904-ab16-5a873342c9ac_1336x460.png 848w, https://substackcdn.com/image/fetch/$s_!h0j7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb71be5ef-e018-4904-ab16-5a873342c9ac_1336x460.png 1272w, https://substackcdn.com/image/fetch/$s_!h0j7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb71be5ef-e018-4904-ab16-5a873342c9ac_1336x460.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h0j7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb71be5ef-e018-4904-ab16-5a873342c9ac_1336x460.png" width="1336" height="460" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b71be5ef-e018-4904-ab16-5a873342c9ac_1336x460.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:460,&quot;width&quot;:1336,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:87126,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb71be5ef-e018-4904-ab16-5a873342c9ac_1336x460.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!h0j7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb71be5ef-e018-4904-ab16-5a873342c9ac_1336x460.png 424w, https://substackcdn.com/image/fetch/$s_!h0j7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb71be5ef-e018-4904-ab16-5a873342c9ac_1336x460.png 848w, https://substackcdn.com/image/fetch/$s_!h0j7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb71be5ef-e018-4904-ab16-5a873342c9ac_1336x460.png 1272w, https://substackcdn.com/image/fetch/$s_!h0j7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb71be5ef-e018-4904-ab16-5a873342c9ac_1336x460.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Cloudflare does <em>some </em>heavy lifting here, but for those familiar with creating MCP servers, the McpServer is directly the one from the MCP SDK:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5wD7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38069ed9-b392-490e-bfb9-6fa63a3f94dd_1010x54.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5wD7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38069ed9-b392-490e-bfb9-6fa63a3f94dd_1010x54.png 424w, https://substackcdn.com/image/fetch/$s_!5wD7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38069ed9-b392-490e-bfb9-6fa63a3f94dd_1010x54.png 848w, https://substackcdn.com/image/fetch/$s_!5wD7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38069ed9-b392-490e-bfb9-6fa63a3f94dd_1010x54.png 1272w, https://substackcdn.com/image/fetch/$s_!5wD7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38069ed9-b392-490e-bfb9-6fa63a3f94dd_1010x54.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5wD7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38069ed9-b392-490e-bfb9-6fa63a3f94dd_1010x54.png" width="1010" height="54" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/38069ed9-b392-490e-bfb9-6fa63a3f94dd_1010x54.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:54,&quot;width&quot;:1010,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23214,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38069ed9-b392-490e-bfb9-6fa63a3f94dd_1010x54.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5wD7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38069ed9-b392-490e-bfb9-6fa63a3f94dd_1010x54.png 424w, https://substackcdn.com/image/fetch/$s_!5wD7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38069ed9-b392-490e-bfb9-6fa63a3f94dd_1010x54.png 848w, https://substackcdn.com/image/fetch/$s_!5wD7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38069ed9-b392-490e-bfb9-6fa63a3f94dd_1010x54.png 1272w, https://substackcdn.com/image/fetch/$s_!5wD7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38069ed9-b392-490e-bfb9-6fa63a3f94dd_1010x54.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The final item is the default export, and the most &#8220;magic&#8221; - the OAuthProvider. The OAuthProvider gives the necessary scaffolding for the server to act as an OAuth2.1 authorisation server. The provider implements authorisation itself, token refresh and dynamic client registration. These settings are the default values, but you can <a href="https://github.com/cloudflare/workers-oauth-provider">learn more here</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cNzA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb442d762-d751-43b3-8012-f179f0fd14b0_736x456.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cNzA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb442d762-d751-43b3-8012-f179f0fd14b0_736x456.png 424w, https://substackcdn.com/image/fetch/$s_!cNzA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb442d762-d751-43b3-8012-f179f0fd14b0_736x456.png 848w, https://substackcdn.com/image/fetch/$s_!cNzA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb442d762-d751-43b3-8012-f179f0fd14b0_736x456.png 1272w, https://substackcdn.com/image/fetch/$s_!cNzA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb442d762-d751-43b3-8012-f179f0fd14b0_736x456.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cNzA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb442d762-d751-43b3-8012-f179f0fd14b0_736x456.png" width="736" height="456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b442d762-d751-43b3-8012-f179f0fd14b0_736x456.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:456,&quot;width&quot;:736,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:85512,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb442d762-d751-43b3-8012-f179f0fd14b0_736x456.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cNzA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb442d762-d751-43b3-8012-f179f0fd14b0_736x456.png 424w, https://substackcdn.com/image/fetch/$s_!cNzA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb442d762-d751-43b3-8012-f179f0fd14b0_736x456.png 848w, https://substackcdn.com/image/fetch/$s_!cNzA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb442d762-d751-43b3-8012-f179f0fd14b0_736x456.png 1272w, https://substackcdn.com/image/fetch/$s_!cNzA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb442d762-d751-43b3-8012-f179f0fd14b0_736x456.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The Auth routes (app.ts)</h2><p>The app.ts file uses the <a href="https://hono.dev/">Hono framework</a>, a lightweight node application server.  The template comes with three core routes, that we&#8217;ve seen in action already. </p><h4>The root (/)</h4><p>This defines the homepage you saw at https://my-mcp-server.remote-mcp.workers.dev</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Bkjb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f588b4c-3716-4e4e-b054-e42c7f7d66a6_1004x172.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Bkjb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f588b4c-3716-4e4e-b054-e42c7f7d66a6_1004x172.png 424w, https://substackcdn.com/image/fetch/$s_!Bkjb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f588b4c-3716-4e4e-b054-e42c7f7d66a6_1004x172.png 848w, https://substackcdn.com/image/fetch/$s_!Bkjb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f588b4c-3716-4e4e-b054-e42c7f7d66a6_1004x172.png 1272w, https://substackcdn.com/image/fetch/$s_!Bkjb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f588b4c-3716-4e4e-b054-e42c7f7d66a6_1004x172.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Bkjb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f588b4c-3716-4e4e-b054-e42c7f7d66a6_1004x172.png" width="1004" height="172" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f588b4c-3716-4e4e-b054-e42c7f7d66a6_1004x172.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:172,&quot;width&quot;:1004,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:49227,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f588b4c-3716-4e4e-b054-e42c7f7d66a6_1004x172.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Bkjb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f588b4c-3716-4e4e-b054-e42c7f7d66a6_1004x172.png 424w, https://substackcdn.com/image/fetch/$s_!Bkjb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f588b4c-3716-4e4e-b054-e42c7f7d66a6_1004x172.png 848w, https://substackcdn.com/image/fetch/$s_!Bkjb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f588b4c-3716-4e4e-b054-e42c7f7d66a6_1004x172.png 1272w, https://substackcdn.com/image/fetch/$s_!Bkjb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f588b4c-3716-4e4e-b054-e42c7f7d66a6_1004x172.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>/authorize</h3><p>In an OAuth2.1 flow the OAuth client (Claude/ChatGPT) makes a GET request to this endpoint, with a number of query params. The result of this GET is a new tab or web browser opening with a request to /authoize, These params are processed by parseAuthRequest given by the OUTH_PROVIDER in <a href="https://developers.cloudflare.com/workers/runtime-apis/bindings/">binding</a> (environment). In the template these are put on the webpage as a hidden input to use in the next endpoint.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NTIk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcae543c2-ae72-4b5b-b185-eb6b41a3e750_1308x536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NTIk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcae543c2-ae72-4b5b-b185-eb6b41a3e750_1308x536.png 424w, https://substackcdn.com/image/fetch/$s_!NTIk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcae543c2-ae72-4b5b-b185-eb6b41a3e750_1308x536.png 848w, https://substackcdn.com/image/fetch/$s_!NTIk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcae543c2-ae72-4b5b-b185-eb6b41a3e750_1308x536.png 1272w, https://substackcdn.com/image/fetch/$s_!NTIk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcae543c2-ae72-4b5b-b185-eb6b41a3e750_1308x536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NTIk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcae543c2-ae72-4b5b-b185-eb6b41a3e750_1308x536.png" width="1308" height="536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cae543c2-ae72-4b5b-b185-eb6b41a3e750_1308x536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:536,&quot;width&quot;:1308,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:124395,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcae543c2-ae72-4b5b-b185-eb6b41a3e750_1308x536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NTIk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcae543c2-ae72-4b5b-b185-eb6b41a3e750_1308x536.png 424w, https://substackcdn.com/image/fetch/$s_!NTIk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcae543c2-ae72-4b5b-b185-eb6b41a3e750_1308x536.png 848w, https://substackcdn.com/image/fetch/$s_!NTIk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcae543c2-ae72-4b5b-b185-eb6b41a3e750_1308x536.png 1272w, https://substackcdn.com/image/fetch/$s_!NTIk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcae543c2-ae72-4b5b-b185-eb6b41a3e750_1308x536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>/approve</h3><p>Unsurprisingly, this endpoint is called when the user clicks &#8220;approve&#8221;. As mentioned, the oAuthReqInfo is passed as an input. You can see if that&#8217;s not provided its an immediate error.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gm1J!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7795ba-2eb4-44f1-bc5f-d33df6f6d1ba_1218x442.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gm1J!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7795ba-2eb4-44f1-bc5f-d33df6f6d1ba_1218x442.png 424w, https://substackcdn.com/image/fetch/$s_!gm1J!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7795ba-2eb4-44f1-bc5f-d33df6f6d1ba_1218x442.png 848w, https://substackcdn.com/image/fetch/$s_!gm1J!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7795ba-2eb4-44f1-bc5f-d33df6f6d1ba_1218x442.png 1272w, https://substackcdn.com/image/fetch/$s_!gm1J!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7795ba-2eb4-44f1-bc5f-d33df6f6d1ba_1218x442.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gm1J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7795ba-2eb4-44f1-bc5f-d33df6f6d1ba_1218x442.png" width="1218" height="442" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/da7795ba-2eb4-44f1-bc5f-d33df6f6d1ba_1218x442.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:442,&quot;width&quot;:1218,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:101245,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7795ba-2eb4-44f1-bc5f-d33df6f6d1ba_1218x442.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gm1J!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7795ba-2eb4-44f1-bc5f-d33df6f6d1ba_1218x442.png 424w, https://substackcdn.com/image/fetch/$s_!gm1J!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7795ba-2eb4-44f1-bc5f-d33df6f6d1ba_1218x442.png 848w, https://substackcdn.com/image/fetch/$s_!gm1J!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7795ba-2eb4-44f1-bc5f-d33df6f6d1ba_1218x442.png 1272w, https://substackcdn.com/image/fetch/$s_!gm1J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda7795ba-2eb4-44f1-bc5f-d33df6f6d1ba_1218x442.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The most critical part of this flow is the processing of the oauthReqInfo. The provider also gives us a completeAuthoization method.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pR9K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb452ad8-4d07-4575-8008-d8ed18db3cd4_1178x536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pR9K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb452ad8-4d07-4575-8008-d8ed18db3cd4_1178x536.png 424w, https://substackcdn.com/image/fetch/$s_!pR9K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb452ad8-4d07-4575-8008-d8ed18db3cd4_1178x536.png 848w, https://substackcdn.com/image/fetch/$s_!pR9K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb452ad8-4d07-4575-8008-d8ed18db3cd4_1178x536.png 1272w, https://substackcdn.com/image/fetch/$s_!pR9K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb452ad8-4d07-4575-8008-d8ed18db3cd4_1178x536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pR9K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb452ad8-4d07-4575-8008-d8ed18db3cd4_1178x536.png" width="1178" height="536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb452ad8-4d07-4575-8008-d8ed18db3cd4_1178x536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:536,&quot;width&quot;:1178,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:88515,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb452ad8-4d07-4575-8008-d8ed18db3cd4_1178x536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pR9K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb452ad8-4d07-4575-8008-d8ed18db3cd4_1178x536.png 424w, https://substackcdn.com/image/fetch/$s_!pR9K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb452ad8-4d07-4575-8008-d8ed18db3cd4_1178x536.png 848w, https://substackcdn.com/image/fetch/$s_!pR9K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb452ad8-4d07-4575-8008-d8ed18db3cd4_1178x536.png 1272w, https://substackcdn.com/image/fetch/$s_!pR9K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb452ad8-4d07-4575-8008-d8ed18db3cd4_1178x536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So what is going on here? Remember the key-value store we created earlier? Well the OAUTH_PROVIDER uses this to map between the current OAuth session with the parameters given here. Practically, the props are encrypted and stored against the auth token that gets provided to the client (Claude/ChatGPT). </p><h1>Part two: Authentication </h1><p>Now we&#8217;ve got the scaffolding set up we need an easy way to manage users. We&#8217;re going to be using <a href="http://supabase.com/">supabase</a> to quickly piggyback on their handy user and auth management. We&#8217;re going to start from the <a href="https://vercel.com/templates/authentication/supabase">supabase vercel template</a>, you can pick either method again:</p><h4>The easy, automatic way</h4><p>Click the deploy to Vercel button, sign up/in and create a new git repo.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://vercel.com/new/clone?demo-description=This%20starter%20configures%20Supabase%20Auth%20to%20use%20cookies%2C%20making%20the%20user%27s%20session%20available%20throughout%20the%20entire%20Next.js%20app%20-%20Client%20Components%2C%20Server%20Components%2C%20Route%20Handlers%2C%20Server%20Actions%20and%20Middleware.&amp;demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F7UG4Pvl9its0CqhrpX93n%2F262032f6e408308d3273f5883f369e97%2F68747470733a2f2f64656d6f2d6e6578746a732d776974682d73757061626173652e76657263656c2e6170702f6f70656e67726170682d696d6167652e70.png&amp;demo-title=nextjs-with-supabase&amp;demo-url=https%3A%2F%2Fdemo-nextjs-with-supabase.vercel.app%2F&amp;external-id=https%3A%2F%2Fgithub.com%2Fvercel%2Fnext.js%2Ftree%2Fcanary%2Fexamples%2Fwith-supabase&amp;project-name=nextjs-with-supabase&amp;repository-name=nextjs-with-supabase&amp;repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fnext.js%2Ftree%2Fcanary%2Fexamples%2Fwith-supabase&amp;stores=%5B%7B%22type%22%3A%22integration%22%2C%22integrationSlug%22%3A%22supabase%22%2C%22productSlug%22%3A%22supabase%22%7D%5D&amp;teamSlug=ark-bfdfd644" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DFHS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc114b69c-aded-4bdc-9f18-0e00d0783699_103x32.svg 424w, https://substackcdn.com/image/fetch/$s_!DFHS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc114b69c-aded-4bdc-9f18-0e00d0783699_103x32.svg 848w, https://substackcdn.com/image/fetch/$s_!DFHS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc114b69c-aded-4bdc-9f18-0e00d0783699_103x32.svg 1272w, https://substackcdn.com/image/fetch/$s_!DFHS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc114b69c-aded-4bdc-9f18-0e00d0783699_103x32.svg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DFHS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc114b69c-aded-4bdc-9f18-0e00d0783699_103x32.svg" width="103" height="32" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c114b69c-aded-4bdc-9f18-0e00d0783699_103x32.svg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:32,&quot;width&quot;:103,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Deploy button&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://vercel.com/new/clone?demo-description=This%20starter%20configures%20Supabase%20Auth%20to%20use%20cookies%2C%20making%20the%20user%27s%20session%20available%20throughout%20the%20entire%20Next.js%20app%20-%20Client%20Components%2C%20Server%20Components%2C%20Route%20Handlers%2C%20Server%20Actions%20and%20Middleware.&amp;demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F7UG4Pvl9its0CqhrpX93n%2F262032f6e408308d3273f5883f369e97%2F68747470733a2f2f64656d6f2d6e6578746a732d776974682d73757061626173652e76657263656c2e6170702f6f70656e67726170682d696d6167652e70.png&amp;demo-title=nextjs-with-supabase&amp;demo-url=https%3A%2F%2Fdemo-nextjs-with-supabase.vercel.app%2F&amp;external-id=https%3A%2F%2Fgithub.com%2Fvercel%2Fnext.js%2Ftree%2Fcanary%2Fexamples%2Fwith-supabase&amp;project-name=nextjs-with-supabase&amp;repository-name=nextjs-with-supabase&amp;repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fnext.js%2Ftree%2Fcanary%2Fexamples%2Fwith-supabase&amp;stores=%5B%7B%22type%22%3A%22integration%22%2C%22integrationSlug%22%3A%22supabase%22%2C%22productSlug%22%3A%22supabase%22%7D%5D&amp;teamSlug=ark-bfdfd644&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Deploy button" title="Deploy button" srcset="https://substackcdn.com/image/fetch/$s_!DFHS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc114b69c-aded-4bdc-9f18-0e00d0783699_103x32.svg 424w, https://substackcdn.com/image/fetch/$s_!DFHS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc114b69c-aded-4bdc-9f18-0e00d0783699_103x32.svg 848w, https://substackcdn.com/image/fetch/$s_!DFHS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc114b69c-aded-4bdc-9f18-0e00d0783699_103x32.svg 1272w, https://substackcdn.com/image/fetch/$s_!DFHS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc114b69c-aded-4bdc-9f18-0e00d0783699_103x32.svg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Make sure to checkout the repo that is created for you. Skip to the testing section.</p><h4>The longer, manual way</h4><p>Equivalently you can run the following in your favourite shell to install the template first.</p><pre><code><code>npx create-next-app --example with-supabase my-mcp-api
cd my-mcp-api
npm install
mv .env.example .env.local</code></code></pre><p>Now create your own account on Supabase, then in the header, click connect </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L9Yu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f553df-a31b-490d-bc2b-361112971dce_212x70.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L9Yu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f553df-a31b-490d-bc2b-361112971dce_212x70.png 424w, https://substackcdn.com/image/fetch/$s_!L9Yu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f553df-a31b-490d-bc2b-361112971dce_212x70.png 848w, https://substackcdn.com/image/fetch/$s_!L9Yu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f553df-a31b-490d-bc2b-361112971dce_212x70.png 1272w, https://substackcdn.com/image/fetch/$s_!L9Yu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f553df-a31b-490d-bc2b-361112971dce_212x70.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L9Yu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f553df-a31b-490d-bc2b-361112971dce_212x70.png" width="124" height="40.943396226415096" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5f553df-a31b-490d-bc2b-361112971dce_212x70.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:70,&quot;width&quot;:212,&quot;resizeWidth&quot;:124,&quot;bytes&quot;:8246,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f553df-a31b-490d-bc2b-361112971dce_212x70.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!L9Yu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f553df-a31b-490d-bc2b-361112971dce_212x70.png 424w, https://substackcdn.com/image/fetch/$s_!L9Yu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f553df-a31b-490d-bc2b-361112971dce_212x70.png 848w, https://substackcdn.com/image/fetch/$s_!L9Yu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f553df-a31b-490d-bc2b-361112971dce_212x70.png 1272w, https://substackcdn.com/image/fetch/$s_!L9Yu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f553df-a31b-490d-bc2b-361112971dce_212x70.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Connect</figcaption></figure></div><p>In the modal that pops up, select &#8220;App frameworks&#8221;: </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bOR-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452cbc27-d68a-47b9-932a-59a23987adbb_2028x538.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bOR-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452cbc27-d68a-47b9-932a-59a23987adbb_2028x538.png 424w, https://substackcdn.com/image/fetch/$s_!bOR-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452cbc27-d68a-47b9-932a-59a23987adbb_2028x538.png 848w, https://substackcdn.com/image/fetch/$s_!bOR-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452cbc27-d68a-47b9-932a-59a23987adbb_2028x538.png 1272w, https://substackcdn.com/image/fetch/$s_!bOR-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452cbc27-d68a-47b9-932a-59a23987adbb_2028x538.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bOR-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452cbc27-d68a-47b9-932a-59a23987adbb_2028x538.png" width="1456" height="386" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/452cbc27-d68a-47b9-932a-59a23987adbb_2028x538.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:386,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:107312,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452cbc27-d68a-47b9-932a-59a23987adbb_2028x538.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bOR-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452cbc27-d68a-47b9-932a-59a23987adbb_2028x538.png 424w, https://substackcdn.com/image/fetch/$s_!bOR-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452cbc27-d68a-47b9-932a-59a23987adbb_2028x538.png 848w, https://substackcdn.com/image/fetch/$s_!bOR-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452cbc27-d68a-47b9-932a-59a23987adbb_2028x538.png 1272w, https://substackcdn.com/image/fetch/$s_!bOR-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F452cbc27-d68a-47b9-932a-59a23987adbb_2028x538.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now you&#8217;ll need to add the following lines to your <code>.env.local</code> file</p><pre><code>NEXT_PUBLIC_SUPABASE_URL=[INSERT SUPABASE PROJECT URL]
NEXT_PUBLIC_SUPABASE_ANON_KEY=[INSERT SUPABASE PROJECT API ANON KEY]</code></pre><p>Deploy by pushing the repo to github, then connecting to Vercel. You can select the new git repo from the <a href="https://vercel.com/new">new project page</a>:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Z51L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea7becc-eb80-46a5-8dee-630faf400587_1546x480.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Z51L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea7becc-eb80-46a5-8dee-630faf400587_1546x480.png 424w, https://substackcdn.com/image/fetch/$s_!Z51L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea7becc-eb80-46a5-8dee-630faf400587_1546x480.png 848w, https://substackcdn.com/image/fetch/$s_!Z51L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea7becc-eb80-46a5-8dee-630faf400587_1546x480.png 1272w, https://substackcdn.com/image/fetch/$s_!Z51L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea7becc-eb80-46a5-8dee-630faf400587_1546x480.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Z51L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea7becc-eb80-46a5-8dee-630faf400587_1546x480.png" width="1456" height="452" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fea7becc-eb80-46a5-8dee-630faf400587_1546x480.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:452,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:73962,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea7becc-eb80-46a5-8dee-630faf400587_1546x480.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Z51L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea7becc-eb80-46a5-8dee-630faf400587_1546x480.png 424w, https://substackcdn.com/image/fetch/$s_!Z51L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea7becc-eb80-46a5-8dee-630faf400587_1546x480.png 848w, https://substackcdn.com/image/fetch/$s_!Z51L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea7becc-eb80-46a5-8dee-630faf400587_1546x480.png 1272w, https://substackcdn.com/image/fetch/$s_!Z51L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffea7becc-eb80-46a5-8dee-630faf400587_1546x480.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Testing the site</h2><p> After these methods you&#8217;ll end up with a live site with a url like:</p><pre><code>https://my-mcp-api.vercel.app</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IrHU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45d69da5-b4c2-4405-9be9-004fdf9033bc_2308x942.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IrHU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45d69da5-b4c2-4405-9be9-004fdf9033bc_2308x942.png 424w, https://substackcdn.com/image/fetch/$s_!IrHU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45d69da5-b4c2-4405-9be9-004fdf9033bc_2308x942.png 848w, https://substackcdn.com/image/fetch/$s_!IrHU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45d69da5-b4c2-4405-9be9-004fdf9033bc_2308x942.png 1272w, https://substackcdn.com/image/fetch/$s_!IrHU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45d69da5-b4c2-4405-9be9-004fdf9033bc_2308x942.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IrHU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45d69da5-b4c2-4405-9be9-004fdf9033bc_2308x942.png" width="1456" height="594" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/45d69da5-b4c2-4405-9be9-004fdf9033bc_2308x942.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:594,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:108980,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45d69da5-b4c2-4405-9be9-004fdf9033bc_2308x942.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IrHU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45d69da5-b4c2-4405-9be9-004fdf9033bc_2308x942.png 424w, https://substackcdn.com/image/fetch/$s_!IrHU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45d69da5-b4c2-4405-9be9-004fdf9033bc_2308x942.png 848w, https://substackcdn.com/image/fetch/$s_!IrHU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45d69da5-b4c2-4405-9be9-004fdf9033bc_2308x942.png 1272w, https://substackcdn.com/image/fetch/$s_!IrHU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45d69da5-b4c2-4405-9be9-004fdf9033bc_2308x942.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Feel free to sign up and create an account, you&#8217;ll need this for later.</p><h2>Reverse proxy</h2><p>Rather than our beloved Cloudflare provided MCP landing page, we&#8217;re now going to direct all non-mcp traffic to our supabase/vercel project. To do this we need to:</p><h4>Remove the root (/) </h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QHv0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6eb839-4270-4bbf-8139-6b5a50923f06_1012x338.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QHv0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6eb839-4270-4bbf-8139-6b5a50923f06_1012x338.png 424w, https://substackcdn.com/image/fetch/$s_!QHv0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6eb839-4270-4bbf-8139-6b5a50923f06_1012x338.png 848w, https://substackcdn.com/image/fetch/$s_!QHv0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6eb839-4270-4bbf-8139-6b5a50923f06_1012x338.png 1272w, https://substackcdn.com/image/fetch/$s_!QHv0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6eb839-4270-4bbf-8139-6b5a50923f06_1012x338.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QHv0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6eb839-4270-4bbf-8139-6b5a50923f06_1012x338.png" width="1012" height="338" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dc6eb839-4270-4bbf-8139-6b5a50923f06_1012x338.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:338,&quot;width&quot;:1012,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:55407,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6eb839-4270-4bbf-8139-6b5a50923f06_1012x338.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QHv0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6eb839-4270-4bbf-8139-6b5a50923f06_1012x338.png 424w, https://substackcdn.com/image/fetch/$s_!QHv0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6eb839-4270-4bbf-8139-6b5a50923f06_1012x338.png 848w, https://substackcdn.com/image/fetch/$s_!QHv0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6eb839-4270-4bbf-8139-6b5a50923f06_1012x338.png 1272w, https://substackcdn.com/image/fetch/$s_!QHv0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6eb839-4270-4bbf-8139-6b5a50923f06_1012x338.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Adding the reverse proxy</h4><p><strong>After </strong>the other endpoints (/authorise and /approve), paste the following code to reverse proxy:</p><pre><code>//Reverse proxy the service thats providing the standard API
app.all("*", async (c) =&gt; {
&#9;const url = new URL(c.req.url);
&#9;const targetUrl = new URL(url.pathname + url.search, c.env.VERCEL_URL);
  
&#9;// Forward all headers except host
&#9;const headers = new Headers();
&#9;for (const [key, value] of c.req.raw.headers) {
&#9;  if (key.toLowerCase() !== "host") {
&#9;&#9;headers.set(key, value);
&#9;  }
&#9;}
  
&#9;// Read the body into a buffer if it exists
&#9;let body: ArrayBuffer | null = null;
&#9;if (c.req.method !== "GET" &amp;&amp; c.req.method !== "HEAD") {
&#9;  body = await c.req.arrayBuffer();
&#9;}
  
&#9;// If the path is /.well-known return a 404
&#9;if (url.pathname.startsWith("/.well-known")) {
&#9;  return new Response(null, {
&#9;&#9;status: 404,
&#9;&#9;statusText: "Not Found",
&#9;&#9;headers: {
&#9;&#9;  "Content-Type": "text/plain",
&#9;&#9;},
&#9;  });
&#9;}
  
&#9;// Create the proxied request
&#9;const proxyRequest = new Request(targetUrl.toString(), {
&#9;  method: c.req.method,
&#9;  headers,
&#9;  body,
&#9;});
  
&#9;try {
&#9;  // Forward the request to API_BASE
&#9;  const response = await fetch(proxyRequest);
  
&#9;  // Create response with same status and headers
&#9;  const responseHeaders = new Headers(response.headers);
  
&#9;  // Return the proxied response
&#9;  return new Response(response.body, {
&#9;&#9;status: response.status,
&#9;&#9;statusText: response.statusText,
&#9;&#9;headers: responseHeaders,
&#9;  });
&#9;} catch (error) {
&#9;  console.error("Proxy request failed:", error);
&#9;  return c.text("Internal Server Error", 500);
&#9;}
  });</code></pre><p>Note that we&#8217;re adding an environment variable here: <code>VERCEL_URL</code>, to add this production, run</p><pre><code>npx wrangler secret put VERCEL_URL</code></pre><p>Save and deploy using</p><pre><code>npx wrangler deploy</code></pre><p>Reload your MCP server root site (https://my-mcp-server.remote-mcp.workers.dev for this tutorial), and now see the supabase/vercel starter!</p><h3>Supabase cookie auth</h3><p>The next stage is to add the Supabase Server Side Rendering (SSR) client. We need only need the client from <a href="https://supabase.com/docs/guides/auth/server-side/creating-a-client?queryGroups=framework&amp;framework=hono&amp;queryGroups=environment&amp;environment=server-client#create-a-client">the supabase docs</a> to do this. First install the required libraries:</p><pre><code>npm install @supabase/ssr @supabase/supabase-js</code></pre><p>Then add the client:</p><pre><code>import { createServerClient } from "@supabase/ssr";

export const getClient = (c: any) =&gt; {
    const supabase = createServerClient(
      c.env.SUPABASE_URL,
      c.env.SUPABASE_ANON_KEY,
      {
        cookies: {
          getAll() {
            const cookieHeader = c.req.raw.headers.get("Cookie");
            if (!cookieHeader) return [];
  
            return cookieHeader
              .split(";")
              .map((cookie: string) =&gt; {
                const [name, ...valueParts] = cookie.trim().split("=");
                return {
                  name: name.trim(),
                  value: valueParts.join("=").trim(),
                };
              })
              .filter(
                (cookie: { name: string; value: string }) =&gt;
                  cookie.name &amp;&amp; cookie.value
              );
          },
          setAll(cookiesToSet: { name: string; value: string }[]) {
            cookiesToSet.forEach(({ name, value }) =&gt; {
              c.header(
                "Set-Cookie",
                `${name}=${value}; Path=/; HttpOnly; Secure; SameSite=Lax`
              );
            });
          },
        },
      }
    );
    return supabase;
  };
  </code></pre><p>Then add the extra environment variable.</p><pre><code>npx wrangler secret put SUPABASE_URL</code></pre><pre><code><code>npx wrangler secret put SUPABASE_ANON_KEY</code></code></pre><p>Now can then utilise this in the <code>/authorised</code> endpoint. We replace the hardcode check with the supabase library to get the user info. If the user exists, then great we can continue to show the allow form. If the user is not present, then we want to  redirect the user to <code>/auth/login</code>.</p><pre><code>...
app.get("/authorize", async (c) =&gt; {
  const supabase = getClient(c);
  const { data: { user } } = await supabase.auth.getUser();

  const isLoggedIn = user !== null;
...
  if(!isLoggedIn){
     return c.redirect("/auth/login");
  }
...</code></pre><p>Thats it! Now when the client redirects the user to the <code>/authorize</code> endpoint, our server will check for the supabase cookie auth. If the auth is valid we can proceed to approve, otherwise we see a login screen! </p><h3>Providing the user in the MCP tools</h3><p>The final step in authentication is surfacing the user to the tools in the MCP server. This starts in the <code>/approve</code> endpoint. Recall that each OAuth session is mapped to a set encrypted props by the <code>completeAuthorization</code> function. We now want to utilise this, such that props point to the supabase user. We make the following changes</p><pre><code>...

app.post("/approve", async (c) =&gt; {
  const supabase = getClient(c);
  const { data: { user } } = await supabase.auth.getUser();
...
  const { redirectTo } = await.   c.env.OAUTH_PROVIDER.completeAuthorization({
    request: oauthReqInfo,
    userId: user?.id ?? ""&#9;,
    metadata: {
      label: user?.email ?? "",
    },
    scope: oauthReqInfo.scope,
    props: {
      userEmail: user?.email ?? "",
      userId: user?.id ?? "",
    },
  });
...</code></pre><p>We can access this through <code>this.props</code> in the MCP server. Here is an &#8220;whoami&#8221; tool as an example:</p><pre><code>this.server.tool("whoami", async () =&gt; ({
  content: [{ type: "text", text: this.props.userEmail }],
}));</code></pre><p>Again, save and deploy with </p><pre><code>npx wrangler deploy</code></pre><h3>Testing the auth </h3><p>First, you&#8217;ll need to disconnect and reconnect the server. <strong>This happens because the previous OAuth session is mapped to props with the test user.</strong> We need a new<strong> </strong>session which will map to our real email. To disconnect, navigate to the &#8220;manage connectors&#8221; section and hit disconnect from the menu.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!A9Jj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea93446-d807-40ff-b0f6-20918a516ae7_1888x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!A9Jj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea93446-d807-40ff-b0f6-20918a516ae7_1888x400.png 424w, https://substackcdn.com/image/fetch/$s_!A9Jj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea93446-d807-40ff-b0f6-20918a516ae7_1888x400.png 848w, https://substackcdn.com/image/fetch/$s_!A9Jj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea93446-d807-40ff-b0f6-20918a516ae7_1888x400.png 1272w, https://substackcdn.com/image/fetch/$s_!A9Jj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea93446-d807-40ff-b0f6-20918a516ae7_1888x400.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!A9Jj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea93446-d807-40ff-b0f6-20918a516ae7_1888x400.png" width="1456" height="308" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8ea93446-d807-40ff-b0f6-20918a516ae7_1888x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:308,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:79376,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea93446-d807-40ff-b0f6-20918a516ae7_1888x400.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!A9Jj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea93446-d807-40ff-b0f6-20918a516ae7_1888x400.png 424w, https://substackcdn.com/image/fetch/$s_!A9Jj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea93446-d807-40ff-b0f6-20918a516ae7_1888x400.png 848w, https://substackcdn.com/image/fetch/$s_!A9Jj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea93446-d807-40ff-b0f6-20918a516ae7_1888x400.png 1272w, https://substackcdn.com/image/fetch/$s_!A9Jj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ea93446-d807-40ff-b0f6-20918a516ae7_1888x400.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">The option to disconnect</figcaption></figure></div><p></p><p>Now click reconnect and you&#8217;ll be presented with the template login screen this time!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!T-di!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8a1ef3c-a02a-4c1f-8285-cb8953a407d7_994x968.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T-di!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8a1ef3c-a02a-4c1f-8285-cb8953a407d7_994x968.png 424w, https://substackcdn.com/image/fetch/$s_!T-di!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8a1ef3c-a02a-4c1f-8285-cb8953a407d7_994x968.png 848w, https://substackcdn.com/image/fetch/$s_!T-di!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8a1ef3c-a02a-4c1f-8285-cb8953a407d7_994x968.png 1272w, https://substackcdn.com/image/fetch/$s_!T-di!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8a1ef3c-a02a-4c1f-8285-cb8953a407d7_994x968.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!T-di!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8a1ef3c-a02a-4c1f-8285-cb8953a407d7_994x968.png" width="290" height="282.4144869215292" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8a1ef3c-a02a-4c1f-8285-cb8953a407d7_994x968.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:968,&quot;width&quot;:994,&quot;resizeWidth&quot;:290,&quot;bytes&quot;:71281,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8a1ef3c-a02a-4c1f-8285-cb8953a407d7_994x968.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!T-di!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8a1ef3c-a02a-4c1f-8285-cb8953a407d7_994x968.png 424w, https://substackcdn.com/image/fetch/$s_!T-di!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8a1ef3c-a02a-4c1f-8285-cb8953a407d7_994x968.png 848w, https://substackcdn.com/image/fetch/$s_!T-di!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8a1ef3c-a02a-4c1f-8285-cb8953a407d7_994x968.png 1272w, https://substackcdn.com/image/fetch/$s_!T-di!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8a1ef3c-a02a-4c1f-8285-cb8953a407d7_994x968.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Sign up/sign in, head back to Claude and then click reconnect again. (It&#8217;s nice to set up a redirect so that you don&#8217;t need to go back to Claude). After clicking connect this time you&#8217;ll be presented with the same approval screen:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6Eeg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4e0870d-add4-4dcf-9698-f19d122930b6_1038x1148.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6Eeg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4e0870d-add4-4dcf-9698-f19d122930b6_1038x1148.png 424w, https://substackcdn.com/image/fetch/$s_!6Eeg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4e0870d-add4-4dcf-9698-f19d122930b6_1038x1148.png 848w, https://substackcdn.com/image/fetch/$s_!6Eeg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4e0870d-add4-4dcf-9698-f19d122930b6_1038x1148.png 1272w, https://substackcdn.com/image/fetch/$s_!6Eeg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4e0870d-add4-4dcf-9698-f19d122930b6_1038x1148.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6Eeg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4e0870d-add4-4dcf-9698-f19d122930b6_1038x1148.png" width="288" height="318.5202312138728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a4e0870d-add4-4dcf-9698-f19d122930b6_1038x1148.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1148,&quot;width&quot;:1038,&quot;resizeWidth&quot;:288,&quot;bytes&quot;:112517,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4e0870d-add4-4dcf-9698-f19d122930b6_1038x1148.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6Eeg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4e0870d-add4-4dcf-9698-f19d122930b6_1038x1148.png 424w, https://substackcdn.com/image/fetch/$s_!6Eeg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4e0870d-add4-4dcf-9698-f19d122930b6_1038x1148.png 848w, https://substackcdn.com/image/fetch/$s_!6Eeg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4e0870d-add4-4dcf-9698-f19d122930b6_1038x1148.png 1272w, https://substackcdn.com/image/fetch/$s_!6Eeg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4e0870d-add4-4dcf-9698-f19d122930b6_1038x1148.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Click approve, and you&#8217;ll be back in Claude, fully authenticated. Now instruct Claude to call the whoami tool</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!F_I9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86a81655-7165-4131-844b-ad4f0813979e_1686x596.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F_I9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86a81655-7165-4131-844b-ad4f0813979e_1686x596.png 424w, https://substackcdn.com/image/fetch/$s_!F_I9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86a81655-7165-4131-844b-ad4f0813979e_1686x596.png 848w, https://substackcdn.com/image/fetch/$s_!F_I9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86a81655-7165-4131-844b-ad4f0813979e_1686x596.png 1272w, https://substackcdn.com/image/fetch/$s_!F_I9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86a81655-7165-4131-844b-ad4f0813979e_1686x596.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F_I9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86a81655-7165-4131-844b-ad4f0813979e_1686x596.png" width="1456" height="515" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86a81655-7165-4131-844b-ad4f0813979e_1686x596.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:515,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90300,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86a81655-7165-4131-844b-ad4f0813979e_1686x596.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!F_I9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86a81655-7165-4131-844b-ad4f0813979e_1686x596.png 424w, https://substackcdn.com/image/fetch/$s_!F_I9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86a81655-7165-4131-844b-ad4f0813979e_1686x596.png 848w, https://substackcdn.com/image/fetch/$s_!F_I9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86a81655-7165-4131-844b-ad4f0813979e_1686x596.png 1272w, https://substackcdn.com/image/fetch/$s_!F_I9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86a81655-7165-4131-844b-ad4f0813979e_1686x596.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Success! &#127881; We&#8217;re fully authenticated. </p><h1>Part 3: Monetisation </h1><p>The final part is making our tool a paid for product. We&#8217;re going to make use of <a href="https://github.com/stripe/agent-toolkit">Stripe&#8217;s Agent toolkit</a>. First you&#8217;ll need to set yourself up with a <a href="https://stripe.com/">Stripe account.</a> Then you&#8217;ll need to navigate to the product section to <a href="https://dashboard.stripe.com/products?active=true&amp;create=product&amp;source=product_list">create a new product &amp; price.</a> Enter a name and description.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!v8cN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F681d6f2f-c210-408b-baed-05d9327a8a54_1290x606.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!v8cN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F681d6f2f-c210-408b-baed-05d9327a8a54_1290x606.png 424w, https://substackcdn.com/image/fetch/$s_!v8cN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F681d6f2f-c210-408b-baed-05d9327a8a54_1290x606.png 848w, https://substackcdn.com/image/fetch/$s_!v8cN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F681d6f2f-c210-408b-baed-05d9327a8a54_1290x606.png 1272w, https://substackcdn.com/image/fetch/$s_!v8cN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F681d6f2f-c210-408b-baed-05d9327a8a54_1290x606.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!v8cN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F681d6f2f-c210-408b-baed-05d9327a8a54_1290x606.png" width="1290" height="606" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/681d6f2f-c210-408b-baed-05d9327a8a54_1290x606.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:606,&quot;width&quot;:1290,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66034,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F681d6f2f-c210-408b-baed-05d9327a8a54_1290x606.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!v8cN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F681d6f2f-c210-408b-baed-05d9327a8a54_1290x606.png 424w, https://substackcdn.com/image/fetch/$s_!v8cN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F681d6f2f-c210-408b-baed-05d9327a8a54_1290x606.png 848w, https://substackcdn.com/image/fetch/$s_!v8cN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F681d6f2f-c210-408b-baed-05d9327a8a54_1290x606.png 1272w, https://substackcdn.com/image/fetch/$s_!v8cN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F681d6f2f-c210-408b-baed-05d9327a8a54_1290x606.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Further down on the page, find the button &#8220;More pricing options&#8221; - click it.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oMKp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc529cf0c-6a08-4db2-bca2-a329d47b4e50_356x62.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oMKp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc529cf0c-6a08-4db2-bca2-a329d47b4e50_356x62.png 424w, https://substackcdn.com/image/fetch/$s_!oMKp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc529cf0c-6a08-4db2-bca2-a329d47b4e50_356x62.png 848w, https://substackcdn.com/image/fetch/$s_!oMKp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc529cf0c-6a08-4db2-bca2-a329d47b4e50_356x62.png 1272w, https://substackcdn.com/image/fetch/$s_!oMKp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc529cf0c-6a08-4db2-bca2-a329d47b4e50_356x62.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oMKp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc529cf0c-6a08-4db2-bca2-a329d47b4e50_356x62.png" width="356" height="62" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c529cf0c-6a08-4db2-bca2-a329d47b4e50_356x62.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:62,&quot;width&quot;:356,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11335,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc529cf0c-6a08-4db2-bca2-a329d47b4e50_356x62.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oMKp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc529cf0c-6a08-4db2-bca2-a329d47b4e50_356x62.png 424w, https://substackcdn.com/image/fetch/$s_!oMKp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc529cf0c-6a08-4db2-bca2-a329d47b4e50_356x62.png 848w, https://substackcdn.com/image/fetch/$s_!oMKp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc529cf0c-6a08-4db2-bca2-a329d47b4e50_356x62.png 1272w, https://substackcdn.com/image/fetch/$s_!oMKp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc529cf0c-6a08-4db2-bca2-a329d47b4e50_356x62.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Then update the pricing model to &#8220;Usage-based&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Kuyj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b3640af-2116-4556-a27b-c9d7d66d0d53_1228x628.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Kuyj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b3640af-2116-4556-a27b-c9d7d66d0d53_1228x628.png 424w, https://substackcdn.com/image/fetch/$s_!Kuyj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b3640af-2116-4556-a27b-c9d7d66d0d53_1228x628.png 848w, https://substackcdn.com/image/fetch/$s_!Kuyj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b3640af-2116-4556-a27b-c9d7d66d0d53_1228x628.png 1272w, https://substackcdn.com/image/fetch/$s_!Kuyj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b3640af-2116-4556-a27b-c9d7d66d0d53_1228x628.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Kuyj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b3640af-2116-4556-a27b-c9d7d66d0d53_1228x628.png" width="1228" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4b3640af-2116-4556-a27b-c9d7d66d0d53_1228x628.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1228,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:114285,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b3640af-2116-4556-a27b-c9d7d66d0d53_1228x628.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Kuyj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b3640af-2116-4556-a27b-c9d7d66d0d53_1228x628.png 424w, https://substackcdn.com/image/fetch/$s_!Kuyj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b3640af-2116-4556-a27b-c9d7d66d0d53_1228x628.png 848w, https://substackcdn.com/image/fetch/$s_!Kuyj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b3640af-2116-4556-a27b-c9d7d66d0d53_1228x628.png 1272w, https://substackcdn.com/image/fetch/$s_!Kuyj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b3640af-2116-4556-a27b-c9d7d66d0d53_1228x628.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Then set a price </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6yV8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55503a3-3d03-45d3-82e3-298f3c385071_1260x160.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6yV8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55503a3-3d03-45d3-82e3-298f3c385071_1260x160.png 424w, https://substackcdn.com/image/fetch/$s_!6yV8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55503a3-3d03-45d3-82e3-298f3c385071_1260x160.png 848w, https://substackcdn.com/image/fetch/$s_!6yV8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55503a3-3d03-45d3-82e3-298f3c385071_1260x160.png 1272w, https://substackcdn.com/image/fetch/$s_!6yV8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55503a3-3d03-45d3-82e3-298f3c385071_1260x160.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6yV8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55503a3-3d03-45d3-82e3-298f3c385071_1260x160.png" width="1260" height="160" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d55503a3-3d03-45d3-82e3-298f3c385071_1260x160.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:160,&quot;width&quot;:1260,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:21983,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55503a3-3d03-45d3-82e3-298f3c385071_1260x160.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6yV8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55503a3-3d03-45d3-82e3-298f3c385071_1260x160.png 424w, https://substackcdn.com/image/fetch/$s_!6yV8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55503a3-3d03-45d3-82e3-298f3c385071_1260x160.png 848w, https://substackcdn.com/image/fetch/$s_!6yV8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55503a3-3d03-45d3-82e3-298f3c385071_1260x160.png 1272w, https://substackcdn.com/image/fetch/$s_!6yV8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55503a3-3d03-45d3-82e3-298f3c385071_1260x160.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Now create a &#8220;meter&#8221;. This is the part of Stripe that will track the usage of the tool, and charge the user at the end of the billing period.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DMLQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdc48c2c-8fef-40b1-bd6f-7835c417b0e9_1214x262.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DMLQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdc48c2c-8fef-40b1-bd6f-7835c417b0e9_1214x262.png 424w, https://substackcdn.com/image/fetch/$s_!DMLQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdc48c2c-8fef-40b1-bd6f-7835c417b0e9_1214x262.png 848w, https://substackcdn.com/image/fetch/$s_!DMLQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdc48c2c-8fef-40b1-bd6f-7835c417b0e9_1214x262.png 1272w, https://substackcdn.com/image/fetch/$s_!DMLQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdc48c2c-8fef-40b1-bd6f-7835c417b0e9_1214x262.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DMLQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdc48c2c-8fef-40b1-bd6f-7835c417b0e9_1214x262.png" width="1214" height="262" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fdc48c2c-8fef-40b1-bd6f-7835c417b0e9_1214x262.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:262,&quot;width&quot;:1214,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:39166,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdc48c2c-8fef-40b1-bd6f-7835c417b0e9_1214x262.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DMLQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdc48c2c-8fef-40b1-bd6f-7835c417b0e9_1214x262.png 424w, https://substackcdn.com/image/fetch/$s_!DMLQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdc48c2c-8fef-40b1-bd6f-7835c417b0e9_1214x262.png 848w, https://substackcdn.com/image/fetch/$s_!DMLQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdc48c2c-8fef-40b1-bd6f-7835c417b0e9_1214x262.png 1272w, https://substackcdn.com/image/fetch/$s_!DMLQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdc48c2c-8fef-40b1-bd6f-7835c417b0e9_1214x262.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Give it a name you&#8217;ll remember as you&#8217;ll need it later.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cto2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F084e75dc-b75e-426a-aeed-36183932eb9e_1258x536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cto2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F084e75dc-b75e-426a-aeed-36183932eb9e_1258x536.png 424w, https://substackcdn.com/image/fetch/$s_!cto2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F084e75dc-b75e-426a-aeed-36183932eb9e_1258x536.png 848w, https://substackcdn.com/image/fetch/$s_!cto2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F084e75dc-b75e-426a-aeed-36183932eb9e_1258x536.png 1272w, https://substackcdn.com/image/fetch/$s_!cto2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F084e75dc-b75e-426a-aeed-36183932eb9e_1258x536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cto2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F084e75dc-b75e-426a-aeed-36183932eb9e_1258x536.png" width="1258" height="536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/084e75dc-b75e-426a-aeed-36183932eb9e_1258x536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:536,&quot;width&quot;:1258,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:78899,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F084e75dc-b75e-426a-aeed-36183932eb9e_1258x536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cto2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F084e75dc-b75e-426a-aeed-36183932eb9e_1258x536.png 424w, https://substackcdn.com/image/fetch/$s_!cto2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F084e75dc-b75e-426a-aeed-36183932eb9e_1258x536.png 848w, https://substackcdn.com/image/fetch/$s_!cto2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F084e75dc-b75e-426a-aeed-36183932eb9e_1258x536.png 1272w, https://substackcdn.com/image/fetch/$s_!cto2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F084e75dc-b75e-426a-aeed-36183932eb9e_1258x536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Next we want to find the price_id for the product and pricing model we just created. This is visible on the product list, click the 3 dot menu on the product/price we created and select &#8220;Copy price ID&#8221; - record this for later.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!O0-r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b52185-88e5-440f-a5cd-7a1bf0abad19_874x442.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!O0-r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b52185-88e5-440f-a5cd-7a1bf0abad19_874x442.png 424w, https://substackcdn.com/image/fetch/$s_!O0-r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b52185-88e5-440f-a5cd-7a1bf0abad19_874x442.png 848w, https://substackcdn.com/image/fetch/$s_!O0-r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b52185-88e5-440f-a5cd-7a1bf0abad19_874x442.png 1272w, https://substackcdn.com/image/fetch/$s_!O0-r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b52185-88e5-440f-a5cd-7a1bf0abad19_874x442.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!O0-r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b52185-88e5-440f-a5cd-7a1bf0abad19_874x442.png" width="874" height="442" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07b52185-88e5-440f-a5cd-7a1bf0abad19_874x442.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:442,&quot;width&quot;:874,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:44372,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b52185-88e5-440f-a5cd-7a1bf0abad19_874x442.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!O0-r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b52185-88e5-440f-a5cd-7a1bf0abad19_874x442.png 424w, https://substackcdn.com/image/fetch/$s_!O0-r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b52185-88e5-440f-a5cd-7a1bf0abad19_874x442.png 848w, https://substackcdn.com/image/fetch/$s_!O0-r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b52185-88e5-440f-a5cd-7a1bf0abad19_874x442.png 1272w, https://substackcdn.com/image/fetch/$s_!O0-r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07b52185-88e5-440f-a5cd-7a1bf0abad19_874x442.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>The last part is to generate a secret API key. This can be done on the <a href="https://dashboard.stripe.com/apikeys">developer &#8594; api key section</a>. Record this key securely </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!u4zT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b11e37a-5ebd-4591-8052-e0bb566703ea_348x90.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u4zT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b11e37a-5ebd-4591-8052-e0bb566703ea_348x90.png 424w, https://substackcdn.com/image/fetch/$s_!u4zT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b11e37a-5ebd-4591-8052-e0bb566703ea_348x90.png 848w, https://substackcdn.com/image/fetch/$s_!u4zT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b11e37a-5ebd-4591-8052-e0bb566703ea_348x90.png 1272w, https://substackcdn.com/image/fetch/$s_!u4zT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b11e37a-5ebd-4591-8052-e0bb566703ea_348x90.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!u4zT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b11e37a-5ebd-4591-8052-e0bb566703ea_348x90.png" width="348" height="90" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b11e37a-5ebd-4591-8052-e0bb566703ea_348x90.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:90,&quot;width&quot;:348,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:12518,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b11e37a-5ebd-4591-8052-e0bb566703ea_348x90.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!u4zT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b11e37a-5ebd-4591-8052-e0bb566703ea_348x90.png 424w, https://substackcdn.com/image/fetch/$s_!u4zT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b11e37a-5ebd-4591-8052-e0bb566703ea_348x90.png 848w, https://substackcdn.com/image/fetch/$s_!u4zT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b11e37a-5ebd-4591-8052-e0bb566703ea_348x90.png 1272w, https://substackcdn.com/image/fetch/$s_!u4zT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b11e37a-5ebd-4591-8052-e0bb566703ea_348x90.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Thats all we need set up in Stripe. Next up is integrating into our MCP server. First install the Stripe agent toolkit</p><pre><code>npm install @stripe/agent-toolkit</code></pre><p>Next import the <code>experimental_PaidMcpAgent</code> from the library.</p><pre><code>import {
  experimental_PaidMcpAgent as PaidMcpAgent,
} from '@stripe/agent-toolkit/cloudflare';</code></pre><p>Now replace the <code>McpAgent</code> with <code>PaidMcpAgent</code></p><pre><code>export class MyMCP extends PaidMcpAgent {</code></pre><p>To make a tool paid, simply swap out <code>this.server.tool</code> with <code>this.paidTool</code>. The paid tool handler requires some configuration:</p><pre><code>this.paidTool("add","Add two numbers", 
  { a: z.number(), b: z.number() },
  async ({ a, b }) =&gt; ({
    content: [{ type: "text", text: String(a + b) }],
  }),
  {
    checkout: {
      success_url: 'https://my-mcp-server.remote-mcp.workers.dev',
      line_items: [
        {
&#9;  price: this.env.PRICE_ID,
&#9;},
       ],
       mode: 'subscription',
     },
     meterEvent: this.env.METER,
     paymentReason: 'We charge 30p per tool call',
  });</code></pre><p>Pay attention to the two environment variables we&#8217;ve added, they correspond to the <code>meter</code> and <code>price_id</code> we created in stripe earlier. Add them using wrangler:</p><pre><code>npx wrangler secret put METER</code></pre><pre><code><code>npx wrangler secret put PRICE_ID</code></code></pre><p>You&#8217;ll also need to add your Stripe API key from earlier.</p><pre><code><code>npx wrangler secret put STRIPE_SECRET_KEY</code></code></pre><p>Then finally, deploy it all </p><pre><code><code>npx wrangler deploy</code></code></pre><h3>Testing out the final version</h3><p>Now head back to Claude, make sure you&#8217;re authenticated, and ask Claude to use the <code>add</code> tool again:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FIAh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435d4dfd-d203-4df2-8885-01f4ebd9359b_1560x362.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FIAh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435d4dfd-d203-4df2-8885-01f4ebd9359b_1560x362.png 424w, https://substackcdn.com/image/fetch/$s_!FIAh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435d4dfd-d203-4df2-8885-01f4ebd9359b_1560x362.png 848w, https://substackcdn.com/image/fetch/$s_!FIAh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435d4dfd-d203-4df2-8885-01f4ebd9359b_1560x362.png 1272w, https://substackcdn.com/image/fetch/$s_!FIAh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435d4dfd-d203-4df2-8885-01f4ebd9359b_1560x362.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FIAh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435d4dfd-d203-4df2-8885-01f4ebd9359b_1560x362.png" width="1456" height="338" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/435d4dfd-d203-4df2-8885-01f4ebd9359b_1560x362.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:338,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:47119,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435d4dfd-d203-4df2-8885-01f4ebd9359b_1560x362.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FIAh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435d4dfd-d203-4df2-8885-01f4ebd9359b_1560x362.png 424w, https://substackcdn.com/image/fetch/$s_!FIAh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435d4dfd-d203-4df2-8885-01f4ebd9359b_1560x362.png 848w, https://substackcdn.com/image/fetch/$s_!FIAh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435d4dfd-d203-4df2-8885-01f4ebd9359b_1560x362.png 1272w, https://substackcdn.com/image/fetch/$s_!FIAh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435d4dfd-d203-4df2-8885-01f4ebd9359b_1560x362.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>This results in a cheeky response from Claude!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U-1H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d408906-a449-4a1a-bc2a-4ca0456fcc38_1676x540.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U-1H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d408906-a449-4a1a-bc2a-4ca0456fcc38_1676x540.png 424w, https://substackcdn.com/image/fetch/$s_!U-1H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d408906-a449-4a1a-bc2a-4ca0456fcc38_1676x540.png 848w, https://substackcdn.com/image/fetch/$s_!U-1H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d408906-a449-4a1a-bc2a-4ca0456fcc38_1676x540.png 1272w, https://substackcdn.com/image/fetch/$s_!U-1H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d408906-a449-4a1a-bc2a-4ca0456fcc38_1676x540.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U-1H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d408906-a449-4a1a-bc2a-4ca0456fcc38_1676x540.png" width="1456" height="469" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d408906-a449-4a1a-bc2a-4ca0456fcc38_1676x540.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:469,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:114552,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d408906-a449-4a1a-bc2a-4ca0456fcc38_1676x540.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!U-1H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d408906-a449-4a1a-bc2a-4ca0456fcc38_1676x540.png 424w, https://substackcdn.com/image/fetch/$s_!U-1H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d408906-a449-4a1a-bc2a-4ca0456fcc38_1676x540.png 848w, https://substackcdn.com/image/fetch/$s_!U-1H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d408906-a449-4a1a-bc2a-4ca0456fcc38_1676x540.png 1272w, https://substackcdn.com/image/fetch/$s_!U-1H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d408906-a449-4a1a-bc2a-4ca0456fcc38_1676x540.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We&#8217;ll need to ask Claude to give us that payment URL:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rJpI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feede9d0a-66ac-411e-8a1d-3ea7057bf2d9_1612x776.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rJpI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feede9d0a-66ac-411e-8a1d-3ea7057bf2d9_1612x776.png 424w, https://substackcdn.com/image/fetch/$s_!rJpI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feede9d0a-66ac-411e-8a1d-3ea7057bf2d9_1612x776.png 848w, https://substackcdn.com/image/fetch/$s_!rJpI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feede9d0a-66ac-411e-8a1d-3ea7057bf2d9_1612x776.png 1272w, https://substackcdn.com/image/fetch/$s_!rJpI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feede9d0a-66ac-411e-8a1d-3ea7057bf2d9_1612x776.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rJpI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feede9d0a-66ac-411e-8a1d-3ea7057bf2d9_1612x776.png" width="1456" height="701" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eede9d0a-66ac-411e-8a1d-3ea7057bf2d9_1612x776.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:701,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:280364,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feede9d0a-66ac-411e-8a1d-3ea7057bf2d9_1612x776.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rJpI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feede9d0a-66ac-411e-8a1d-3ea7057bf2d9_1612x776.png 424w, https://substackcdn.com/image/fetch/$s_!rJpI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feede9d0a-66ac-411e-8a1d-3ea7057bf2d9_1612x776.png 848w, https://substackcdn.com/image/fetch/$s_!rJpI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feede9d0a-66ac-411e-8a1d-3ea7057bf2d9_1612x776.png 1272w, https://substackcdn.com/image/fetch/$s_!rJpI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feede9d0a-66ac-411e-8a1d-3ea7057bf2d9_1612x776.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Which takes to the Stripe Checkout payment page</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CuY1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bb22489-3dc6-4fff-8e18-b6834167eba4_1912x798.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CuY1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bb22489-3dc6-4fff-8e18-b6834167eba4_1912x798.png 424w, https://substackcdn.com/image/fetch/$s_!CuY1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bb22489-3dc6-4fff-8e18-b6834167eba4_1912x798.png 848w, https://substackcdn.com/image/fetch/$s_!CuY1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bb22489-3dc6-4fff-8e18-b6834167eba4_1912x798.png 1272w, https://substackcdn.com/image/fetch/$s_!CuY1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bb22489-3dc6-4fff-8e18-b6834167eba4_1912x798.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CuY1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bb22489-3dc6-4fff-8e18-b6834167eba4_1912x798.png" width="1456" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6bb22489-3dc6-4fff-8e18-b6834167eba4_1912x798.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:608,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:169462,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bb22489-3dc6-4fff-8e18-b6834167eba4_1912x798.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CuY1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bb22489-3dc6-4fff-8e18-b6834167eba4_1912x798.png 424w, https://substackcdn.com/image/fetch/$s_!CuY1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bb22489-3dc6-4fff-8e18-b6834167eba4_1912x798.png 848w, https://substackcdn.com/image/fetch/$s_!CuY1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bb22489-3dc6-4fff-8e18-b6834167eba4_1912x798.png 1272w, https://substackcdn.com/image/fetch/$s_!CuY1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bb22489-3dc6-4fff-8e18-b6834167eba4_1912x798.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Enter you card details (you can use 4242 4242 4242 4242 in test mode, with any CVC/expiry/postcode) and hit Pay. Then head back to Claude and ask it to try again:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ryld!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55e8730e-05be-4b55-902e-4aca7afe71a3_1678x592.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ryld!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55e8730e-05be-4b55-902e-4aca7afe71a3_1678x592.png 424w, https://substackcdn.com/image/fetch/$s_!ryld!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55e8730e-05be-4b55-902e-4aca7afe71a3_1678x592.png 848w, https://substackcdn.com/image/fetch/$s_!ryld!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55e8730e-05be-4b55-902e-4aca7afe71a3_1678x592.png 1272w, https://substackcdn.com/image/fetch/$s_!ryld!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55e8730e-05be-4b55-902e-4aca7afe71a3_1678x592.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ryld!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55e8730e-05be-4b55-902e-4aca7afe71a3_1678x592.png" width="1456" height="514" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55e8730e-05be-4b55-902e-4aca7afe71a3_1678x592.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:514,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:84356,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/168936953?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55e8730e-05be-4b55-902e-4aca7afe71a3_1678x592.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ryld!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55e8730e-05be-4b55-902e-4aca7afe71a3_1678x592.png 424w, https://substackcdn.com/image/fetch/$s_!ryld!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55e8730e-05be-4b55-902e-4aca7afe71a3_1678x592.png 848w, https://substackcdn.com/image/fetch/$s_!ryld!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55e8730e-05be-4b55-902e-4aca7afe71a3_1678x592.png 1272w, https://substackcdn.com/image/fetch/$s_!ryld!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55e8730e-05be-4b55-902e-4aca7afe71a3_1678x592.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#127881; And thats a wrap! Your Remote MCP server is ready to go. A world of opportunity  awaits! </p><h3>Ideas for next steps </h3><ul><li><p>Use the Vercel/supabase setup to create an API side that the website can consume</p></li><li><p>Tools are able to access the full supabase client, so you can directly fetch and manipulate data </p></li><li><p>Add API key authorisation to the MCP server so OAuth is not the only options</p></li><li><p>Add your Remote MCP server to <a href="https://github.com/jaw9c/awesome-remote-mcp-servers">awesome-remote-mcp-servers</a></p></li><li><p>Smoothen out the OAuth flow</p><ul><li><p>either remove the accept screen entirely (no click auth) or adjust it so it makes sense for the logged in user</p></li><li><p>If the user is creating an account or logging in, then redirecting them back to the accept screen</p></li></ul></li></ul><h2>Resources </h2><ul><li><p><a href="https://github.com/getsentry/sentry-mcp">Sentry MCP server on Github</a></p><ul><li><p>An amazing resource, implemented using Cloudflare </p></li></ul></li><li><p><a href="https://remote-mcp.com/">Remote MCP Directory</a></p><ul><li><p>A list tracking the popularity of Remote MCP servers</p></li></ul></li><li><p><a href="https://blog.cloudflare.com/remote-model-context-protocol-servers-mcp/">The OG Cloudflare blog post</a></p><ul><li><p>The tutorial that kickstarted Remote MCP</p></li></ul></li><li><p><a href="https://developers.cloudflare.com/agents/model-context-protocol/">Cloudflare MCP Docs</a></p><ul><li><p>The full Cloudflare documentation on Remote MCP servers</p></li></ul></li><li><p><a href="https://developers.cloudflare.com/workers/">Cloudflare Worker Docs</a></p><ul><li><p>For interested readers, the infrastructure that makes all of this possible</p></li></ul></li><li><p><a href="https://getdialer.app/">Dialer</a></p><ul><li><p>An example of a live, productised version of this blog post.</p></li></ul></li></ul><h2>Notes</h2><ul><li><p>It would be cleaner to package this up using only Cloudflare, it was just quicker for me as I&#8217;m used to Supabase/Vercel web apps. </p></li><li><p>It&#8217;s feasible to use Vercel/Better Auth, so long as you host your own Reddis DB</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.remote-mcp.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Remote MCP ! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The "S" in Tool Calling stands for Security]]></title><description><![CDATA[MCP Security Hysteria: Why the Real Problem Isn't New]]></description><link>https://blog.remote-mcp.com/p/the-s-in-tool-calling-stands-for</link><guid isPermaLink="false">https://blog.remote-mcp.com/p/the-s-in-tool-calling-stands-for</guid><dc:creator><![CDATA[Josh Warwick]]></dc:creator><pubDate>Wed, 09 Jul 2025 17:12:59 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b9581701-3d6e-400e-b5f3-52d13ad5e73f_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The security community has been buzzing about vulnerabilities in the Model Context Protocol (MCP) since late 2024, with researchers uncovering tool poisoning attacks, content injection vulnerabilities, and critical remote code execution flaws. Headlines scream about the "S in MCP standing for security" while new scanning tools emerge to combat these &#8220;threats&#8221;. But here's the uncomfortable truth: <strong>MCP isn't the problem, it's just the latest stage for an old show</strong>.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.remote-mcp.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Remote MCP ! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The fundamental security issues plaguing MCP are repackaged versions of tool calling vulnerabilities that have existed since OpenAI introduced function calling in June 2023. MCP's rapid adoption and developer-friendly architecture have simply <strong>accelerated the attack surface</strong>, making these familiar problems more <strong>visible and impactful</strong>. The real security crisis isn't MCP-specific, it's the inherent impossibility of secure tool calling in current LLM architectures.</p><h2><strong>The pre-MCP security landscape was already broken</strong></h2><p>Long before MCP became a household name in developer circles, LLM tool calling systems were riddled with the same fundamental vulnerabilities now making headlines. The timeline tells the story clearly:</p><p><strong>March 2023</strong>: <a href="https://openai.com/index/chatgpt-plugins/">ChatGPT plugins launched</a> with immediate security concerns, including OAuth redirection manipulation and plugin installation bypasses discovered by Salt Labs. </p><p><strong>April 2023</strong>: Johann Rehberger reported <a href="https://www.robustintelligence.com/blog-posts/prompt-injection-attack-on-gpt-4">data exfiltration vulnerabilities through markdown image injection</a>, demonstrating complete conversation history theft through simple image tags. </p><p><strong>June 2023</strong>: OpenAI's function calling API launched with documented security gaps, including insufficient parameter validation and lack of execution sandboxing.</p><p>The core problem remained unchanged: LLMs cannot distinguish between trusted developer instructions and untrusted user input. When Google Bard Extensions launched in September 2023, researchers immediately demonstrated exfiltration of private Google Drive documents and Gmail contents using the same prompt injection techniques.</p><p>The academic community recognised this crisis early. By July 2023, <a href="https://genai.owasp.org/llmrisk/llm01-prompt-injection/">OWASP ranked prompt injection as the #1 security risk</a> in their inaugural "Top 10 for Large Language Model Applications." The vulnerability wasn't just theoretical, it was actively being exploited across every major LLM provider's tool calling implementations.</p><h2><strong>MCP amplifies existing vulnerabilities rather than creating new ones</strong></h2><p>The security issues dominating MCP headlines are textbook examples of familiar vulnerabilities repackaged for an AI-mediated world. Take <a href="https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks">tool poisoning attacks</a>, where malicious instructions embedded in tool descriptions manipulate AI behaviour. </p><p>The <a href="https://www.generalanalysis.com/blog/supabase-mcp-blog">Supabase MCP blog vulnerability</a> exemplifies this pattern. Researchers discovered that malicious content in blog posts could manipulate the AI assistant through indirect prompt injection, leading to data exfiltration and unauthorised actions. This attack vector was already well-documented in <a href="https://arxiv.org/abs/2302.12173">Kai Greshake's February 2023 research</a> on "Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection."</p><p>The <a href="https://equixly.com/blog/2025/03/29/mcp-server-new-security-nightmare/">command injection vulnerabilities found in over 43% of MCP servers</a> headlines represent another telling example. These aren't MCP-specific flaws, they're the same <code>os.system()</code> vulnerabilities that have existed in software for decades. MCP simply provides a new pathway for attackers to trigger these familiar bugs through AI-mediated parameter construction.</p><p>Even MCP's most sophisticated attacks rely on established techniques. The "rug pull" attacks where trusted tools dynamically change behavior? That's a supply chain attack dressed up in new clothes. Cross-server tool shadowing? A confused deputy attack where the AI agent becomes the unwitting accomplice.</p><h2><strong>The fundamental architectural problem remains unsolved</strong></h2><p>The security crisis isn't about MCP's implementation, it's about the impossible task of creating secure tool calling in systems where all input is processed equally. Current LLM architectures cannot maintain separate security contexts within the same input stream. System prompts, user input, tool descriptions, and tool results get combined into a single token stream.</p><p>This architectural limitation makes traditional security approaches ineffective. Unlike SQL injection where prepared statements provide a clear solution, prompt injection exploits the very mechanism that makes LLMs useful: their ability to process and respond to natural language instructions. <strong>As <a href="https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/">Simon Willison noted in his analysis of the "lethal trifecta,"</a> any system combining access to private data, exposure to untrusted content, and external communication ability is fundamentally vulnerable</strong>.</p><p>Industry responses have largely involved throwing more AI at the problem, with mixed results. <a href="https://www.amitysolutions.com/blog/gpt4o-mini-instruction-hierarchy">OpenAI's instruction hierarchy approach</a> showed only 63% improvement in defence against system prompt extraction, and researchers continue to demonstrate bypasses. <a href="https://www.bankinfosecurity.com/deepminds-camel-aims-to-fight-prompt-injection-attacks-a-28049">Google's CaMeL framework</a> represents the most promising architectural innovation, using separate LLMs for trusted and untrusted content, but even this approach reduces functionality while imposing significant computational overhead.</p><p>The reality is that these mitigation attempts are trying to solve an unsolvable problem within current LLM architectures. The models themselves cannot reliably distinguish between legitimate instructions and malicious ones when both are presented in natural language.</p><h2><strong>Why developers find this particularly terrifying</strong></h2><p>The MCP security crisis represents a fundamental paradigm shift that challenges everything developers know about building secure systems. Traditional software security operates on predictable, deterministic principles: the same input produces the same output, vulnerabilities can be reproduced consistently, and static analysis tools can identify most issues.</p><p>MCP introduces a non-deterministic security model where the same potential exploit might succeed or fail based on conversation history, model state, and even slight variations in how the AI interprets context. <a href="https://arxiv.org/html/2408.04667v5">Research shows that even with temperature=0</a>, LLMs exhibit accuracy variations up to 15% across naturally occurring runs, making vulnerability reproduction unreliable.</p><p><strong>This resembles social engineering more than technical exploitation</strong>. As <a href="https://www.ibm.com/think/topics/prompt-injection">IBM's analysis notes</a>, prompt injections "use plain language to trick LLMs into doing things that they otherwise wouldn't." For developers accustomed to clearly defined code-based vulnerabilities, this feels like an entirely foreign threat model.</p><p>The psychological impact is amplified by the scale of potential consequences. A single malicious MCP server can compromise all connected clients through cross-server tool shadowing. Traditional security boundaries become meaningless when an AI agent can be convinced to execute arbitrary actions through persuasive language rather than technical exploitation.</p><h2><strong>MCP's real crime: scaling the attack surface</strong></h2><p>MCP's primary security contribution isn't introducing new vulnerabilities, it's democratising and scaling existing ones. The protocol's standardised approach to tool calling has created an ecosystem where a single compromise can have cascading effects across multiple systems.</p><p>The numbers tell the story: <a href="https://www.trendmicro.com/en_us/research/25/f/why-a-classic-mcp-server-vulnerability-can-undermine-your-entire-ai-agent.html">Trend Micro's discovery of SQL injection</a> in Anthropic's reference SQLite MCP server impacted over 5,000 downstream implementations before the repository was archived. This represents a supply chain attack scaled through developer convenience and ecosystem network effects.</p><p><strong>The <a href="https://thehackernews.com/2025/07/critical-vulnerability-in-anthropics.html">CVE-2025-49596 remote code execution vulnerability</a> in MCP Inspector demonstrates this scaling effect</strong>. What started as a simple lack of authentication combined with a CSRF vulnerability became a critical security issue because of MCP's widespread adoption. Malicious websites could execute arbitrary commands on any developer machine running the tool on its default port.</p><p>The <a href="https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks">tool poisoning attacks documented by Invariant Labs</a> show how MCP's architecture amplifies the tool calling issue. Malicious instructions embedded in tool descriptions affect every AI agent that loads the compromised server. This isn't a novel attack vector, it's prompt injection scaled through protocol standardisation.</p><h2><strong>The industry's response reveals the deeper problem</strong></h2><p>The emergence of security scanning tools like MCP-Scan, while valuable, treats the symptoms rather than the disease. These tools can detect known attack patterns but can't address the fundamental impossibility of secure tool calling in current LLM architectures.</p><p><strong>Even the most sophisticated industry responses acknowledge their limitations</strong>. <a href="https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/computer-use-tool">Anthropic's multi-layered defense approach</a> explicitly warns that vulnerabilities like prompt injection "may persist across frontier AI systems." Their Computer Use feature specifically advises users to "take precautions to isolate Claude from sensitive data"an admission that the problem can't be solved through technical means alone.</p><p>The research community's focus on <a href="https://github.com/tldrsec/prompt-injection-defenses">defense-in-depth strategies</a> and assuming compromise represents a tacit acknowledgment that prevention may be impossible. When <a href="https://simonwillison.net/2025/Apr/9/mcp-prompt-injection/">Simon Willison advocates</a> for treating these systems as "inherently vulnerable to input manipulation," he's describing the fundamental architectural limitation that makes MCP security challenging.</p><h2><strong>The path forward requires honesty about trade-offs</strong></h2><p>The MCP security crisis serves as a crucial wake-up call, it forces the industry to confront the inherent security limitations of current LLM architectures. The protocol's rapid adoption and developer-friendly design have simply made these limitations more visible and impactful.</p><p><strong>Rather than viewing MCP as a security failure, we should recognise it as an acceleration of an existing problem that demands architectural innovation</strong>.</p><p>The developer community's anxiety about MCP security reflects a deeper challenge: transitioning from predictable, deterministic security models to probabilistic, context-dependent ones. This transition requires new security frameworks that account for the dynamic, non-deterministic nature of AI-mediated interactions.</p><h2><strong>Conclusion: Focus on the real enemy</strong></h2><p>The headline-grabbing MCP vulnerabilities are symptoms of a deeper architectural problem that predates the protocol by over a year. Tool calling security issues have existed since OpenAI's function calling API launched in June 2023, manifesting across every major LLM provider's implementations.</p><p>MCP's contribution isn't creating new attack vectors, it's scaling existing ones through standardisation and ecosystem adoption. The tool poisoning attacks, content injection vulnerabilities, and command injection flaws making headlines are repackaged versions of familiar security problems, made more impactful by MCP's rapid adoption.</p><p><strong>The real security crisis isn't MCP-specific; it's the fundamental impossibility of secure tool calling in current LLM architectures</strong>. Until the industry develops new approaches that can reliably distinguish between trusted instructions and untrusted input, we'll continue seeing the same vulnerabilities repackaged in new protocols.</p><p>The focus should shift from treating MCP as a security pariah to recognising it as a catalyst for necessary architectural innovation. The protocol's security challenges force us to confront the limitations of current LLM systems and develop new security models appropriate for the age of AI agents.</p><p>Only by acknowledging that the problem runs deeper than any single protocol can we begin building the secure AI systems that developers and users deserve.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.remote-mcp.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Remote MCP ! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Bootstrapping Remote MCP Discoverability ]]></title><description><![CDATA[Let's recap the launches of the last week and discover Remote MCP servers using a Remote MCP server]]></description><link>https://blog.remote-mcp.com/p/bootstrapping-remote-mcp-discoverability</link><guid isPermaLink="false">https://blog.remote-mcp.com/p/bootstrapping-remote-mcp-discoverability</guid><dc:creator><![CDATA[Josh Warwick]]></dc:creator><pubDate>Mon, 23 Jun 2025 17:33:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nAdr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bb5f4a2-0da0-4241-b9bb-0d22d2e4a5d5_1932x1678.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>ElevenLabs release Remote MCP support </h2><p>Voice AI company ElevenLabs <a href="https://elevenlabs.io/docs/conversational-ai/customization/mcp">added MCP server support</a> into their conversational AI product. Ever wanted to reorganise your Jira board in the car on the way to work? Now you can! </p><p>ElevenLabs is supporting SSE transport and header authentication at the launch, with streaming http and OAuth support coming soon. </p><p>The approach taken to the tool approval is customisable, allowing you the option to control when tools are called. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.remote-mcp.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Remote MCP ! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nAdr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bb5f4a2-0da0-4241-b9bb-0d22d2e4a5d5_1932x1678.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nAdr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bb5f4a2-0da0-4241-b9bb-0d22d2e4a5d5_1932x1678.png 424w, https://substackcdn.com/image/fetch/$s_!nAdr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bb5f4a2-0da0-4241-b9bb-0d22d2e4a5d5_1932x1678.png 848w, https://substackcdn.com/image/fetch/$s_!nAdr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bb5f4a2-0da0-4241-b9bb-0d22d2e4a5d5_1932x1678.png 1272w, https://substackcdn.com/image/fetch/$s_!nAdr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bb5f4a2-0da0-4241-b9bb-0d22d2e4a5d5_1932x1678.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nAdr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bb5f4a2-0da0-4241-b9bb-0d22d2e4a5d5_1932x1678.png" width="1456" height="1265" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5bb5f4a2-0da0-4241-b9bb-0d22d2e4a5d5_1932x1678.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1265,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Tool approval mode settings&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Tool approval mode settings" title="Tool approval mode settings" srcset="https://substackcdn.com/image/fetch/$s_!nAdr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bb5f4a2-0da0-4241-b9bb-0d22d2e4a5d5_1932x1678.png 424w, https://substackcdn.com/image/fetch/$s_!nAdr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bb5f4a2-0da0-4241-b9bb-0d22d2e4a5d5_1932x1678.png 848w, https://substackcdn.com/image/fetch/$s_!nAdr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bb5f4a2-0da0-4241-b9bb-0d22d2e4a5d5_1932x1678.png 1272w, https://substackcdn.com/image/fetch/$s_!nAdr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bb5f4a2-0da0-4241-b9bb-0d22d2e4a5d5_1932x1678.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The standout feature here is being able to do fine-grained, tool based approvals. This is the first we&#8217;ve seen in MCP clients. Doing the approval over voice is a very natural experience, very seamless and worth <a href="https://try.elevenlabs.io/cee2ri14rfbs">checking out</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!C115!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ff8f9e-62ee-437f-a99f-3a5f60ea0961_1806x812.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C115!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ff8f9e-62ee-437f-a99f-3a5f60ea0961_1806x812.png 424w, https://substackcdn.com/image/fetch/$s_!C115!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ff8f9e-62ee-437f-a99f-3a5f60ea0961_1806x812.png 848w, https://substackcdn.com/image/fetch/$s_!C115!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ff8f9e-62ee-437f-a99f-3a5f60ea0961_1806x812.png 1272w, https://substackcdn.com/image/fetch/$s_!C115!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ff8f9e-62ee-437f-a99f-3a5f60ea0961_1806x812.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!C115!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ff8f9e-62ee-437f-a99f-3a5f60ea0961_1806x812.png" width="1456" height="655" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c3ff8f9e-62ee-437f-a99f-3a5f60ea0961_1806x812.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:655,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Fine-grained tool approval\nsettings&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Fine-grained tool approval
settings" title="Fine-grained tool approval
settings" srcset="https://substackcdn.com/image/fetch/$s_!C115!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ff8f9e-62ee-437f-a99f-3a5f60ea0961_1806x812.png 424w, https://substackcdn.com/image/fetch/$s_!C115!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ff8f9e-62ee-437f-a99f-3a5f60ea0961_1806x812.png 848w, https://substackcdn.com/image/fetch/$s_!C115!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ff8f9e-62ee-437f-a99f-3a5f60ea0961_1806x812.png 1272w, https://substackcdn.com/image/fetch/$s_!C115!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3ff8f9e-62ee-437f-a99f-3a5f60ea0961_1806x812.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>VScode leading the support of the new spec</h2><p>VScode are shipping support for the new <a href="https://modelcontextprotocol.io/specification/2025-06-18/changelog">2025-06-18 MCP spec</a> at an impressive rate. They&#8217;ve released <a href="https://github.com/microsoft/vscode/pull/251872">elicitation support</a> before most servers have taken on supporting it, and ahead of Claude.  Awesome work from the team!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IzDw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d4f62-a05e-4e97-bab3-fec8b69ecdc1_1450x680.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IzDw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d4f62-a05e-4e97-bab3-fec8b69ecdc1_1450x680.png 424w, https://substackcdn.com/image/fetch/$s_!IzDw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d4f62-a05e-4e97-bab3-fec8b69ecdc1_1450x680.png 848w, https://substackcdn.com/image/fetch/$s_!IzDw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d4f62-a05e-4e97-bab3-fec8b69ecdc1_1450x680.png 1272w, https://substackcdn.com/image/fetch/$s_!IzDw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d4f62-a05e-4e97-bab3-fec8b69ecdc1_1450x680.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IzDw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d4f62-a05e-4e97-bab3-fec8b69ecdc1_1450x680.png" width="1450" height="680" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd9d4f62-a05e-4e97-bab3-fec8b69ecdc1_1450x680.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:680,&quot;width&quot;:1450,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:201011,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/166594854?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d4f62-a05e-4e97-bab3-fec8b69ecdc1_1450x680.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IzDw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d4f62-a05e-4e97-bab3-fec8b69ecdc1_1450x680.png 424w, https://substackcdn.com/image/fetch/$s_!IzDw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d4f62-a05e-4e97-bab3-fec8b69ecdc1_1450x680.png 848w, https://substackcdn.com/image/fetch/$s_!IzDw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d4f62-a05e-4e97-bab3-fec8b69ecdc1_1450x680.png 1272w, https://substackcdn.com/image/fetch/$s_!IzDw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd9d4f62-a05e-4e97-bab3-fec8b69ecdc1_1450x680.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>A Remote MCP server to search Remote MCP servers</h2><p>Here at <a href="https://remote-mcp.com/">Remote MCP</a> we&#8217;ve got an exciting release to share - you can now browse Remote MCP servers with the release of our own Remote MCP server. Connect to: </p><pre><code><code>https://mcp.remote-mcp.com</code> </code></pre><p>Our server enables your AI client to search the Remote MCP servers listed at on the <a href="https://github.com/jaw9c/awesome-remote-mcp-servers">awesome repo</a>. We developed this to showcase how easy it can be to build and deploy production grade Remote MCP servers. We&#8217;ll be releasing the codebase as an open source resource next week, with a step by step deep dive into how we made it.</p><p>One thing we love about Remote MCP servers is just how easy it is to add functionality to our AI clients. Just copy and paste the URL and you&#8217;re away! For Claude Pro users we created this demo video show just how easy installing Remote MCP servers is. </p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;0a02876e-7fc3-4116-91cf-4bb736355f48&quot;,&quot;duration&quot;:null}"></div><p></p><h2>Other lists of MCP servers</h2><p>MCP client providers VScode and Anthropic have started collating their own lists of MCP servers - check them out here: </p><ul><li><p><a href="https://code.visualstudio.com/mcp">VScode&#8217;s</a></p></li><li><p><a href="https://www.anthropic.com/partners/mcp">Anthropic&#8217;s</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.remote-mcp.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Remote MCP ! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Custom Integrations vs Custom Connectors]]></title><description><![CDATA[Last week OpenAI, Claude and Cursor all advanced their support for Remote MCP. Claude extended access to Pro users. ChatGPT launched support during deep research on paid plans. Learn how to use today.]]></description><link>https://blog.remote-mcp.com/p/custom-integrations-vs-custom-connectors</link><guid isPermaLink="false">https://blog.remote-mcp.com/p/custom-integrations-vs-custom-connectors</guid><dc:creator><![CDATA[Josh Warwick]]></dc:creator><pubDate>Mon, 09 Jun 2025 21:22:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RcIp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2e7d95f-f4f8-4cb8-96cc-39a22554cb52_1508x1042.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last week, both major foundational model providers expanded native support for Remote MCP into their clients. They&#8217;re branded as custom connectors for ChatGPT and custom integrations for Claude.</p><p>OpenAI released <a href="https://help.openai.com/en/articles/11487775-connectors-in-chatgpt#h_d2a53d4230">custom connectors</a> as part of their <a href="https://www.youtube.com/watch?v=9lSRViLugE0">ChatGPT for Buisness livesteam,</a> and <a href="https://x.com/OpenAI/status/1930319401888428412">tweet</a> last week. In the live-steam they revealed Custom connectors (remote MCPs) as available for paid users during deep research chats.</p><p>Anthropic expanded the access of its own &#8220;custom integrations&#8221; to Claude Pro users.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.remote-mcp.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Remote MCP ! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>How can I use today?</h2><p>This depends on your favourite LLM client. First you should find a Remote MCP server you would like to use.  Use either <a href="https://github.com/jaw9c/awesome-remote-mcp-servers">awesome-remote-mcp-servers</a> or a new <a href="https://remote-mcp.com">dedicated site</a> for listing Remote MCPs/Custom connectors/Custom integrations - whatever you want to call them.</p><h3>Claude (Pro+)</h3><p>Claude has extended Remote MCP support to Pro users. It remains under the branding &#8220;custom integrations&#8221; and can be accessed under the settings page, or on the menu of the Claude client:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RcIp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2e7d95f-f4f8-4cb8-96cc-39a22554cb52_1508x1042.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RcIp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2e7d95f-f4f8-4cb8-96cc-39a22554cb52_1508x1042.png 424w, https://substackcdn.com/image/fetch/$s_!RcIp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2e7d95f-f4f8-4cb8-96cc-39a22554cb52_1508x1042.png 848w, https://substackcdn.com/image/fetch/$s_!RcIp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2e7d95f-f4f8-4cb8-96cc-39a22554cb52_1508x1042.png 1272w, https://substackcdn.com/image/fetch/$s_!RcIp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2e7d95f-f4f8-4cb8-96cc-39a22554cb52_1508x1042.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RcIp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2e7d95f-f4f8-4cb8-96cc-39a22554cb52_1508x1042.png" width="728" height="503" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a2e7d95f-f4f8-4cb8-96cc-39a22554cb52_1508x1042.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1006,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:158546,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/165577157?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2e7d95f-f4f8-4cb8-96cc-39a22554cb52_1508x1042.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RcIp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2e7d95f-f4f8-4cb8-96cc-39a22554cb52_1508x1042.png 424w, https://substackcdn.com/image/fetch/$s_!RcIp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2e7d95f-f4f8-4cb8-96cc-39a22554cb52_1508x1042.png 848w, https://substackcdn.com/image/fetch/$s_!RcIp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2e7d95f-f4f8-4cb8-96cc-39a22554cb52_1508x1042.png 1272w, https://substackcdn.com/image/fetch/$s_!RcIp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2e7d95f-f4f8-4cb8-96cc-39a22554cb52_1508x1042.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Add a new integration on the Claude client</figcaption></figure></div><p>From here you&#8217;ll be able to see your current connections, built in integrations and given the options to add your own.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XzJZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd5c881-9348-4e1e-8c7a-02af48158742_1878x1070.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XzJZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd5c881-9348-4e1e-8c7a-02af48158742_1878x1070.png 424w, https://substackcdn.com/image/fetch/$s_!XzJZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd5c881-9348-4e1e-8c7a-02af48158742_1878x1070.png 848w, https://substackcdn.com/image/fetch/$s_!XzJZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd5c881-9348-4e1e-8c7a-02af48158742_1878x1070.png 1272w, https://substackcdn.com/image/fetch/$s_!XzJZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd5c881-9348-4e1e-8c7a-02af48158742_1878x1070.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XzJZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd5c881-9348-4e1e-8c7a-02af48158742_1878x1070.png" width="1456" height="830" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2bd5c881-9348-4e1e-8c7a-02af48158742_1878x1070.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:830,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:132964,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/165577157?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd5c881-9348-4e1e-8c7a-02af48158742_1878x1070.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XzJZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd5c881-9348-4e1e-8c7a-02af48158742_1878x1070.png 424w, https://substackcdn.com/image/fetch/$s_!XzJZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd5c881-9348-4e1e-8c7a-02af48158742_1878x1070.png 848w, https://substackcdn.com/image/fetch/$s_!XzJZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd5c881-9348-4e1e-8c7a-02af48158742_1878x1070.png 1272w, https://substackcdn.com/image/fetch/$s_!XzJZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bd5c881-9348-4e1e-8c7a-02af48158742_1878x1070.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After clicking &#8220;Add integration&#8221; you&#8217;ll be presented with this screen, where you can add an connect to a Remote MCP. You&#8217;ll then be guided through an OAuth flow if required by the server.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wWjG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546695b-0e76-45e0-9a78-968537f007a6_1610x572.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wWjG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546695b-0e76-45e0-9a78-968537f007a6_1610x572.png 424w, https://substackcdn.com/image/fetch/$s_!wWjG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546695b-0e76-45e0-9a78-968537f007a6_1610x572.png 848w, https://substackcdn.com/image/fetch/$s_!wWjG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546695b-0e76-45e0-9a78-968537f007a6_1610x572.png 1272w, https://substackcdn.com/image/fetch/$s_!wWjG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546695b-0e76-45e0-9a78-968537f007a6_1610x572.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wWjG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546695b-0e76-45e0-9a78-968537f007a6_1610x572.png" width="1456" height="517" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7546695b-0e76-45e0-9a78-968537f007a6_1610x572.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:517,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:81776,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/165577157?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546695b-0e76-45e0-9a78-968537f007a6_1610x572.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wWjG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546695b-0e76-45e0-9a78-968537f007a6_1610x572.png 424w, https://substackcdn.com/image/fetch/$s_!wWjG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546695b-0e76-45e0-9a78-968537f007a6_1610x572.png 848w, https://substackcdn.com/image/fetch/$s_!wWjG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546695b-0e76-45e0-9a78-968537f007a6_1610x572.png 1272w, https://substackcdn.com/image/fetch/$s_!wWjG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7546695b-0e76-45e0-9a78-968537f007a6_1610x572.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>At present there is some buggy behaviour for accessing streamable remote servers when OAuth protected, so stick to /see for the time being.</p><h3>ChatGPT (Plus+)</h3><p>ChatGPT can now use Remote MCP servers under the branding of &#8220;custom connectors&#8221;. Unfortunately, they are only usable when in deep research mode <a href="https://help.openai.com/en/articles/11487775-connectors-in-chatgpt#h_7abedb137d">at the moment</a>. </p><p>Interestingly, ChatGPT included native support for a number of providers including Box and HubSpot. It&#8217;s likely they are using MCP under the hood, but unclear if OpenAI are hosting these, or there&#8217;s a Remote MCP server under the hood. </p><p>To add a custom connector/ Remote MCP, head to the settings screen, and the connectors sub menu. Here you can connect to an native connector, or click create to add a Remote MCP server.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!e-zU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbde93a1-6779-4a78-8bc3-3b86d9a30f77_1346x770.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!e-zU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbde93a1-6779-4a78-8bc3-3b86d9a30f77_1346x770.png 424w, https://substackcdn.com/image/fetch/$s_!e-zU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbde93a1-6779-4a78-8bc3-3b86d9a30f77_1346x770.png 848w, https://substackcdn.com/image/fetch/$s_!e-zU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbde93a1-6779-4a78-8bc3-3b86d9a30f77_1346x770.png 1272w, https://substackcdn.com/image/fetch/$s_!e-zU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbde93a1-6779-4a78-8bc3-3b86d9a30f77_1346x770.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!e-zU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbde93a1-6779-4a78-8bc3-3b86d9a30f77_1346x770.png" width="1346" height="770" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cbde93a1-6779-4a78-8bc3-3b86d9a30f77_1346x770.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:770,&quot;width&quot;:1346,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!e-zU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbde93a1-6779-4a78-8bc3-3b86d9a30f77_1346x770.png 424w, https://substackcdn.com/image/fetch/$s_!e-zU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbde93a1-6779-4a78-8bc3-3b86d9a30f77_1346x770.png 848w, https://substackcdn.com/image/fetch/$s_!e-zU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbde93a1-6779-4a78-8bc3-3b86d9a30f77_1346x770.png 1272w, https://substackcdn.com/image/fetch/$s_!e-zU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbde93a1-6779-4a78-8bc3-3b86d9a30f77_1346x770.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Then you are able to add a new connector - complete with icon and name</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PEu_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78b695e-4ed4-44a0-80b5-1201b7804653_710x836.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PEu_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78b695e-4ed4-44a0-80b5-1201b7804653_710x836.png 424w, https://substackcdn.com/image/fetch/$s_!PEu_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78b695e-4ed4-44a0-80b5-1201b7804653_710x836.png 848w, https://substackcdn.com/image/fetch/$s_!PEu_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78b695e-4ed4-44a0-80b5-1201b7804653_710x836.png 1272w, https://substackcdn.com/image/fetch/$s_!PEu_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78b695e-4ed4-44a0-80b5-1201b7804653_710x836.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PEu_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78b695e-4ed4-44a0-80b5-1201b7804653_710x836.png" width="710" height="836" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b78b695e-4ed4-44a0-80b5-1201b7804653_710x836.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:836,&quot;width&quot;:710,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:112393,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/165577157?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78b695e-4ed4-44a0-80b5-1201b7804653_710x836.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PEu_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78b695e-4ed4-44a0-80b5-1201b7804653_710x836.png 424w, https://substackcdn.com/image/fetch/$s_!PEu_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78b695e-4ed4-44a0-80b5-1201b7804653_710x836.png 848w, https://substackcdn.com/image/fetch/$s_!PEu_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78b695e-4ed4-44a0-80b5-1201b7804653_710x836.png 1272w, https://substackcdn.com/image/fetch/$s_!PEu_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb78b695e-4ed4-44a0-80b5-1201b7804653_710x836.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Note that <a href="https://x.com/jan_go9x/status/1930361713591034366">some users</a> are having trouble connecting to servers hosted on Zapier and N8N.</p><h3>Cursor </h3><p>Cursor have launched a super cool feature - a one click add button which adds any MCP server (Remote or Local) into the product. See their list of tools <a href="https://docs.cursor.com/tools">here</a>. In addion they have added native OAuth support for Remote MCP, a feature that was a blocker until last week. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.remote-mcp.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Remote MCP ! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Big Week for AI Releases: A Day-by-Day Remote MCP Breakdown]]></title><description><![CDATA[In a big release week, we focus on the updates for Remote MCP.]]></description><link>https://blog.remote-mcp.com/p/big-week-for-ai-releases-a-day-by</link><guid isPermaLink="false">https://blog.remote-mcp.com/p/big-week-for-ai-releases-a-day-by</guid><dc:creator><![CDATA[Josh Warwick]]></dc:creator><pubDate>Fri, 23 May 2025 20:38:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uDT7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83368e09-95bd-49ce-80d2-a55b31a831e9_780x485.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This week was a big week for MCP and AI releases. We'll be focusing on the Remote MCP content. The good news is every LLM SDK provider -Gemini, Anthropic and OpenAI now natively support MCP tools as a plug-in to their completions API. The bad news is you need to manage the Bearer token, which for OAuth makes it slightly painful.</p><p>Let's run through day by day.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.remote-mcp.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Remote MCP ! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Monday - Microsoft</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uDT7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83368e09-95bd-49ce-80d2-a55b31a831e9_780x485.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uDT7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83368e09-95bd-49ce-80d2-a55b31a831e9_780x485.png 424w, https://substackcdn.com/image/fetch/$s_!uDT7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83368e09-95bd-49ce-80d2-a55b31a831e9_780x485.png 848w, https://substackcdn.com/image/fetch/$s_!uDT7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83368e09-95bd-49ce-80d2-a55b31a831e9_780x485.png 1272w, https://substackcdn.com/image/fetch/$s_!uDT7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83368e09-95bd-49ce-80d2-a55b31a831e9_780x485.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uDT7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83368e09-95bd-49ce-80d2-a55b31a831e9_780x485.png" width="780" height="485" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83368e09-95bd-49ce-80d2-a55b31a831e9_780x485.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:485,&quot;width&quot;:780,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Abstract animation of Windows AI&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Abstract animation of Windows AI" title="Abstract animation of Windows AI" srcset="https://substackcdn.com/image/fetch/$s_!uDT7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83368e09-95bd-49ce-80d2-a55b31a831e9_780x485.png 424w, https://substackcdn.com/image/fetch/$s_!uDT7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83368e09-95bd-49ce-80d2-a55b31a831e9_780x485.png 848w, https://substackcdn.com/image/fetch/$s_!uDT7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83368e09-95bd-49ce-80d2-a55b31a831e9_780x485.png 1272w, https://substackcdn.com/image/fetch/$s_!uDT7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83368e09-95bd-49ce-80d2-a55b31a831e9_780x485.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As part of a wider event labeled "Agentic Windows", the relevant headline/blog was <strong><a href="https://blogs.windows.com/windowsexperience/2025/05/19/securing-the-model-context-protocol-building-a-safer-agentic-future-on-windows/">Native support for Model Context Protocol (MCP) on Windows</a></strong><a href="https://blogs.windows.com/windowsexperience/2025/05/19/securing-the-model-context-protocol-building-a-safer-agentic-future-on-windows/">.</a> To spare the details of reading the blog, in a classically Microsoft fashion, it's not leveraging remote MCP servers or any of the current MCP local servers that exist. They are working on a private registry, essentially the Windows MCP AppStore with code-signing, unchanging tools, identity verification and private declaration.</p><p>The AppStore-based approach is a good attempt to address articles such as "<a href="https://elenacross7.medium.com/%EF%B8%8F-the-s-in-mcp-stands-for-security-91407b33ed6b">The 'S' in MCP Stands for Security</a>", and getting non-developers to leverage the usefulness of MCP. It was never safe to let the mass public run random Node servers that they installed via NPM like GitHub does locally. It's unclear how current Remote MCP servers fit into their picture, which, with OAuth, also solve the mass adoption issues.</p><h2><strong>Tuesday - Google</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bRFw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F780ab87e-7d62-404d-99cb-036ab46cf473_2560x1920.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bRFw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F780ab87e-7d62-404d-99cb-036ab46cf473_2560x1920.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bRFw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F780ab87e-7d62-404d-99cb-036ab46cf473_2560x1920.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bRFw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F780ab87e-7d62-404d-99cb-036ab46cf473_2560x1920.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bRFw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F780ab87e-7d62-404d-99cb-036ab46cf473_2560x1920.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bRFw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F780ab87e-7d62-404d-99cb-036ab46cf473_2560x1920.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/780ab87e-7d62-404d-99cb-036ab46cf473_2560x1920.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!bRFw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F780ab87e-7d62-404d-99cb-036ab46cf473_2560x1920.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bRFw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F780ab87e-7d62-404d-99cb-036ab46cf473_2560x1920.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bRFw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F780ab87e-7d62-404d-99cb-036ab46cf473_2560x1920.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bRFw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F780ab87e-7d62-404d-99cb-036ab46cf473_2560x1920.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>On Tuesday, Google <a href="https://cloud.google.com/blog/products/ai-machine-learning/announcing-veo-3-imagen-4-and-lyria-2-on-vertex-ai">announced a host of new foundational models</a>, killed many startups with mere bullet points, and made <a href="https://blog.google/technology/ai/google-io-2025-all-our-announcements/">~100 other announcements</a>. Amongst Google showing that they still have a shipping culture in their bones, relatively little was said about Remote MCP. In summary, if you're using the Gemini SDK, you can now use MCP tools natively to that SDK, including remote ones, subject to managing the Bearer token.</p><h2><strong>Wednesday - OpenAI</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lTnq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10abf4a8-1bc3-4937-a014-a5443798a58d_1200x728.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lTnq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10abf4a8-1bc3-4937-a014-a5443798a58d_1200x728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lTnq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10abf4a8-1bc3-4937-a014-a5443798a58d_1200x728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lTnq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10abf4a8-1bc3-4937-a014-a5443798a58d_1200x728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lTnq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10abf4a8-1bc3-4937-a014-a5443798a58d_1200x728.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lTnq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10abf4a8-1bc3-4937-a014-a5443798a58d_1200x728.jpeg" width="728" height="441.6533333333333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/10abf4a8-1bc3-4937-a014-a5443798a58d_1200x728.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1200,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:93729,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!lTnq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10abf4a8-1bc3-4937-a014-a5443798a58d_1200x728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lTnq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10abf4a8-1bc3-4937-a014-a5443798a58d_1200x728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lTnq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10abf4a8-1bc3-4937-a014-a5443798a58d_1200x728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lTnq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10abf4a8-1bc3-4937-a014-a5443798a58d_1200x728.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>By Wednesday, it was weird that OpenAI hadn't attempted to steal Google's media lunch again, so spending $6.5B on Jony Ive seemed a reasonable way to distract. OpenAI <a href="https://openai.com/index/new-tools-and-features-in-the-responses-api/">added native MCP tool calling</a> support into their responses API, with <a href="https://platform.openai.com/docs/guides/tools-remote-mcp">detailed documentation</a> too. Again, the authorization token must be managed by hand</p><h2><strong>Thursday - Anthropic</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dcc7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe064ed3e-bb9e-4c3b-825f-c5b8cd977409_2881x1621.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dcc7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe064ed3e-bb9e-4c3b-825f-c5b8cd977409_2881x1621.webp 424w, https://substackcdn.com/image/fetch/$s_!dcc7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe064ed3e-bb9e-4c3b-825f-c5b8cd977409_2881x1621.webp 848w, https://substackcdn.com/image/fetch/$s_!dcc7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe064ed3e-bb9e-4c3b-825f-c5b8cd977409_2881x1621.webp 1272w, https://substackcdn.com/image/fetch/$s_!dcc7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe064ed3e-bb9e-4c3b-825f-c5b8cd977409_2881x1621.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dcc7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe064ed3e-bb9e-4c3b-825f-c5b8cd977409_2881x1621.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e064ed3e-bb9e-4c3b-825f-c5b8cd977409_2881x1621.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;An illustration of a triangle connected to a circle.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="An illustration of a triangle connected to a circle." title="An illustration of a triangle connected to a circle." srcset="https://substackcdn.com/image/fetch/$s_!dcc7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe064ed3e-bb9e-4c3b-825f-c5b8cd977409_2881x1621.webp 424w, https://substackcdn.com/image/fetch/$s_!dcc7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe064ed3e-bb9e-4c3b-825f-c5b8cd977409_2881x1621.webp 848w, https://substackcdn.com/image/fetch/$s_!dcc7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe064ed3e-bb9e-4c3b-825f-c5b8cd977409_2881x1621.webp 1272w, https://substackcdn.com/image/fetch/$s_!dcc7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe064ed3e-bb9e-4c3b-825f-c5b8cd977409_2881x1621.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In the final big day, the home crowd, Anthropic, <a href="https://www.anthropic.com/news/claude-4">released Claude 4</a>. Following the other LLM providers, they also added native support into their API under the branding "MCP connectors". They have the yet-the-same issue of managing your own bearer token for OAuth-based remote MCP servers.</p><h2><strong>The Auth Elephant in the Room</strong></h2><p>In all of these releases, the management of the OAuth access token is an exercise left up to the reader. Anthropic's official docs recommend getting a token by using the MCP inspector tool in order to test out MCP tools in their SDK, not great security practice. Support for OAuth in the official Python client was completed recently. For MCP Client builders, you still need to manage your user's tokens on their behalf, and this should be done securely.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.remote-mcp.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Remote MCP ! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Remote MCP: A recap, how did we get here?]]></title><description><![CDATA[From Local Experiments to Remote Integrations]]></description><link>https://blog.remote-mcp.com/p/remote-mcp-a-recap-how-did-we-get</link><guid isPermaLink="false">https://blog.remote-mcp.com/p/remote-mcp-a-recap-how-did-we-get</guid><dc:creator><![CDATA[Josh Warwick]]></dc:creator><pubDate>Fri, 02 May 2025 15:07:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0f9e53d4-6767-40eb-b2b9-8ca5bcba00e6_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When Anthropic <a href="https://www.anthropic.com/news/model-context-protocol">introduced</a> the Model Context Protocol (MCP), they set out to redefine how LLM-powered applications could connect to third-party services. MCP established a clear standard: LLM apps act as clients, while external tools and APIs could become MCP servers. This was a significant step toward making AI applications more extensible and useful in real-world workflows.</p><h2><strong>The Local Phase: Powerful, but Isolated</strong></h2><p>Initially, everything ran locally. Developers would write MCP servers that operated as background processes on their own machines. These servers worked much like traditional local daemons, providing value-but only within the confines of a single device. This was reminiscent of the pre-internet era, where local terminals and files were the extent of interoperability.</p><p>For developers, this approach was straightforward, but it came with real limitations:</p><ul><li><p><strong>Setup friction:</strong> You needed to install dependencies, configure environment variables, and manage authentication (API keys, OAuth clients, etc.).</p></li><li><p><strong>Limited audience:</strong> Non-technical users found the process daunting.</p></li><li><p><strong>Security risks:</strong> Credentials sat around, increasing the risk of leaks.</p></li></ul><p>Despite these challenges, there was clear demand for richer integrations, even with the manual setup.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.remote-mcp.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe for a weekly roundup of Remote MCP server releases</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Hosted MCP: Removing Local Barriers, Introducing New Concerns</strong></h2><p>The next logical step was hosted MCP servers. Instead of running everything locally, some services began offering hosted endpoints. This allowed LLM clients to connect over the web, making integrations more accessible.</p><p>However, this approach introduced new challenges:</p><ul><li><p><strong>Trust:</strong> How do you know the hosted server is secure? Are your credentials being handled properly?</p></li><li><p><strong>Complexity:</strong> Many hosted solutions still required manual configuration and authentication, which remained a barrier for most users.</p></li></ul><h2><strong>Remote MCP: Trust and Simplicity at Scale</strong></h2><p>The major breakthrough came with Remote MCP. Here, the third-party provider hosts the MCP server themselves. This shifts the trust model: users can now rely on the official domain (e.g., paypal.com vs. a random third party) and established authentication flows.</p><p>Key improvements:</p><ul><li><p><strong>OAuth integration:</strong> Authentication is handled securely, directly with the provider.</p></li><li><p><strong>Reduced friction:</strong> End users don&#8217;t have to manage local servers or credentials.</p></li><li><p><strong>Scalability:</strong> Providers can offer integrations to all users, not just those comfortable with local setup.</p></li></ul><h2><strong>Cloudflare&#8217;s Role: Lowering the Barrier to Entry</strong></h2><p>Cloudflare accelerated adoption by <a href="https://blog.cloudflare.com/remote-model-context-protocol-servers-mcp/">making it easy</a> to deploy secure, authenticated MCP servers. Their tooling allows developers to wrap an existing API and deploy a Remote MCP server (with OAuth) in a matter of hours. This has made it feasible for any SaaS provider to offer official, secure integrations with LLM-powered apps.</p><p>Early adopters like PayPal, Neon, and Sentry demonstrated the benefits of this model. Now, building and maintaining a Remote MCP server is both practical and secure.</p><h2><strong>The Big Launch: May 1st, 2025</strong></h2><p>On May 1st, Cloudflare and several major tech companies <a href="https://blog.cloudflare.com/mcp-demo-day/">announced</a> a wave of new Remote MCP servers, including:</p><ul><li><p>Linear</p></li><li><p>Intercom</p></li><li><p>Square</p></li><li><p>Atlassian</p></li><li><p>Asana</p></li><li><p>Plaid</p></li></ul><p>This coincided with Anthropic&#8217;s <a href="https://www.anthropic.com/news/integrations">launch</a> of a streamlined integration experience for Claude.ai. The terminology has shifted from &#8220;MCP&#8221; to &#8220;Custom Integrations,&#8221; reflecting a broader vision and improved usability.</p><h2><strong>The New Integration Flow: Simplicity for End Users</strong></h2><p>The process for adding an integration is now as simple as:</p><ol><li><p>Go to settings in Claude.</p></li><li><p>Paste the Remote MCP server URL (integration URL).</p></li><li><p>You&#8217;re connected-authentication and trust are handled by the provider.</p></li></ol><p>This is a significant improvement over the old model and opens up integrations to a much wider audience.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P5-f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8a08fa-471e-4f37-a00b-4d866c05fdbe_2226x840.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P5-f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8a08fa-471e-4f37-a00b-4d866c05fdbe_2226x840.png 424w, https://substackcdn.com/image/fetch/$s_!P5-f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8a08fa-471e-4f37-a00b-4d866c05fdbe_2226x840.png 848w, https://substackcdn.com/image/fetch/$s_!P5-f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8a08fa-471e-4f37-a00b-4d866c05fdbe_2226x840.png 1272w, https://substackcdn.com/image/fetch/$s_!P5-f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8a08fa-471e-4f37-a00b-4d866c05fdbe_2226x840.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P5-f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8a08fa-471e-4f37-a00b-4d866c05fdbe_2226x840.png" width="1456" height="549" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0a8a08fa-471e-4f37-a00b-4d866c05fdbe_2226x840.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:549,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:424093,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://remotemcp.substack.com/i/162697972?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8a08fa-471e-4f37-a00b-4d866c05fdbe_2226x840.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!P5-f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8a08fa-471e-4f37-a00b-4d866c05fdbe_2226x840.png 424w, https://substackcdn.com/image/fetch/$s_!P5-f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8a08fa-471e-4f37-a00b-4d866c05fdbe_2226x840.png 848w, https://substackcdn.com/image/fetch/$s_!P5-f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8a08fa-471e-4f37-a00b-4d866c05fdbe_2226x840.png 1272w, https://substackcdn.com/image/fetch/$s_!P5-f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8a08fa-471e-4f37-a00b-4d866c05fdbe_2226x840.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2><strong>What&#8217;s Next?</strong></h2><ul><li><p><strong>Broader access:</strong> Expect integrations to roll out to Pro and eventually Free users.</p></li><li><p><strong>More providers:</strong> With the barrier to entry so low, more SaaS platforms are likely to offer Remote MCP servers.</p><ul><li><p>Find remote MCP servers <a href="https://github.com/jaw9c/awesome-remote-mcp-servers">here</a></p></li></ul></li></ul><p><strong>In summary:</strong> MCP has evolved from a local, developer-focused area to a robust, cloud-native standard for integrating LLM-powered apps with third-party services. Thanks to Remote MCP and Cloudflare&#8217;s ecosystem, secure and official integrations are now within reach for any provider-and any user.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.remote-mcp.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">If you want to stay updated on new Remote MCP server releases and updates, subscribe to our mailing list for weekly roundups.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>