Valid · Authentication Profile
Valid Authentication
Authentication
Valid declares 3 security scheme(s) across its OpenAPI definitions.
CompanyAdvertisingMarketingArtificial IntelligenceCreativeMedia BuyingInfluencersMCPAgentsPerformance Marketing
Methods:
Schemes: 3
OAuth flows:
API key in:
Security Schemes
oauth2_authorization_code oauth2
outer_api_key apiKey
· in: header ()
mcp_bearer http
scheme: bearer
Source
Authentication Profile
generated: '2026-08-12'
method: probed
source: >-
https://mcp.valid.co/.well-known/oauth-authorization-server and
https://mcp.valid.co/.well-known/oauth-protected-resource (both HTTP 200,
fetched 2026-08-12), plus observed WWW-Authenticate and error responses.
docs: null
docs_note: >-
Valid publishes no developer authentication page. This profile is derived
entirely from the machine-readable metadata the server itself serves and from
live unauthenticated responses.
api: Valid Chat With Your Ads MCP Server
schemes:
- name: oauth2_authorization_code
type: oauth2
flow: authorizationCode
authorization_url: https://mcp.valid.co/oauth/authorize
token_url: https://mcp.valid.co/oauth/token
registration_url: https://mcp.valid.co/oauth/register
refresh_supported: true
scopes:
openid: OpenID Connect subject identifier
email: Account email address
profile: Basic profile claims
pkce:
required: unknown
code_challenge_methods_supported: [S256, plain]
note: >-
The server advertises `plain` alongside `S256`. RFC 7636 §4.2 and the
OAuth 2.1 draft both require S256 where the client can support it; offering
`plain` at all is a downgrade an attacker can request. This is the single
weakest point in an otherwise strong auth posture.
dynamic_client_registration:
supported: true
endpoint: https://mcp.valid.co/oauth/register
spec: RFC 7591
note: GET returns 405 Method Not Allowed; registration is POST-only, as specified.
token_endpoint_auth_methods_supported:
- client_secret_basic
- client_secret_post
- none
bearer_methods_supported: [header]
- name: outer_api_key
type: apiKey
in: header
name_note: >-
The header name is not published. An unauthenticated request to any gated path
returns HTTP 407 {"error":"API key missing"}, which names the credential class
but not the header. HTTP 407 is Proxy Authentication Required and the response
carries no Proxy-Authenticate header, so this gate is non-conformant with
RFC 9110 §15.5.8.
applies_to: >-
Every path on mcp.valid.co and v1.valid-gke-data-api.com EXCEPT /health and the
three OAuth/OIDC metadata documents.
- name: mcp_bearer
type: http
scheme: bearer
applies_to: https://mcp.valid.co/api/mcp/
evidence: >-
HTTP 401 with `www-authenticate: Bearer` and body {"detail":"Not authenticated"}
on an anonymous JSON-RPC tools/list POST.
openid_connect:
discovery_url: https://mcp.valid.co/.well-known/openid-configuration
status: 200
conformant: false
note: >-
The document served at the OIDC discovery path is byte-identical to the RFC 8414
OAuth document. It omits every OIDC-required field — no `jwks_uri`, no
`userinfo_endpoint`, no `subject_types_supported`, no
`id_token_signing_alg_values_supported` — so despite advertising the `openid`
scope this is an OAuth 2.0 authorization server metadata document served at an
OIDC path, not an OpenID Provider configuration.
posture:
summary: >-
Strong for an unadvertised agent endpoint: OAuth 2.1-shaped authorization code
flow with refresh tokens, PKCE, RFC 7591 dynamic client registration, RFC 8414
authorization server metadata and RFC 9728 protected resource metadata — the
full MCP authorization discovery chain, correctly wired. Weakened by `plain`
PKCE remaining on offer, a non-conformant 407 outer gate, and the absence of any
published authentication documentation.