PureStats documentation
Authenticated MCP access
Connect to PureStats MCP through scoped OAuth, discover authentication metadata, and keep site access separate from pending ChatGPT plugin publication and review.
The MCP endpoint is https://purestats.io/mcp, using Streamable HTTP and OAuth.
Check /llms.txt for this deployment's enabled status. An enabled endpoint
requires OAuth for every MCP request, including protocol initialization and
tool-schema discovery. Public documentation and OAuth metadata remain available
without a token. Every tool checks its scopes and current site access before
reading data or performing an action. Responses are not cached and do not
issue session cookies.
Discovery
Read https://purestats.io/.well-known/oauth-protected-resource/mcp and
https://purestats.io/.well-known/oauth-authorization-server. Requests without a
valid token, including the first initialize request, return HTTP 401 with
WWW-Authenticate: Bearer and a resource_metadata URL. Connect with OAuth before
initializing the protocol or listing tools. Authenticated tool schemas declare
their required OAuth scopes.
Use the published issuer and endpoints, not dashboard URLs or a guessed callback.
Tokens must be bound to resource=https://purestats.io/mcp; a management API
token does not authorize MCP access.
Client registration and consent
There is no open dynamic client registration. Clients must be explicitly
registered. The Claude Code native client uses ID
3e479817-9c7d-4e2b-b722-3263f8969001 and exactly
http://localhost:18437/callback or http://127.0.0.1:18437/callback.
ChatGPT can identify its preregistered application using the official
https://chatgpt.com/oauth/client.json metadata document. PureStats fetches and
validates only that exact HTTPS document, including its published stable callback
and public-client token method. Arbitrary metadata URLs and callbacks are rejected;
this is not open dynamic registration. A manually configured ChatGPT client can
still use the exact callback copied from its publisher portal. Package upload alone
is not a successful OAuth connection or platform approval.
For hosts that use a registration endpoint instead of the metadata-document
identity, discovery also advertises https://purestats.io/oauth/register.
This compatibility endpoint only returns the existing ChatGPT application for
the exact stable callback validated against ChatGPT's official metadata. It
accepts public authorization-code clients with PKCE, not arbitrary applications,
redirects or client-credentials grants. Repeated registration keeps the same
client ID and does not create an account, issue a token, change an existing grant
or confer access to any site. Browser consent is still required.
Use authorization code with PKCE S256. A person signs in through PureStats and
explicitly selects sites and scopes. Start with account:read, sites:read and
analytics:read. Account owners approve additional capabilities separately.
Access tokens last 15 minutes; rotating refresh tokens last 30 days. Never put
tokens, passwords or client secrets in a plugin package, tracker or conversation.
Tools and safety
Tools reuse the public canonical operation catalog. The MCP tool list is authenticated and limited to the granted scopes. Follow the actual schemas. Scope and current site membership are checked for every call. Revoked access stops working immediately; an administrator's agent has no global admin bypass.
Deletion, ownership transfer and security changes still need payload-bound human approval on PureStats. A chat message cannot replace that approval. Review recordings must use a dedicated account with synthetic data and must not expose credentials or other customers' sites. ChatGPT acceptance, its real recording and official directory listings remain pending; a server canary proves only the server-side protocol, not a ChatGPT installation.
Troubleshooting
- A disabled endpoint is not an authentication failure; check the deployment status first.
- HTTP 401 requires valid OAuth access for the MCP resource. Invalid or revoked bearer tokens cannot initialize the protocol or discover tools.
- An initial request without a bearer token receives a bare OAuth challenge, not
invalid_token. That error is reserved for a supplied token that cannot be accepted. If Connect fails immediately while the portal still showsNo Auth, check OAuth discovery and client registration before rotating credentials. A working connection must open browser consent and obtain a token first. - Reconnect a stale publisher connection after discovery changes. The server advertises both the known ChatGPT registration endpoint and client metadata support, with the initial read-only scopes in its challenge. A host that requires registration must complete that step before opening the account-consent page.
This MCP server exposes OAuth-only actions. Update the draft's auth_types to include OAUTHmeans the publisher draft still permits onlyNo Auth. Set the MCP connection's authentication through the package before scanning. The supported field ismcpServers.purestats.extensions.com.openai.authinmcp.json, withtype: oauth,client.mode: cimdand the initial read-only scopes. PureStats review package 0.1.3 includes this setting; upload it as a new version of the existing draft, select that version, then reconnect. The portal's connection panel displays saved settings and may not offer an editable authentication selector. A successful domain verification does not configure OAuth. Noauth_typesZIP field, token header or anonymous tool access is needed. See the OpenAI package reference.- An unknown client or callback requires operator registration, not wildcard matching.
- HTTP 403 can indicate an unapproved origin, missing scope or lost site membership.
- A missing tool can be intentional for the current read-only grant.
Use the REST quickstart for autonomous machine registration and domain verification. These are separate flows from plugin OAuth.