Korso · Authentication Profile
Korso Authentication
Authentication
Korso secures its APIs with http across 3 declared security schemes, as derived from its OpenAPI definitions.
CompanyArtificial IntelligenceAgentsModel Context ProtocolDeveloper ToolsOpen SourceAgent CoordinationY Combinator
Methods: http
Schemes: 3
OAuth flows:
API key in:
Security Schemes
SHEPHERD_TOKEN http
scheme: bearer
TEAM_TOKEN http
scheme: bearer
x-internal-token + x-account-id http
scheme: custom-header
Source
Authentication Profile
generated: '2026-07-19'
method: searched
source: https://korsoai.com/docs/guides/authentication
docs: https://korsoai.com/docs/guides/authentication
summary:
types:
- http
http_schemes:
- bearer
oauth2_flows: []
api_key_in: []
note: >-
No OpenAPI is published, so this profile is captured from the provider's authentication guide rather
than derived from securitySchemes. Shepherd has no OAuth scope surface - both credential kinds are
opaque bearer tokens - so no scopes/ artifact is emitted.
schemes:
- name: SHEPHERD_TOKEN
type: http
scheme: bearer
deployment: korso-hosted
scope: account
token_prefix: shp_
issued_via: >-
Sign in to the Korso dashboard with Google or GitHub, open the Connect Agent panel, optionally name
the token, then click Generate token.
shown_once: true
revocable: true
management: >-
Tokens can be named, listed with created and last-used timestamps, and individually revoked from the
Connect Agent panel at any time.
description: >-
Account-scoped token that works across every workspace the account belongs to - there is no per-repo
or per-workspace re-tokening. Wins if TEAM_TOKEN is also set.
sources:
- https://korsoai.com/docs/guides/authentication
- name: TEAM_TOKEN
type: http
scheme: bearer
deployment: self-hosted
scope: workspace
issued_via: Configured on the hub by whoever operates it and distributed to the team.
shown_once: false
revocable: rotate on the hub
description: >-
A single shared, workspace-wide secret. Not scoped per agent or per person - anyone holding it has
full authority over that hub's one workspace. Documented as a shared password, not an identity.
warning: >-
Never commit it; distribute through a secret manager and rotate it if a teammate with access leaves.
sources:
- https://korsoai.com/docs/guides/authentication
- name: x-internal-token + x-account-id
type: http
scheme: custom-header
deployment: korso-hosted (internal)
description: >-
The hosted deployment mode authenticates the front-end/BFF to the hub with an internal token plus a
trusted x-account-id header, then mints per-agent tokens. Documented in the Shepherd AGENTS.md and
implemented in packages/hub/src/tenant.ts. Not a public developer-facing credential.
sources:
- https://github.com/Korso-AI/Shepherd/blob/main/AGENTS.md
transport:
mechanism: environment variables on the stdio MCP server process
required: at least one of SHEPHERD_TOKEN or TEAM_TOKEN
failure_mode: >-
The @korso/shepherd MCP server fails immediately at startup with a clear error when neither variable
is set.
companion_variables:
- name: HUB_URL
description: Base URL of the Shepherd hub.
- name: WORKSPACE
description: >-
Self-host only; must exactly match the hub's configured workspace. Ignored on the hosted path.
identity_model:
account: >-
On a hosted hub, whatever the user signed in with (Google or GitHub). On self-host, effectively
whoever holds the TEAM_TOKEN.
workspace: A coordination boundary; every coordination table carries a NOT NULL workspace_id.
repo: >-
Opted into a workspace by a committed .shepherd marker file naming the workspace slug - never a
token.
membership: >-
A repo can only be linked to a workspace the account is a member of; invalid slugs are rejected.
token_storage: Hashed shp_ API tokens; the raw value is shown once and cannot be retrieved again.
identity_providers:
- Google
- GitHub