Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 25 additions & 10 deletions modelcontextprotocol/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,24 @@
# Pipedream MCP Server

This is a reference implementation of the Pipedream MCP server. You can run **your own MCP server** for [over 2,700 apps and APIs](https://pipedream.com/apps) and is powered by [Pipedream Connect](https://pipedream.com/docs/connect/).
> **⚠️ Important Notice**: This MCP server is a **reference implementation only** and is no longer actively maintained. For production use, we recommend using Pipedream's **remote MCP server** instead.

> [Note]
> These docs discuss how you can host Pipedream's MCP server in your own app or run it locally. To use Pipedream's [remote MCP server](https://pipedream.com/docs/connect/mcp/developers) (most common), [refer to our docs](https://pipedream.com/docs/connect/mcp/developers) to get started.
## Recommended: Use Pipedream's Remote MCP Server

For the best experience, use Pipedream's hosted MCP server which provides:

- **2,800+ APIs and 10,000+ tools** through a single server
- **Built-in authentication**: no manual token management required
- **Multiple tool modes**: sub-agent and full configuration
- **Automatic app discovery**
- **Enterprise-grade reliability and security**
Comment on lines +9 to +13
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Verify and harmonize counts (“2,800+ APIs/Apps” and “10,000+ tools”).

Two different phrasings are used:

  • “2,800+ APIs and 10,000+ tools” (Line 9)
  • “over 2,800 apps and APIs” (Line 36)

If both are accurate, consider harmonizing phrasing to avoid confusion. Also ensure these numbers are consistent across the repo and docs.

Run this to surface any inconsistent counts or missing schemes in links:

Also applies to: 36-36


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Searching for count references..."
rg -n -I -S "2,700|2,800|10,000\+ tools|10,000\+|10,000" -A 1 -B 1

echo
echo "Checking links to mcp.pipedream.com without https scheme..."
rg -n -I -S '\]\((?:www\.)?mcp\.pipedream\.com\)' -A 0 -B 0 || true

Length of output: 8985


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Searching for '2,800'..."
rg -n --hidden -S -H '2,800' || true
echo
echo "Searching for '2,700' or 'PUBLIC_APPS'..."
rg -n --hidden -S -H 'PUBLIC_APPS|2,700' || true
echo
echo "Searching for '10,000' (tools / +) ..."
rg -n --hidden -S -H '10,000\+|10,000\+ tools|10,000' || true
echo
echo "Searching for mcp.pipedream.com (any scheme / bare)..."
rg -n --hidden -S -H 'mcp\.pipedream\.com' || true

Length of output: 268186


Action: Harmonize public counts (2,700 vs 2,800) and verify "10,000+ tools"; fix bare mcp.pipedream.com link

Short: repo contains mixed counts — README uses "2,800+" while docs use PUBLIC_APPS = "2,700" (used via {process.env.PUBLIC_APPS}), and "10,000+ tools" appears separately. Also a bare mcp.pipedream.com link was found. Please standardize and confirm the authoritative numbers.

Locations to update (examples found):

  • modelcontextprotocol/README.md
    • line 9: "- 2,800+ APIs and 10,000+ tools through a single server"
    • line 36: "- Run your own MCP server for over 2,800 apps and APIs"
    • line 72: "This is currently available at mcp.pipedream.com" — missing https scheme
  • docs-v2/next.config.mjs (line 649): PUBLIC_APPS: "2,700" — many docs reference {process.env.PUBLIC_APPS}
  • Representative docs using the placeholder / 10,000+ wording:
    • docs-v2/pages/connect/mcp/developers.mdx:5
    • docs-v2/pages/connect/mcp/openai.mdx:7
    • docs-v2/pages/rest-api/index.mdx:749
    • docs-v2/pages/connect/index.mdx:27-28

Suggested fixes (pick one canonical approach):

  • Decide the authoritative count (2,700 vs 2,800). Update docs to match the canonical value.
    • Best practice: keep a single source of truth (PUBLIC_APPS in docs-v2/next.config.mjs) and reference {process.env.PUBLIC_APPS} everywhere, or update PUBLIC_APPS to the correct value.
  • Verify that "10,000+ tools" is accurate; if so, harmonize phrasing across docs (e.g., "10,000+ tools" or "over 10,000 pre-built tools").
  • Replace the bare link with an explicit scheme: change mcp.pipedream.commcp.pipedream.com.

Example replacement (README):

  • Replace "- 2,800+ APIs and 10,000+ tools…" with a canonical phrasing, e.g.:
    • "- over {process.env.PUBLIC_APPS}+ apps and APIs and 10,000+ tools…" (or update PUBLIC_APPS to "2,800" if that's the correct number)

Files listed above (and other docs that interpolate PUBLIC_APPS) should be updated for consistency.

🧰 Tools
🪛 LanguageTool

[grammar] ~9-~9: There might be a mistake here.
Context: ... 10,000+ tools** through a single server - Built-in authentication: no manual tok...

(QB_NEW_EN)


[grammar] ~10-~10: There might be a mistake here.
Context: ...n**: no manual token management required - Multiple tool modes: sub-agent and ful...

(QB_NEW_EN)


[grammar] ~11-~11: There might be a mistake here.
Context: ...odes**: sub-agent and full configuration - Automatic app discovery - **Enterprise...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...onfiguration - Automatic app discovery - **Enterprise-grade reliability and securit...

(QB_NEW_EN)

🤖 Prompt for AI Agents
In modelcontextprotocol/README.md around lines 9–13 and 36, plus line 72, and in
docs-v2/next.config.mjs at line 649 (and other docs that reference PUBLIC_APPS),
the repo contains inconsistent public app counts (2,700 vs 2,800), a possibly
unverified "10,000+ tools" claim, and a bare mcp.pipedream.com link. Pick a
single authoritative source of truth (preferably PUBLIC_APPS in
docs-v2/next.config.mjs), update PUBLIC_APPS to the correct canonical number
(either 2700 or 2800) and ensure all docs reference {process.env.PUBLIC_APPS} or
the same literal value, standardize the "10,000+ tools" phrasing across files
after verification (e.g., "10,000+ tools" or "over 10,000 pre-built tools"), and
replace the bare markdown link [mcp.pipedream.com](mcp.pipedream.com) with an
explicit scheme [mcp.pipedream.com](https://mcp.pipedream.com); apply these
changes to the README and all listed docs so counts and links are consistent.


**🚀 Get started**: [Pipedream MCP Documentation](https://pipedream.com/docs/connect/mcp/developers)

> **🎮 Try it now**: Check out our [open source chat app](https://github.com/PipedreamHQ/mcp) at [chat.pipedream.com](https://chat.pipedream.com/)

---

## Self-Hosting (Reference Implementation)

This reference implementation shows how you can:

Expand All @@ -12,14 +27,14 @@ This reference implementation shows how you can:

See the consumer-facing MCP server in action at [mcp.pipedream.com](https://mcp.pipedream.com) and check out a demo of the developer-facing product at [chat.pipedream.com](https://chat.pipedream.com).

We published this code as a reference, so you can better understand how to use Pipedream Connect for such
an application. This is a reference implementation specifically for self-hosting the server and may not be fully documented. Please reach out to us if you
have any questions.
We published this code as a reference, so you can better understand how to use Pipedream Connect for such an application. This is a reference implementation specifically for self-hosting the server and may not be fully documented.

**For production use, we strongly recommend using our [remote MCP server](https://pipedream.com/docs/connect/mcp/developers) instead.**

## ⭐ Features
## ⭐ Reference Implementation Features

- Run **your own MCP server** for [over 2,700 apps and APIs](https://mcp.pipedream.com)
- Manage servers **for your users**, in your own app.
- Run **your own MCP server** for [over 2,800 apps and APIs](https://mcp.pipedream.com)
- Manage servers **for your users**, in your own app
- Connect accounts, configure params, and make API requests, all via tools
- Fully-managed OAuth and credential storage ([see security docs](https://pipedream.com/docs/privacy-and-security/#third-party-oauth-grants-api-keys-and-environment-variables))

Expand Down Expand Up @@ -54,7 +69,7 @@ There are two ways to use this MCP server.

1 - App specific
`/{external_user_id}/{app}`
This is currently available at [mcp.pipedream.com](mcp.pipedream.com). You can use an endpoint for each app.
This is currently available at [mcp.pipedream.com](https://mcp.pipedream.com). You can use an endpoint for each app.
All the tools available for that app will be available at that endpoint.

2 - Dynamic
Expand Down
10 changes: 9 additions & 1 deletion packages/sdk/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@

# Changelog

## [1.8.0] - 2025-08-13

### Added

- Added `categoryIds` parameter to `getApps` method for filtering
apps by category IDs
- Added `getAppCategories` method to retrieve available app categories

## [1.7.0] - 2025-07-03

### Added
Expand Down Expand Up @@ -41,7 +49,7 @@

- Added `endpoint_url` field to the component metadata, providing the URL to the
HTTP interface of the component.
- Added missing pagination fields to the `GetComponentsResponse` and
- Added missing pagination fields to the `GetComponentsResponse` and
`GetAccountsResponse` types.

## [1.6.7] - 2025-06-06
Expand Down
2 changes: 1 addition & 1 deletion packages/sdk/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@pipedream/sdk",
"type": "module",
"version": "1.7.0",
"version": "1.8.0",
"description": "Pipedream SDK",
"main": "./dist/server.js",
"module": "./dist/server.js",
Expand Down
49 changes: 49 additions & 0 deletions packages/sdk/src/shared/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,31 @@ export type App = AppInfo & {
*/
export type AppResponse = App;

/**
* App category data returned from the API.
*/
export type AppCategory = {
/**
* The unique ID of the category.
*/
id: string;

/**
* The name of the category.
*/
name: string;

/**
* A description of the category.
*/
description: string;
};

/**
* The response received when retrieving app categories.
*/
export type GetAppCategoriesResponse = AppCategory[];

/**
* A configuration option for a component's prop.
*/
Expand Down Expand Up @@ -255,6 +280,10 @@ export type GetAppsOpts = RelationOpts & {
* Filter by whether apps have triggers in the component registry.
*/
hasTriggers?: boolean;
/**
* Filter apps by category IDs (format: appcat_[a-zA-Z0-9]+).
*/
categoryIds?: string[];
/**
* The key to sort the apps by.
*
Expand Down Expand Up @@ -1190,6 +1219,9 @@ export abstract class BaseClient {
? "1"
: "0";
}
if (opts?.categoryIds && opts.categoryIds.length > 0) {
params.category_ids = opts.categoryIds.join(",");
}
if (opts?.sortKey) {
params.sort_key = opts.sortKey;
}
Expand Down Expand Up @@ -1240,6 +1272,23 @@ export abstract class BaseClient {
return this.getApp(idOrNameSlug);
}

/**
* Retrieves the list of app categories available in Pipedream.
*
* @returns A promise resolving to a list of app categories.
*
* @example
* ```typescript
* const categories = await client.getAppCategories();
* console.log(categories);
* ```
*/
public getAppCategories() {
return this.makeAuthorizedRequest<GetAppCategoriesResponse>("/connect/app_categories", {
method: "GET",
});
}

/**
* Retrieves the list of components available in Pipedream.
*
Expand Down
19 changes: 13 additions & 6 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading