这是 Pipedream MCP 服务器的参考实现。你可以为超过 2,500 个应用和 API 运行你自己的 MCP 服务器,并由 Pipedream Connect 提供支持。
你可以:
你可以在 mcp.pipedream.com 和 chat.pipedream.com 查看实际运行的服务器。
我们发布这段代码作为参考,以便你更好地理解如何在这种应用中使用 Pipedream Connect。这仍然是一个进行中的工作,尚未完全文档化。如果你有任何问题,请随时联系我们。
Pipedream 的 MCP 服务器使用 Pipedream Connect API 来管理认证并发出 API 请求。要运行 MCP 服务器,你需要一个 Pipedream 项目和 Pipedream API 凭证。
.env.example
)(直接在 shell 会话、dot 文件等中设置):PIPEDREAM_CLIENT_ID=your_client_id PIPEDREAM_CLIENT_SECRET=your_client_secret PIPEDREAM_PROJECT_ID=your_project_id PIPEDREAM_PROJECT_ENVIRONMENT=development
如果你为你的应用运行 MCP 服务器,你可能希望使用 SSE 接口。SSE 服务器接受两个路由参数:
external_user_id
— 这是你系统中用户的 ID — 你用来唯一标识他们的任何内容。对该路由发出的任何请求都将与该最终用户相关联,并使用 Pipedream 为该用户存储的认证信息。查看文档 获取更多详细信息。app
— 应用的 "名称 slug"(应用的唯一标识符),可以在任何 Pipedream 应用 的 Authentication 部分找到。例如,Slack 的应用 slug 是 slack
。如果你的用户 123
想要连接到 slack
MCP 服务器,你的 MCP 客户端将向 /123/slack
路由发出请求。查看下面的 SSE 文档 获取更多详细信息。
有两种方式可以使用这个 MCP 服务器。
1 - 应用特定
/{external_user_id}/{app}
目前可以在 mcp.pipedream.com 上使用。你可以为每个应用使用一个端点。
该应用的所有工具都将在该端点上可用。
2 - 动态
/{external_user_id}
这是一个实验性版本,因为它依赖于工具能够动态更新。
我们使用这个服务器来支持 chat.pipedream.com 上的工具。
[!NOTE]
动态 MCP 服务器的代码在此仓库中可用,但你目前无法在本地运行它,因为它依赖于内部数据库。如果你希望自行运行此服务器,请告诉我们。
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 服务器。
cp .env.example .env
并填写你的开发项目的详细信息。
pnpm install
pnpm dev:http
你可以使用可选的 env 变量 PD_SDK_DEBUG
来打印出所有发送到 Connect API 的请求和响应
PD_SDK_DEBUG=true pnpm dev:http

然后运行检查器:
npx @modelcontextprotocol/inspector
使用 http://localhost:3010/v1/{external_user_id}/{app}
进行 Streamable HTTP Transport 或 http://localhost:3010/{external_user_id}/{app}
进行 SSE Transport。
这些 URL 也可以被其他客户端(例如 Cursor)使用。
Stdio 仅与 MCP 检查器一起测试过。
npx @modelcontextprotocol/inspector bun src/stdio.ts
查看检查器的日志以获取 URL。
确保检查器的左侧与此匹配:
然后按 "List Tools" 获取 MCP 工具列表。
Pipedream 源可用许可证版本 1.0 - 参见 https://github.com/PipedreamHQ/pipedream/blob/master/LICENSE