# Custom MCP connector fails with 'did not return a client\_secret' for RFC 7591-compliant public-client registrations

**URL:** <https://community.perplexity.ai/t/custom-mcp-connector-fails-with-did-not-return-a-client-secret-for-rfc-7591-compliant-public-client-registrations/5172>\
**Category:** Bug Reports\
**Tags:** sonar-api\
**Created:** [May 18, 2026, 9:25pm UTC](https://community.perplexity.ai/t/custom-mcp-connector-fails-with-did-not-return-a-client-secret-for-rfc-7591-compliant-public-client-registrations/5172 "2026-05-18T21:25:58Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kevin\_Farrell](https://sea1.discourse-cdn.com/flex001/user_avatar/community.perplexity.ai/kevin_farrell/32/3114_2.png) [@Kevin\_Farrell](https://community.perplexity.ai/u/Kevin_Farrell)\
**Post date:** [May 18, 2026, 9:25pm UTC](https://community.perplexity.ai/t/custom-mcp-connector-fails-with-did-not-return-a-client-secret-for-rfc-7591-compliant-public-client-registrations/5172/1 "2026-05-18T21:25:58Z")

</div>

**Bug** : Adding a custom MCP connector that registers as a public OAuth client (per RFC 7591 / OAuth 2.1) fails with the error `[API_CLIENTS_ERROR] Dynamic client registration did not return a client_secret`.

**Repro** :

1. Perplexity Pro account
2. Settings → Connectors → Add custom MCP connector
3. Server URL: `https://app.onepagecrm.com/mcp` (any OAuth 2.1 + DCR compliant server)
4. Perplexity sends DCR registration with `token_endpoint_auth_method: "none"` (requesting public-client status)
5. Server creates the OauthClient successfully and returns an RFC 7591 §3.2.1 compliant response — no `client_secret` field, because public clients are not issued secrets
6. Perplexity’s consumer then errors with the message above

**Expected** : Either

- (a) Perplexity registers as confidential (`token_endpoint_auth_method: "client_secret_basic"`) so it actually gets a secret back, OR
- (b) Perplexity handles the missing `client_secret` field correctly for public clients (PKCE-only)

**Standards reference** :

- RFC 7591 §3.2.1 — `client_secret` is OPTIONAL in the registration response, not required for public clients
- OAuth 2.1 §3.2.1 / draft-ietf-oauth-v2-1 — public clients don’t authenticate at the token endpoint and don’t have a secret

**Impact** : Blocks all MCP servers that correctly implement RFC 7591 (Anthropic-style DCR servers) from being used with Perplexity custom connectors. The OnePageCRM MCP server works with Claude.ai, Claude Code, ChatGPT, and Codex without issue.

**Server-side observation** : Perplexity’s registration request specifies `token_endpoint_auth_method: "none"` — so Perplexity is registering itself as a public client, then immediately requiring confidential-client semantics. Internally contradictory.

---

<div class="post-metadata">

**Author:** ![rsz](https://sea1.discourse-cdn.com/flex001/user_avatar/community.perplexity.ai/rsz/32/3145_2.png) [@rsz](https://community.perplexity.ai/u/rsz)\
**Post date:** [May 19, 2026, 9:26am UTC](https://community.perplexity.ai/t/custom-mcp-connector-fails-with-did-not-return-a-client-secret-for-rfc-7591-compliant-public-client-registrations/5172/2 "2026-05-19T09:26:42Z")

</div>

+1, ran into the same issue yesterday. Notably, this wasn’t even Perplexity’s behavior like a week ago.

---

<div class="post-metadata">

**Author:** ![rsz](https://sea1.discourse-cdn.com/flex001/user_avatar/community.perplexity.ai/rsz/32/3145_2.png) [@rsz](https://community.perplexity.ai/u/rsz)\
**Post date:** [May 21, 2026, 11:02am UTC](https://community.perplexity.ai/t/custom-mcp-connector-fails-with-did-not-return-a-client-secret-for-rfc-7591-compliant-public-client-registrations/5172/3 "2026-05-21T11:02:40Z")

</div>

Currently, there is not even a workaround for this issue, as statically creating client/secret pair requires, at least in Supabase, to provide a valid callback URL, which Perplexity doesn’t specify anywhere. The only docs page is woefully outdated as it doesn’t even mention custom connectors for MCP at all.  
[https://www.perplexity.ai/help-center/en/articles/11502712-local-and-remote-mcps-for-perplexity](https://www.perplexity.ai/help-center/en/articles/11502712-local-and-remote-mcps-for-perplexity)

---

<div class="post-metadata">

**Author:** ![rsz](https://sea1.discourse-cdn.com/flex001/user_avatar/community.perplexity.ai/rsz/32/3145_2.png) [@rsz](https://community.perplexity.ai/u/rsz)\
**Post date:** [May 31, 2026, 4:23pm UTC](https://community.perplexity.ai/t/custom-mcp-connector-fails-with-did-not-return-a-client-secret-for-rfc-7591-compliant-public-client-registrations/5172/4 "2026-05-31T16:23:47Z")

</div>

@Kevin_Farrell can you retry and see if it works for you? somehow it started working for me again.

---

<div class="post-metadata">

**Author:** ![X\_B](https://sea1.discourse-cdn.com/flex001/user_avatar/community.perplexity.ai/x_b/32/3207_2.png) [@X\_B](https://community.perplexity.ai/u/X_B)\
**Post date:** [June 7, 2026, 1:20pm UTC](https://community.perplexity.ai/t/custom-mcp-connector-fails-with-did-not-return-a-client-secret-for-rfc-7591-compliant-public-client-registrations/5172/5 "2026-06-07T13:20:01Z")

</div>

I have the exact same issue with Gmail.

---

<div class="post-metadata">

**Author:** ![Thomas\_Cicatelli](https://sea1.discourse-cdn.com/flex001/user_avatar/community.perplexity.ai/thomas_cicatelli/32/2887_2.png) [@Thomas\_Cicatelli](https://community.perplexity.ai/u/Thomas_Cicatelli)\
**Post date:** [June 12, 2026, 4:33pm UTC](https://community.perplexity.ai/t/custom-mcp-connector-fails-with-did-not-return-a-client-secret-for-rfc-7591-compliant-public-client-registrations/5172/6 "2026-06-12T16:33:09Z")

</div>

I’m seeing what appears to be the same issue with a custom remote MCP server.

My server supports Streamable HTTP at:

```auto
https://tmc-brain-mcp-production.up.railway.app/mcp

```

Controls that work against the same MCP server:

```auto
Claude.ai: works
ChatGPT: works
Grok/xAI: works
MCP Inspector with Authorization: Bearer <server key>: works

```

Perplexity OAuth behavior:

```auto
Perplexity calls /oauth/register
Server returns HTTP 201 registration success
client_id = perplexity
token_endpoint_auth_method = none
no client_secret, because this is a public client

```

Then Perplexity stops. It never calls:

```auto
/oauth/authorize
/oauth/token

```

I also tried:

```auto
- returning client_secret_expires_at: 0
- omitting client_secret_expires_at
- configuring a static client_id/client_secret in Perplexity
- API Key mode

```

The public-client DCR path still stops after registration. API Key mode did not appear to hit my Railway MCP server at all, while MCP Inspector succeeds with the same server key.

This looks consistent with the issue described here: Perplexity appears to register with `token_endpoint_auth_method=none`, but then behaves as if `client_secret` is required.

Can Perplexity confirm the expected behavior for custom remote MCP connectors?

Specifically:

1. Are RFC 7591 public-client registrations with `token_endpoint_auth_method=none` supported?

2. If not, should the connector UI require a static confidential client instead of attempting public DCR?

3. If a static `client_id` and `client_secret` are entered manually, should Perplexity skip DCR and proceed directly to `/oauth/authorize`?

4. Is there any connector-side log/debug output available to see why the flow stops after DCR?

Happy to provide sanitized registration logs and response payloads if helpful.
