mcpField
N
n8n-nodes-mcp-client

n8n-nodes-mcp-client

github.com/ateeyak框架与 SDK485 周前更新

关于 n8n-nodes-mcp-client

n8n-nodes-mcp-client 是 n8n 社区节点,允许在工作流中与 MCP 服务交互。支持 STDIO 和 SSE 两种传输方式,可执行工具、访问资源和提示词。

主要功能

  1. 01执行 MCP 工具
  2. 02列表和读取资源
  3. 03获取和列表提示词
  4. 04STDIO 和 SSE 传输支持
  5. 05环境变量和凭证管理
  6. 06AI Agent 工具集成

适用场景

  1. 01n8n 工作流中集成外部 MCP 服务
  2. 02在 AI Agent 中使用多个 MCP 工具
  3. 03自动化调用外部 API 和数据源
  4. 04多服务器生产环境部署

MCP 相关

n8n-nodes-mcp-client 作为 n8n 节点与 MCP 服务通信,支持多种操作如执行工具、列表资源和获取提示词,并可在 AI Agent 中作为工具使用。

详细介绍

n8n-nodes-mcp-client

这是一个 n8n 社区节点,让你在 n8n 工作流中与 Model Context Protocol (MCP) 服务交互。

MCP 是一个协议,使 AI 大模型能够以标准化方式与外部工具和数据源交互。此节点允许你连接到 MCP 服务,访问资源,执行工具,以及使用提示词。

n8n 是一个公平代码许可的工作流自动化平台。

安装
凭证
环境变量
操作
作为工具使用
兼容性
资源

安装

按照 n8n 社区节点文档中的安装指南进行操作。

凭证

MCP 客户端节点支持两种凭证类型来连接到 MCP 服务:

命令行传输 (STDIO)

MCP Client STDIO 凭证

  • Command:启动 MCP 服务的命令
  • Arguments:传递给服务命令的可选参数
  • Environment Variables:传递给服务的变量,格式为 NAME=VALUE
服务器发送事件 (SSE) 传输

MCP Client SSE 凭证

  • SSE URL:SSE 端点的 URL(默认:http://localhost:3001/sse)
  • Messages Post Endpoint:如果与 SSE URL 不同,发送消息的自定义端点(可选)
  • Additional Headers:随请求发送的可选标头(格式:name:value,每行一个)

环境变量

MCP 客户端节点支持通过命令行传输以两种方式将环境变量传递给 MCP 服务:

1. 使用凭证 UI

你可以直接在凭证配置中添加环境变量:

凭证中的环境变量

此方法适用于个人设置和测试。值在 n8n 中作为凭证安全存储。

2. 使用 Docker 环境变量

对于 Docker 部署,你可以通过在环境变量前加 MCP_ 前缀,直接将环境变量传递给 MCP 服务:

version: '3'

services:
  n8n:
    image: n8nio/n8n
    environment:
      - MCP_BRAVE_API_KEY=your-api-key-here
      - MCP_OPENAI_API_KEY=your-openai-key-here
      - MCP_CUSTOM_SETTING=some-value
    # other configuration...

这些环境变量在 MCP 服务执行时会自动传递给它们。

示例:使用 Brave Search MCP 服务

此示例展示如何设置和使用 Brave Search MCP 服务:

  1. 安装 Brave Search MCP 服务:

    npm install -g @modelcontextprotocol/server-brave-search
    
  2. 配置 MCP 客户端凭证:

    • Command:npx
    • Arguments:-y @modelcontextprotocol/server-brave-search
    • Environment Variables:BRAVE_API_KEY=your-api-key 添加变量(空格、逗号或换行符分隔)
  3. 创建使用 MCP 客户端节点的工作流:

    • 添加 MCP 客户端节点
    • 选择"List Tools"操作以查看可用的搜索工具
    • 添加另一个 MCP 客户端节点
    • 选择"Execute Tool"操作
    • 选择"brave_search"工具
    • 将 Parameters 设置为:{"query": "latest AI news"}

Brave Search 示例

该节点将执行搜索并在输出中返回结果。

示例:使用 AI Agent 进行多服务器设置

此示例演示了如何在生产环境中设置多个 MCP 服务并将其与 AI Agent 一起使用:

  1. 配置你的 docker-compose.yml 文件:
version: '3'

services:
  n8n:
    image: n8nio/n8n
    environment:
      # MCP server environment variables
      - MCP_BRAVE_API_KEY=your-brave-api-key
      - MCP_OPENAI_API_KEY=your-openai-key
      - MCP_SERPER_API_KEY=your-serper-key
      - MCP_WEATHER_API_KEY=your-weather-api-key
      
      # Enable community nodes as tools
      - N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
    ports:
      - "5678:5678"
    volumes:
      - ~/.n8n:/home/node/.n8n
  1. 在 n8n 中创建多个 MCP 客户端凭证:

    Brave Search 凭证:

    • Command: npx
    • Arguments: -y @modelcontextprotocol/server-brave-search

    OpenAI Tools 凭证:

    • Command: npx
    • Arguments: -y @modelcontextprotocol/server-openai

    Web Search 凭证:

    • Command: npx
    • Arguments: -y @modelcontextprotocol/server-serper

    Weather API 凭证:

    • Command: npx
    • Arguments: -y @modelcontextprotocol/server-weather
  2. 创建一个 AI Agent 工作流:

    • 添加一个 AI Agent 节点
    • 启用 MCP 客户端作为工具
    • 使用不同凭证配置不同的 MCP 客户端节点
    • 创建一个使用多个数据源的提示词

Multi-Server Setup

AI Agent 提示词示例:

I need you to help me plan a trip. First, search for popular destinations in {destination_country}.
Then, check the current weather in the top 3 cities.
Finally, find some recent news about travel restrictions for these places.

通过此设置,AI Agent 可以跨不同服务器使用多个 MCP 工具,所有这些都使用 Docker 部署中配置的环境变量。

示例:使用本地 MCP 服务与 SSE

此示例演示了如何使用服务器发送事件(SSE)连接到本地运行的 MCP 服务:

  1. 启动支持 SSE 的本地 MCP 服务:

    npx @modelcontextprotocol/server-example-sse
    

    或在 3001 端口上运行你自己的自定义 MCP 服务(具有 SSE 支持)。

  2. 配置 MCP 客户端凭证:

    • 在节点设置中,选择连接类型:Server-Sent Events (SSE)
    • 创建类型为 MCP Client (SSE) API 的新凭证
    • 设置 SSE URL:http://localhost:3001/sse
    • 如果服务器需要身份验证,请添加任何必需的标头
  3. 创建一个使用 MCP 客户端节点的工作流:

    • 添加一个 MCP 客户端节点
    • 将连接类型设置为 Server-Sent Events (SSE)
    • 选择你的 SSE 凭证
    • 选择"List Tools"操作以查看可用工具
    • 执行工作流以查看结果

SSE Example

此方法特别适用于以下情况:

  • 你的 MCP 服务作为独立服务运行
  • 你正在连接到远程 MCP 服务
  • 你的服务需要特殊的身份验证标头
  • 你需要将传输通道与消息通道分开

操作

MCP 客户端节点支持以下操作:

MCP Client Operations

  • Execute Tool - 使用参数执行特定工具
  • Get Prompt - 获取特定提示词模板
  • List Prompts - 获取可用提示词列表
  • List Resources - 获取来自 MCP 服务的可用资源列表
  • List Tools - 获取可用工具列表
  • Read Resource - 按 URI 读取特定资源
示例:List Tools 操作

List Tools Example

List Tools 操作返回来自 MCP 服务的所有可用工具,包括它们的名称、描述和参数模式。

示例:Execute Tool 操作

Execute Tool Example

Execute Tool 操作允许你使用参数执行特定工具。确保从下拉菜单中选择要执行的工具。

用作工具

此节点可在 n8n AI Agents 中用作工具。要启用社区节点作为工具,你需要将 N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE 环境变量设置为 true。

设置环境变量

如果你使用 bash/zsh shell:

export N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
n8n start

如果你使用 Docker: 添加到你的 docker-compose.yml 文件:

environment:
  - N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true

如果你使用桌面应用: 在 n8n 目录中创建一个 .env 文件:

N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true

如果你想在 Mac/Linux 上永久设置它: 添加到你的 ~/.zshrc 或 ~/.bash_profile:

export N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true

AI Agent 工作流结果示例:

AI Agent 示例

设置此环境变量并重启 n8n 后,你的 MCP 客户端节点将作为工具在 AI Agent 节点中可用。

兼容性

  • 需要 n8n 版本 1.0.0 或更高版本
  • 兼容 MCP Protocol 版本 1.0.0 或更高版本
  • 支持 STDIO 和 SSE 传输来连接到 MCP 服务
  • SSE 传输需要实现 MCP Server-Sent Events 规范的服务

资源

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。