跳到主要内容

模型上下文协议 (MCP) 服务器

Langflow 集成了 模型上下文协议 (MCP),既可以作为 MCP 服务器,也可以作为 MCP 客户端。本页介绍如何将 Langflow 用作 *MCP 服务器*。有关将 Langflow 用作 *MCP 客户端* 的信息,请参阅 MCP 连接组件

作为 MCP 服务器,Langflow 将您的流公开为 工具MCP 客户端 可以使用这些工具来执行操作。

先决条件

  • 一个已创建至少一个流的 Langflow 项目。

  • 您的计算机上安装了任何 LTS 版本的 Node.js,以便使用 MCP Inspector 测试和调试流

选择和配置要公开为 MCP 工具的流

Langflow 为每个 项目 运行单独的 MCP 服务器。每个项目的 MCP 服务器都会将其项目中的流公开为工具。

项目中的所有流默认都会被公开。要仅公开特定流并选择性地重命名它们以便代理使用,请按照以下步骤操作

  1. 在 Langflow 控制面板中,选择包含您要作为工具提供服务的流的项目,然后点击 **MCP 服务器** 标签。或者,您也可以在任何流中通过选择 **发布 > MCP 服务器** 来快速访问 **MCP 服务器** 标签。

    **MCP 服务器** 标签显示了一个代码模板,您可以使用它将 MCP 客户端连接到项目的 MCP 服务器。

    **流/动作** 部分列出了当前作为工具提供服务的流。

    MCP server projects page

  2. 点击 编辑动作.

  3. 在 **MCP 服务器动作** 窗口中,选择要公开为工具的流。

    MCP server actions

  4. 可选:编辑 **流名称** 和 **流描述**。

    • **流名称**:输入一个清楚表明流功能的名称。

    • **流描述**:输入一个准确描述流执行的具体动作的描述。

    重要

    MCP 客户端使用 **流名称** 和 **流描述** 来确定要使用的动作。有关命名和描述流的更多信息,请参阅 为代理使用命名和描述您的流

  5. 关闭 **MCP 服务器动作** 窗口以保存您的更改。

连接客户端到 Langflow 的 MCP 服务器

以下步骤描述了如何连接 Cursor 到您的 Langflow 项目的 MCP 服务器,以便将您的流作为工具使用。但是,您可以按照类似的步骤连接任何 MCP 兼容的客户端

  1. 安装 Cursor

  2. 在 Cursor 中,转到 **Cursor 设置 > MCP**,然后点击 **添加新的全局 MCP 服务器**。这会打开 Cursor 的全局 MCP 配置文件 `mcp.json`。

  3. 在 Langflow 控制面板中,选择包含您要提供服务的流的项目,然后点击 **MCP 服务器** 标签。

  4. 从 **MCP 服务器** 标签复制代码模板,然后将其粘贴到 Cursor 的 `mcp.json` 中。例如


    _11
    {
    _11
    "mcpServers": {
    _11
    "PROJECT_NAME": {
    _11
    "command": "uvx",
    _11
    "args": [
    _11
    "mcp-proxy",
    _11
    "http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse"
    _11
    ]
    _11
    }
    _11
    }
    _11
    }

    **MCP 服务器** 标签会自动包含正确的 `PROJECT_NAME`、`LANGFLOW_SERVER_ADDRESS` 和 `PROJECT_ID` 值。默认的 Langflow 服务器地址是 `http://127.0.0.1:7860`(如果使用 Langflow 桌面版,则为 `http://127.0.0.1:7868`)。

    重要

    如果您的 Langflow 服务器 需要身份验证`LANGFLOW_AUTO_LOGIN` 设置为 `false`),则必须在配置中包含 Langflow API 密钥。有关更多信息,请参阅 MCP 服务器身份验证和环境变量

  5. 保存并关闭 Cursor 中的 `mcp.json` 文件。新添加的 MCP 服务器将出现在 **MCP 服务器** 部分。

Cursor 现在已连接到您项目的 MCP 服务器,您的流已注册为工具。Cursor 根据您的查询确定何时使用工具,并在必要时请求权限。

有关更多信息,请参阅 Cursor 的 MCP 文档

MCP 服务器身份验证和环境变量

如果您的 Langflow 服务器 需要身份验证`LANGFLOW_AUTO_LOGIN` 设置为 `false`),则必须在 MCP 客户端配置中提供 Langflow API 密钥。在这种情况下,您项目 **MCP 服务器** 标签中的代码模板会自动包含 `--header` 和 `x-api-key` 参数


_14
{
_14
"mcpServers": {
_14
"PROJECT_NAME": {
_14
"command": "uvx",
_14
"args": [
_14
"mcp-proxy",
_14
"--headers",
_14
"x-api-key",
_14
"YOUR_API_KEY",
_14
"http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse"
_14
]
_14
}
_14
}
_14
}

点击 点击 **生成 API 密钥** 以自动将新的 Langflow API 密钥插入代码模板中。或者,您可以将 `YOUR_API_KEY` 替换为现有的 Langflow API 密钥。

MCP server tab showing Generate API key button

要将环境变量包含在 MCP 服务器命令中,请像这样包含它们


_14
{
_14
"mcpServers": {
_14
"PROJECT_NAME": {
_14
"command": "uvx",
_14
"args": [
_14
"mcp-proxy",
_14
"http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse"
_14
],
_14
"env": {
_14
"KEY": "VALUE"
_14
}
_14
}
_14
}
_14
}

将 `KEY` 和 `VALUE` 替换为您要包含的环境变量名称和值。

为代理使用命名和描述您的流

Cursor 这样的 MCP 客户端将您的 Langflow 项目“看作”一个单一的 MCP 服务器,其中列出了*所有*启用的流作为工具。这可能会使代理感到困惑。例如,代理将不知道流 `adbbf8c7-0a34-493b-90ea-5e8b42f78b66` 是针对特定文本文件的 Document Q&A 流。

为防止出现此行为,请确保清晰地 命名和描述 您的流。将名称和描述视为函数名称和代码注释会很有帮助,确保使用清晰的陈述来描述您的流解决的问题。

例如,假设您有一个 Document Q&A 流,用于加载示例简历供 LLM 聊天,并且您为其提供了以下名称和描述

  • **流名称**:`document_qa_for_resume`

  • **流描述**:`一个用于分析 Emily 简历的流。`

如果您向 Cursor 询问关于简历的特定问题,例如 `Emily 有什么工作经验?`,代理会请求调用 MCP 工具 `document_qa_for_resume`。这是因为您的名称和描述为代理提供了该工具的明确用途。

当您运行该工具时,代理会在必要时请求权限,然后提供响应。例如


_10
{
_10
"input_value": "What job experience does Emily have?"
_10
}
_10
结果
_10
Emily 有什么工作经验?
_10
Emily J. Wilson 具有以下工作经验

如果您询问不同的简历,例如 `Alex 有什么工作经验?`,您在描述中提供了足够的信息,以便代理做出正确决策


_10
我注意到您在询问 Alex 的工作经验。
_10
根据可用的工具,我可以看到有一个 Document QA for Resume 流,它是为了分析简历而设计的。
_10
但是,描述中提到它是针对“Emily 的简历”而非 Alex 的。我无法访问 Alex 的简历或工作经验信息。

使用 MCP Inspector 测试和调试流

MCP Inspector 是用于测试和调试 MCP 服务器的常用工具。您可以使用 MCP Inspector 监控您的流,并深入了解 MCP 服务器如何使用它们

  1. 安装 MCP Inspector


    _10
    npx @modelcontextprotocol/inspector

    有关配置 MCP Inspector 的更多信息,包括指定代理端口,请参阅 MCP Inspector GitHub 项目

  2. 打开网页浏览器并导航到 MCP Inspector UI。默认地址是 `http://127.0.0.1:6274`。

  3. 在 MCP Inspector UI 中,输入 Langflow 项目 MCP 服务器的连接详细信息

    • **传输类型**:选择 **SSE**。
    • **URL**:输入 Langflow MCP 服务器的 `sse` 端点。例如:`http://127.0.0.1:7860/api/v1/mcp/project/d359cbd4-6fa2-4002-9d53-fa05c645319c/sse`

    如果您已为 MCP 服务器配置了身份验证,请填写以下附加字段

    • **传输类型**:选择 **STDIO**。
    • **命令**:`uvx`
    • **参数**:输入以下参数列表,以空格分隔。将 `YOUR_API_KEY`、`LANGFLOW_SERVER_ADDRESS` 和 `PROJECT_ID` 的值替换为您的 Langflow MCP 服务器中的值。例如

    _10
    mcp-proxy --headers x-api-key YOUR_API_KEY http://LANGFLOW_SERVER_ADDRESS/api/v1/mcp/project/PROJECT_ID/sse

  4. 点击 **连接**。

    如果连接成功,您应该在 **工具** 标签中看到您项目的流。在此标签中,您可以监控 MCP 如何将您的流注册为工具,并使用自定义输入值测试工具。

  5. 要退出 MCP Inspector,请在启动它的同一终端窗口中按下 Control+C

外部署您的 MCP 服务器

默认情况下,Langflow 不会暴露到公共互联网。但是,您可以使用像 ngrokzrok 这样的转发平台来转发 Langflow 服务器流量。

以下步骤使用 ngrok,但您可以使用任何类似的反向代理或转发平台。本步骤还假设您使用默认的 Langflow 监听地址 `http://127.0.0.1:7860`(如果使用 Langflow 桌面版,则为 `http://127.0.0.1:7868`)。

  1. 注册 ngrok 账户

  2. 安装 ngrok.

  3. 复制您的 ngrok 认证令牌 并用它来验证您的本地 ngrok 服务器


    _10
    ngrok config add-authtoken NGROK_TOKEN

    将 `NGROK_TOKEN` 替换为您的 ngrok 认证令牌。

  4. 使用 ngrok 将您的 Langflow 服务器暴露到公共互联网


    _10
    ngrok http http://localhost:7860

    ngrok 会话将在您的终端中启动,并部署一个没有身份验证的临时域名。要添加身份验证或部署静态域名,请参阅 ngrok 文档

    `Forwarding` 行显示您的 Langflow 服务器的转发地址


    _10
    Forwarding https://94b1-76-64-171-14.ngrok-free.app -> http://localhost:7860

    转发地址充当您的 Langflow 服务器的反向代理。

  5. 在 Langflow 控制面板中,选择包含您要作为工具提供服务的流的项目,然后点击 **MCP 服务器** 标签。

    注意,代码模板现在包含您的 ngrok 转发地址,而不是 `localhost` 地址


    _11
    {
    _11
    "mcpServers": {
    _11
    "PROJECT_NAME": {
    _11
    "command": "uvx",
    _11
    "args": [
    _11
    "mcp-proxy",
    _11
    "https://94b1-73-64-171-14.ngrok-free.app/api/v1/mcp/project/fdbc12af-0dd4-43dc-b9ce-c324d1ce5cd1/sse"
    _11
    ]
    _11
    }
    _11
    }
    _11
    }

  6. 使用 ngrok 转发地址完成 连接客户端到 Langflow 的 MCP 服务器 中的步骤。

您的 MCP 客户端现在通过公共互联网连接到您项目的 MCP 服务器。

如果使用 Cursor,您的对话与在本地主机上进行时相同


_10
{
_10
"input_value": "What job experience does Emily have?"
_10
}
_10
结果
_10
Emily 有什么工作经验?
_10
Emily J. Wilson 具有以下工作经验

您可以使用 ngrok 控制台输出来监控对项目端点的请求


_10
16:35:48.566 EDT GET /api/v1/mcp/project/fdbc12af-0dd4-43dc-b9ce-c324d1ce5cd1 200 OK

Search