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需要一些准备工作和配置步骤。以下是详细的操作流程,旨在帮助开发者快速上手。
前期准备
在开始之前,你需要准备好以下账号和密钥:
- Pipedream账户: 用于创建项目和管理通过MCP连接的应用。
- Pipedream项目: 你的所有配置和连接的账户都会存储在这里。
- Pipedream OAuth凭证: 用于API认证。
- OpenAI API密钥: 示例应用中需要用到,用于驱动大语言模型。
环境设置
- 克隆代码库:首先,从GitHub上克隆示例代码库到你的本地计算机。
git clone https://github.com/PipedreamHQ/mcp.git cd mcp
- 安装依赖:项目使用
pnpm
作为包管理器。在项目根目录下运行以下命令来安装所有必需的依赖项。pnpm install
- 配置环境变量:代码库中提供了一个环境变量示例文件
.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
应用场景
- 构建企业级AI智能体企业可以利用MCP框架,构建一个能够接入内部所有API和数据源的AI智能体。员工可以通过自然语言与智能体交互,完成查询销售数据、预订会议室、创建工单等任务,而无需在多个系统之间切换。
- 开发多功能AI聊天机器人开发者可以创建一个面向公众的AI聊天机器人,该机器人能够根据用户请求动态调用外部服务。例如,用户可以要求它“帮我查一下今天去旧金山的天气,并预订一张下午两点的电影票”,机器人会动态调用天气API和电影票预订API来完成这一系列操作。
- 自动化开发工作流在软件开发场景中,可以创建一个AI助手,集成GitHub、Jira等开发工具。开发人员可以通过指令让AI助手自动创建代码分支、更新任务状态、运行测试工作流等,从而提升开发效率。
- 个人效率工具集成个人用户可以构建一个私有的AI助手,将自己的常用应用(如Google Calendar, Notion, Gmail)通过MCP连接起来。通过一句指令,就能让AI助手安排日程、记录笔记或发送邮件,实现个人工作流的自动化。
QA
- Pipedream MCP与其他工具调用框架有何不同?Pipedream MCP最大的特点是其动态工具发现能力。 传统框架通常需要预先定义好所有可用的工具,而MCP服务器可以根据用户的实时请求,动态地查找、加载并配置合适的工具来完成任务。
- 使用Pipedream的MCP服务是否需要处理用户认证?不需要。Pipedream Connect为每个MCP服务器提供了内置的用户认证和授权流程。这意味着你作为开发者,无需自己处理OAuth流程、存储和刷新token等繁琐工作,可以安全地代表用户调用API。
- 是否可以添加不在Pipedream公共列表中的自定义工具?可以。Pipedream允许你在自己的工作区中发布自定义工具,并将它们用于MCP服务器。这让你能够为特定的应用场景添加公共注册表中没有的独特功能。
- 运行这些示例需要哪些技术背景?你需要对Node.js和JavaScript有基本的了解,并且熟悉使用命令行工具。此外,理解大语言模型(LLM)和API的基本概念会对上手有很大帮助。