Pipedream's MCP servers use the Pipedream Connect API to manage auth and make API requests. To run an MCP server, you'll need a Pipedream project and Pipedream API credentials.
Set the following environment variables using your preferred method (directly in your shell session, dot files, etc.)
Pipedream concepts to understand
If you're running MCP servers for your app, you'll likely want to use the SSE interface. The SSE server accepts two route params:
external_user_id This is your user s ID, in your system whatever you use to uniquely identify them. Any requests made to that route are coupled to that end user, and would use the auth Pipedream stores for that user. See the docs for more detail.
app The app's "name slug" (the unique identifier for the app), found in the Authentication section of any Pipedream app. For example, the app slug for Slack is slack.
If your user 123 wants to connect to the slack MCP server, your MCP client would make a request to the /123/slack route. See the SSE docs below for more detail.
Running the server via locally for development
sse
stdio
optionally you can add add the env var PD_SDK_DEBUG=true to the above commands to dump requests and responses to the Pipecream Connect API.
sse
stdio
Running the server via `npx`
Pipedream MCP servers provide two interfaces clients can connect to:
Stdio: Uses standard input / output. Ideal if you want to connect accounts and make MCP requests from editors and other local MCP clients. Great for testing.
SSE: Uses Server-Sent Events to communicate with clients. Use this when you want to host an internet-facing MCP server that other services / your customers can use.
Stdio
First, set these variables in your environment.
Run the stdio server for a specific app, passing the app's name slug to the --app option:
You can also specify an optional external user ID whatever ID you use to identify your user in your app (otherwise a random UUID will be generated):
SSE
First, set these variables in your environment.
Run the SSE server:
This exposes a generic MCP server that allows you to connect to any of our 2,500+ apps by passing the app's name slug directly in the route:
To connect to the server:
Connect to http://localhost:3010/:external_user_id/:app where:
The server will establish an SSE connection and register tools for the specified app.
To send messages, post to http://localhost:3010/:external_user_id/:app/messages?sessionId=<sessionId> where:
You can also specify an app and port via CLI:
Hosting your own server
Using the `Dockerfile`
If you have Docker installed locally, you can build and run the container:
The SSE server runs as a Node.js Express app. The implementation is simple and meant to be a reference. You should add authorization and customize the app you need.
Clone the repo and install dependencies:
Set these variables in your environment in using whatever env / secrets store you use in your infra. To test this locally, copy the .env.example file:
and fill in the values:
Run the build:
And run the SSE server:
Authorization
MCP recently added support for servers authorizing requests using OAuth. When you host your own server, you should implement OAuth support to protect access to customer data.
Debugging
First, set these variables in your environment.
Use the MCP Inspector or your preferred MCP client to connect to the server:
Pipedream's MCP servers use the Pipedream Connect API to manage auth and make API requests. To run an MCP server, you'll need a Pipedream project and Pipedream API credentials.
Set the following environment variables using your preferred method (directly in your shell session, dot files, etc.)
Pipedream concepts to understand
If you're running MCP servers for your app, you'll likely want to use the SSE interface. The SSE server accepts two route params:
external_user_id This is your user s ID, in your system whatever you use to uniquely identify them. Any requests made to that route are coupled to that end user, and would use the auth Pipedream stores for that user. See the docs for more detail.
app The app's "name slug" (the unique identifier for the app), found in the Authentication section of any Pipedream app. For example, the app slug for Slack is slack.
If your user 123 wants to connect to the slack MCP server, your MCP client would make a request to the /123/slack route. See the SSE docs below for more detail.
Running the server via locally for development
sse
stdio
optionally you can add add the env var PD_SDK_DEBUG=true to the above commands to dump requests and responses to the Pipecream Connect API.
sse
stdio
Running the server via `npx`
Pipedream MCP servers provide two interfaces clients can connect to:
Stdio: Uses standard input / output. Ideal if you want to connect accounts and make MCP requests from editors and other local MCP clients. Great for testing.
SSE: Uses Server-Sent Events to communicate with clients. Use this when you want to host an internet-facing MCP server that other services / your customers can use.
Stdio
First, set these variables in your environment.
Run the stdio server for a specific app, passing the app's name slug to the --app option:
You can also specify an optional external user ID whatever ID you use to identify your user in your app (otherwise a random UUID will be generated):
SSE
First, set these variables in your environment.
Run the SSE server:
This exposes a generic MCP server that allows you to connect to any of our 2,500+ apps by passing the app's name slug directly in the route:
To connect to the server:
Connect to http://localhost:3010/:external_user_id/:app where:
The server will establish an SSE connection and register tools for the specified app.
To send messages, post to http://localhost:3010/:external_user_id/:app/messages?sessionId=<sessionId> where:
You can also specify an app and port via CLI:
Hosting your own server
Using the `Dockerfile`
If you have Docker installed locally, you can build and run the container:
The SSE server runs as a Node.js Express app. The implementation is simple and meant to be a reference. You should add authorization and customize the app you need.
Clone the repo and install dependencies:
Set these variables in your environment in using whatever env / secrets store you use in your infra. To test this locally, copy the .env.example file:
and fill in the values:
Run the build:
And run the SSE server:
Authorization
MCP recently added support for servers authorizing requests using OAuth. When you host your own server, you should implement OAuth support to protect access to customer data.
Debugging
First, set these variables in your environment.
Use the MCP Inspector or your preferred MCP client to connect to the server: