MCP服务器

Pipedream MCP服务器允许用户为超过2,500个应用和API运行自己的MCP服务器,支持本地运行和自主托管,适用于企业内部或应用集成。

  • by WallaceObsidian01
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 wallaceobsidian01/pipedream

使用说明

Pipedream MCP服务器

跑 您自己的MCP服务器 为了 2500多个应用程序和API.

你可以:

⭐ 特性

  • 为2500多个应用程序运行自己的MCP服务器
  • 管理服务器 为您的用户,在您自己的应用程序中。
  • 连接帐户、配置参数和发出API请求,所有这些都通过工具实现
  • 完全管理的OAuth和凭据存储(请参阅安全文档)

🚀 入门指南

Pipedream的MCP服务器使用 Piped梦连接API 以管理身份验证并发出API请求。要运行MCP服务器,您需要一个Pipeddream项目和Pipeddreamneneneba API证书。

  1. 注册Pipedream
  2. 创建项目。通过MCP连接的任何帐户都将存储在此处。
  3. 创建Pipedream OAuth客户端
  4. 使用首选方法(直接在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服务器接受两个路由参数:

  1. external_user_id --这是您系统中的用户ID,无论您使用什么来唯一标识它们。对该路由的任何请求都会耦合到该最终用户,并将使用该用户的身份验证Pipedream存储。 查看文档 了解更多细节。
  2. app --应用程序的“name slug”(应用程序的唯一标识符),位于 认证 部分 任何Pipedream应用程序例如,应用程序slug Slack 是 slack.

如果你的用户 123 想要连接到 slack MCP服务器,您的MCP客户端将向 /123/slack 路线。 请参阅下面的SSE文件 了解更多细节。

通过以下方式运行服务器 npx

Pipedream MCP服务器提供 两个接口 客户端可以连接到:

  1. 工作室:使用标准输入/输出。如果您想连接帐户并从编辑器和其他本地MCP客户端发出MCP请求,这是理想的选择。非常适合测试。
  2. 上海证券交易所:用途 服务器发送的事件 与客户沟通。当您想托管其他服务/客户可以使用的面向互联网的MCP服务器时,请使用此功能。

工作室

第一, 在您的环境中设置这些变量.

运行特定应用程序的stdio服务器,将应用程序的名称slug传递给 --app 选项:

npx @pipedream/mcp stdio --app slack

您还可以指定一个可选 外部用户ID --无论您在应用程序中使用什么ID来标识您的用户(否则将生成随机UUID):

npx @pipedream/mcp stdio --app slack --external-user-id user123

上海证券交易所

第一, 在您的环境中设置这些变量.

运行SSE服务器:

npx @pipedream/mcp sse

这暴露了一个通用的MCP服务器,允许您通过以下方式连接到我们2500多个应用程序中的任何一个 应用程序的名称slug 直接在路线上:

❯ 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

要连接到服务器,请执行以下操作:

  1. 连接到 http://localhost:3010/:external_user_id/:app 哪里:

    • :external_user_id 是会话的唯一标识符
    • :app 是否要使用Pipedream应用程序(例如“slack”)
  2. 服务器将为指定的应用程序建立SSE连接并注册工具。

  3. 要发送消息,请发布到 http://localhost:3010/:external_user_id/:app/messages?sessionId=<sessionId> 哪里:

    • <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

这暴露了一个通用的MCP服务器 http://localhost:3010/:external_user_id/:app.

一步一步

SSE服务器作为Node.js Express应用程序运行。实现很简单,仅供参考。你应该 添加授权 和 自定义您需要的应用程序.

克隆仓库并安装依赖项:

npm install

在您的环境中设置这些变量 在使用infra中使用的任何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检查员 或您首选的MCP客户端连接到服务器:

npx @modelcontextprotocol/inspector node ./dist/src/cli.js stdio --app APP --external-user-id USER_ID

打开 http://localhost:5173/ 并将传输类型设置为 工作室.

定制

您可以以任何方式自定义此实现,例如:

  1. 修改 config.ts 更改默认设置
  2. 延伸 registerComponentTools.ts 以添加额外的工具或将工具限制在固定的集合中。
  3. 改进实施以利用 最新版本 MCP规范。
  4. 在Redis或您使用的任何数据存储中持久化会话数据。

许可证

Pipedream源代码可用许可证版本1.0-请参阅https://github.com/PipedreamHQ/pipedream/blob/master/LICENSE