返回市场
语言流-MCP

语言流-MCP

作者:nobrainer-tech2 星标更新:2025-11-24

项目介绍

技术文档摘要

langflow-mcp-server

npm 版本 npm 下载量 GitHub 发布 许可证: MIT 测试

一个模型上下文协议(MCP)服务器,提供AI助手对Langflow工作流自动化平台的全面访问。

概述

langflow-mcp-server作为Langflow工作流自动化平台与AI模型之间的桥梁,使它们能够有效地理解和使用Langflow流程。

API 兼容性:此服务器基于Langflow API 文档,并支持Langflow API 版本1.6.4

它提供了结构化的访问:

  • 流程管理 - 创建、读取、更新、删除和执行Langflow流程
  • 流程执行 - 运行带有输入并触发webhook的流程
  • 构建操作 - 编译、验证和监控流程构建
  • 导入/导出 - 上传和下载流程和项目
  • 组织 - 管理文件夹和项目
  • 配置 - 管理全局变量
  • 知识库 - 管理RAG文档集合
  • 组件发现 - 列出所有可用的Langflow组件

快速开始

前提条件

  • 在您的系统上安装Node.js
  • 运行中的Langflow实例
  • Langflow API 密钥

安装

# 从npm安装
npm install -g langflow-mcp-server

# 或者克隆仓库
git clone https://github.com/nobrainer-tech/langflow-mcp.git
cd langflow-mcp

# 安装依赖
npm install

# 构建项目
npm run build

# 配置环境
cp .env.example .env
# 编辑.env文件,填写您的Langflow实例URL和API密钥

配置

编辑.env文件:

LANGFLOW_BASE_URL=http://localhost:7860
LANGFLOW_API_KEY=your-api-key-here
MCP_MODE=stdio
LOG_LEVEL=info

Claude Desktop 设置

添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "langflow": {
      "command": "npx",
      "args": ["-y", "langflow-mcp-server"],
      "env": {
        "LANGFLOW_BASE_URL": "http://localhost:7860",
        "LANGFLOW_API_KEY": "your-api-key-here",
        "MCP_MODE": "stdio",
        "LOG_LEVEL": "error"
      }
    }
  }
}

替代方案(本地安装):

{
  "mcpServers": {
    "langflow": {
      "command": "node",
      "args": ["/绝对路径/to/langflow-mcp/dist/mcp/index.js"],
      "env": {
        "LANGFLOW_BASE_URL": "http://localhost:7860",
        "LANGFLOW_API_KEY": "your-api-key-here",
        "MCP_MODE": "stdio",
       _ "LOG_LEVEL": "error"
      }
    }
  }
}

更新配置后重启Claude Desktop。

Docker 部署

MCP服务器可以在Docker容器中运行,以实现更简单的部署和隔离。

使用Docker快速开始

# 克隆仓库
git clone https://github.com/nobrainer-tech/langflow-mcp.git
cd langflow-mcp

# 创建包含您配置的.env文件
cp .env.example .env
# 编辑.env文件,填写您的Langflow实例URL和API密钥

# 使用docker-compose构建和运行
docker-compose up -d

# 查看日志
docker-compose logs -f

# 停止服务器
docker-compose down

构建Docker镜像

# 构建镜像
docker build -t langflow-mcp-server:latest .

# 在stdio模式下运行(适用于Claude Desktop)
docker run -it --rm \
  -e LANGFLOW_BASE_URL=http://localhost:7860 \
  -e LANGFLOW_API_KEY=your-api-key \
  langflow-mcp-server:latest

# 在HTTP模式下运行(用于远程访问)
docker run -d \
  -p 3000:3000 \
  -e MCP_MODE=http \
  -e PORT=3000 \
  -e AUTH_TOKEN=your-secure-token \
  -e LANGFLOW_BASE_URL=http://langflow:7860 \
  -e LANGFLOW_API_KEY=your-api-key \
  langflow-mcp-server:latest

Docker Compose 配置

包含的docker-compose.yml支持stdio和HTTP模式:

# STDIO模式(默认)
environment:
  - MCP_MODE=stdio
  - LANGFLOW_BASE_URL=http://localhost:7860
  - LANGFLOW_API_KEY=your-key

# HTTP模式
environment:
  - MCP_MODE=http
  - PORT=3000
  - AUTH_TOKEN=your-secure-token

已弃用工具

⚠️ 重要:此服务器包括4个已弃用的工具,这些工具对应于Langflow API 1.6.4中的已弃用端点:

  • build_vertices - 使用build_flow代替
  • get_vertex - 使用build_flowget_flow代替
  • stream_vertex_build - 使用get_build_status带流式传输代替
  • get_task_status - 使用get_build_status代替

这些工具默认启用但标记有⚠️警告。要禁用它们,请设置:

ENABLE_DEPRECATED_TOOLS=false

可用的MCP工具

连接后,Claude可以使用90种工具(启用已弃用工具时为94种):

流程管理(6种工具)

  • create_flow - 创建一个新的Langflow流程
  • list_flows - 列出所有流程(分页和过滤)
  • get_flow - 根据ID获取特定流程的详细信息
  • update_flow - 更新现有流程
  • delete_flow - 删除单个流程
  • delete_flows - 一次性删除多个流程

流程执行(2种工具)

  • run_flow - 执行带有输入配置的流程(支持流式传输)
  • trigger_webhook - 通过webhook端点触发流程

导入/导出(3种工具)

  • upload_flow - 从JSON数据上传流程
  • download_flows - 将多个流程导出为JSON
  • get_basic_examples - 获取预构建示例流程

文件夹管理(5种工具)

  • list_folders - 列出所有文件夹(分页)
  • create_folder - 创建新的文件夹
  • get_folder - 根据ID获取文件夹详细信息
  • update_folder - 更新文件夹名称、描述或父文件夹
  • delete_folder - 删除文件夹

项目管理(7种工具)

  • list_projects - 列出所有项目(分页)
  • create_project - 创建新的项目
  • get_project - 根据ID获取项目详细信息
  • update_project - 更新项目名称或描述
  • delete_project - 删除项目
  • upload_project - 从JSON数据上传项目
  • download_project - 将项目导出为JSON

变量管理(4种工具)

  • list_variables - 列出所有全局变量
  • create_variable - 创建新的变量
  • update_variable - 更新变量属性
  • delete_variable - 删除变量

构建操作(3种工具)

  • build_flow - 构建/编译流程,并返回异步执行的job_id
  • get_build_status - 查询特定作业的构建状态和事件
  • cancel_build - 取消正在运行的构建作业

知识库管理(4种工具)

  • list_knowledge_bases - 列出所有可用的知识库
  • get_knowledge_base - 获取特定知识库的详细信息
  • delete_knowledge_base - 删除特定的知识库
  • bulk_delete_knowledge_bases - 一次性删除多个知识库

组件发现(1种工具)

  • list_components - 列出所有可用的Langflow组件

文件管理(5种工具)

  • upload_file - 向特定流程上传文件
  • download_file - 从流程下载文件
  • list_files - 列出流程中的所有文件
  • delete_file - 从流程中删除文件
  • get_file_image - 从流程中获取图像文件

监控与分析(9种工具)

  • get_monitor_builds - 获取流程的构建执行历史
  • get_monitor_messages - 查询聊天/消息历史(带过滤)
  • get_monitor_message - 获取特定消息的详细信息
  • get_monitor_sessions - 列出所有聊天会话ID
  • get_monitor_session_messages - 获取会话的所有消息
  • migrate_monitor_session - 在会话之间迁移消息
  • get_monitor_transactions - 列出流程的事务日志
  • delete_monitor_builds - 删除流程的构建历史
  • delete_monitor_messages - 根据ID删除多条消息

节点操作 ⚠️ 已弃用(3种工具)

  • build_vertices ⚠️ 已弃用 - 获取流程的节点构建顺序(使用build_flow代替)
  • get_vertex ⚠️ 已弃用 - 获取特定节点/组件的详细信息(使用build_flowget_flow代替)
  • stream_vertex_build ⚠️ 已弃用 - 对节点进行实时构建事件流(使用get_build_status带流式传输代替)

用户管理(5种工具)

  • list_users - 列出所有用户(仅限管理员)
  • get_current_user - 获取当前认证用户的详细信息
  • get_user - 获取特定用户的详细信息
  • update_user - 更新用户资料信息
  • reset_user_password - 重置用户的密码(仅限管理员)

API 密钥管理(3种工具)

  • list_api_keys - 列出用户的API密钥
  • create_api_key - 创建新的API密钥
  • delete_api_key - 删除API密钥

自定义组件(2种工具)

  • list_custom_components - 列出所有自定义组件
  • create_custom_component - 创建新的自定义组件

认证(4种工具)

  • login - 使用用户名和密码进行认证
  • auto_login - 使用存储的凭据自动登录
  • refresh_token - 刷新认证令牌
  • logout - 登出并失效会话

商店与市场(6种工具)

  • check_store - 检查组件商店是否启用
  • check_store_api_key - 验证商店API密钥
  • list_store_components - 浏览商店中的可用组件
  • get_store_component - 获取商店组件的详细信息
  • list_store_tags - 列出商店中的所有组件标签
  • get_user_likes - 获取用户喜欢的组件

验证工具(2种工具)

  • validate_code - 验证自定义组件的Python代码
  • validate_prompt - 验证提示模板语法

高级执行(3种工具)

  • run_flow_advanced - 高级流程执行,完全控制
  • process_flow - 流程的遗留处理端点
  • predict_flow - 流程的遗留预测端点

批量及公共操作(3种工具)

  • get_public_flow - 不需要认证即可获取公共流程
  • batch_create_flows - 一次操作创建多个流程
  • get_task_status ⚠️ 已弃用 - 获取异步任务的状态(使用get_build_status代替)

文件夹操作(2种工具)

  • download_folder - 将整个文件夹下载为存档
  • upload_folder - 从存档上传文件夹

启动器与模板(2种工具)

  • list_starter_projects - 列出可用的启动模板
  • upload_knowledge_base - 上传文件以创建或更新知识库

配置文件与媒体(2种工具)

  • list_profile_pictures - 列出可用的配置文件图片
  • get_profile_picture - 获取特定的配置文件图片

集成工具(1种工具)

  • list_elevenlabs_voices - 列出ElevenLabs文本转语音的声音

系统与健康(3种工具)

  • get_version - 获取Langflow API版本信息
  • health_check - 检查Langflow实例的健康状况
  • get_logs - 获取系统日志(支持流式传输)

示例用法

// 创建一个新的流程
create_flow({
  name: "我的自动化流程",
  description: "一个处理数据的流程"
})

// 列出所有流程
list_flows({
  page: 1,
  size: 50
})

// 获取流程详细信息
get_flow({
  flow_id: "flow-uuid-here"
})

// 更新一个流程
update_flow({
  flow_id: "flow-uuid-here",
  name: "更新后的流程名称"
})

// 执行一个流程
run_flow({
  flow_id_or_name: "my-flow-name",
  input_request: {
    input_value: "Hello World",
    output_type: "chat",
    input_type: "chat"
  },
  stream: false
})

// 通过webhook触发
trigger_webhook({
  flow_id_or_name: "my-flow",
  input_request: {
    input_value: "处理这个数据"
  }
})

// 构建一个流程(编译/验证)
build_flow({
  flow_id: "flow-uuid-here",
  log_builds: true,
  event_delivery: "polling"
})

// 检查构建状态
get_build_status({
  job_id: "job-uuid-from-build",
  event_delivery: "polling"
})

// 列出知识库(RAG)
list_knowledge_bases()

// 获取知识库详细信息
get_knowledge_base({
  kb_name: "my-documents"
})

// 创建一个文件夹
create_folder({
  name: "我的流程",
  description: "整理好的流程"
})

// 创建一个项目
create_project({
  name: "我的项目",
  description: "项目描述"
})

// 管理变量
create_variable({
  name: "API_KEY",
  value: "secret-key",
  type: "string"
})

// 获取基本示例
get_basic_examples()

// 列出所有组件
list_components()

开发

# 构建
npm run build

# 在开发模式下运行
npm run dev

# 运行测试
npm test

# 类型检查
npm run typecheck

项目结构

langflow-mcp/
├── src/
│   ├── mcp/
│   │   ├── index.ts       # MCP服务器入口点
│   │   ├── server.ts      # MCP服务器实现
│   │   └── tools.ts       # 工具定义
│   ├── services/
│   │   └── langflow-client.ts  # Langflow API客户端
│   ├── types/
│   │   └── index.ts       # TypeScript类型
│   └── utils/
│       └── logger.ts      # 日志实用工具
├── .env.example           # 示例配置
├── package.json
├── tsconfig.json
└── README.md

致谢

此项目受到Romuald Czlonkowski的n8n-mcp的启发,并遵循其结构。特别感谢n8n-mcp项目提供的优秀MCP服务器架构和实现模式。

许可证

MIT许可证 - 详情见LICENSE。

贡献

欢迎贡献!请:

  1. 分叉仓库
  2. 创建功能分支
  3. 运行测试(npm test
  4. 提交拉取请求

感谢

  • Langflow团队,为工作流自动化平台
  • [