> ## Documentation Index
> Fetch the complete documentation index at: https://pipedream.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Using Pipedream MCP as an End User

> Add 10,000+ tools from 3,000+ APIs to ChatGPT, Claude, Cursor, and more, with Pipedream MCP

export const VSCodeInstallButton = ({serverUrl = "https://mcp.pipedream.net/v2"}) => {
  const config = {
    name: "Pipedream",
    type: "http",
    url: serverUrl
  };
  const configJson = JSON.stringify(config);
  const configEncoded = encodeURIComponent(configJson);
  return <div>
      <a href={`vscode:mcp/install?${configEncoded}`} className="inline-flex items-center gap-2 px-3 h-10 text-sm font-medium text-white bg-black border border-gray-300 rounded-lg hover:bg-gray-800 dark:bg-black dark:text-white dark:border-gray-600 dark:hover:bg-gray-800">
        <VSCodeLogo className="h-4 w-4" />
        Add to VS Code
      </a>
    </div>;
};

export const CursorInstallButton = ({appName = "pipedream", serverUrl = "https://mcp.pipedream.net/v2"}) => {
  const config = {
    url: serverUrl
  };
  const configBase64 = btoa(JSON.stringify(config));
  return <div>
      <a href={`cursor://anysphere.cursor-deeplink/mcp/install?name=${appName}&config=${configBase64}`} className="inline-flex items-center gap-2 px-3 h-10 text-sm font-medium text-white bg-black border border-gray-300 rounded-lg hover:bg-gray-800 dark:bg-black dark:text-white dark:border-gray-600 dark:hover:bg-gray-800">
        <CursorLogo className="h-4 w-4" />
        Add to Cursor
      </a>
    </div>;
};

export const MCPLogo = ({className = "w-6 h-6"}) => {
  return <svg className={className} fill="currentColor" fillRule="evenodd" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
      <title>ModelContextProtocol</title>
      <path d="M15.688 2.343a2.588 2.588 0 00-3.61 0l-9.626 9.44a.863.863 0 01-1.203 0 .823.823 0 010-1.18l9.626-9.44a4.313 4.313 0 016.016 0 4.116 4.116 0 011.204 3.54 4.3 4.3 0 013.609 1.18l.05.05a4.115 4.115 0 010 5.9l-8.706 8.537a.274.274 0 000 .393l1.788 1.754a.823.823 0 010 1.18.863.863 0 01-1.203 0l-1.788-1.753a1.92 1.92 0 010-2.754l8.706-8.538a2.47 2.47 0 000-3.54l-.05-.049a2.588 2.588 0 00-3.607-.003l-7.172 7.034-.002.002-.098.097a.863.863 0 01-1.204 0 .823.823 0 010-1.18l7.273-7.133a2.47 2.47 0 00-.003-3.537z" />
      <path d="M14.485 4.703a.823.823 0 000-1.18.863.863 0 00-1.204 0l-7.119 6.982a4.115 4.115 0 000 5.9 4.314 4.314 0 006.016 0l7.12-6.982a.823.823 0 000-1.18.863.863 0 00-1.204 0l-7.119 6.982a2.588 2.588 0 01-3.61 0 2.47 2.47 0 010-3.54l7.12-6.982z" />
    </svg>;
};

export const VSCodeLogo = ({className = "w-6 h-6"}) => {
  return <svg className={className} viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
      <mask id="vscode-mask0" maskType="alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="100" height="100">
        <path fillRule="evenodd" clipRule="evenodd" d="M70.9119 99.3171C72.4869 99.9307 74.2828 99.8914 75.8725 99.1264L96.4608 89.2197C98.6242 88.1787 100 85.9892 100 83.5872V16.4133C100 14.0113 98.6243 11.8218 96.4609 10.7808L75.8725 0.873756C73.7862 -0.130129 71.3446 0.11576 69.5135 1.44695C69.252 1.63711 69.0028 1.84943 68.769 2.08341L29.3551 38.0415L12.1872 25.0096C10.589 23.7965 8.35363 23.8959 6.86933 25.2461L1.36303 30.2549C-0.452552 31.9064 -0.454633 34.7627 1.35853 36.417L16.2471 50.0001L1.35853 63.5832C-0.454633 65.2374 -0.452552 68.0938 1.36303 69.7453L6.86933 74.7541C8.35363 76.1043 10.589 76.2037 12.1872 74.9905L29.3551 61.9587L68.769 97.9167C69.3925 98.5406 70.1246 99.0104 70.9119 99.3171ZM75.0152 27.2989L45.1091 50.0001L75.0152 72.7012V27.2989Z" fill="white" />
      </mask>
      <g mask="url(#vscode-mask0)">
        <path d="M96.4614 10.7962L75.8569 0.875542C73.4719 -0.272773 70.6217 0.211611 68.75 2.08333L1.29858 63.5832C-0.515693 65.2373 -0.513607 68.0937 1.30308 69.7452L6.81272 74.754C8.29793 76.1042 10.5347 76.2036 12.1338 74.9905L93.3609 13.3699C96.086 11.3026 100 13.2462 100 16.6667V16.4275C100 14.0265 98.6246 11.8378 96.4614 10.7962Z" fill="#0065A9" />
        <g filter="url(#vscode-filter0_d)">
          <path d="M96.4614 89.2038L75.8569 99.1245C73.4719 100.273 70.6217 99.7884 68.75 97.9167L1.29858 36.4169C-0.515693 34.7627 -0.513607 31.9063 1.30308 30.2548L6.81272 25.246C8.29793 23.8958 10.5347 23.7964 12.1338 25.0095L93.3609 86.6301C96.086 88.6974 100 86.7538 100 83.3334V83.5726C100 85.9735 98.6246 88.1622 96.4614 89.2038Z" fill="#007ACC" />
        </g>
        <g filter="url(#vscode-filter1_d)">
          <path d="M75.8578 99.1263C73.4721 100.274 70.6219 99.7885 68.75 97.9166C71.0564 100.223 75 98.5895 75 95.3278V4.67213C75 1.41039 71.0564 -0.223106 68.75 2.08329C70.6219 0.211402 73.4721 -0.273666 75.8578 0.873633L96.4587 10.7807C98.6234 11.8217 100 14.0112 100 16.4132V83.5871C100 85.9891 98.6234 88.1786 96.4586 89.2196L75.8578 99.1263Z" fill="#1F9CF0" />
        </g>
        <g style={{
    mixBlendMode: "overlay"
  }} opacity="0.25">
          <path fillRule="evenodd" clipRule="evenodd" d="M70.8511 99.3171C72.4261 99.9306 74.2221 99.8913 75.8117 99.1264L96.4 89.2197C98.5634 88.1787 99.9392 85.9892 99.9392 83.5871V16.4133C99.9392 14.0112 98.5635 11.8217 96.4001 10.7807L75.8117 0.873695C73.7255 -0.13019 71.2838 0.115699 69.4527 1.44688C69.1912 1.63705 68.942 1.84937 68.7082 2.08335L29.2943 38.0414L12.1264 25.0096C10.5283 23.7964 8.29285 23.8959 6.80855 25.246L1.30225 30.2548C-0.513334 31.9064 -0.515415 34.7627 1.29775 36.4169L16.1863 50L1.29775 63.5832C-0.515415 65.2374 -0.513334 68.0937 1.30225 69.7452L6.80855 74.754C8.29285 76.1042 10.5283 76.2036 12.1264 74.9905L29.2943 61.9586L68.7082 97.9167C69.3317 98.5405 70.0638 99.0104 70.8511 99.3171ZM74.9544 27.2989L45.0483 50L74.9544 72.7012V27.2989Z" fill="url(#vscode-paint0_linear)" />
        </g>
      </g>
      <defs>
        <filter id="vscode-filter0_d" x="-8.39411" y="15.8291" width="116.727" height="92.2456" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
          <feFlood floodOpacity="0" result="BackgroundImageFix" />
          <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" />
          <feOffset />
          <feGaussianBlur stdDeviation="4.16667" />
          <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" />
          <feBlend mode="overlay" in2="BackgroundImageFix" result="effect1_dropShadow" />
          <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape" />
        </filter>
        <filter id="vscode-filter1_d" x="60.4167" y="-8.07558" width="47.9167" height="116.151" filterUnits="userSpaceOnUse" colorInterpolationFilters="sRGB">
          <feFlood floodOpacity="0" result="BackgroundImageFix" />
          <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" />
          <feOffset />
          <feGaussianBlur stdDeviation="4.16667" />
          <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" />
          <feBlend mode="overlay" in2="BackgroundImageFix" result="effect1_dropShadow" />
          <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape" />
        </filter>
        <linearGradient id="vscode-paint0_linear" x1="49.9392" y1="0.257812" x2="49.9392" y2="99.7423" gradientUnits="userSpaceOnUse">
          <stop stopColor="white" />
          <stop offset="1" stopColor="white" stopOpacity="0" />
        </linearGradient>
      </defs>
    </svg>;
};

export const CursorLogo = ({className = "w-6 h-6"}) => {
  return <img src="https://cursor.com/assets/images/logo.svg" alt="Cursor" className={className} />;
};

export const ClaudeLogo = ({className = "w-6 h-6"}) => {
  return <svg className={className} fill="currentColor" viewBox="0 0 256 176" xmlns="http://www.w3.org/2000/svg">
      <path d="m147.487 0l70.081 175.78H256L185.919 0zM66.183 106.221l23.98-61.774l23.98 61.774zM70.07 0L0 175.78h39.18l14.33-36.914h73.308l14.328 36.914h39.179L110.255 0z" />
    </svg>;
};

export const ChatGPTLogo = ({className = "w-6 h-6"}) => {
  return <svg className={className} fill="currentColor" viewBox="0 0 256 260" xmlns="http://www.w3.org/2000/svg">
      <path d="M239.184 106.203a64.716 64.716 0 0 0-5.576-53.103C219.452 28.459 191 15.784 163.213 21.74A65.586 65.586 0 0 0 52.096 45.22a64.716 64.716 0 0 0-43.23 31.36c-14.31 24.602-11.061 55.634 8.033 76.74a64.665 64.665 0 0 0 5.525 53.102c14.174 24.65 42.644 37.324 70.446 31.36a64.72 64.72 0 0 0 48.754 21.744c28.481.025 53.714-18.361 62.414-45.481a64.767 64.767 0 0 0 43.229-31.36c14.137-24.558 10.875-55.423-8.083-76.483m-97.56 136.338a48.397 48.397 0 0 1-31.105-11.255l1.535-.87l51.67-29.825a8.595 8.595 0 0 0 4.247-7.367v-72.85l21.845 12.636c.218.111.37.32.409.563v60.367c-.056 26.818-21.783 48.545-48.601 48.601M37.158 197.93a48.345 48.345 0 0 1-5.781-32.589l1.534.921l51.722 29.826a8.339 8.339 0 0 0 8.441 0l63.181-36.425v25.221a.87.87 0 0 1-.358.665l-52.335 30.184c-23.257 13.398-52.97 5.431-66.404-17.803M23.549 85.38a48.499 48.499 0 0 1 25.58-21.333v61.39a8.288 8.288 0 0 0 4.195 7.316l62.874 36.272l-21.845 12.636a.819.819 0 0 1-.767 0L41.353 151.53c-23.211-13.454-31.171-43.144-17.804-66.405zm179.466 41.695l-63.08-36.63L161.73 77.86a.819.819 0 0 1 .768 0l52.233 30.184a48.6 48.6 0 0 1-7.316 87.635v-61.391a8.544 8.544 0 0 0-4.4-7.213m21.742-32.69l-1.535-.922l-51.619-30.081a8.39 8.39 0 0 0-8.492 0L99.98 99.808V74.587a.716.716 0 0 1 .307-.665l52.233-30.133a48.652 48.652 0 0 1 72.236 50.391zM88.061 139.097l-21.845-12.585a.87.87 0 0 1-.41-.614V65.685a48.652 48.652 0 0 1 79.757-37.346l-1.535.87l-51.67 29.825a8.595 8.595 0 0 0-4.246 7.367zm11.868-25.58L128.067 97.3l28.188 16.218v32.434l-28.086 16.218l-28.188-16.218z" />
    </svg>;
};

Pipedream MCP lets you connect ChatGPT, Claude, Cursor, or any other chatbot to all the tools you already use. Explore the available apps and tools at [mcp.pipedream.com](https://mcp.pipedream.com).

<Note>
  If you're a developer looking to use Pipedream MCP to make tool calls on behalf of your users in an app you're building, check out the [developer docs](/connect/mcp/developers).
</Note>

## Getting started

<Steps>
  <Step title="Copy the MCP server URL">
    ```
    https://mcp.pipedream.net/v2
    ```
  </Step>

  <Step title="Select your MCP client">
    <Columns cols={3}>
      <Card title="ChatGPT" icon={<ChatGPTLogo />} href="#chatgpt">
        Connect ChatGPT to Pipedream MCP
      </Card>

      <Card title="Claude" icon={<ClaudeLogo />} href="#claude">
        Connect Claude to Pipedream MCP
      </Card>

      <Card title="Cursor" icon={<CursorLogo />} href="#cursor">
        Connect Cursor to Pipedream MCP
      </Card>
    </Columns>

    <Columns cols={3}>
      <Card title="VS Code" icon={<VSCodeLogo />} href="#vs-code">
        Connect VS Code to Pipedream MCP
      </Card>

      <Card title="Other" icon={<MCPLogo />} href="#other">
        Connect any MCP-compatible client
      </Card>
    </Columns>
  </Step>

  <Step title="Connect to Pipedream, select the apps to enable">
    * When prompted, sign in or sign up for a free account
    * Select the apps you want to enable for Pipedream MCP
    * Authorize access for the MCP client

    <Note>
      Pipedream MCP accounts are currently separate from your [pipedream.com](https://pipedream.com) account.
    </Note>
  </Step>

  <Step title="Start chatting">
    Once connected, ask the chatbot or agent to do whatever you want with the apps you enabled. For example:

    * "Help me draft a product update based on my team's recently completed Linear tickets" ([Linear](https://mcp.pipedream.com/app/linear))
    * “Help me prep for external meetings tomorrow by telling me about who I'm meeting with" ([Google Calendar](https://mcp.pipedream.com/app/google_calendar))
    * “Explore my PostgreSQL database and tell me about the most recent 10 customers” ([PostgreSQL](https://mcp.pipedream.com/app/postgres))
    * “Get yesterday's revenue from Stripe and send me a Slack message with the summary” ([Stripe](https://mcp.pipedream.com/app/stripe), [Slack](https://mcp.pipedream.com/app/slack))
  </Step>
</Steps>

## MCP Clients

Pipedream MCP works out of the box for any chat app or AI agent that supports MCP.

<Note>
  **MCP tool name character limits**: The [official MCP specification](https://modelcontextprotocol.io/specification/draft/server/tools#tool-names) recommends a 128-character limit for tool names, but each client can define its own limit.

  Tool names include the MCP server name you choose when adding it - for example, naming the server *"My Pipedream Automation MCP Server"* adds 34 characters to every tool name, while naming it *"PD"* only adds 2. If you encounter tool name length issues, try using a shorter server name.
</Note>

### ChatGPT

<Note>
  Custom connectors in [ChatGPT](https://chatgpt.com) are available for certain plans. Refer to [their docs](https://platform.openai.com/docs/guides/developer-mode) for the latest information.
</Note>

<Steps>
  <Step title="Open Settings">
    Sign in to your ChatGPT account and open the [Connectors settings](https://chatgpt.com/#settings/Connectors).
  </Step>

  <Step title="Enable Developer Mode">
    Select **Advanced Settings** at the bottom, then enable **Developer Mode**.
  </Step>

  <Step title="Create New Connector">
    Go back to the connectors page and click the **Create** button.
  </Step>

  <Step title="Add Pipedream MCP URL">
    Add the following URL:

    ```
    https://mcp.pipedream.net/v2
    ```
  </Step>

  <Step title="Authorize Access">
    Click **Create** and authorize access when prompted.
  </Step>

  <Step title="Enable Pipedream in Chat">
    In the main chat window, click the **+** button, select **More**, then **Developer Mode**, and select and enable **Pipedream**.
  </Step>

  <Step title="Start Using">
    Start chatting with access to Pipedream's 10,000+ tools!
  </Step>
</Steps>

### Claude

<Note>
  Custom connectors in [Claude](https://claude.ai) are available for certain plans. Refer to [their docs](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp) for the latest information.
</Note>

<Steps>
  <Step title="Open Connector Settings">
    Sign in to your Claude account open the [Connector settings](https://claude.ai/settings/connectors).
  </Step>

  <Step title="Add Custom Connector">
    Select **Add Custom Connector**.
  </Step>

  <Step title="Add Pipedream MCP URL">
    Add the following URL:

    ```
    https://mcp.pipedream.net/v2
    ```
  </Step>

  <Step title="Authorize Access">
    Click **Add** and authorize access when prompted.
  </Step>

  <Step title="Enable Pipedream in Chat">
    In the main chat window, click the settings button and make sure **Pipedream** is enabled.
  </Step>

  <Step title="Start Using">
    Start chatting with access to Pipedream's 10,000+ tools!
  </Step>
</Steps>

### Cursor

<Steps>
  <Step title="Add to Cursor">
    <CursorInstallButton />

    <Info>
      1-click installation requires Cursor v1 or greater. See [below](#other) for manual configuration.
    </Info>
  </Step>

  <Step title="Authorize access">
    Authorize access when prompted.
  </Step>
</Steps>

### VS Code

<Steps>
  <Step title="Add to VS Code">
    <VSCodeInstallButton />

    <Info>
      1-click installation requires VS Code with MCP extension. See [below](#other) for manual configuration.
    </Info>
  </Step>

  <Step title="Authorize access">
    Authorize access when prompted.
  </Step>
</Steps>

### Any other MCP-compatible client

Add the following JSON to your client's configuration:

```json theme={null}
{
  "mcpServers": {
    "pipedream": {
      "url": "https://mcp.pipedream.net/v2"
    }
  }
}
```
