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

# MCP Generic

## Access requirements

| Pre-Requisites | Status | Comment |
| - | - | - |
| MCP-compatible server | ✅ | Server must support OAuth 2.0 with dynamic discovery (RFC 8414, RFC 9728). |
| OAuth endpoints | ✅ | Server must expose `/.well-known/oauth-authorization-server` endpoint. |
| PKCE support | ✅ | Required for secure public client authentication. |

## Setup guide

*No setup guide yet.*

> [!TIP]
>
> Need help getting started? Get help in the [community](https://nango.dev/slack).

> [!NOTE]
>
> Contribute improvements to the setup guide by [editing this page](https://github.com/nangohq/nango/tree/master/docs-v2/integrations/all/mcp-generic.mdx)

> [!NOTE]
>
> GitHub's remote MCP doesn't follow the specification exactly, so won't work with this provider.

## Useful links

* [Model Context Protocol Specification](https://spec.modelcontextprotocol.io/)
* [MCP GitHub Repository](https://github.com/modelcontextprotocol)
* [RFC 8414: OAuth 2.0 Authorization Server Metadata](https://tools.ietf.org/html/rfc8414)
* [RFC 9728: OAuth 2.0 Protected Resource Metadata Discovery](https://tools.ietf.org/html/rfc9728)
* [MCP Server Examples](https://github.com/modelcontextprotocol/servers)

> [!NOTE]
>
> Contribute useful links by [editing this page](https://github.com/nangohq/nango/tree/master/docs-v2/integrations/all/mcp-generic.mdx)

## API gotchas

* **Dynamic Discovery**: MCP Generic automatically discovers OAuth endpoints from the MCP server's `/.well-known/oauth-authorization-server` endpoint.
* **No Pre-configuration**: No need to pre-configure OAuth client credentials. Nango identifies itself to the authorization server automatically, picking the first supported method in this order:
  1. **Client ID metadata documents (CIMD)**: used when the authorization server advertises `client_id_metadata_document_supported` in its metadata. The client ID is a URL pointing to a metadata document Nango hosts at `https://<nango-host>/oauth/client-metadata/<environment-uuid>/<integration-id>`. The integration's client name, URI, and logo fields populate this document and appear on consent screens.
  2. **Dynamic client registration (RFC 7591)**: used when the authorization server exposes a `registration_endpoint`.
  3. A static placeholder client ID as a last resort.
* **PKCE Required**: All MCP Generic flows use PKCE for security. Client secrets are not used.
* **Server URL Format**: Always provide the full MCP server URL (e.g., `https://api.example.com/mcp`, not `api.example.com`).
* **Automatic Scopes**: OAuth scopes are automatically discovered from MCP server metadata.
* **Self-hosting**: CIMD requires the Nango instance to be reachable at a public https URL (`NANGO_SERVER_URL`). Instances without one automatically fall back to dynamic client registration.

> [!NOTE]
>
> Contribute API gotchas by [editing this page](https://github.com/nangohq/nango/tree/master/docs-v2/integrations/all/mcp-generic.mdx)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.