<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Flowra</title>
    <description>The latest articles on DEV Community by Flowra (@flowra).</description>
    <link>https://dev.to/flowra</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4125857%2F376bb32b-e0c3-46c4-ba69-2bf9ed84e094.png</url>
      <title>DEV Community: Flowra</title>
      <link>https://dev.to/flowra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/flowra"/>
    <language>en</language>
    <item>
      <title>How to Connect Cloudflare, PostHog, and Tavily MCP in Cursor (Plus a Single-Endpoint Alternative)</title>
      <dc:creator>Flowra</dc:creator>
      <pubDate>Thu, 24 Sep 2026 12:15:30 +0000</pubDate>
      <link>https://dev.to/flowra/how-to-connect-cloudflare-posthog-and-tavily-mcp-in-cursor-plus-a-single-endpoint-alternative-33g7</link>
      <guid>https://dev.to/flowra/how-to-connect-cloudflare-posthog-and-tavily-mcp-in-cursor-plus-a-single-endpoint-alternative-33g7</guid>
      <description>&lt;p&gt;Copy-paste configs for the official Cloudflare, PostHog, and Tavily MCP servers in Cursor and Claude — then how one OAuth URL can expose those toolkits (and more) without stacking every server in &lt;code&gt;mcp.json&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://modelcontextprotocol.io" rel="noopener noreferrer"&gt;Model Context Protocol&lt;/a&gt; (MCP) is a practical way to give an IDE agent real tools: Cloudflare APIs, PostHog product data, live web search. The hard part is not “what is MCP.” It is keeping &lt;code&gt;mcp.json&lt;/code&gt; honest when every vendor wants its own remote URL, OAuth popup, or API key.&lt;/p&gt;

&lt;p&gt;This guide does two things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Wire up the &lt;strong&gt;official&lt;/strong&gt; Cloudflare, PostHog, and Tavily MCP servers in &lt;strong&gt;Cursor&lt;/strong&gt; and &lt;strong&gt;Claude&lt;/strong&gt; (Claude Code / Claude Desktop where the vendor documents them).&lt;/li&gt;
&lt;li&gt;Show an optional &lt;strong&gt;single-endpoint&lt;/strong&gt; path with &lt;a href="https://flowra.dev" rel="noopener noreferrer"&gt;Flowra&lt;/a&gt; — the product I work on — so one MCP connection can discover and run many toolkits after you connect accounts in Flowra.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can stop after the vendor sections. The Flowra section is only useful if you already feel the config sprawl.&lt;/p&gt;

&lt;p&gt;No fabricated benchmarks or fake tool outputs. Configs below are copied from the vendors’ own docs (re-checked for this draft). Example prompts are suggestions for smoke tests, not transcripts.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you’ll set up
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cursor:&lt;/strong&gt; project config at &lt;code&gt;.cursor/mcp.json&lt;/code&gt; (shared with a repo), or global at &lt;code&gt;~/.cursor/mcp.json&lt;/code&gt; for personal tools everywhere (&lt;a href="https://cursor.com/docs/mcp" rel="noopener noreferrer"&gt;Cursor MCP docs&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Code:&lt;/strong&gt; &lt;code&gt;claude mcp add …&lt;/code&gt; where the vendor documents it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Desktop:&lt;/strong&gt; edit &lt;code&gt;claude_desktop_config.json&lt;/code&gt; via Settings → Developer → Edit Config, or use Connectors / Integrations when the vendor says so (macOS: &lt;code&gt;~/Library/Application Support/Claude/claude_desktop_config.json&lt;/code&gt;; Windows: &lt;code&gt;%APPDATA%\Claude\claude_desktop_config.json&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optional:&lt;/strong&gt; &lt;a href="https://docs.railway.com/ai/mcp-server" rel="noopener noreferrer"&gt;Railway’s remote MCP&lt;/a&gt; for deploys, and Flowra as a hub.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reload or restart the client after you save config. Cursor and Claude Desktop often only pick up MCP changes after a full restart. If a server stays red, fix auth before debugging prompts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cloudflare MCP (official remote)
&lt;/h2&gt;

&lt;p&gt;Cloudflare runs managed remote MCP servers. The &lt;a href="https://developers.cloudflare.com/agents/model-context-protocol/cloudflare/servers-for-cloudflare/" rel="noopener noreferrer"&gt;Cloudflare API MCP server&lt;/a&gt; exposes the Cloudflare API through a &lt;strong&gt;Code Mode&lt;/strong&gt; pattern: the model writes JavaScript against the OpenAPI surface and a sandboxed &lt;code&gt;cloudflare.request()&lt;/code&gt; client instead of loading thousands of native tool schemas. Cloudflare’s docs describe that path with &lt;code&gt;search()&lt;/code&gt; and &lt;code&gt;execute()&lt;/code&gt;; the &lt;a href="https://github.com/cloudflare/mcp" rel="noopener noreferrer"&gt;&lt;code&gt;cloudflare/mcp&lt;/code&gt; README&lt;/a&gt; also lists a &lt;code&gt;docs&lt;/code&gt; tool for developer documentation search.&lt;/p&gt;

&lt;p&gt;Use the Streamable HTTP endpoint at &lt;code&gt;/mcp&lt;/code&gt;. Prefer that over forcing legacy SSE transport (&lt;a href="https://developers.cloudflare.com/agents/model-context-protocol/cloudflare/servers-for-cloudflare/" rel="noopener noreferrer"&gt;Cloudflare note&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auth:&lt;/strong&gt; browser OAuth when you connect (pick permissions). For CI, Cloudflare documents a &lt;a href="https://dash.cloudflare.com/profile/api-tokens" rel="noopener noreferrer"&gt;API token&lt;/a&gt; as a Bearer token in &lt;code&gt;Authorization&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cursor / generic &lt;code&gt;mcpServers&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;From &lt;a href="https://developers.cloudflare.com/agents/model-context-protocol/cloudflare/servers-for-cloudflare/" rel="noopener noreferrer"&gt;Cloudflare’s Agents docs&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"cloudflare-api"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.cloudflare.com/mcp"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The same URL works in any MCP client that supports remote HTTP. For Claude Code, Cloudflare’s documented path on that page is the &lt;a href="https://github.com/cloudflare/skills" rel="noopener noreferrer"&gt;Skills plugin&lt;/a&gt; (&lt;code&gt;/plugin marketplace add cloudflare/skills&lt;/code&gt;), which bundles MCP servers with agent skills — not a separate invented &lt;code&gt;claude mcp add&lt;/code&gt; line.&lt;/p&gt;

&lt;p&gt;Cloudflare also ships many &lt;strong&gt;product-specific&lt;/strong&gt; MCP URLs (docs, bindings, builds, observability, and more). See the table on the &lt;a href="https://developers.cloudflare.com/agents/model-context-protocol/cloudflare/servers-for-cloudflare/" rel="noopener noreferrer"&gt;same docs page&lt;/a&gt; if you want a narrower server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try asking:&lt;/strong&gt; “Search Cloudflare docs for Workers KV binding limits, then find the API path to list namespaces.”&lt;/p&gt;

&lt;p&gt;Treat &lt;code&gt;execute&lt;/code&gt; as write-capable. Use a least-privilege OAuth grant or API token, and confirm the agent’s proposed JavaScript before you approve changes in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  PostHog MCP (official)
&lt;/h2&gt;

&lt;p&gt;PostHog’s hosted MCP endpoint is &lt;code&gt;https://mcp.posthog.com/mcp&lt;/code&gt;. It routes you to the correct US/EU region from the account you log in with (&lt;a href="https://posthog.com/docs/model-context-protocol" rel="noopener noreferrer"&gt;PostHog MCP overview&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Connecting and calling MCP tools is free on PostHog’s side; some tools that use LLMs internally may bill as PostHog AI spend when AI data processing is enabled (&lt;a href="https://posthog.com/docs/model-context-protocol" rel="noopener noreferrer"&gt;same page&lt;/a&gt;).&lt;/p&gt;

&lt;h3&gt;
  
  
  Fastest install
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @posthog/wizard mcp add
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Cursor (manual)
&lt;/h3&gt;

&lt;p&gt;From &lt;a href="https://posthog.com/docs/model-context-protocol/cursor" rel="noopener noreferrer"&gt;PostHog MCP for Cursor&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"posthog"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.posthog.com/mcp"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;First use prompts a PostHog login.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Desktop
&lt;/h3&gt;

&lt;p&gt;Prefer the &lt;a href="https://posthog.com/docs/model-context-protocol/claude-desktop" rel="noopener noreferrer"&gt;PostHog connector&lt;/a&gt; in Claude’s connector directory, or the wizard above. Manual &lt;code&gt;claude_desktop_config.json&lt;/code&gt; from PostHog’s docs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"posthog"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"mcp-remote@latest"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.posthog.com/mcp"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save, fully quit Claude Desktop, relaunch. Review tool calls before approving writes — PostHog’s own docs warn about prompt injection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try asking:&lt;/strong&gt; “What are the top errors in my project this week?” or “List feature flags.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Tavily MCP (search, extract, map, crawl)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.tavily.com/documentation/mcp" rel="noopener noreferrer"&gt;Tavily’s MCP docs&lt;/a&gt; cover a &lt;strong&gt;remote&lt;/strong&gt; server and a &lt;strong&gt;local&lt;/strong&gt; &lt;code&gt;npx&lt;/code&gt; server. Remote URL shape:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://mcp.tavily.com/mcp/?tavilyApiKey=&amp;lt;your-api-key&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also use OAuth without putting the key in the URL. Putting a key in a query string is convenient and easy to leak via screenshots or shared repos — prefer OAuth or env-based local config when you can.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cursor (remote via &lt;code&gt;mcp-remote&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;From Tavily’s docs (replace the placeholder key):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"tavily-remote-mcp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx -y mcp-remote https://mcp.tavily.com/mcp/?tavilyApiKey=&amp;lt;your-api-key&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;OAuth without a key in the URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"tavily-remote-mcp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx mcp-remote https://mcp.tavily.com/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If OAuth credentials get stuck, Tavily documents clearing &lt;code&gt;~/.mcp-auth&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Code
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add tavily-remote-mcp &lt;span class="nt"&gt;--transport&lt;/span&gt; http https://mcp.tavily.com/mcp/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude Code opens a browser for OAuth; no API key in the URL.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Desktop (local stdio)
&lt;/h3&gt;

&lt;p&gt;From Tavily’s docs (paths: macOS &lt;code&gt;~/Library/Application Support/Claude/claude_desktop_config.json&lt;/code&gt;, Windows &lt;code&gt;%APPDATA%\Claude\claude_desktop_config.json&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"tavily-mcp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tavily-mcp@0.1.2"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"TAVILY_API_KEY"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tvly-YOUR_API_KEY-here"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude Desktop can also add the remote URL under Integrations (beta) with your API key — see &lt;a href="https://docs.tavily.com/documentation/mcp" rel="noopener noreferrer"&gt;Tavily’s Claude Desktop section&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Remote and local surfaces include search and extract; map and crawl are part of the production server. Flowra’s toolkit page also lists a research action — use whatever tools your connected server actually exposes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try asking:&lt;/strong&gt; “Search for MCP Streamable HTTP vs SSE and extract the key differences from the top official doc.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Railway MCP (short)
&lt;/h2&gt;

&lt;p&gt;If your loop includes deploy and logs, Railway’s remote MCP is at &lt;code&gt;https://mcp.railway.com&lt;/code&gt; (&lt;a href="https://railway.com/mcp.md" rel="noopener noreferrer"&gt;setup&lt;/a&gt;, &lt;a href="https://docs.railway.com/ai/mcp-server" rel="noopener noreferrer"&gt;full docs&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cursor&lt;/strong&gt; (&lt;code&gt;.cursor/mcp.json&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"railway"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.railway.com"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Claude Code:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add railway &lt;span class="nt"&gt;--transport&lt;/span&gt; http https://mcp.railway.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Auth is OAuth in the browser (or Railway’s CLI bridge if you use &lt;code&gt;railway setup agent&lt;/code&gt;). Hosted and local Railway MCP tool sets are not identical — read Railway’s docs before assuming every CLI operation exists on the remote server. Destructive actions such as &lt;code&gt;accept-deploy&lt;/code&gt; are marked for confirmation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The sprawl problem
&lt;/h2&gt;

&lt;p&gt;Three or four remote servers × Cursor + Claude means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Several OAuth consent flows (and keys if you mix local/stdio bridges).&lt;/li&gt;
&lt;li&gt;Duplicate entries every time you onboard a teammate’s laptop or a second machine.&lt;/li&gt;
&lt;li&gt;A longer tool list fighting for context before you have asked a question.&lt;/li&gt;
&lt;li&gt;Different failure modes: Node/&lt;code&gt;npx&lt;/code&gt; missing for one bridge, OAuth expired for another, API key in a URL you accidentally committed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of that means MCP is broken. It means remote MCP is a real integration surface, and each vendor owns its auth and tool design for good reasons.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Standalone is still the right default&lt;/strong&gt; when you live inside one product: PostHog’s wizard and connector, Cloudflare’s skills plugin, or a single Tavily search habit. Stay there if that matches how you work.&lt;/p&gt;

&lt;p&gt;A hub earns its keep when the &lt;strong&gt;same&lt;/strong&gt; agent needs infra + analytics + web research — and later Slack, GitHub, or a custom API — without another MCP block each time. It does &lt;strong&gt;not&lt;/strong&gt; remove the need to authorize those apps; it moves app OAuth into one place and keeps the IDE config to a single server entry.&lt;/p&gt;

&lt;h2&gt;
  
  
  Flowra as one MCP endpoint
&lt;/h2&gt;

&lt;p&gt;Disclosure: I work on &lt;a href="https://flowra.dev" rel="noopener noreferrer"&gt;Flowra&lt;/a&gt;, an AI agent and workflow platform with a hosted MCP endpoint and a &lt;a href="https://flowra.dev/toolkits" rel="noopener noreferrer"&gt;toolkit catalog&lt;/a&gt;. This section is optional; the vendor configs above stand on their own.&lt;/p&gt;

&lt;h3&gt;
  
  
  Connect once
&lt;/h3&gt;

&lt;p&gt;Hosted URL (documented for Cursor, Claude Code, Codex, and other streamable HTTP clients):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://mcp.flowra.dev/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Auth (preferred):&lt;/strong&gt; add the URL with &lt;strong&gt;no headers&lt;/strong&gt;. The client opens Flowra sign-in (Google, GitHub, or email); you pick a project. Connecting Gmail, Cloudflare, PostHog, and so on is a &lt;strong&gt;separate&lt;/strong&gt; toolkit OAuth step inside Flowra — not the same as MCP sign-in (&lt;a href="https://docs.flowra.dev/guides/mcp" rel="noopener noreferrer"&gt;MCP guide&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cursor&lt;/strong&gt; (from &lt;a href="https://docs.flowra.dev/recipes/use-mcp-in-cursor" rel="noopener noreferrer"&gt;Use MCP in Cursor&lt;/a&gt; and &lt;a href="https://flowra.dev/cursor" rel="noopener noreferrer"&gt;flowra.dev/cursor&lt;/a&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"flowra"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.flowra.dev/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"transport"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"http"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Claude Code&lt;/strong&gt; (from &lt;a href="https://flowra.dev/claude" rel="noopener noreferrer"&gt;flowra.dev/claude&lt;/a&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http flowra https://mcp.flowra.dev/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Claude Desktop:&lt;/strong&gt; follow the current Flowra MCP install steps in the &lt;a href="https://docs.flowra.dev/guides/mcp" rel="noopener noreferrer"&gt;MCP docs&lt;/a&gt; (OAuth to &lt;code&gt;https://mcp.flowra.dev/mcp&lt;/code&gt;). Client UIs differ by version, so prefer the docs over copying an unverified Desktop JSON block here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CI / no OAuth UI&lt;/strong&gt; (same recipe):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"flowra"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.flowra.dev/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"transport"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"http"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"headers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"x-api-key"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&amp;lt;your-project-api-key&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"x-username"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"project_default_user"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Meta tools instead of loading the whole catalog
&lt;/h3&gt;

&lt;p&gt;In Smart (META) mode the client sees orchestration tools first, then discovers catalog actions on demand (&lt;a href="https://docs.flowra.dev/guides/native-tools/meta" rel="noopener noreferrer"&gt;meta tools&lt;/a&gt;):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;FLOWRA_DISCOVER_TOOLS&lt;/code&gt; — find slugs for a job
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;FLOWRA_GET_TOOL_SCHEMAS&lt;/code&gt; — load argument schemas (do not invent fields)
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;FLOWRA_MANAGE_CONNECTIONS&lt;/code&gt; — start toolkit OAuth if needed
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;FLOWRA_MULTI_EXECUTE_TOOL&lt;/code&gt; — run action tools by slug
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In the Flowra dashboard: &lt;strong&gt;Toolkits&lt;/strong&gt; → connect the apps you need (&lt;a href="https://flowra.dev/toolkits/cloudflare_mcp" rel="noopener noreferrer"&gt;Cloudflare MCP&lt;/a&gt;, &lt;a href="https://flowra.dev/toolkits/posthog_mcp" rel="noopener noreferrer"&gt;PostHog MCP&lt;/a&gt;, &lt;a href="https://flowra.dev/toolkits/tavily_mcp" rel="noopener noreferrer"&gt;Tavily MCP&lt;/a&gt;, optional &lt;a href="https://flowra.dev/toolkits/railway_mcp" rel="noopener noreferrer"&gt;Railway MCP&lt;/a&gt;). Browse everything else in the &lt;a href="https://flowra.dev/toolkits" rel="noopener noreferrer"&gt;toolkit catalog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Verified action slugs on those toolkit pages (and live discover) include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cloudflare: &lt;code&gt;CLOUDFLARE_MCP_DOCS&lt;/code&gt;, &lt;code&gt;CLOUDFLARE_MCP_SEARCH&lt;/code&gt;, &lt;code&gt;CLOUDFLARE_MCP_EXECUTE&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;PostHog: &lt;code&gt;POSTHOG_MCP_EXEC&lt;/code&gt; (CLI-style &lt;code&gt;command&lt;/code&gt; strings such as &lt;code&gt;search&lt;/code&gt;, &lt;code&gt;info&lt;/code&gt;, &lt;code&gt;call&lt;/code&gt; — aligned with PostHog’s CLI-mode &lt;code&gt;exec&lt;/code&gt; docs)&lt;/li&gt;
&lt;li&gt;Tavily: &lt;code&gt;TAVILY_MCP_TAVILY_SEARCH&lt;/code&gt;, &lt;code&gt;_EXTRACT&lt;/code&gt;, &lt;code&gt;_MAP&lt;/code&gt;, &lt;code&gt;_CRAWL&lt;/code&gt;, &lt;code&gt;_RESEARCH&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Railway’s toolkit page lists a large set of deploy and ops actions; open the page for the current list rather than memorizing every slug.&lt;/p&gt;

&lt;p&gt;Flowra also documents approval gates and a run ledger for risky steps — useful when &lt;code&gt;execute&lt;/code&gt; or deploy tools can change production. See &lt;a href="https://docs.flowra.dev/guides/human-in-the-loop" rel="noopener noreferrer"&gt;human-in-the-loop&lt;/a&gt;. For plan limits and how usage is billed, see &lt;a href="https://flowra.dev" rel="noopener noreferrer"&gt;flowra.dev&lt;/a&gt; and the &lt;a href="https://docs.flowra.dev" rel="noopener noreferrer"&gt;Flowra docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you only need Cloudflare &lt;em&gt;or&lt;/em&gt; only PostHog, prefer that vendor’s MCP. Flowra is the “I keep adding servers” option, not a mandatory middleman. How individual toolkits are wired under the hood is an implementation detail — for setup, treat them as catalog toolkits you connect in Flowra, then call through the meta tools above (&lt;a href="https://docs.flowra.dev/guides/mcp" rel="noopener noreferrer"&gt;MCP guide&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try asking (after Flowra MCP is connected):&lt;/strong&gt; “Discover Cloudflare MCP tools, connect if needed, then search Workers AI docs for …”&lt;/p&gt;

&lt;h2&gt;
  
  
  Side-by-side cheatsheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Server&lt;/th&gt;
&lt;th&gt;Standalone&lt;/th&gt;
&lt;th&gt;Cursor gist&lt;/th&gt;
&lt;th&gt;Claude&lt;/th&gt;
&lt;th&gt;Via Flowra&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cloudflare&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;https://mcp.cloudflare.com/mcp&lt;/code&gt; · OAuth&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;url&lt;/code&gt; in &lt;code&gt;mcpServers&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Skills plugin / remote URL per CF docs&lt;/td&gt;
&lt;td&gt;Toolkit &lt;code&gt;cloudflare_mcp&lt;/code&gt; after Flowra OAuth&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PostHog&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;https://mcp.posthog.com/mcp&lt;/code&gt; · OAuth / wizard&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;url&lt;/code&gt; or wizard&lt;/td&gt;
&lt;td&gt;Connector, wizard, or &lt;code&gt;mcp-remote&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Toolkit &lt;code&gt;posthog_mcp&lt;/code&gt; → &lt;code&gt;POSTHOG_MCP_EXEC&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tavily&lt;/td&gt;
&lt;td&gt;Remote URL or local &lt;code&gt;tavily-mcp&lt;/code&gt; · API key / OAuth&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;mcp-remote&lt;/code&gt; or local command&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;claude mcp add …&lt;/code&gt; (OAuth) or Desktop local JSON&lt;/td&gt;
&lt;td&gt;Toolkit &lt;code&gt;tavily_mcp&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Railway&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;https://mcp.railway.com&lt;/code&gt; · OAuth&lt;/td&gt;
&lt;td&gt;&lt;code&gt;url&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;claude mcp add railway --transport http …&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Toolkit &lt;code&gt;railway_mcp&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flowra hub&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;https://mcp.flowra.dev/mcp&lt;/code&gt; · Flowra OAuth&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;url&lt;/code&gt; + &lt;code&gt;transport: http&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;claude mcp add --transport http flowra …&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Full JSON for each row is in the sections above. Official deep links: &lt;a href="https://developers.cloudflare.com/agents/model-context-protocol/cloudflare/servers-for-cloudflare/" rel="noopener noreferrer"&gt;Cloudflare&lt;/a&gt;, &lt;a href="https://posthog.com/docs/model-context-protocol" rel="noopener noreferrer"&gt;PostHog&lt;/a&gt;, &lt;a href="https://docs.tavily.com/documentation/mcp" rel="noopener noreferrer"&gt;Tavily&lt;/a&gt;, &lt;a href="https://docs.railway.com/ai/mcp-server" rel="noopener noreferrer"&gt;Railway&lt;/a&gt;, &lt;a href="https://docs.flowra.dev/guides/mcp" rel="noopener noreferrer"&gt;Flowra MCP&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security and ops
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Prefer OAuth over long-lived keys in committed &lt;code&gt;mcp.json&lt;/code&gt;. Treat Tavily’s &lt;code&gt;tavilyApiKey&lt;/code&gt; query param as a secret; use env vars or OAuth when you can.&lt;/li&gt;
&lt;li&gt;Review destructive calls before you approve them: Cloudflare &lt;code&gt;execute&lt;/code&gt;, Railway &lt;code&gt;accept-deploy&lt;/code&gt;, PostHog write tools, Flowra &lt;code&gt;FLOWRA_MULTI_EXECUTE_TOOL&lt;/code&gt; against production accounts.&lt;/li&gt;
&lt;li&gt;Scope tokens and Cloudflare OAuth permissions to what the agent actually needs. Do not paste unrestricted API tokens into shared project configs.&lt;/li&gt;
&lt;li&gt;Keep production accounts off experimental agents when you can; use a staging Cloudflare/PostHog/Railway project for early smoke tests.&lt;/li&gt;
&lt;li&gt;After config edits: reload MCP in Cursor, or fully quit and relaunch Claude Desktop so the new server list is loaded.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Troubleshooting
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP shows red / disconnected:&lt;/strong&gt; finish OAuth; for &lt;code&gt;npx&lt;/code&gt; bridges, confirm Node is on &lt;code&gt;PATH&lt;/code&gt; (&lt;code&gt;node --version&lt;/code&gt;, &lt;code&gt;which npx&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Desktop ignores JSON:&lt;/strong&gt; full quit (not only close window), then reopen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flowra meta tools work but toolkit calls fail:&lt;/strong&gt; connect the toolkit in the dashboard or via &lt;code&gt;FLOWRA_MANAGE_CONNECTIONS&lt;/code&gt;; MCP login ≠ app login.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloudflare oddities with SSE:&lt;/strong&gt; use &lt;code&gt;https://mcp.cloudflare.com/mcp&lt;/code&gt; with Streamable HTTP / auto transport, not a forced legacy SSE client mode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tavily OAuth stuck:&lt;/strong&gt; &lt;code&gt;rm -rf ~/.mcp-auth&lt;/code&gt; then reconnect (&lt;a href="https://docs.tavily.com/documentation/mcp" rel="noopener noreferrer"&gt;Tavily docs&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wrong project / wrong PostHog region:&lt;/strong&gt; re-run OAuth and pick the account you intended; PostHog routes region from the login (&lt;a href="https://posthog.com/docs/model-context-protocol" rel="noopener noreferrer"&gt;PostHog MCP&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools missing after a successful connect:&lt;/strong&gt; confirm the server is enabled in the client UI, then ask the agent to list MCP tools before blaming the prompt.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Do I need all three MCP servers at once?
&lt;/h3&gt;

&lt;p&gt;No. Start with the official Cloudflare, PostHog, or Tavily config if you only use that product. Add more servers (or a hub) when the same Cursor or Claude session needs several of them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where does Cursor store MCP config?
&lt;/h3&gt;

&lt;p&gt;Project tools go in &lt;code&gt;.cursor/mcp.json&lt;/code&gt;. Personal tools for every project go in &lt;code&gt;~/.cursor/mcp.json&lt;/code&gt;. Cursor’s MCP docs cover remote &lt;code&gt;url&lt;/code&gt; servers and command/stdio servers.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I connect Flowra without putting an API key in mcp.json?
&lt;/h3&gt;

&lt;p&gt;Add &lt;code&gt;https://mcp.flowra.dev/mcp&lt;/code&gt; with no headers and complete Flowra OAuth (Google, GitHub, or email), then pick a project. Connecting Cloudflare, PostHog, Tavily, or other apps is a separate toolkit OAuth step in Flowra. Details: &lt;a href="https://docs.flowra.dev/guides/mcp" rel="noopener noreferrer"&gt;MCP docs&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is Claude Desktop the same as Claude Code for Flowra?
&lt;/h3&gt;

&lt;p&gt;Claude Code is documented with &lt;code&gt;claude mcp add --transport http flowra https://mcp.flowra.dev/mcp&lt;/code&gt;. For Claude Desktop, follow the current steps in the &lt;a href="https://docs.flowra.dev/guides/mcp" rel="noopener noreferrer"&gt;Flowra MCP docs&lt;/a&gt; rather than assuming one JSON shape forever.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens if I put a Tavily API key in the MCP URL?
&lt;/h3&gt;

&lt;p&gt;It works for remote setup, but the key can leak via screenshots or shared repos. Prefer OAuth or an env-based local &lt;code&gt;tavily-mcp&lt;/code&gt; config when you can, as described in Tavily’s MCP docs.&lt;/p&gt;

&lt;h3&gt;
  
  
  When should I use Flowra instead of stacking vendor MCPs?
&lt;/h3&gt;

&lt;p&gt;When the same agent needs several vendors plus other apps, and you want one IDE MCP entry with discover → connect → execute. If you live inside one product, that vendor’s official MCP is usually enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;Official remote MCPs for Cloudflare, PostHog, and Tavily are ready today: paste the vendor JSON, sign in, and ask a real question. Keep that setup when one product is enough.&lt;/p&gt;

&lt;p&gt;When the same Cursor or Claude session needs those tools &lt;strong&gt;plus&lt;/strong&gt; the rest of your stack, a single Flowra MCP URL is a workable alternative — discover, connect, execute — with app credentials living in Flowra rather than one more block per vendor. Start from the free tier on &lt;a href="https://flowra.dev" rel="noopener noreferrer"&gt;flowra.dev&lt;/a&gt; if you want to try the hub; otherwise stay on the official servers and you are done.&lt;/p&gt;

&lt;p&gt;Useful bookmarks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flowra setup pages: &lt;a href="https://flowra.dev/cursor" rel="noopener noreferrer"&gt;Cursor&lt;/a&gt;, &lt;a href="https://flowra.dev/claude" rel="noopener noreferrer"&gt;Claude&lt;/a&gt;, &lt;a href="https://docs.flowra.dev/guides/mcp" rel="noopener noreferrer"&gt;MCP docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Toolkit examples: &lt;a href="https://flowra.dev/toolkits/cloudflare_mcp" rel="noopener noreferrer"&gt;cloudflare_mcp&lt;/a&gt;, &lt;a href="https://flowra.dev/toolkits/posthog_mcp" rel="noopener noreferrer"&gt;posthog_mcp&lt;/a&gt;, &lt;a href="https://flowra.dev/toolkits/tavily_mcp" rel="noopener noreferrer"&gt;tavily_mcp&lt;/a&gt;, &lt;a href="https://flowra.dev/toolkits/railway_mcp" rel="noopener noreferrer"&gt;railway_mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Catalog: &lt;a href="https://flowra.dev/toolkits" rel="noopener noreferrer"&gt;flowra.dev/toolkits&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MCP client configs change. If a snippet drifts, trust the linked official page over this article and send a correction.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>cursor</category>
      <category>claude</category>
      <category>devtools</category>
    </item>
  </channel>
</rss>
