一个模型上下文协议(MCP)服务器,提供AI助手对Langflow工作流自动化平台的全面访问。
langflow-mcp-server作为Langflow工作流自动化平台与AI模型之间的桥梁,使它们能够有效地理解和使用Langflow流程。
API 兼容性:此服务器基于Langflow API 文档,并支持Langflow API 版本1.6.4。
它提供了结构化的访问:
# 从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配置文件中:
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。
MCP服务器可以在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 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.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_flow或get_flow代替stream_vertex_build - 使用get_build_status带流式传输代替get_task_status - 使用get_build_status代替这些工具默认启用但标记有⚠️警告。要禁用它们,请设置:
ENABLE_DEPRECATED_TOOLS=false
连接后,Claude可以使用90种工具(启用已弃用工具时为94种):
create_flow - 创建一个新的Langflow流程list_flows - 列出所有流程(分页和过滤)get_flow - 根据ID获取特定流程的详细信息update_flow - 更新现有流程delete_flow - 删除单个流程delete_flows - 一次性删除多个流程run_flow - 执行带有输入配置的流程(支持流式传输)trigger_webhook - 通过webhook端点触发流程upload_flow - 从JSON数据上传流程download_flows - 将多个流程导出为JSONget_basic_examples - 获取预构建示例流程list_folders - 列出所有文件夹(分页)create_folder - 创建新的文件夹get_folder - 根据ID获取文件夹详细信息update_folder - 更新文件夹名称、描述或父文件夹delete_folder - 删除文件夹list_projects - 列出所有项目(分页)create_project - 创建新的项目get_project - 根据ID获取项目详细信息update_project - 更新项目名称或描述delete_project - 删除项目upload_project - 从JSON数据上传项目download_project - 将项目导出为JSONlist_variables - 列出所有全局变量create_variable - 创建新的变量update_variable - 更新变量属性delete_variable - 删除变量build_flow - 构建/编译流程,并返回异步执行的job_idget_build_status - 查询特定作业的构建状态和事件cancel_build - 取消正在运行的构建作业list_knowledge_bases - 列出所有可用的知识库get_knowledge_base - 获取特定知识库的详细信息delete_knowledge_base - 删除特定的知识库bulk_delete_knowledge_bases - 一次性删除多个知识库list_components - 列出所有可用的Langflow组件upload_file - 向特定流程上传文件download_file - 从流程下载文件list_files - 列出流程中的所有文件delete_file - 从流程中删除文件get_file_image - 从流程中获取图像文件get_monitor_builds - 获取流程的构建执行历史get_monitor_messages - 查询聊天/消息历史(带过滤)get_monitor_message - 获取特定消息的详细信息get_monitor_sessions - 列出所有聊天会话IDget_monitor_session_messages - 获取会话的所有消息migrate_monitor_session - 在会话之间迁移消息get_monitor_transactions - 列出流程的事务日志delete_monitor_builds - 删除流程的构建历史delete_monitor_messages - 根据ID删除多条消息build_vertices ⚠️ 已弃用 - 获取流程的节点构建顺序(使用build_flow代替)get_vertex ⚠️ 已弃用 - 获取特定节点/组件的详细信息(使用build_flow或get_flow代替)stream_vertex_build ⚠️ 已弃用 - 对节点进行实时构建事件流(使用get_build_status带流式传输代替)list_users - 列出所有用户(仅限管理员)get_current_user - 获取当前认证用户的详细信息get_user - 获取特定用户的详细信息update_user - 更新用户资料信息reset_user_password - 重置用户的密码(仅限管理员)list_api_keys - 列出用户的API密钥create_api_key - 创建新的API密钥delete_api_key - 删除API密钥list_custom_components - 列出所有自定义组件create_custom_component - 创建新的自定义组件login - 使用用户名和密码进行认证auto_login - 使用存储的凭据自动登录refresh_token - 刷新认证令牌logout - 登出并失效会话check_store - 检查组件商店是否启用check_store_api_key - 验证商店API密钥list_store_components - 浏览商店中的可用组件get_store_component - 获取商店组件的详细信息list_store_tags - 列出商店中的所有组件标签get_user_likes - 获取用户喜欢的组件validate_code - 验证自定义组件的Python代码validate_prompt - 验证提示模板语法run_flow_advanced - 高级流程执行,完全控制process_flow - 流程的遗留处理端点predict_flow - 流程的遗留预测端点get_public_flow - 不需要认证即可获取公共流程batch_create_flows - 一次操作创建多个流程get_task_status ⚠️ 已弃用 - 获取异步任务的状态(使用get_build_status代替)download_folder - 将整个文件夹下载为存档upload_folder - 从存档上传文件夹list_starter_projects - 列出可用的启动模板upload_knowledge_base - 上传文件以创建或更新知识库list_profile_pictures - 列出可用的配置文件图片get_profile_picture - 获取特定的配置文件图片list_elevenlabs_voices - 列出ElevenLabs文本转语音的声音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。
欢迎贡献!请:
npm test)