Pipedream MCP
扫码查看

在AI应用中动态调用外部工具的协议框架

Pipedream MCP

综合介绍

Pipedream MCP (Model-Context-Protocol) 是一个开源框架,用于帮助AI应用或智能体与外部工具及API进行交互。这个项目的核心特点是它的MCP服务器能够动态地发现和加载工具,而不是像传统方式那样只能使用一组固定的、预先定义的工具。 这意味着,AI应用可以根据用户的具体请求,实时地查找并配置所需要的工具。 例如,当用户要求“在Slack的#random频道发一个笑话”时,系统可以动态地加载并使用Slack的API来完成任务。 该项目提供了一系列示例,展示了开发者如何在自己的AI聊天应用或智能体中集成Pipedream的MCP服务器。Pipedream提供了超过2800个API作为MCP服务器,涵盖了如Notion、Gmail、Slack等常用应用,开发者可以自托管MCP服务器,也可以使用Pipedream提供的远程服务器。

功能列表

  • 动态工具发现: MCP服务器可以根据用户输入动态识别、加载和配置所需工具,而不是局限于一组预定义工具。
  • 广泛的API集成: Pipedream平台将超过2800个第三方应用(如GitHub, Slack, Notion等)的API封装为标准的MCP服务器,可以直接在AI应用中调用。
  • 内置用户认证: 开发者无需自行构建复杂的认证授权流程,Pipedream Connect为每个MCP服务器提供了内置的用户认证,可以安全地代表用户执行操作。
  • 灵活的部署选项: 开发者可以选择使用Pipedream托管的远程MCP服务器,也可以在自己的环境中通过Docker或Node.js自托管服务器。
  • 多种集成方式: 仓库提供了多种集成示例,包括功能完整的Next.js聊天应用、使用Vercel AI SDK的简化版以及直接使用OpenAI SDK的完全控制版。
  • 自定义工具支持: 允许开发者在自己的工作区发布自定义工具,以扩展标准API之外的特定功能。

使用帮助

集成Pipedream MCP需要一些准备工作和配置步骤。以下是详细的操作流程,旨在帮助开发者快速上手。

前期准备

在开始之前,你需要准备好以下账号和密钥:

  1. Pipedream账户: 用于创建项目和管理通过MCP连接的应用。
  2. Pipedream项目: 你的所有配置和连接的账户都会存储在这里。
  3. Pipedream OAuth凭证: 用于API认证。
  4. OpenAI API密钥: 示例应用中需要用到,用于驱动大语言模型。

环境设置

  1. 克隆代码库:首先,从GitHub上克隆示例代码库到你的本地计算机。
    git clone https://github.com/PipedreamHQ/mcp.git
    cd mcp
    
  2. 安装依赖:项目使用pnpm作为包管理器。在项目根目录下运行以下命令来安装所有必需的依赖项。
    pnpm install
    
  3. 配置环境变量:代码库中提供了一个环境变量示例文件.env.example。你需要复制这个文件并重命名为.env,然后填入你在“前期准备”中获取的凭证和密钥。
    cp .env.example .env
    

    接着,用文本编辑器打开.env文件,并填入你的Pipedream和OpenAI相关信息。

运行示例

该仓库提供了三个不同的示例,你可以根据自己的需求选择运行。

1. 运行功能完整的聊天应用 (Chat App Example)这是一个基于Next.js的全功能Web应用,它在生产就绪的环境中展示了MCP的集成。

  • 启动命令:
    pnpm chat
    
  • 功能特点:
    • MCP集成: 通过内置认证连接到Pipedream的数千个API。
    • LLM和框架灵活性: 支持任何大语言模型提供商或框架。
    • 工具发现: 通过聊天界面跨不同API执行工具调用。
  • 开发模式:如果你在开发阶段,想要禁用用户登录和聊天记录存储,可以在.env文件中设置以下变量:
    DISABLE_AUTH=true
    DISABLE_PERSISTENCE=true
    EXTERNAL_USER_ID=your-dev-user-id
    

    EXTERNAL_USER_ID可以设置为任意字符串,用于标识你的开发用户。

2. 运行Vercel AI SDK示例 (Vercel AI SDK Example)这个示例展示了如何使用Vercel的AI SDK与Pipedream MCP集成,它能够自动处理工具调用。

  • 启动命令:
    pnpm ai-sdk -u <external-user-id> "<prompt>"
    
    • <external-user-id>: 你的系统中的用户唯一标识符。
    • <prompt>: 你希望AI执行的任务指令。
  • 示例:
    pnpm ai-sdk -u user-123 "Send a funny joke to the #random channel in Slack"
    

3. 运行OpenAI SDK示例 (OpenAI SDK Example)这个示例直接使用OpenAI SDK,需要手动进行工具转换,为开发者提供了最大程度的控制。

  • 启动命令:
    pnpm openai-sdk -u <external-user-id> "<prompt>"
    
  • 示例:
    pnpm openai-sdk -u user-456 "Send a funny joke to the #random channel in Slack"
    

自托管MCP服务器

如果你不希望使用Pipedream的远程服务,也可以选择自己托管MCP服务器。

  • 使用Docker:你可以构建并运行仓库中提供的Dockerfile来启动一个MCP服务器容器。
    docker build -t pipedream-connect .
    docker run -d --name pd-mcp -p 3010:3010 --env-file .env pipedream-connect:latest
    
  • 使用npx:可以通过npx命令快速启动一个支持SSE(Server-Sent Events)传输的服务器。
    npx @pipedream/mcp sse
    
  • 本地运行和定制:如果需要进行更深度的定制,可以克隆Pipedream的主代码库,并在本地运行开发服务器。
    git clone https://github.com/PipedreamHQ/pipedream
    cd pipedream/modelcontextprotocol
    pnpm install
    pnpm dev:http
    

应用场景

  1. 构建企业级AI智能体企业可以利用MCP框架,构建一个能够接入内部所有API和数据源的AI智能体。员工可以通过自然语言与智能体交互,完成查询销售数据、预订会议室、创建工单等任务,而无需在多个系统之间切换。
  2. 开发多功能AI聊天机器人开发者可以创建一个面向公众的AI聊天机器人,该机器人能够根据用户请求动态调用外部服务。例如,用户可以要求它“帮我查一下今天去旧金山的天气,并预订一张下午两点的电影票”,机器人会动态调用天气API和电影票预订API来完成这一系列操作。
  3. 自动化开发工作流在软件开发场景中,可以创建一个AI助手,集成GitHub、Jira等开发工具。开发人员可以通过指令让AI助手自动创建代码分支、更新任务状态、运行测试工作流等,从而提升开发效率。
  4. 个人效率工具集成个人用户可以构建一个私有的AI助手,将自己的常用应用(如Google Calendar, Notion, Gmail)通过MCP连接起来。通过一句指令,就能让AI助手安排日程、记录笔记或发送邮件,实现个人工作流的自动化。

QA

  1. Pipedream MCP与其他工具调用框架有何不同?Pipedream MCP最大的特点是其动态工具发现能力。 传统框架通常需要预先定义好所有可用的工具,而MCP服务器可以根据用户的实时请求,动态地查找、加载并配置合适的工具来完成任务。
  2. 使用Pipedream的MCP服务是否需要处理用户认证?不需要。Pipedream Connect为每个MCP服务器提供了内置的用户认证和授权流程。这意味着你作为开发者,无需自己处理OAuth流程、存储和刷新token等繁琐工作,可以安全地代表用户调用API。
  3. 是否可以添加不在Pipedream公共列表中的自定义工具?可以。Pipedream允许你在自己的工作区中发布自定义工具,并将它们用于MCP服务器。这让你能够为特定的应用场景添加公共注册表中没有的独特功能。
  4. 运行这些示例需要哪些技术背景?你需要对Node.js和JavaScript有基本的了解,并且熟悉使用命令行工具。此外,理解大语言模型(LLM)和API的基本概念会对上手有很大帮助。
微信微博Email复制链接