AlphaAI · OAuth Scopes

AlphaAI OAuth Scopes

OAuth 2.0 probed

AlphaAI publishes 2 OAuth 2.0 scopes via the authorizationCode flow. Scopes are the fine-grained permissions an application requests at authorization time to act against the AlphaAI API on a user’s behalf.

Tokens are issued from https://mcp.alphai.io/oauth/token.

This index is generated from the provider’s OpenAPI security definitions (and, where available, its documented scope reference) and refreshes on every APIs.io network build. Browse every provider’s scopes at scopes.apis.io.

Financial NewsStock MarketSEC FilingsInsider TradingFintechMarket DataSentimentAI AgentsMCPLLMTrading
Scopes: 2 Flows: authorizationCode Method: probed

OAuth endpoints

Authorization URL
https://mcp.alphai.io/oauth/authorize
Token URL
https://mcp.alphai.io/oauth/token
Flows
authorizationCode

Scopes (2)

ScopeDescriptionFlows
tools.read Read access to the MCP tool surface. Advertised by both the authorization server and the protected-resource metadata. The provider publishes no per-scope reference page, so this description is inferred from the scope name and the read-only character of every tool except the alerts pair. authorizationCode
tools.bulk Advertised alongside tools.read on both metadata documents. Its exact semantics are not documented anywhere on the provider's public surface — the name suggests higher-volume or batched tool invocation, but that is not asserted here. Determining it would require authenticated introspection. authorizationCode

Source

OAuth Scopes

Raw ↑
generated: '2026-08-11'
method: probed
source: https://mcp.alphai.io/.well-known/oauth-authorization-server
docs: https://alphai.io/mcp
description: >-
  AlphaAI's OAuth surface belongs to the MCP server, not the REST API. The REST
  OpenAPI declares only a bearer API key and no oauth2 scheme, so the mechanical
  derive pass (derive-oauth-scopes.py) correctly found nothing. The scopes below
  were read from the live RFC 8414 authorization-server metadata and the RFC 9728
  protected-resource metadata on the MCP host — both anonymous, both 200.

applies_to: https://mcp.alphai.io/mcp
not_applicable_to: >-
  https://api.alphai.io — the REST API authenticates with a static
  `ak_live_` bearer key and has no scope model at all.

schemes:
  - name: MCP OAuth 2.1
    source: well-known/alphaai-oauth-authorization-server.json
    issuer: https://mcp.alphai.io
    flows:
      - flow: authorizationCode
        authorizationUrl: https://mcp.alphai.io/oauth/authorize
        tokenUrl: https://mcp.alphai.io/oauth/token
        pkce: S256
        refresh: true
    dynamic_client_registration:
      supported: true
      spec: RFC 7591
      registration_endpoint: https://mcp.alphai.io/oauth/register
      token_endpoint_auth_methods_supported: [none]
      note: >-
        Public clients with no pre-registration — the shape MCP clients need to
        connect from a browser without the user ever creating an OAuth app.
    revocation_endpoint: https://mcp.alphai.io/oauth/revoke
    introspection_endpoint: https://mcp.alphai.io/oauth/introspect

scopes:
  - scope: tools.read
    description: >-
      Read access to the MCP tool surface. Advertised by both the authorization
      server and the protected-resource metadata. The provider publishes no
      per-scope reference page, so this description is inferred from the scope
      name and the read-only character of every tool except the alerts pair.
    flows: [authorizationCode]
    sources: [well-known/alphaai-oauth-authorization-server.json, well-known/alphaai-oauth-protected-resource.json]
  - scope: tools.bulk
    description: >-
      Advertised alongside tools.read on both metadata documents. Its exact
      semantics are not documented anywhere on the provider's public surface —
      the name suggests higher-volume or batched tool invocation, but that is not
      asserted here. Determining it would require authenticated introspection.
    flows: [authorizationCode]
    sources: [well-known/alphaai-oauth-authorization-server.json, well-known/alphaai-oauth-protected-resource.json]

scope_count: 2

gaps:
  - >-
    No scopes reference page exists. The scopes are discoverable only by reading
    the .well-known metadata directly, which means a human integrator following
    the docs never learns they exist.
  - >-
    The alert-mutating tools (alphai_alerts_subscribe / _unsubscribe) are the
    only writes in the product, but no write-shaped scope is advertised. Either
    tools.read covers them — which would be a scope-naming problem — or the
    authorization decision is made on plan tier rather than scope. The docs say
    the alert tools are gated on a Basic/Pro plan, which points at the latter.

related:
  authentication: authentication/alphaai-authentication.yml
  mcp: mcp/alphaai-mcp.yml