---
title: "Pre-check a custom MCP server's OAuth/DCR support"
method: POST
path: "/v1/integrations/connections/custom-mcp/discover"
tags: ["integrations"]
---

# Pre-check a custom MCP server's OAuth/DCR support

`POST /v1/integrations/connections/custom-mcp/discover`

Read-only probe (no row created): runs OAuth discovery and reports whether
the server advertises RFC 7591 dynamic client registration, so the connect UI
can hide the manual client_id fields. ``server_url`` is SSRF-validated in the
service layer.

## Request body

- CustomMcpDiscoverRequest — Body for ``POST /v1/integrations/connections/custom-mcp/discover``. A read-only pre-check (no DB row) so the connect UI can detect whether a server supports OAuth Dynamic Client Registration before asking for a client_id. ``transport`` is accepted for symmetry with the connect body but is advisory — discovery probes well-known HTTP endpoints transport-agnostically.
  - `server_url` string, required
  - `transport` string, nullable

## Response `200`

Successful Response

- CustomMcpDiscoverResponse — Returned by ``POST /v1/integrations/connections/custom-mcp/discover``. ``supports_dcr`` is the signal the UI needs: ``True`` ⇒ hide the manual client_id fields (the server advertises an RFC 7591 registration endpoint); ``False`` ⇒ no discoverable metadata, so the user must supply a client_id.
  - `supports_dcr` boolean, required
  - `authorize_url` string, nullable
  - `token_url` string, nullable
  - `scopes` string[]

## Other responses

- `400` — Bad request
- `401` — Authentication required
- `422` — Validation Error

---

[API](https://skmtc.net/oneloop-hq/apis/feather-api.md) · [All operations](https://skmtc.net/oneloop-hq/apis/feather-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oneloop-hq/feather-api/versions/888bdd5c076e/schema)
