Why Doesn't 'App Discovery' Feature Trigger Connect Link in MCP Configuration?

This topic was automatically generated from Slack. You can find the original thread here.

I’m attempting to use the ‘app discovery’ feature via MCP, however Connect Link never triggers. It identifies the app it needs to use, but never attempts to authenticate. Here’s my set-up:

{
      "type": "mcp",
      "server_label": "pipedream",
      "server_url": "https://remote.mcp.pipedream.net",
      "headers": {
        "Authorization": "Bearer xxxxxxxxxx",
        "x-pd-project-id": "proj_xxxxxxx",
        "x-pd-external-user-id": "xxxxxxxxxx,
        "x-pd-environment": "development",
        "x-pd-app-discovery": "true",
        "x-pd-tool-mode": "full-config"
      },
      "allowed_tools": [
        "WHAT_ARE_YOU_TRYING_TO_DO",
        "SELECT_APPS"
      ],
      "require_approval": "always"
    }

If I hardcode specific tools into the ‘allowed_tools’ list then Connect Link will trigger, but what must I add to this snippet for ‘app discovery’ to function?

Hey , are you following this document for enabling app discovery?

If that’s the case, is it possible to share your whole setup code? I believe the information you shared is not enough to debug this issue

Hey , below is the full code from OpenAI’s Playground. It is met with an error during the app discovery process when attempting to access a
specifc app:

curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
  "model": "o4-mini",
  "input": [
    {
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "add dentist appointment to my google calendar on 30 july 2025 at 10am"
        }
      ]
    },
    {
      "id": "mcpl_687c3fe1dd78819bb34788c0a4b3b2ed0770679e141f9274",
      "type": "mcp_list_tools",
      "server_label": "pipedream_mcp",
      "tools": [
        {
          "annotations": null,
          "description": "What API or integration are you trying to use? What problem are you trying to solve?\n\nYou can tell me multiple parts at the same time and I will return a list of apps that can solve your problem.\n",
          "input_schema": {
            "type": "object",
            "properties": {
              "query": {
                "type": "string"
              }
            },
            "required": [
              "query"
            ],
            "additionalProperties": false,
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "name": "WHAT_ARE_YOU_TRYING_TO_DO"
        },
        {
          "annotations": null,
          "description": "Select the apps you want to use",
          "input_schema": {
            "type": "object",
            "properties": {
              "apps": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": [
              "apps"
            ],
            "additionalProperties": false,
            "$schema": "http://json-schema.org/draft-07/schema#"
          },
          "name": "SELECT_APPS"
        }
      ]
    },
    {
      "type": "reasoning",
      "id": "rs_687c3fe402c8819bb5478c4753fd2b860770679e141f9274",
      "summary": []
    },
    {
      "id": "mcp_687c3fe7dc14819b8e73ab2dcd207cf80770679e141f9274",
      "type": "mcp_call",
      "approval_request_id": null,
      "arguments": "{\"query\":\"Add a dentist appointment to my Google Calendar on 30 July 2025 at 10:00 AM\"}",
      "error": null,
      "name": "WHAT_ARE_YOU_TRYING_TO_DO",
      "output": "Based on your query \"Add a dentist appointment to my Google Calendar on 30 July 2025 at 10:00 AM\", I found these relevant apps: google_calendar. Please select which ones you\"d like to use.",
      "server_label": "pipedream_mcp"
    },
    {
      "type": "reasoning",
      "id": "rs_687c3ff09f60819b8aaee3bd39c02ea40770679e141f9274",
      "summary": []
    },
    {
      "id": "mcp_687c3ff175fc819bb5463161fce833c90770679e141f9274",
      "type": "mcp_call",
      "approval_request_id": null,
      "arguments": "{\"apps\":[\"google_calendar\"]}",
      "error": null,
      "name": "SELECT_APPS",
      "output": "An error occurred while calling the tool: Error: HTTP error! status: 401, body: {\"error\":\"Unauthorized\"}",
      "server_label": "pipedream_mcp"
    },
    {
      "type": "reasoning",
      "id": "rs_687c3ff252c8819bb27d92073b65dbf00770679e141f9274",
      "summary": []
    },
    {
      "id": "msg_687c3ff50bf0819bb217e220686019c00770679e141f9274",
      "role": "assistant",
      "content": [
        {
          "type": "output_text",
          "text": "It looks like I don't have permission to access your Google Calendar yet. Please connect or authenticate your Google Calendar account so I can add the event. Once that's set up, let me know and I'll schedule your dentist appointment for July 30, 2025 at 10:00 AM."
        }
      ]
    }
  ],
  "text": {
    "format": {
      "type": "text"
    }
  },
  "reasoning": {
    "effort": "medium",
    "summary": "auto"
  },
  "tools": [
    {
      "type": "mcp",
      "server_label": "pipedream_mcp",
      "server_url": "https://remote.mcp.pipedream.net",
      "headers": {
        "Authorization": "Bearer <PIPEDREAM_ACCESS_TOKEN>",
        "x-pd-project-id": "<PIPEDREAM_PROJECT_ID>",
        "x-pd-external-user-id": "<EXTERNAL_USER_ID>",
        "x-pd-environment": "development",
        "x-pd-app-discovery": "true",
        "x-pd-tool-mode": "full-config"
      },
      "allowed_tools": [
        "WHAT_ARE_YOU_TRYING_TO_DO",
        "SELECT_APPS"
      ],
      "require_approval": "never"
    }
  ],
  "store": true
}'

the error is Please connect or authenticate your Google Calendar account so I can add the event, which indicated that you will need to access mcp.pipedream.com, search for Google Calendar app, then connect your Google Calendar account to Pipedream

Sorry, I was under the impression that your MCP server, upon identifying the required app(s), would generate any authorisation (Connect) link and supply it to the LLM, as it does in sub-agent mode.

My misunderstanding. Thanks for your assistance.