Files
langflow/mcp-server.html
2026-06-25 13:37:38 +00:00

327 lines
72 KiB
HTML
Raw Permalink 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-1.10.0 docs-doc-page docs-doc-id-Agents/mcp-server" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<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="1.10.0"><meta data-rh="true" name="docusaurus_tag" content="docs-default-1.10.0"><meta data-rh="true" name="docsearch:version" content="1.10.0"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-1.10.0"><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>window._ibmAnalytics={settings:{name:"DataStax",tealiumProfileName:"ibm-subsidiary"},trustarc:{privacyPolicyLink:"https://ibm.com/privacy"},"digitalData.page.services.google.enabled":!0},window.digitalData={page:{pageInfo:{ibm:{siteId:"IBM_"+_ibmAnalytics.settings.name},segment:{enabled:!0,env:"prod",key:"B04fNhD06DqDPuaRfQl5lZ2iQICdxxuh",coremetrics:!1,carbonComponentEvents:!1}},category:{primaryCategory:"PC230"}},commonProperties:{productTitle:"IBM Elite Support for Langflow",productCode:"5900BUB",productCodeType:"WWPC",UT30:"30AS5",instanceId:"docs-site",subscriptionId:"public-access",productPlanName:"Public",productPlanType:"freemium",userId:"IBMid-ANONYMOUS"}}</script>
<script src="//1.www.s81c.com/common/stats/ibm-common.js" async="true"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&amp;family=Geist+Mono:wght@400;500&amp;family=Sora:wght@550;600&amp;display=swap">
<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied"})</script>
<script>!function(){function e(){if(void 0!==window.truste&&window.truste.cma){var e=window.truste.cma.callApi("getConsent",window.location.href)||{},n=1===e[2],t=1===e[3];gtag("consent","update",{ad_storage:n?"granted":"denied",ad_user_data:n?"granted":"denied",ad_personalization:n?"granted":"denied",analytics_storage:t?"granted":"denied"})}}window.addEventListener&&(window.addEventListener("cm_data_subject_consent_changed",e),window.addEventListener("cm_consent_preferences_set",e)),"complete"===document.readyState?e():window.addEventListener("load",e)}()</script><link rel="stylesheet" href="/assets/css/styles.0d9d771d.css">
<script src="/assets/js/runtime~main.c313665b.js" defer="defer"></script>
<script src="/assets/js/main.12b252df.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<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"><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 class="navbar__item dropdown dropdown--hoverable"><a aria-current="page" class="navbar__link active" aria-haspopup="true" aria-expanded="false" role="button" href="/mcp-server">1.10.x</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/next/mcp-server">1.11.x (Next)</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/mcp-server">1.10.x</a></li><li><a class="dropdown__link" href="/1.9.0/mcp-server">1.9.x</a></li><li><a class="dropdown__link" href="/1.8.0/mcp-server">1.8.x</a></li></ul></div></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" aria-label="GitHub" data-event="UI Interaction" data-action="clicked" data-channel="docs" data-element-id="social-github" data-namespace="header" data-platform-title="Langflow"></a><a href="https://twitter.com/langflow_ai" target="_blank" class="navbar__item navbar__link header-twitter-link" aria-label="Twitter" data-event="UI Interaction" data-action="clicked" data-channel="docs" data-element-id="social-twitter" data-namespace="header" data-platform-title="Langflow"></a><a href="https://discord.gg/EqksyE2EX9" target="_blank" class="navbar__item navbar__link header-discord-link" aria-label="Discord" data-event="UI Interaction" data-action="clicked" data-channel="docs" data-element-id="social-discord" data-namespace="header" data-platform-title="Langflow"></a><div class="toggle_MW0i colorModeToggle_DEke"><button class="clean-btn toggleButton_yw5v toggleButtonDisabled_BJd7" 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" focusable="false" role="presentation" class="toggleIcon_oIOL lightToggleIcon_SFTY"><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" focusable="false" role="presentation" class="toggleIcon_oIOL darkToggleIcon_ekgs"><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" focusable="false" role="presentation" class="toggleIcon_oIOL systemToggleIcon_yi_a"><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 (Meta+k)" aria-keyshortcuts="Meta+k"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 24 24" aria-hidden="true"><circle cx="11" cy="11" r="8" stroke="currentColor" fill="none" stroke-width="1.4"></circle><path d="m21 21-4.3-4.3" stroke="currentColor" fill="none" 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 aria-label="Documentation sidebar" class="theme-doc-sidebar-container docSidebarContainer_RSuS"><div class="sidebarViewport_pYEE"><div class="sidebar_njMd"><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 sidebar-group-divider"><div class="sidebar-group-label">Build</div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed sidebar-category-with-icon sidebar-icon-rocket"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/"><span title="Get started" class="categoryLinkLabel_W154">Get started</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed sidebar-category-with-icon sidebar-icon-workflow"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/concepts-overview"><span title="Flows" class="categoryLinkLabel_W154">Flows</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed sidebar-category-with-icon sidebar-icon-bot"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/agents"><span title="Agents" class="categoryLinkLabel_W154">Agents</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item sidebar-category-with-icon sidebar-icon-plug"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role="button" aria-expanded="true" href="/mcp-client"><span title="Model Context Protocol (MCP)" class="categoryLinkLabel_W154">Model Context Protocol (MCP)</span></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"><span title="Use Langflow as an MCP client" class="linkLabel_WmDU">Use Langflow as an MCP client</span></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"><span title="Use Langflow as an MCP server" class="linkLabel_WmDU">Use Langflow as an MCP server</span></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="/langflow-mcp-client"><span title="Langflow MCP Client for coding agents" class="linkLabel_WmDU">Langflow MCP Client for coding agents</span></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"><span title="Connect an Astra DB MCP server to Langflow" class="linkLabel_WmDU">Connect an Astra DB MCP server to Langflow</span></a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 sidebar-group-divider"><div class="sidebar-group-label">Develop & Deploy</div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed sidebar-category-with-icon sidebar-icon-code"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/api-keys-and-authentication"><span title="Develop" class="categoryLinkLabel_W154">Develop</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed sidebar-category-with-icon sidebar-icon-cloud"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/deployment-overview"><span title="Deploy" class="categoryLinkLabel_W154">Deploy</span></a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 sidebar-group-divider"><div class="sidebar-group-label">Reference</div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed sidebar-category-with-icon sidebar-icon-blocks"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/concepts-components"><span title="Components reference" class="categoryLinkLabel_W154">Components reference</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed sidebar-category-with-icon sidebar-icon-fileCode"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/api-reference-api-examples"><span title="API reference" class="categoryLinkLabel_W154">API reference</span></a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 sidebar-group-divider"><div class="sidebar-group-label">Community</div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed sidebar-category-with-icon sidebar-icon-gitPR"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/contributing-community"><span title="Contribute" class="categoryLinkLabel_W154">Contribute</span></a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed sidebar-category-with-icon sidebar-icon-helpCircle"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/troubleshoot"><span title="Support" class="categoryLinkLabel_W154">Support</span></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" rel="noopener noreferrer" class="menu__link">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
<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_z5aJ"><div class="docItemContainer_c0TR"><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" aria-hidden="true" focusable="false" role="presentation" class="breadcrumbHomeIcon_xK9p"><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="docMetaRow_c2hx"><div class="root_Eutc"><button type="button" class="button_gpNY"><span aria-hidden="true" class="icon_Bm9L"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></span><span class="label_LzDG">Copy page</span></button></div><span class="theme-doc-version-badge badge badge--secondary">Version: 1.10.x</span></div><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" class="">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 that exposes your flows as <a href="https://modelcontextprotocol.io/docs/concepts/tools" target="_blank" rel="noopener noreferrer" class="">tools</a> that <a href="https://modelcontextprotocol.io/clients" target="_blank" rel="noopener noreferrer" class="">MCP clients</a> can use when generating responses.</p>
<p>Langflow MCP servers support both the <strong>streamable HTTP</strong> transport and <strong>Server-Sent Events (SSE)</strong> as a fallback.
The default project MCP server configuration uses streamable HTTP transport at the URL path <code>/streamable</code>.</p>
<p>For information about using Langflow as an MCP client and managing MCP server connections within flows, see <a class="" href="/mcp-client">Use Langflow as an MCP client</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="prerequisites">Prerequisites<a href="#prerequisites" class="hash-link" aria-label="Direct link to Prerequisites" title="Direct link to Prerequisites" translate="no"></a></h2>
<ul>
<li class="">
<p>A <a class="" href="/concepts-flows#projects">Langflow project</a> with at least one flow that has a <a class="" href="/chat-input-and-output"><strong>Chat Output</strong> component</a>.</p>
<p>The <strong>Chat Output</strong> component is required to use a flow as an MCP tool.</p>
</li>
<li class="">
<p>Any LTS version of <a href="https://docs.npmjs.com/downloading-and-installing-node-js-and-npm" target="_blank" rel="noopener noreferrer" class="">Node.js</a> installed on your computer if you want to use MCP Inspector to <a href="#test-and-debug-flows" class="">test and debug flows</a>.</p>
</li>
<li class="">
<p><a href="https://ngrok.com/docs/getting-started/#1-install-ngrok" target="_blank" rel="noopener noreferrer" class="">ngrok installed</a> and an <a href="https://dashboard.ngrok.com/get-started/your-authtoken" target="_blank" rel="noopener noreferrer" class="">ngrok authtoken</a> if you want to <a class="" href="/deployment-public-server">deploy a public Langflow server</a>.</p>
</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="select-flows-to-serve">Serve flows as MCP tools<a href="#select-flows-to-serve" class="hash-link" aria-label="Direct link to Serve flows as MCP tools" title="Direct link to Serve flows as MCP tools" translate="no"></a></h2>
<p>When you create a <a class="" href="/concepts-flows#projects">Langflow project</a>, Langflow automatically adds the project to your MCP server&#x27;s configuration and makes the project&#x27;s flows available as MCP tools.</p>
<p>If your Langflow server has authentication enabled (<code>AUTO_LOGIN=false</code>), the project&#x27;s MCP server is automatically configured with API key authentication, and a new API key is generated specifically for accessing the new project&#x27;s flows.
For more information, see <a href="#authentication" class="">MCP server authentication</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="prevent-automatic-mcp-server-configuration-for-langflow-projects">Prevent automatic MCP server configuration for Langflow projects<a href="#prevent-automatic-mcp-server-configuration-for-langflow-projects" class="hash-link" aria-label="Direct link to Prevent automatic MCP server configuration for Langflow projects" title="Direct link to Prevent automatic MCP server configuration for Langflow projects" translate="no"></a></h3>
<p>To disable automatic MCP server configuration for new projects, set the <code>LANGFLOW_ADD_PROJECTS_TO_MCP_SERVERS</code> environment variable to <code>false</code>.
For more information, see <a href="#mcp-server-environment-variables" class="">MCP server environment variables</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="selectively-enable-and-disable-mcp-servers-for-langflow-projects">Selectively enable and disable MCP servers for Langflow projects<a href="#selectively-enable-and-disable-mcp-servers-for-langflow-projects" class="hash-link" aria-label="Direct link to Selectively enable and disable MCP servers for Langflow projects" title="Direct link to Selectively enable and disable MCP servers for Langflow projects" translate="no"></a></h3>
<p>With or without automatic MCP server configuration enabled, you can selectively enable and disable the projects that are exposed as MCP tools:</p>
<ol>
<li class="">
<p>Click the <strong>MCP Server</strong> tab on the <a class="" href="/concepts-flows#projects"><strong>Projects</strong> page</a>, or, when editing a flow, click <strong>Share</strong>, and then select <strong>MCP Server</strong>.</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>
<p>The <strong>Flows/Tools</strong> section lists the flows that are currently being served as tools on this MCP server.</p>
</li>
<li class="">
<p>To toggle exposed flows, click <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wrench lf-inline-icon" aria-hidden="true" focusable="false" role="presentation"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg> <strong>Edit Tools</strong>, and then select the flows that you want exposed as tools.
To prevent a flow from being used as a tool, clear the checkbox in the first column.</p>
</li>
<li class="">
<p>Close the <strong>MCP Server Tools</strong> dialog to save your changes.</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>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="edit-flow-tool-names-and-descriptions">Edit flow tool names and descriptions<a href="#edit-flow-tool-names-and-descriptions" class="hash-link" aria-label="Direct link to Edit flow tool names and descriptions" title="Direct link to Edit flow tool names and descriptions" translate="no"></a></h3>
<p>Tool names and descriptions help MCP clients determine which actions your flows provide and when to use those actions.
It is recommended to provide clear, descriptive names and descriptions for all tools that you serve to MCP clients.</p>
<p>To edit the names and descriptions of flow tools on a Langflow MCP server, do the following:</p>
<ol>
<li class="">
<p>Click the <strong>MCP Server</strong> tab on the <a class="" href="/concepts-flows#projects"><strong>Projects</strong> page</a>, or, when editing a flow, click <strong>Share</strong>, and then select <strong>MCP Server</strong>.</p>
</li>
<li class="">
<p>Click <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wrench lf-inline-icon" aria-hidden="true" focusable="false" role="presentation"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg> <strong>Edit Tools</strong>.</p>
</li>
<li class="">
<p>Click the <strong>Description</strong> or <strong>Tool</strong> that you want to edit:</p>
<ul>
<li class="">
<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 class="">
<p><strong>Tool description</strong>: Enter a description that completely and accurately describes the specific actions the flow performs.</p>
</li>
</ul>
</li>
<li class="">
<p>Close the <strong>MCP Server Tools</strong> dialog to save your changes.</p>
</li>
</ol>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="importance-of-tool-names-and-descriptions">Importance of tool names and descriptions<a href="#importance-of-tool-names-and-descriptions" class="hash-link" aria-label="Direct link to Importance of tool names and descriptions" title="Direct link to Importance of tool names and descriptions" translate="no"></a></h4>
<p>MCP clients use tool names and descriptions to determine which actions to use when generating responses.</p>
<p>Because MCP clients treat your Langflow project as a single MCP server with all of your enabled flows listed as tools, unclear names and descriptions can cause the agent to select tools incorrectly or inconsistently.</p>
<p>For example, a flow&#x27;s default tool 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 its 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>Think of these names and descriptions as function names and code comments.
Use clear statements to describe the problems your flows solve.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Example: Tool name and description usage</summary><div><div class="collapsibleContent_i85q"><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 class="">
<p><strong>Tool name</strong>: <code>document_qa_for_resume</code></p>
</li>
<li class="">
<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>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="configure-tool-execution-timeouts">Configure tool execution timeouts<a href="#configure-tool-execution-timeouts" class="hash-link" aria-label="Direct link to Configure tool execution timeouts" title="Direct link to Configure tool execution timeouts" translate="no"></a></h3>
<p>There are three ways to set tool execution timeouts: the MCP Tools component timeout setting, a global environment variable, and Langflow&#x27;s default fallback. How you configure these determines their effect in resolving the actual timeout limit for each tool call.</p>
<p>Langflow times are evaluated in the following order:</p>
<ol>
<li class="">
<p>Per-component timeout is set directly on an MCP Tools component in your flow. To configure per-component timeout in the <a class="" href="/mcp-tools"><strong>MCP Tools</strong> component</a>, open the advanced settings tab and enter a value in the <strong>Tool Execution Timeout (seconds)</strong> field. A value of <code>0</code> disables the per-component override and falls back to the global setting.</p>
</li>
<li class="">
<p>Global timeout is set with the <code>LANGFLOW_MCP_TOOL_EXECUTION_TIMEOUT</code> environment variable. The default is 180 seconds.</p>
</li>
<li class="">
<p>If neither <code>LANGFLOW_MCP_TOOL_EXECUTION_TIMEOUT</code> or <code>LANGFLOW_MCP_SERVER_TIMEOUT</code> is configured, Langflow defaults to 180 seconds.</p>
</li>
</ol>
<p>To support tool calls that take longer than 180 seconds, set <code>LANGFLOW_MCP_TOOL_EXECUTION_TIMEOUT</code> to a value greater than <code>180</code> to raise the global limit, or set the <strong>Tool Execution Timeout (seconds)</strong> field on a specific MCP Tools component to a value greater than <code>180</code> to raise the limit for that component only.</p>
<p>If <code>LANGFLOW_MCP_SERVER_TIMEOUT</code> is set to a value greater than <code>LANGFLOW_MCP_TOOL_EXECUTION_TIMEOUT</code>, the server timeout takes precedence and becomes the actual limit for tool calls.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="connect-clients-to-use-the-servers-actions">Connect clients to your Langflow MCP server<a href="#connect-clients-to-use-the-servers-actions" class="hash-link" aria-label="Direct link to Connect clients to your Langflow MCP server" title="Direct link to Connect clients to your Langflow MCP server" translate="no"></a></h2>
<p>Langflow provides automatic installation and code snippets to help you deploy your Langflow MCP servers to your local MCP clients.</p>
<div class="theme-tabs-container 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">JSON</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Auto install</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p>The JSON option allows you to connect a Langflow MCP server to any local or remote MCP client.
You can modify this process for any <a href="https://modelcontextprotocol.io/clients" target="_blank" rel="noopener noreferrer" class="">MCP-compatible client</a>.</p><ol>
<li class="">
<p>Install any <a href="https://modelcontextprotocol.io/clients" target="_blank" rel="noopener noreferrer" class="">MCP-compatible client</a>.</p>
<p>These steps use Cursor as an example, but the process is generally the same for all clients, with slight differences in client-specific details like file names.</p>
</li>
<li class="">
<p>In your client, add a new MCP server using the client&#x27;s UI or configuration file.</p>
<p>For example, in Cursor, go to <strong>Cursor Settings</strong>, select <strong>MCP</strong>, and then click <strong>Add New Global MCP Server</strong> to open Cursor&#x27;s global <code>mcp.json</code> configuration file.</p>
</li>
<li class="">
<p>Recommended: Configure <a href="#authentication" class="">authentication</a> for your MCP server.</p>
</li>
<li class="">
<p>In Langflow, on the <strong>Projects</strong> page, click the <strong>MCP Server</strong> tab.</p>
</li>
<li class="">
<p>Click the <strong>JSON</strong> tab, copy the code snippet for your operating system, and then paste it into your client&#x27;s MCP configuration file.
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">_<!-- -->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;uvx&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;mcp-proxy&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> &quot;--transport&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->13</span><div style="display:inline-block;margin-left:16px"><span> &quot;streamablehttp&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/streamable&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>
<p>The <strong>MCP Server</strong> tab automatically populates the <code>LANGFLOW_SERVER_ADDRESS</code> and <code>PROJECT_ID</code> values.</p>
<p>The default Langflow server address is <code>http://localhost:7860</code>.
If you are using a <a class="" href="/deployment-public-server">public Langflow server</a>, the server address is automatically included.</p>
<p>If your Langflow server requires authentication, you must include your Langflow API key or OAuth settings in the configuration.
For more information, see <a href="#authentication" class="">MCP server authentication</a>.</p>
</li>
<li class="">
<p>To include other environment variables with your MCP server command, add an <code>env</code> object with key-value pairs of environment variables. 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">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;mcpServers&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;PROJECT_NAME&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</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">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;args&quot;: [</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;mcp-proxy&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;--transport&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;streamablehttp&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/streamable&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> ],</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;env&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</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">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>}</span></div></div><br></code></div></div>
<p>Don&#x27;t add API keys in the <code>env</code> object, as these variables are specifically for the <code>mcp-proxy</code> process.
Instead, add API keys under <code>args</code>.
For an example, see <a href="#authentication" class="">MCP server authentication</a>.</p>
</li>
<li class="">
<p>Save and close your client&#x27;s MCP configuration file.</p>
</li>
<li class="">
<p>Confirm that your Langflow MCP server is on the client&#x27;s list of MCP servers.
If necessary, restart your client to apply the modified configuration file.</p>
</li>
</ol></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="theme-admonition theme-admonition-info 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>info</div><div class="admonitionContent_BuS1"><p>The auto install option is available only for specific MCP clients.
Auto install requires the client to be installed locally so Langflow can write to the client&#x27;s configuration file.
If your client isn&#x27;t supported, is installed remotely, or you need to pass additional environment variables, use the <strong>JSON</strong> option.</p></div></div><ol>
<li class="">
<p>Install <a href="https://docs.cursor.com/get-started/installation" target="_blank" rel="noopener noreferrer" class="">Cursor</a>, <a href="https://claude.ai/download" target="_blank" rel="noopener noreferrer" class="">Claude</a>, or <a href="https://windsurf.com/download/editor" target="_blank" rel="noopener noreferrer" class="">Windsurf</a> on the same computer where your Langflow server is running.</p>
</li>
<li class="">
<p>Recommended: Configure <a href="#authentication" class="">authentication</a> for your MCP server.</p>
</li>
<li class="">
<p>In Langflow, on the <strong>Projects</strong> page, click the <strong>MCP Server</strong> tab.</p>
</li>
<li class="">
<p>On the <strong>Auto install</strong> tab, find your MCP client provider, and then click <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus lf-inline-icon" aria-hidden="true" focusable="false" role="presentation"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg> <strong>Add</strong>.</p>
<p>Your Langflow project&#x27;s MCP server is automatically added to the configuration file for your local Cursor, Claude, or Windsurf client.
For example, with Cursor, the server configuration is added to the <code>mcp.json</code> configuration file.</p>
<p>Langflow attempts to add this configuration even if the selected client isn&#x27;t installed.
To verify the installation, check the available MCP servers in your client.</p>
</li>
</ol></div></div></div>
<p>Once your MCP client is connected to your Langflow project&#x27;s MCP server, 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 MCP documentation for your client, such as <a href="https://docs.cursor.com/context/model-context-protocol" target="_blank" rel="noopener noreferrer" class="">Cursor&#x27;s MCP documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="authentication">MCP server authentication<a href="#authentication" class="hash-link" aria-label="Direct link to MCP server authentication" title="Direct link to MCP server authentication" translate="no"></a></h2>
<p>Each <a class="" href="/concepts-flows#projects">Langflow project</a> has its own MCP server with its own MCP server authentication settings.</p>
<p>When you create a new project, Langflow automatically configures authentication for the project&#x27;s MCP server based on your Langflow server&#x27;s authentication settings. If authentication is enabled (<code>AUTO_LOGIN=false</code>), the project is automatically configured with API key authentication, and a new API key is generated for accessing the project&#x27;s flows.</p>
<p>To configure authentication for a Langflow MCP server, go to the <strong>Projects</strong> page in Langflow, click the <strong>MCP Server</strong> tab, click <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-fingerprint lf-inline-icon" aria-hidden="true" focusable="false" role="presentation"><path d="M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4"></path><path d="M14 13.12c0 2.38 0 6.38-1 8.88"></path><path d="M17.29 21.02c.12-.6.43-2.3.5-3.02"></path><path d="M2 12a10 10 0 0 1 18-6"></path><path d="M2 16h.01"></path><path d="M21.8 16c.2-2 .131-5.354 0-6"></path><path d="M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2"></path><path d="M8.65 22c.21-.66.45-1.32.57-2"></path><path d="M9 6.8a6 6 0 0 1 9 5.2v2"></path></svg> <strong>Edit Auth</strong>, and then select your preferred authentication method:</p>
<div class="theme-tabs-container 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">API key</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">OAuth</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">None</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p>When authenticating your MCP server with a Langflow API key, your project&#x27;s MCP server <strong>JSON</strong> code snippets and <strong>Auto install</strong> configuration automatically include the <code>--headers</code> and <code>x-api-key</code> arguments in the <strong>args</strong> array (for streamable transport).</p><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>To add your API key to the configuration, use three separate entries in <code>args</code>: <code>&quot;--headers&quot;</code>, <code>&quot;x-api-key&quot;</code>, and your key value. 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">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span>{</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;mcpServers&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;PROJECT_NAME&quot;: {</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</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">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;args&quot;: [</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;mcp-proxy&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;--transport&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;streamablehttp&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;--headers&quot;,</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</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">_<!-- -->16</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">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> &quot;http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/streamable&quot;</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> ]</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</span><div style="display:inline-block;margin-left:16px"><span> }</span></div></div><div><span class="ch-code-line-number">_<!-- -->16</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=""><p>When OAuth is enabled, Langflow automatically starts an <a href="https://pypi.org/project/mcp-composer" target="_blank" rel="noopener noreferrer" class="">MCP Composer</a> instance for your project, creating a secure client-side proxy between MCP clients and the <code>mcp-proxy</code> on your server.</p><p>OAuth integration allows your Langflow MCP server to authenticate users and applications through any OAuth 2.0 compliant service. When users or applications connect to your MCP server, they are redirected to your chosen OAuth provider to authenticate. Upon successful authentication, they are granted access to your flows as MCP tools.</p><p>Before configuring OAuth in Langflow, you must first set up an OAuth application with an external OAuth 2.0 service provider.
You must register your Langflow server as an OAuth client, and then obtain the required values to complete the configuration in Langflow.</p><p>The following table describes the required values.
<a href="https://github.com/settings/developers" target="_blank" rel="noopener noreferrer" class="">GitHub OAuth</a> is used for example purposes.
Be sure to use the actual values from your own deployment.
For more information, see your OAuth provider&#x27;s documentation.</p><table><thead><tr><th>Field</th><th>Description</th><th>Source</th><th>Example</th></tr></thead><tbody><tr><td><strong>Host</strong></td><td>OAuth server host</td><td>MCP Composer default.</td><td><code>localhost</code></td></tr><tr><td><strong>Port</strong></td><td>OAuth server port</td><td>MCP Composer default.</td><td><code>9000</code></td></tr><tr><td><strong>Server URL</strong></td><td>Full OAuth server URL</td><td>Combines the MCP Composer default OAuth host and port.</td><td><code>http://localhost:9000</code></td></tr><tr><td><strong>Callback URL</strong></td><td>OAuth callback URL on your server</td><td>You define this full URL during OAuth app registration. This must match exactly what you register with your OAuth provider.</td><td><code>http://localhost:9000/auth/idaas/callback</code></td></tr><tr><td><strong>Client ID</strong></td><td>Your OAuth client identifier</td><td>From your OAuth provider.</td><td><code>Ov23li9vx2grVL61qjb</code></td></tr><tr><td><strong>Client Secret</strong></td><td>Your OAuth client secret</td><td>From your OAuth provider.</td><td><code>1234567890abcdef1234567890abcdef12345678</code></td></tr><tr><td><strong>Authorization URL</strong></td><td>OAuth authorization endpoint</td><td>From your OAuth provider.</td><td><code>https://github.com/login/oauth/authorize</code></td></tr><tr><td><strong>Token URL</strong></td><td>OAuth token endpoint for getting refresh tokens</td><td>From your OAuth provider.</td><td><code>https://github.com/login/oauth/access_token</code></td></tr><tr><td><strong>MCP Scope</strong></td><td>Scope for MCP operations</td><td>You define this. As of Langflow 1.6, <code>user</code> is the only available value.</td><td><code>user</code></td></tr><tr><td><strong>Provider Scope</strong></td><td>OAuth provider scope</td><td>You define this. As of Langflow 1.6, <code>openid</code> is the only available value.</td><td><code>openid</code></td></tr></tbody></table><p>To configure OAuth authentication:</p><ol>
<li class="">
<p>Select <strong>OAuth</strong> as the authentication type.</p>
</li>
<li class="">
<p>Configure the OAuth settings with the values from your OAuth deployment.
All values are required.</p>
<p>The OAuth credentials are encrypted and stored securely in your Langflow database.</p>
</li>
<li class="">
<p>Click <strong>Save</strong>.</p>
<p>Your MCP server&#x27;s <strong>JSON</strong> code snippets and <strong>Auto install</strong> configuration are automatically updated with OAuth values. These are automatically used for new installations after enabling OAuth. However, you must manually update any existing installations, as explained in the next step.</p>
</li>
<li class="">
<p>If you already installed your Langflow MCP server in your MCP client, you must update your MCP client configuration to use the new OAuth settings after enabling OAuth on your MCP server.
The client update method depends on how you installed the server on the client:</p>
<ul>
<li class=""><strong>Auto install</strong>: Manually update your client&#x27;s config file using the updated JSON snippet from the <strong>JSON</strong> tab, or repeat the steps in <a href="#connect-clients-to-use-the-servers-actions" class="">Auto-install</a> to re-install the client with the updated settings.</li>
<li class=""><strong>JSON option</strong>: Copy the updated JSON snippet from the <strong>JSON</strong> tab and replace your existing configuration.</li>
<li class=""><strong>New connections</strong>: Use either the <strong>Auto install</strong> or <strong>JSON</strong> option. The OAuth settings are included automatically.</li>
</ul>
</li>
</ol><p>After you enable OAuth and update your client configuration, an OAuth callback window opens each time your MCP client attempts to authenticate with the server.
A successful authentication returns <code>Authentication complete. You may close this window.</code>
If your client doesn&#x27;t open the OAuth window, try restarting the client to retrieve the updated configuration.</p></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p>When no authentication is configured, your MCP server becomes a public endpoint that anyone can access without providing credentials.
Only use this option when Langflow is running in a trusted environment.</p></div></div></div>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="deploy-your-server-externally">Deploy your Langflow MCP server externally<a href="#deploy-your-server-externally" class="hash-link" aria-label="Direct link to Deploy your Langflow MCP server externally" title="Direct link to Deploy your Langflow MCP server externally" translate="no"></a></h2>
<p>To deploy your Langflow MCP server externally, see <a class="" href="/deployment-public-server">Deploy a public Langflow server</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" 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" translate="no"></a></h2>
<div class="theme-admonition theme-admonition-info 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>Node prerequisite</div><div class="admonitionContent_BuS1"><p>MCP Inspector requires any LTS version of <a href="https://docs.npmjs.com/downloading-and-installing-node-js-and-npm" target="_blank" rel="noopener noreferrer" class="">Node.js</a> installed on your computer.</p></div></div>
<p><a href="https://modelcontextprotocol.io/docs/tools/inspector" target="_blank" rel="noopener noreferrer" class="">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 class="">
<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" class="">MCP Inspector GitHub project</a>.</p>
</li>
<li class="">
<p>Open a web browser and navigate to the MCP Inspector UI.
The default address is <code>http://localhost:6274</code>.</p>
</li>
<li class="">
<p>In the MCP Inspector UI, enter the connection details for your Langflow project&#x27;s MCP server.
The field values depend on your server&#x27;s method of <a href="#authentication" class="">authentication</a>.</p>
<div class="theme-tabs-container 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">API key</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">OAuth</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">None</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><ul>
<li class=""><strong>Transport Type</strong>: Select <strong>STDIO</strong>.</li>
<li class=""><strong>Command</strong>: <code>uvx</code></li>
<li class=""><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:<!-- -->
<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/streamable</span></div></div><br></code></div></div>
</li>
</ul></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><ul>
<li class=""><strong>Transport Type</strong>: Select <strong>STDIO</strong>.</li>
<li class=""><strong>Command</strong>: <code>uvx</code></li>
<li class=""><strong>Arguments</strong>: Enter the following list of arguments, separated by spaces. Replace the value for <code>OAUTH_SERVER_URL</code> with the URL of your OAuth server. For example:<!-- -->
<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-composer --mode stdio --sse-url http://localhost:9000/sse --disable-composer-tools --client_auth_type oauth</span></div></div><br></code></div></div>
</li>
</ul></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><ul>
<li class=""><strong>Transport Type</strong>: Select <strong>SSE</strong>.</li>
<li class=""><strong>URL</strong>: Enter the Langflow MCP server&#x27;s endpoint. For example:<!-- -->
<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>http://localhost:7860/api/v1/mcp/project/d359cbd4-6fa2-4002-9d53-fa05c645319c/streamable</span></div></div><br></code></div></div>
</li>
</ul></div></div></div>
</li>
<li class="">
<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 class="">
<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 anchorTargetStickyNavbar_Vzrq" id="restrict-mcp-server-management">Restrict MCP server management to superusers<a href="#restrict-mcp-server-management" class="hash-link" aria-label="Direct link to Restrict MCP server management to superusers" title="Direct link to Restrict MCP server management to superusers" translate="no"></a></h2>
<p>To prevent non-superusers from editing MCP server connections, set <code>LANGFLOW_MCP_SERVERS_LOCKED=true</code>.</p>
<p>When set to <code>true</code>, non-superusers can use existing MCP servers that are already configured, but they cannot configure MCP server connections in the UI or API.
Superusers retain full access to MCP server configuration.</p>
<p>Locking the MCP server configuration for users does not disable Langflow&#x27;s built-in MCP server for serving flows as MCP tools.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="mcp-server-environment-variables">MCP server environment variables<a href="#mcp-server-environment-variables" class="hash-link" aria-label="Direct link to MCP server environment variables" title="Direct link to MCP server environment variables" translate="no"></a></h2>
<p>The following environment variables set behaviors related to your Langflow projects&#x27; MCP servers:</p>
<table><thead><tr><th>Variable</th><th class="col-center">Format</th><th class="col-center">Default</th><th>Description</th></tr></thead><tbody><tr><td><code>LANGFLOW_MCP_SERVER_ENABLED</code></td><td class="col-center">Boolean</td><td class="col-center"><code>True</code></td><td>Whether to initialize an MCP server for each of your Langflow projects. If <code>false</code>, Langflow doesn&#x27;t initialize MCP servers.</td></tr><tr><td><code>LANGFLOW_MCP_SERVER_ENABLE_PROGRESS_NOTIFICATIONS</code></td><td class="col-center">Boolean</td><td class="col-center"><code>False</code></td><td>If <code>true</code>, Langflow MCP servers send progress notifications.</td></tr><tr><td><code>LANGFLOW_MCP_SERVER_TIMEOUT</code></td><td class="col-center">Integer</td><td class="col-center"><code>20</code></td><td>Timeout in seconds for MCP connection setup and tool execution. See <a href="#configure-tool-execution-timeouts" class="">Configure tool execution timeouts</a>.</td></tr><tr><td><code>LANGFLOW_MCP_TOOL_EXECUTION_TIMEOUT</code></td><td class="col-center">Integer</td><td class="col-center"><code>180</code></td><td>Global timeout in seconds for MCP tool calls. See <a href="#configure-tool-execution-timeouts" class="">Configure tool execution timeouts</a>.</td></tr><tr><td><code>LANGFLOW_MCP_MAX_SESSIONS_PER_SERVER</code></td><td class="col-center">Integer</td><td class="col-center"><code>10</code></td><td>Maximum number of MCP sessions to keep per unique server.</td></tr><tr><td><code>LANGFLOW_ADD_PROJECTS_TO_MCP_SERVERS</code></td><td class="col-center">Boolean</td><td class="col-center"><code>True</code></td><td>Whether to automatically add newly created projects to the user&#x27;s MCP servers configuration. If <code>false</code>, projects must be manually added to MCP servers.</td></tr><tr><td><code>LANGFLOW_MCP_SERVERS_LOCKED</code></td><td class="col-center">Boolean</td><td class="col-center"><code>False</code></td><td>If <code>true</code>, non-superusers cannot add, edit, or remove MCP server connections through the UI or API. Superusers retain full access. For more information, see <a href="#restrict-mcp-server-management" class="">Restrict MCP server management to superusers</a>.</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="troubleshooting-mcp-server">Troubleshoot Langflow MCP servers<a href="#troubleshooting-mcp-server" class="hash-link" aria-label="Direct link to Troubleshoot Langflow MCP servers" title="Direct link to Troubleshoot Langflow MCP servers" translate="no"></a></h2>
<p>For troubleshooting advice for MCP servers and clients, see <a class="" href="/troubleshoot#mcp">Troubleshoot Langflow: MCP issues</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" 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" translate="no"></a></h2>
<ul>
<li class=""><a class="" href="/mcp-client">Use Langflow as an MCP client</a></li>
<li class=""><a class="" href="/mcp-component-astra">Use a DataStax Astra DB MCP server</a></li>
<li class=""><a class="" href="/environment-variables#mcp">MCP server environment variables</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="/langflow-mcp-client"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Langflow MCP Client for coding agents</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">Serve flows as MCP tools</a><ul><li><a href="#prevent-automatic-mcp-server-configuration-for-langflow-projects" class="table-of-contents__link toc-highlight">Prevent automatic MCP server configuration for Langflow projects</a></li><li><a href="#selectively-enable-and-disable-mcp-servers-for-langflow-projects" class="table-of-contents__link toc-highlight">Selectively enable and disable MCP servers for Langflow projects</a></li><li><a href="#edit-flow-tool-names-and-descriptions" class="table-of-contents__link toc-highlight">Edit flow tool names and descriptions</a></li><li><a href="#configure-tool-execution-timeouts" class="table-of-contents__link toc-highlight">Configure tool execution timeouts</a></li></ul></li><li><a href="#connect-clients-to-use-the-servers-actions" class="table-of-contents__link toc-highlight">Connect clients to your Langflow MCP server</a></li><li><a href="#authentication" class="table-of-contents__link toc-highlight">MCP server authentication</a></li><li><a href="#deploy-your-server-externally" class="table-of-contents__link toc-highlight">Deploy your Langflow MCP server externally</a></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="#restrict-mcp-server-management" class="table-of-contents__link toc-highlight">Restrict MCP server management to superusers</a></li><li><a href="#mcp-server-environment-variables" class="table-of-contents__link toc-highlight">MCP server environment variables</a></li><li><a href="#troubleshooting-mcp-server" class="table-of-contents__link toc-highlight">Troubleshoot Langflow MCP servers</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>© 2026 Langflow</span>
<span id="preferenceCenterContainer"> ·&nbsp; <a href="#" onclick='return"undefined"!=typeof window&&window.truste&&window.truste.eu&&window.truste.eu.clickListener&&window.truste.eu.clickListener(),!1' style="cursor: pointer;">Manage Privacy Choices</a></span>
</div></li></ul></div></div></div></footer><div style="position:fixed;right:21px;bottom:21px;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>