--- title: Auth Providers description: Registry of all auth providers available in the Arcade ecosystem --- # Auth Providers import { ToolCard } from "@/app/_components/tool-card"; Auth providers enable users to seamlessly and securely allow Arcade tools to access their data. Arcade has several auth providers available in the Arcade Cloud Platform so you don't have to configure your own. However, using Arcade's auth providers means that your users will see the Arcade brand (name and logo) on the auth screen and your authentications will share any rate limits from those providers with other Arcade customers. It can be useful to configure your own auth provider for the following reasons: - You want to use your own brand on the auth screen - You want to isolate your rate limits from other Arcade customers - You want to use a service that Arcade [does not have a built-in auth provider for](/references/auth-providers/oauth2) After adding an auth provider used by an Arcade tool, executing the tool will automatically use your auth provider. Even in the Arcade Cloud Platform, your auth provider will take precedence over the arcade-provided auth provider. Adding multiple providers of the same type, not including the arcade-provided ones, can cause Arcade's tool authorization to fail, see [Using multiple providers of the same type](#using-multiple-providers-of-the-same-type) for more information. ## Catalog of providers For more information on how to customize your auth provider, select an auth provider from the list below:
If the auth provider you need is not listed, try the [OAuth 2.0](/references/auth-providers/oauth2) provider, or [get in touch](mailto:contact@arcade.dev) with us! ## Using multiple providers of the same type You can create multiple auth providers of the same type, for example, you can have multiple Google auth providers, each with their own client ID and secret. This might be useful if you want separate Google clients to handle calendar and email scopes, for example. However, Arcade's tools are configured to select an auth provider by the type. This means that if you have multiple auth providers of the same type, Arcade will not know which one to use and authorizing the tool will fail. To work around this, you can fork Arcade's tools and modify them to specify your own auth provider by the unique ID that you give each of them. For example, if you have two Google auth providers, `acme-google-calendar` and `acme-google-email`, you can modify Arcade's Gmail.ListEmails tool like this: ```python @tool( requires_auth=Google( id="acme-google-email", # This is the unique ID you gave your auth provider scopes=["https://www.googleapis.com/auth/gmail.readonly"], ) ) async def list_emails( # ... ``` This is similar to the pattern used in the generic OAuth2 provider, but instead of using the `OAuth2` class, you use the `Google` class and specify the `id` of the auth provider you want to use. See the docs about [Authoring Tools](/guides/create-tools/tool-basics/build-mcp-server) for more information on how to create and serve a MCP Server.