Inicio - Documentación - POM AI - 09 MCP - Start here - `/pom-ai-mcp/oauth/register`: OAuth client registration

/pom-ai-mcp/oauth/register: OAuth client registration

Dynamic client registration. A client introduces itself and receives a client ID, with no manual setup on your side.

https://example.com/pom-ai-mcp/oauth/register

POST only. Anything else returns 405.

What the client sends

Field Required Notes
redirect_uris Yes At least one; the client's callback URLs
client_name No Defaults to "MCP client"; truncated to 191 characters
scope No Omitting it registers the client for all eight scopes

A registration with no usable redirect URI is refused with invalid_redirect_uris.

What it returns

201 with the client ID, the registered name and redirect URIs, and:

Field Value
grant_types authorization_code, refresh_token
response_types code
token_endpoint_auth_method none
scope The scopes the client may request

No client secret is issued. Clients are public, which is why PKCE is mandatory on the authorization flow.

Registration is not authorization

This is the step people misread. Registering creates an identity for the client; it grants nothing.

The client still has to send you through the authorization endpoint, where you log in as a WordPress user and approve a specific set of scopes. A registered client with no approved authorization can do nothing at all.

So a registration appearing in the log is not a security event by itself. The authorization that follows is.

Scopes at registration

If the client omits scope, it is registered with all eight available — meaning it may request any of them later, not that it holds them. Unknown scope strings are discarded rather than rejected.

What it actually receives is decided at authorization, on the consent screen. See OAuth scopes.

Redirect URIs

The URIs registered here are the only ones the authorization endpoint will redirect to. A later authorization request naming a different URI is refused with invalid_redirect_uri.

This is what stops an authorization code being delivered somewhere you did not approve. It is enforced against the stored registration, not against anything the client asserts at authorization time.

Rate limiting

Registration is limited to 5 requests per minute per IP, sharing that budget with the token endpoint.

A client retrying a failing registration in a loop will hit it and receive 429. Wait a minute rather than retrying faster — the limit is deliberate protection against registration flooding.

Requirements

  • OAuth must be enabled. With Enable OAuth off, this endpoint returns 404 with oauth_disabled.
  • Pretty permalinks must be configured. The path is a rewrite rule; without them it returns your site's 404 page.

Multilingual sites

The localized form /es/pom-ai-mcp/oauth/register is also accepted when POM Translate prefixes URLs, while the canonical unprefixed URL stays the advertised one.

Registrations and reset

Registrations older than 30 days can expire when they have no active authorization code or token. A client that reports invalid_client must register again and complete authorization. Active grants are kept until their normal expiry or revocation.

If registration storage is temporarily unavailable, the endpoint returns an error rather than a usable client ID. Wait before retrying.

Registered clients are stored per site. Reset OAuth in the MCP settings panel removes every client, code and token for the site at once.

After a reset, a previously connected client fails with invalid_client and must register again — which a compatible client does automatically on its next connection, though you will have to approve the authorization again.

In the log

Successful registrations are recorded with the client name and the resulting client ID.

An unexpected registration in the log means something reached your registration endpoint. That is not yet a compromise — nothing is granted without an authorization you approved — but it is worth understanding, particularly if the site is publicly reachable.

Next

The authorization endpoint, where the client sends you to approve.