Skip to main content

Credential provider abstraction for the Model Context Standard.

Project description

mcs-auth

The authentication backbone for the Model Context Standard (MCS).

Stop wiring OAuth flows, API keys, and token refresh logic into every agent you build. mcs-auth defines a universal CredentialProvider protocol -- one interface, any credential source. Your agent code never changes, no matter how authentication works behind the scenes.

Installation

pip install mcs-auth

What's inside

Component What it does
CredentialProvider Protocol: get_token(scope) -> str. Any provider satisfies it.
AuthPort Protocol for auth transport adapters (OAuth, LinkAuth, Device Flow, ...).
AuthChallenge Exception raised when user interaction is needed (URL + code).
AuthMixin Mixin for drivers -- catches auth challenges at the tool execution boundary.
StaticProvider Simple provider: tokens from a dict or environment variables.

Quick start

from mcs.auth.static import StaticProvider

# From a dict
provider = StaticProvider(tokens={"gmail": "ya29.xxx", "openai": "sk-xxx"})
token = provider.get_token("gmail")

# From environment variables (MCS_TOKEN_GMAIL, MCS_TOKEN_OPENAI, ...)
provider = StaticProvider()
token = provider.get_token("gmail")

The big picture

Your agent calls provider.get_token("gmail"). Where that token comes from is none of the agent's business:

CredentialProvider.get_token("gmail")
  |
  +-- StaticProvider          (env vars, dicts)
  +-- Auth0Provider           (Token Vault exchange)  --> mcs-auth-auth0
  +-- OAuthProvider           (browser login)         --> mcs-auth-oauth
  +-- LinkAuthProvider        (device-flow broker)    --> mcs-auth-linkauth

Swap providers without touching agent code. Add new services without new OAuth integrations. That's the power of a protocol-based auth layer.

Links

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcs_auth-0.3.0.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcs_auth-0.3.0-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file mcs_auth-0.3.0.tar.gz.

File metadata

  • Download URL: mcs_auth-0.3.0.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for mcs_auth-0.3.0.tar.gz
Algorithm Hash digest
SHA256 80f0a83ff3a26c52cc6757946a64b31bf2c632342715c203d2282ab7529373db
MD5 6de432fabbcadc1d1a7309750693edab
BLAKE2b-256 e0ab70ad15ffa0cc847289df42eb79cd96d2467efea2fb0b85d11abb27df8e83

See more details on using hashes here.

File details

Details for the file mcs_auth-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: mcs_auth-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for mcs_auth-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9b5781b5cb01926309065b53b030316173be3235fb945380611bdc5da0ba2ad2
MD5 a8d62e430e971e3bbc50d740292031f7
BLAKE2b-256 b57bce46be928841ba079f3e061c009169478121a6eaf59c9de0f33249949fa2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page