You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: modelcontextprotocol/README.md
+38-18Lines changed: 38 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,18 @@
1
1
# Pipedream MCP Server
2
2
3
-
This is a reference implementation of the Pipedream MCP server.
3
+
This is a reference implementation of the Pipedream MCP server. You can run **your own MCP server** for [over 2,500 apps and APIs](https://pipedream.com/apps) and is powered by [Pipedream Connect](https://pipedream.com/docs/connect/).
4
4
5
-
You can run this server yourself or use the hosted version at mcp.pipedream.com and chat.pipedream.com.
6
-
You can also directly integrate with [Pipedream Connect](https://pipedream.com/docs/connect/) to get
7
-
access to all the integrations.
5
+
You can:
6
+
7
+
-[Run the servers locally](#running-the-server-via-npx) with `npx @pipedream/mcp`
8
+
-[Host the servers yourself](#hosting-your-own-server) to use them within your app or company
9
+
10
+
See the server in action at [mcp.pipedream.com](https://mcp.pipedream.com) and [chat.pipedream.com](https://chat.pipedream.com)
8
11
9
12
We published this code as a reference, so you can better understand how to use Pipedream Connect for such
10
13
an application. This is still a work in progress, and not fully documented. Please reach out to us if you
11
14
have any questions.
15
+
12
16
## ⭐ Features
13
17
14
18
- Run **your own MCP server** for [over 2,500 apps and APIs](https://pipedream.com/apps)
@@ -23,23 +27,40 @@ Pipedream's MCP servers use the [Pipedream Connect API](https://pipedream.com/do
23
27
1.[Sign up for Pipedream](https://pipedream.com/auth/signup)
24
28
2.[Create a project](https://pipedream.com/docs/workflows/projects/#creating-projects). Any accounts connected via MCP will be stored here.
25
29
3.[Create a Pipedream OAuth client](https://pipedream.com/docs/rest-api/auth/#creating-an-oauth-client)
26
-
4. Set the environment variables (See `.env.example`) (directly in your shell session, dot files, etc.)
30
+
4. Set the environment variables (See `.env.example`) (directly in your shell session, dot files, etc.):
31
+
32
+
```bash
33
+
PIPEDREAM_CLIENT_ID=your_client_id
34
+
PIPEDREAM_CLIENT_SECRET=your_client_secret
35
+
PIPEDREAM_PROJECT_ID=your_project_id
36
+
PIPEDREAM_PROJECT_ENVIRONMENT=development
37
+
```
38
+
39
+
### Pipedream concepts to understand
40
+
41
+
If you're running MCP servers for your app, you'll likely want to use the [SSE interface](#sse). The SSE server accepts two route params:
27
42
28
-
There are two ways to use this MCP server.
43
+
1.`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](https://pipedream.com/docs/connect/api/#external-users) for more detail.
44
+
2.`app` — The app's "name slug" (the unique identifier for the app), found in the **Authentication** section of [any Pipedream app](https://pipedream.com/apps). For example, the app slug for [Slack](https://pipedream.com/apps/slack) is `slack`.
45
+
46
+
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](#sse) for more detail.
47
+
48
+
## Server overview
49
+
50
+
There are two ways to use this MCP server.
29
51
30
52
1 - App specific
31
-
`/{uid}/{app}`
32
-
This is currently available at [mcp.pipedream.com](mcp.pipedream.com). You can use an endpoint for each app.
33
-
All the tools available for that app will be available at that endpoint.
53
+
`/{external_user_id}/{app}`
54
+
This is currently available at [mcp.pipedream.com](mcp.pipedream.com). You can use an endpoint for each app.
55
+
All the tools available for that app will be available at that endpoint.
34
56
35
57
2 - Dynamic
36
-
`/{uid}`
37
-
This is a more experimental version, since it relies on tools being able to update dynamically.
38
-
We use this server to power the tools on [chat.pipedream.com](chat.pipedream.com).
58
+
`/{external_user_id}`
59
+
This is an experimental version, since it relies on tools being able to update dynamically.
60
+
We use this server to power the tools on [chat.pipedream.com](https://chat.pipedream.com).
39
61
40
62
> [!NOTE]
41
-
> We made the code for the dynamic MCP server available in this repo. However you will not yet be able to run it locally.
42
-
> It relies on our internal Supabase instance.
63
+
> The code for the dynamic MCP server is available in this repo but you will not _yet_ be able to run it locally since it relies on an internal db.
43
64
>
44
65
> Please let us know if you'd like to run this yourself.
45
66
@@ -56,7 +77,6 @@ If you have Docker installed locally, you can build and run the container:
56
77
57
78
This exposes a generic MCP server at [http://localhost:3010/:external_user_id/:app](http://localhost:3010/:external_user_id/:app).
58
79
59
-
60
80
## Development
61
81
62
82
`cp .env.example .env` and fill in the details of your dev project.
@@ -66,6 +86,7 @@ pnpm install
66
86
```
67
87
68
88
### Start the server with Streamable HTTP Transport
89
+
69
90
```bash
70
91
pnpm dev:http
71
92
```
@@ -82,12 +103,12 @@ Then run the inspector:
82
103
npx @modelcontextprotocol/inspector
83
104
```
84
105
85
-
Use `http://localhost:3010/v1/{uuid}/{app}` for Streamable HTTP Transport or `http://localhost:3010/{uuid}/{app}` for SSE Transport.
106
+
Use `http://localhost:3010/v1/{external_user_id}/{app}` for Streamable HTTP Transport or `http://localhost:3010/{external_user_id}/{app}` for SSE Transport.
86
107
87
108
These URLs can also be used by other clients (e.g. Cursor).
88
109
89
-
90
110
### Stdio Transport setup
111
+
91
112
Stdio has only been tested with the MCP Inspector.
92
113
93
114
```bash
@@ -100,7 +121,6 @@ Ensure the left side of the inspector matches this:
100
121
101
122

102
123
103
-
104
124
Then press "List Tools" to fetch the list of MCP tools.
0 commit comments