Files
langflow/mcp-server.html
github-merge-queue[bot] fc9f1889e5 deploy: 8fff7cc4a4
2025-08-14 19:10:06 +00:00

224 lines
52 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-Concepts/mcp-server" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.8.1">
<title data-rh="true">Use Langflow as an MCP server | Langflow Documentation</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.langflow.org/mcp-server"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Use Langflow as an MCP server | Langflow Documentation"><meta data-rh="true" name="description" content="Langflow integrates with the Model Context Protocol (MCP) as both an MCP server and an MCP client."><meta data-rh="true" property="og:description" content="Langflow integrates with the Model Context Protocol (MCP) as both an MCP server and an MCP client."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.langflow.org/mcp-server"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/mcp-server" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.langflow.org/mcp-server" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://UZK6BDPCVY-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Use Langflow as an MCP server","item":"https://docs.langflow.org/mcp-server"}]}</script><link rel="preconnect" href="https://www.google-analytics.com">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script async src="https://www.googletagmanager.com/gtag/js?id=G-SLQFLQ3KPT"></script>
<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-SLQFLQ3KPT",{})</script>
<link rel="search" type="application/opensearchdescription+xml" title="Langflow Documentation" href="/opensearch.xml">
<script>!function(){var e="analytics",t=window[e]=window[e]||[];if(!t.initialize)if(t.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{t.invoked=!0,t.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","screen","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware","register"],t.factory=function(n){return function(){if(window[e].initialized)return window[e][n].apply(window[e],arguments);var r=Array.prototype.slice.call(arguments);if(["track","screen","alias","group","page","identify"].indexOf(n)>-1){var i=document.querySelector("link[rel='canonical']");r.push({__t:"bpc",c:i&&i.getAttribute("href")||void 0,p:location.pathname,u:location.href,s:location.search,t:document.title,r:document.referrer})}return r.unshift(n),t.push(r),t}};for(var n=0;n<t.methods.length;n++){var r=t.methods[n];t[r]=t.factory(r)}t.load=function(n,r){var i=document.createElement("script");i.type="text/javascript",i.async=!0,i.setAttribute("data-global-segment-analytics-key",e),i.src="https://cdn.segment.com/analytics.js/v1/"+n+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(i,a),t._loadOptions=r},t._writeKey="60AfGDrVxy8nAGJngo3fCYWG4LvhMAlG",t.SNIPPET_VERSION="5.2.0",t.load("60AfGDrVxy8nAGJngo3fCYWG4LvhMAlG"),t.page()}}()</script>
<script>window.__SCROLL_TRACKING_CONFIG__={selectors:[{selector:"h1, h2, h3, h4, h5, h6",eventName:"Docs.langflow.org - Heading Viewed",properties:{element_type:"heading"}},{selector:".ch-codeblock",eventName:"Docs.langflow.org - Codeblock Viewed",properties:{element_type:"code",language:"helper:codeLanguage"}}]}</script>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Sora:wght@550;600&amp;display=swap">
<script>!function(){window.semaphore=window.semaphore||[],window.ketch=function(){window.semaphore.push(arguments)};var e=document.createElement("script");e.type="text/javascript",e.src="https://global.ketchcdn.com/web/v3/config/datastax/langflow_org_web/boot.js",e.defer=e.async=!0,document.getElementsByTagName("head")[0].appendChild(e)}()</script>
<script defer="true">!function(){const e=e=>{if(window.gtag&&e.purposes&&"analytics"in e.purposes&&"targeted_advertising"in e.purposes){const n=!0===e.purposes.analytics?"granted":"denied",t=!0===e.purposes.targeted_advertising?"granted":"denied",a={analytics_storage:n,ad_personalization:t,ad_storage:t,ad_user_data:t};window.gtag("consent","update",a)}};window.ketch&&window.ketch("on","consent",e)}()</script><link rel="stylesheet" href="/assets/css/styles.e756ed1e.css">
<script src="/assets/js/runtime~main.16a1d68d.js" defer="defer"></script>
<script src="/assets/js/main.6e50f663.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/lf-docs-light.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/lf-docs-dark.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div></a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://github.com/langflow-ai/langflow" target="_blank" class="navbar__item navbar__link header-github-link" data-event="Docs.langflow.org - Social Clicked" data-platform="github"></a><a href="https://twitter.com/langflow_ai" target="_blank" class="navbar__item navbar__link header-twitter-link" data-event="Docs.langflow.org - Social Clicked" data-platform="x"></a><a href="https://discord.gg/EqksyE2EX9" target="_blank" class="navbar__item navbar__link header-discord-link" data-event="Docs.langflow.org - Social Clicked" data-platform="discord"></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search (Command+K)"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex="-1" class="sidebarLogo_isFc" href="/"><img src="/img/lf-docs-light.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/lf-docs-dark.svg" alt="Langflow" class="themedComponent_mlkZ themedComponent--dark_xIcU"></a><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/">Welcome to Langflow</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/about-langflow">Get started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/concepts-overview">Flows</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/agents">Agents</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role="button" aria-expanded="true" href="/mcp-client">Model Context Protocol (MCP)</a></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/mcp-client">Use Langflow as an MCP client</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/mcp-server">Use Langflow as an MCP server</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/mcp-component-astra">Connect an Astra DB MCP server to Langflow</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/api-keys-and-authentication">Develop</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/deployment-overview">Deploy</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/concepts-components">Components reference</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/api-reference-api-examples">API reference</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/contributing-community">Contribute</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/release-notes">Release notes</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/troubleshoot">Support</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 sidebar-ad">
<a href="https://www.langflow.org/desktop" target="_blank" class="menu__link">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1645_37)">
<path d="M12 17H20C21.1046 17 22 16.1046 22 15V13M12 17H4C2.89543 17 2 16.1046 2 15V5C2 3.89543 2.89543 3 4 3H10M12 17V21M8 21H12M12 21H16M11.75 10.2917H13.2083L16.125 7.375H17.5833L20.5 4.45833H21.9583M16.125 11.75H17.5833L20.5 8.83333H21.9583M11.75 5.91667H13.2083L16.125 3H17.5833" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<defs>
<clipPath id="clip0_1645_37">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>
<div class="sidebar-ad-text-container">
<span class="sidebar-ad-text">Get started in minutes</span>
<span class="sidebar-ad-text sidebar-ad-text-gradient">Download Langflow Desktop</span>
</div>
</a>
</li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Model Context Protocol (MCP)</span></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Use Langflow as an MCP server</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Use Langflow as an MCP server</h1></header><style>[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }</style>
<!-- -->
<p>Langflow integrates with the <a href="https://modelcontextprotocol.io/introduction" target="_blank" rel="noopener noreferrer">Model Context Protocol (MCP)</a> as both an MCP server and an MCP client.</p>
<p>This page describes how to use Langflow as an MCP server.</p>
<p>For information about using Langflow as an MCP client, see <a href="/mcp-client">Use Langflow as an MCP client</a>.</p>
<p>As an MCP server, Langflow exposes your flows as <a href="https://modelcontextprotocol.io/docs/concepts/tools" target="_blank" rel="noopener noreferrer">tools</a> that <a href="https://modelcontextprotocol.io/clients" target="_blank" rel="noopener noreferrer">MCP clients</a> can use to take actions.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="prerequisites">Prerequisites<a href="#prerequisites" class="hash-link" aria-label="Direct link to Prerequisites" title="Direct link to Prerequisites"></a></h2>
<ul>
<li>
<p>A <a href="/concepts-flows#projects">Langflow project</a> with at least one flow.</p>
</li>
<li>
<p>Any LTS version of <a href="https://docs.npmjs.com/downloading-and-installing-node-js-and-npm" target="_blank" rel="noopener noreferrer">Node.js</a> installed on your computer if you want to use MCP Inspector to <a href="#test-and-debug-flows">test and debug flows</a>.</p>
</li>
<li>
<p><a href="https://ngrok.com/docs/getting-started/#1-install-ngrok" target="_blank" rel="noopener noreferrer">ngrok installed</a> and an <a href="https://dashboard.ngrok.com/get-started/your-authtoken" target="_blank" rel="noopener noreferrer">ngrok authtoken</a> if you want to <a href="/deployment-public-server">deploy a public Langflow server</a>.</p>
</li>
</ul>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="select-flows-to-serve">Select and configure flows to expose as MCP tools<a href="#select-flows-to-serve" class="hash-link" aria-label="Direct link to Select and configure flows to expose as MCP tools" title="Direct link to Select and configure flows to expose as MCP tools"></a></h2>
<div class="theme-admonition theme-admonition-important admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>MCP flow requirements</div><div class="admonitionContent_BuS1"><p>A flow must contain a <a href="/components-io#chat-output"><strong>Chat Output</strong> component</a> to be used as a tool by MCP clients.</p></div></div>
<p>Each <a href="/concepts-flows#projects">Langflow project</a> has an MCP server that exposes the project&#x27;s flows as tools that MCP clients can use to generate responses.</p>
<p>By default, all flows in a project are exposed as tools on the project&#x27;s MCP server.</p>
<p>The following steps explain how to limit the exposed flows and, optionally, rename flows for agentic use:</p>
<ol>
<li>
<p>From the Langflow dashboard, select the project that contains the flows you want to serve as tools, and then click the <strong>MCP Server</strong> tab.
Alternatively, you can quickly access the <strong>MCP Server</strong> tab from within any flow by selecting <strong>Share &gt; MCP Server</strong>.</p>
<p>The <strong>Auto install</strong> and <strong>JSON</strong> tabs display options for connecting MCP clients to the project&#x27;s MCP server.</p>
<p>The <strong>Flows/Tools</strong> section lists the flows that are currently being served as tools.</p>
<p><img decoding="async" loading="lazy" alt="MCP server projects page" src="/assets/images/mcp-server-53850e4ac7599dec00dd7d01922ba79f.png" width="4000" height="2174" class="img_ev3q"></p>
</li>
<li>
<p>Click <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings2" aria-hidden="true"><path d="M20 7h-9"></path><path d="M14 17H5"></path><circle cx="17" cy="17" r="3"></circle><circle cx="7" cy="7" r="3"></circle></svg> <strong>Edit Tools</strong>.</p>
</li>
<li>
<p>In the <strong>MCP Server Tools</strong> window, select the flows that you want exposed as tools.</p>
<p><img decoding="async" loading="lazy" alt="MCP Server Tools" src="/assets/images/mcp-server-tools-ddc0f1dc04109b9f3daf6a2f380073c4.png" width="4000" height="2030" class="img_ev3q"></p>
</li>
<li>
<p>Recommended: Edit the <strong>Tool Name</strong> and <strong>Tool Description</strong> to help MCP clients determine which actions your flows provide and when to use those actions:</p>
<ul>
<li>
<p><strong>Tool Name</strong>: Enter a name that makes it clear what the flow does when used as a tool by an agent.</p>
</li>
<li>
<p><strong>Tool Description</strong>: Enter a description that accurately describes the specific actions the flow performs.</p>
</li>
</ul>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Name and describe your flows for agentic use</summary><div><div class="collapsibleContent_i85q"><p>MCP clients use the <strong>Tool Name</strong> and <strong>Tool Description</strong> to determine which action to use.</p><p>MCP clients like <a href="https://www.cursor.com/" target="_blank" rel="noopener noreferrer">Cursor</a> treat your Langflow project as a single MCP server with all of your enabled flows listed as tools.</p><p>This can confuse agents if the flows have unclear names or descriptions.
For example, a flow&#x27;s default name is the flow ID, such as <code>adbbf8c7-0a34-493b-90ea-5e8b42f78b66</code>.
This provides no information to an agent about the type of flow or it&#x27;s purpose.</p><p>To provide more context about your flows, make sure to name and describe your flows clearly when configuring your Langflow project&#x27;s MCP server.</p><p>It&#x27;s helpful to think of the names and descriptions as function names and code comments, using clear statements describing the problems your flows solve.</p><p>For example, assume you create a flow based on the <strong>Document Q&amp;A</strong> template that uses an LLM to chat about resumes, and then you give the flow the following name and description:</p><ul>
<li>
<p><strong>Tool Name</strong>: <code>document_qa_for_resume</code></p>
</li>
<li>
<p><strong>Tool Description</strong>: <code>A flow for analyzing Emily&#x27;s resume.</code></p>
</li>
</ul><p>After connecting your Langflow MCP server to Cursor, you can ask Cursor about the resume, such as <code>What job experience does Emily have?</code>.
Using the context provided by your tool name and description, the agent can decide to use the <code>document_qa_for_resume</code> MCP tool to create a response about Emily&#x27;s resume.
If necessary, the agent asks permission to use the flow tool before generating the response.</p><p>If you ask about a different resume, such as <code>What job experience does Alex have?</code>, the agent can decide that <code>document_qa_for_resume</code> isn&#x27;t relevant to this request, because the tool description specifies that the flow is for Emily&#x27;s resume.
In this case, the agent might use another available tool, or it can inform you that it doesn&#x27;t have access to information about Alex&#x27;s.
For example:</p><div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>I notice you&#x27;re asking about Alex&#x27;s job experience.</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>Based on the available tools, I can see there is a Document QA for Resume flow that&#x27;s designed for analyzing resumes.</span></div></div><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>However, the description mentions it&#x27;s for &quot;Emily&#x27;s resume&quot; not Alex&#x27;s. I don&#x27;t have access to Alex&#x27;s resume or job experience information.</span></div></div><br></code></div></div></div></div></details>
</li>
<li>
<p>Close the <strong>MCP Server Tools</strong> window to save your changes.</p>
</li>
</ol>
<!-- -->
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="connect-clients-to-use-the-servers-actions">Connect clients to Langflow&#x27;s MCP server<a href="#connect-clients-to-use-the-servers-actions" class="hash-link" aria-label="Direct link to Connect clients to Langflow&#x27;s MCP server" title="Direct link to Connect clients to Langflow&#x27;s MCP server"></a></h2>
<p>The following procedure describes how to connect <a href="https://www.cursor.com/" target="_blank" rel="noopener noreferrer">Cursor</a> to your Langflow project&#x27;s MCP server to consume your flows as tools.
However, you can connect any <a href="https://modelcontextprotocol.io/clients" target="_blank" rel="noopener noreferrer">MCP-compatible client</a> following similar steps.</p>
<div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Auto install</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">JSON</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="theme-admonition theme-admonition-important admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>important</div><div class="admonitionContent_BuS1"><p>Auto installation only works if your HTTP client and Langflow server are on the same local machine.
If this isn&#x27;t the case, use the <strong>JSON</strong> option to configure the MCP server.</p></div></div><ol>
<li>Install <a href="https://docs.cursor.com/get-started/installation" target="_blank" rel="noopener noreferrer">Cursor</a>.</li>
<li>In the Langflow dashboard, select the project that contains the flows you want to serve, and then click the <strong>MCP Server</strong> tab.</li>
<li>To auto install your current Langflow project as an MCP server, click <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus" aria-hidden="True"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg> <strong>Add</strong>.</li>
</ol><p>The installation adds the server&#x27;s configuration file to Cursor&#x27;s <code>mcp.json</code> configuration file.</p></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><ol>
<li>
<p>Install <a href="https://docs.cursor.com/get-started/installation" target="_blank" rel="noopener noreferrer">Cursor</a>.</p>
</li>
<li>
<p>In Cursor, go to <strong>Cursor Settings &gt; MCP</strong>, and then click <strong>Add New Global MCP Server</strong>.
This opens Cursor&#x27;s global MCP configuration file, <code>mcp.json</code>.</p>
</li>
<li>
<p>In the Langflow dashboard, select the project that contains the flows you want to serve, and then click the <strong>MCP Server</strong> tab.</p>
</li>
<li>
<p>Copy the code template from the <strong>JSON</strong> tab, and then paste it into <code>mcp.json</code> in Cursor.
For example:</p>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> &quot;mcpServers&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> &quot;PROJECT_NAME&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> &quot;command&quot;: &quot;uvx&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> &quot;args&quot;: [</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> &quot;mcp-proxy&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> &quot;http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> ]</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><br></code></div></div>
<p>The <strong>MCP Server</strong> tab automatically includes the correct <code>PROJECT_NAME</code>, <code>LANGFLOW_SERVER_ADDRESS</code>, and <code>PROJECT_ID</code> values.
The default Langflow server address is <code>http://localhost:7860</code>.</p>
<p>If you have <a href="/deployment-public-server">deployed a public Langflow server</a>, the address is automatically included.</p>
<p>If your Langflow server requires authentication, you must include your Langflow API key in the configuration.
For more information, see <a href="#authentication">MCP server authentication and environment variables</a>.</p>
</li>
<li>
<p>Save and close the <code>mcp.json</code> file in Cursor.
The newly added MCP server will appear in the <strong>MCP Servers</strong> section.</p>
</li>
</ol></div></div></div>
<p>Cursor is now connected to your project&#x27;s MCP server and your flows are registered as tools.
Cursor determines when to use tools based on your queries, and requests permissions when necessary.
For more information, see the <a href="https://docs.cursor.com/context/model-context-protocol" target="_blank" rel="noopener noreferrer">Cursor&#x27;s MCP documentation</a>.</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="authentication">MCP server authentication and environment variables<a href="#authentication" class="hash-link" aria-label="Direct link to MCP server authentication and environment variables" title="Direct link to MCP server authentication and environment variables"></a></h3>
<p>You must provide a Langflow API key in your MCP client configuration if your <a href="/api-keys-and-authentication#start-a-langflow-server-with-authentication-enabled">Langflow server has authentication enabled</a>.</p>
<p>When this is the case, the code template in your project&#x27;s <strong>MCP Server</strong> tab automatically includes the <code>--header</code> and <code>x-api-key</code> arguments:</p>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;mcpServers&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;PROJECT_NAME&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;command&quot;: &quot;uvx&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;args&quot;: [</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;mcp-proxy&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;--headers&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;x-api-key&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;YOUR_API_KEY&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> ]</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><br></code></div></div>
<p>Click <!-- --> <strong>Generate API key</strong> to automatically insert a new Langflow API key into the code template.
Alternatively, you can replace <code>YOUR_API_KEY</code> with an existing Langflow API key.</p>
<p><img decoding="async" loading="lazy" alt="MCP server tab showing Generate API key button" src="/assets/images/mcp-server-api-key-5a39d0de10227381df269c4595d4d896.png" width="4000" height="2188" class="img_ev3q"></p>
<p>To include other environment variables with your MCP server command, use the <code>env</code> object with key-value pairs of environment variables:</p>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;mcpServers&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;PROJECT_NAME&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;command&quot;: &quot;uvx&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;args&quot;: [</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;mcp-proxy&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> ],</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;env&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> &quot;KEY&quot;: &quot;VALUE&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->14</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><br></code></div></div>
<!-- -->
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="deploy-your-server-externally">Deploy your MCP server externally<a href="#deploy-your-server-externally" class="hash-link" aria-label="Direct link to Deploy your MCP server externally" title="Direct link to Deploy your MCP server externally"></a></h3>
<p>To deploy your MCP server externally with ngrok, see <a href="/deployment-public-server">Deploy a public Langflow server</a>.</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="test-and-debug-flows">Use MCP Inspector to test and debug flows<a href="#test-and-debug-flows" class="hash-link" aria-label="Direct link to Use MCP Inspector to test and debug flows" title="Direct link to Use MCP Inspector to test and debug flows"></a></h2>
<p><a href="https://modelcontextprotocol.io/docs/tools/inspector" target="_blank" rel="noopener noreferrer">MCP Inspector</a> is a common tool for testing and debugging MCP servers.
You can use MCP Inspector to monitor your flows and get insights into how they are being consumed by the MCP server:</p>
<ol>
<li>
<p>Install MCP Inspector:</p>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>npx @modelcontextprotocol/inspector</span></div></div><br></code></div></div>
<p>For more information about configuring MCP Inspector, including specifying a proxy port, see the <a href="https://github.com/modelcontextprotocol/inspector" target="_blank" rel="noopener noreferrer">MCP Inspector GitHub project</a>.</p>
</li>
<li>
<p>Open a web browser and navigate to the MCP Inspector UI.
The default address is <code>http://localhost:6274</code>.</p>
</li>
<li>
<p>In the MCP Inspector UI, enter the connection details for your Langflow project&#x27;s MCP server:</p>
<ul>
<li><strong>Transport Type</strong>: Select <strong>SSE</strong>.</li>
<li><strong>URL</strong>: Enter the Langflow MCP server&#x27;s <code>sse</code> endpoint. For example: <code>http://localhost:7860/api/v1/mcp/project/d359cbd4-6fa2-4002-9d53-fa05c645319c/sse</code></li>
</ul>
<p>If you&#x27;ve <a href="#authentication">configured authentication for your MCP server</a>, fill out the following additional fields:</p>
<ul>
<li><strong>Transport Type</strong>: Select <strong>STDIO</strong>.</li>
<li><strong>Command</strong>: <code>uvx</code></li>
<li><strong>Arguments</strong>: Enter the following list of arguments, separated by spaces. Replace the values for <code>YOUR_API_KEY</code>, <code>LANGFLOW_SERVER_ADDRESS</code>, and <code>PROJECT_ID</code> with the values from your Langflow MCP server. For example:</li>
</ul>
<div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->10</span><div style="display:inline-block;margin-left:16px"><span>mcp-proxy --headers x-api-key YOUR_API_KEY http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse</span></div></div><br></code></div></div>
</li>
<li>
<p>Click <strong>Connect</strong>.</p>
<p>If the connection was successful, you should see your project&#x27;s flows in the <strong>Tools</strong> tab.
From this tab, you can monitor how your flows are being registered as tools by MCP, as well as test the tools with custom input values.</p>
</li>
<li>
<p>To quit MCP Inspector, press <kbd>Control+C</kbd> in the same terminal window where you started it.</p>
</li>
</ol>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="troubleshooting-mcp-server">Troubleshooting MCP server<a href="#troubleshooting-mcp-server" class="hash-link" aria-label="Direct link to Troubleshooting MCP server" title="Direct link to Troubleshooting MCP server"></a></h2>
<p>If Claude for Desktop isn&#x27;t using your server&#x27;s tools correctly, you may need to explicitly define the path to your local <code>uvx</code> or <code>npx</code> executable file in the <code>claude_desktop_config.json</code> configuration file.</p>
<ol>
<li>
<p>To find your UVX path, run <code>which uvx</code>.</p>
<p>To find your NPX path, run <code>which npx</code>.</p>
</li>
<li>
<p>Copy the path, and then replace <code>PATH_TO_UVX</code> or <code>PATH_TO_NPX</code> in your <code>claude_desktop_config.json</code> file.</p>
<div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">uvx</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">npx</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> &quot;mcpServers&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> &quot;PROJECT_NAME&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> &quot;command&quot;: &quot;PATH_TO_UVX&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> &quot;args&quot;: [</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> &quot;mcp-proxy&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> &quot;http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> ]</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->11</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><br></code></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="ch-codeblock not-prose" data-ch-theme="github-dark"><div class="ch-code-wrapper ch-code" data-ch-measured="false"><code class="ch-code-scroll-parent"><br><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> &quot;mcpServers&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> &quot;PROJECT_NAME&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> &quot;command&quot;: &quot;PATH_TO_NPX&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> &quot;args&quot;: [</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> &quot;-y&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> &quot;supergateway&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> &quot;--sse&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> &quot;http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> ]</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><br></code></div></div></div></div></div>
</li>
</ol>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="see-also">See also<a href="#see-also" class="hash-link" aria-label="Direct link to See also" title="Direct link to See also"></a></h2>
<ul>
<li><a href="/mcp-client">Use Langflow as an MCP client</a></li>
<li><a href="/mcp-component-astra">Use a DataStax Astra DB MCP server</a></li>
</ul></div></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/mcp-client"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Use Langflow as an MCP client</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/mcp-component-astra"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Connect an Astra DB MCP server to Langflow</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#select-flows-to-serve" class="table-of-contents__link toc-highlight">Select and configure flows to expose as MCP tools</a></li><li><a href="#connect-clients-to-use-the-servers-actions" class="table-of-contents__link toc-highlight">Connect clients to Langflow&#39;s MCP server</a><ul><li><a href="#authentication" class="table-of-contents__link toc-highlight">MCP server authentication and environment variables</a></li><li><a href="#deploy-your-server-externally" class="table-of-contents__link toc-highlight">Deploy your MCP server externally</a></li></ul></li><li><a href="#test-and-debug-flows" class="table-of-contents__link toc-highlight">Use MCP Inspector to test and debug flows</a></li><li><a href="#troubleshooting-mcp-server" class="table-of-contents__link toc-highlight">Troubleshooting MCP server</a></li><li><a href="#see-also" class="table-of-contents__link toc-highlight">See also</a></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title"></div><ul class="footer__items clean-list"><li class="footer__item"><div class="footer-links">
<span>© 2025 Langflow</span>
<span id="preferenceCenterContainer"> ·&nbsp; <a href="https://langflow.org/preferences">Manage Privacy Choices</a></span>
</div></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/img/lf-docs-light.svg" alt="Langflow" class="footer__logo themedComponent_mlkZ themedComponent--light_NVdE" width="160" height="40"><img src="/img/lf-docs-dark.svg" alt="Langflow" class="footer__logo themedComponent_mlkZ themedComponent--dark_xIcU" width="160" height="40"></div></div></div></footer><div style="position:fixed;right:20px;bottom:20px;z-index:100;display:flex;align-items:center;gap:10px;cursor:pointer"><div style="background-color:#f6f6f6;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px rgba(0,0,0,0.1)"><img src="/img/langflow-icon-black-transparent.svg" style="width:40px" alt="Search"></div></div></div>
</body>
</html>