Motion · Authentication Profile
Motion Authentication
Authentication
Motion declares 0 security scheme(s) across its OpenAPI definitions.
CompanyCreative AnalyticsAdvertisingMarketing AnalyticsPerformance MarketingAd ReportingCreative StrategySaaSMCPAgent Surface
Methods:
Schemes: 0
OAuth flows:
API key in:
Security Schemes
Source
Authentication Profile
generated: '2026-08-12'
method: searched
source: https://help.motionapp.com/en/articles/14315735-motion-mcp
probe_source: https://projects.motionapp.com/.well-known/oauth-authorization-server
docs: https://help.motionapp.com/en/articles/14315735-motion-mcp
name: Motion — authentication profile
note: >-
Motion publishes no OpenAPI, so this profile is not derived from a spec. It is read from Motion's
own RFC 8414 authorization-server metadata (fetched live, HTTP 200) plus the Motion MCP help-centre
article. Motion ships exactly one machine-callable surface — the Motion MCP server at
https://projects.motionapp.com/mcp — and it is OAuth 2.0 only. There is no API key, no personal
access token, and no basic-auth path published anywhere on Motion's public surface.
surfaces:
- surface: Motion MCP
url: https://projects.motionapp.com/mcp
scheme: oauth2
gated: true
observed_challenge:
http_status: 401
www_authenticate: Bearer resource_metadata="https://projects.motionapp.com/mcp/.well-known/oauth-protected-resource"
body: '{"jsonrpc":"2.0","error":{"code":-32001,"message":"Missing or invalid Authorization header"},"id":null}'
security_schemes:
- name: motion_oauth2
type: oauth2
bearer_methods_supported:
- header
issuer: https://projects.motionapp.com/api/auth
flows:
- flow: authorizationCode
authorization_url: https://projects.motionapp.com/api/auth/oauth2/authorize
token_url: https://projects.motionapp.com/api/auth/oauth2/token
refresh_url: https://projects.motionapp.com/api/auth/oauth2/token
pkce_required_methods:
- S256
- flow: clientCredentials
token_url: https://projects.motionapp.com/api/auth/oauth2/token
- flow: refreshToken
token_url: https://projects.motionapp.com/api/auth/oauth2/token
endpoints:
authorization: https://projects.motionapp.com/api/auth/oauth2/authorize
token: https://projects.motionapp.com/api/auth/oauth2/token
registration: https://projects.motionapp.com/api/auth/oauth2/register
introspection: https://projects.motionapp.com/api/auth/oauth2/introspect
revocation: https://projects.motionapp.com/api/auth/oauth2/revoke
userinfo: https://projects.motionapp.com/api/auth/oauth2/userinfo
end_session: https://projects.motionapp.com/api/auth/oauth2/end-session
jwks: https://projects.motionapp.com/api/auth/jwks
discovery:
- https://projects.motionapp.com/.well-known/oauth-authorization-server
- https://projects.motionapp.com/api/auth/.well-known/openid-configuration
protected_resource_metadata: https://projects.motionapp.com/mcp/.well-known/oauth-protected-resource
capabilities:
dynamic_client_registration: true
dynamic_client_registration_note: >-
RFC 7591 registration_endpoint is advertised and token_endpoint_auth_methods_supported includes
"none", which is what lets an MCP client register itself and run a public-client PKCE flow with
no pre-provisioned credentials. This is why Claude/ChatGPT/Cursor can connect with nothing but
the server URL.
pkce: true
pkce_methods:
- S256
response_types_supported:
- code
response_modes_supported:
- query
grant_types_supported:
- authorization_code
- client_credentials
- refresh_token
token_endpoint_auth_methods_supported:
- none
- client_secret_basic
- client_secret_post
introspection_endpoint_auth_methods_supported:
- client_secret_basic
- client_secret_post
revocation_endpoint_auth_methods_supported:
- client_secret_basic
- client_secret_post
id_token_signing_alg_values_supported:
- EdDSA
subject_types_supported:
- public
authorization_response_iss_parameter_supported: true
acr_values_supported:
- urn:mace:incommon:iap:bronze
prompt_values_supported:
- login
- consent
- create
- select_account
- none
claims_supported:
- sub
- iss
- aud
- exp
- iat
- sid
- scope
- azp
- email
- email_verified
- name
- picture
- family_name
- given_name
authorization_model:
per_user: true
note: >-
Authorization is the user's own Motion account authorization — the token carries exactly the
workspaces and organizations that user can already see in the app. There is no separate
machine/service identity documented for the MCP surface even though client_credentials is
advertised by the authorization server.
roles_permitted:
- Owner
- Admin
- Collaborator
roles_denied:
- Guest access
- Partner share access
credential_handling: >-
Provider states the AI client never receives or stores Motion credentials, and that access can be
revoked at any time by disconnecting the MCP from the client's settings.
not_published:
- API keys or personal access tokens
- HTTP basic authentication
- mutual TLS
- an OpenAPI securitySchemes block (Motion publishes no OpenAPI)