Pipedream Cloud
为超过2,500个应用程序和API运行您自己的MCP服务器。 - 为超过2,500个API运行您自己的MCP服务器 - 管理用户服务器,就在您自己的应用中 - 通过工具连接账户、配置参数并发出API请求 - 全托管的OAuth和凭据存储
服务介绍
Pipedream MCP 服务器
运行您自己的MCP服务器,支持超过2,500个应用程序和API。
您可以:
- 通过
npx @pipedream/mcp本地运行服务器 - 自行托管服务器,以便在您的应用程序或公司内部使用它们
⭐ 功能
- 为超过2,500个应用程序运行您自己的MCP服务器
- 在您自己的应用程序中为您用户管理服务器。
- 通过工具连接账户、配置参数并进行API请求
- 完全托管的OAuth和凭证存储(查看安全文档)
🚀 入门
Pipedream的MCP服务器使用Pipedream Connect API来管理认证并进行API请求。要运行一个MCP服务器,您需要一个Pipedream项目和Pipedream API凭据。
- 注册Pipedream
- 创建一个项目。所有通过MCP连接的账户将被存储在这里。
- 创建一个Pipedream OAuth客户端
- 使用您喜欢的方法设置以下环境变量(直接在shell会话中、点文件等)。
PIPEDREAM_CLIENT_ID=your_client_id
PIPEDREAM_CLIENT_SECRET=your_client_secret
PIPEDREAM_PROJECT_ID=your_project_id
PIPEDREAM_PROJECT_ENVIRONMENT=development
需要理解的Pipedream概念
如果您正在为您的应用程序运行MCP服务器,您可能希望使用SSE接口。SSE服务器接受两个路由参数:
external_user_id— 这是您系统中的用户ID——无论您用什么来唯一标识他们。对该路由所做的任何请求都与该终端用户相关联,并将使用Pipedream为此用户存储的身份验证信息。详见文档以获取更多详情。app— 应用程序的“名称缩写”(应用程序的唯一标识符),可以在任何Pipedream应用的身份验证部分找到。例如,Slack的应用程序缩写是slack。
如果您的用户123想要连接到slack MCP服务器,您的MCP客户端将向/123/slack路径发起请求。详见下面的SSE文档以获取更多信息。
通过 npx 运行服务器
Pipedream MCP服务器提供了两种接口供客户端连接:
- Stdio: 使用标准输入/输出。如果您想从编辑器和其他本地MCP客户端连接账户并进行MCP请求,这是理想的选择。非常适合测试。
- SSE: 使用服务器发送事件与客户端通信。当您希望托管面向互联网的MCP服务器,供其他服务或您的客户使用时,请使用此选项。
Stdio
首先,在您的环境中设置这些变量。
为特定应用程序运行stdio服务器,将应用程序的名称缩写传递给--app选项:
npx @pipedream/mcp stdio --app slack
你可以指定一个可选的外部用户ID — 无论你在应用程序中使用什么ID来标识你的用户(否则将生成一个随机的UUID):
npx @pipedream/mcp stdio --app slack --external-user-id user123
SSE
首先,在你的环境中设置这些变量。
运行SSE服务器:
npx @pipedream/mcp sse
这会暴露一个通用的MCP服务器,允许你通过直接在路由中传递应用程序的名字slug来连接到我们的2,500多个应用中的任何一个:
❯ npx @pipedream/mcp sse
Server is running on port 3010
Routes configured:
- GET / - Health check
- GET /:external_user_id/:app - App-specific SSE connection endpoint
- POST /:external_user_id/:app/messages - App-specific message handler
要连接到服务器:
-
连接到
http://localhost:3010/:external_user_id/:app,其中::external_user_id是会话的唯一标识符:app是要使用的Pipedream应用(例如 "slack")
-
服务器将建立一个SSE连接,并为指定的应用注册工具。
-
要发送消息,请向
http://localhost:3010/:external_user_id/:app/messages?sessionId=<sessionId>发送POST请求,其中:<sessionId>在初始连接响应中提供
您还可以通过CLI指定应用和端口:
npx @pipedream/mcp sse --app slack --port 8080
❯ npx @pipedream/mcp sse --app slack --port 8080
Server is running on port 8080
Routes configured:
- GET / - Health check
- GET /:external_user_id/slack - App-specific SSE connection endpoint
- POST /:external_user_id/slack/messages - App-specific message handler
托管自己的服务器
使用 Dockerfile
如果你本地安装了Docker,可以构建并运行容器:
> docker build -t pipedream-connect .
> docker run -d --name pd-mcp -p 3010:3010 --env-file .env pipedream-connect:latest
这将在 http://localhost:3010/:external_user_id/:app 暴露一个通用的MCP服务器。
逐步指南
SSE服务器作为Node.js Express应用程序运行。实现很简单,旨在作为一个参考。你应该添加授权 并 自定义所需的应用程序。
克隆仓库并安装依赖项:
npm install
使用你的基础设施中任何env/secrets存储来在你的环境中设置这些变量。要在本地测试,复制 .env.example 文件:
cp .env.example .env
并填写值:
# Pipedream OAuth credentials
PIPEDREAM_CLIENT_ID=your_client_id
PIPEDREAM_CLIENT_SECRET=your_client_secret
# From the project settings
PIPEDREAM_PROJECT_ID=your_project_id
PIPEDREAM_PROJECT_ENVIRONMENT=development
# Pipedream can send you webhook notifications on account connection, account failure, etc.
PIPEDREAM_WEBHOOK_URI=https://your-webhook.m.pipedream.net
# Optional: Default app to use (defaults to "slack")
APP=slack
# Optional: Port for the SSE server (defaults to 3010)
PORT=3010
运行构建:
npm run build
然后运行SSE服务器:
npm run start:sse:prod
授权
MCP最近增加了支持服务器使用OAuth授权请求的功能。当你托管自己的服务器时,应该实现OAuth支持以保护对客户数据的访问。
调试
首先,在你的环境中设置这些变量。
使用MCP Inspector或你喜欢的MCP客户端连接到服务器:
npx @modelcontextprotocol/inspector node ./dist/src/cli.js stdio --app APP --external-user-id USER_ID
打开 http://localhost:5173/ 并将传输类型设置为 STDIO。

自定义
你可以按照自己的需要定制此实现,例如:
- 修改
config.ts以更改默认设置 - 扩展
registerComponentTools.ts以添加额外工具,或将工具限制为固定集合。 - 改进实现以利用MCP规范的最新版本。
- 在Redis或其他你使用的数据库中持久化会话数据。
许可证
Pipedream 源代码可用许可版本 1.0 - 请参阅 https://github.com/PipedreamHQ/pipedream/blob/master/LICENSE