> ## Documentation Index
> Fetch the complete documentation index at: https://metorial.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Providers

> Providers are catalog or custom integrations you connect to Metorial. Understanding integrations, Magic MCP servers, configs, auth configs, and provider deployments lets you control exactly how each provider is configured and authenticated.

<Note>
  **What you'll learn:**

  * What providers, integrations, Magic MCP servers, provider deployments, configs, and auth configs are
  * How these entities relate to each other
  * How to mix and match them when creating sessions

  **References:**

  * [Sessions Guide](/concepts-sessions)
  * [OAuth Integrations](/integrations-oauth)
  * [API Key Integrations](/integrations-api-key)
</Note>

## Providers

A **provider** is an integration available in the Metorial catalog—for example Slack, GitHub, Exa, or Tavily. Each provider has one or more **versions**, and each version defines:

* The tools the provider exposes (with input/output schemas)
* The authentication methods it supports
* The configuration fields it accepts

You browse and discover providers through the Metorial dashboard catalog.

<img src="https://mintcdn.com/metorial/Avvcg5xA3rtWIxf9/images/dashboard-audit/dashboard-providers-catalog.png?fit=max&auto=format&n=Avvcg5xA3rtWIxf9&q=85&s=976c33f30d736ac112179ce6ae516529" alt="Provider catalog" width="1800" height="986" data-path="images/dashboard-audit/dashboard-providers-catalog.png" />

## Integrations And Magic MCP Servers

From a provider page, **Use Provider** gives you two common setup paths:

| Path             | Use when                                                               |
| ---------------- | ---------------------------------------------------------------------- |
| Integration      | You want reusable provider setup for sessions and application code     |
| Magic MCP Server | You want a managed MCP endpoint that clients and agents can connect to |

<img src="https://mintcdn.com/metorial/Avvcg5xA3rtWIxf9/images/dashboard-audit/provider-linear-use-provider-modal.png?fit=max&auto=format&n=Avvcg5xA3rtWIxf9&q=85&s=80632d044e6a6006e9975b75f0b0073f" alt="Use provider menu" width="1800" height="986" data-path="images/dashboard-audit/provider-linear-use-provider-modal.png" />

## Provider Deployments

A **provider deployment** is a running instance of a provider.

By default, a provider deployment always uses the **latest version** of the provider. You can optionally **pin** a deployment to a specific version to prevent automatic updates—useful when you need stability across a production environment.

```text theme={null}
Provider (e.g. "Slack")
└── Provider Deployment (your running instance, optionally pinned to a version)
```

<Info>
  Every deployment has a unique ID (`pdp_...`). You use this ID when creating sessions.
</Info>

## Provider Configs

A **provider config** stores the configuration values for a provider deployment—things like endpoint URLs, feature flags, or other settings specific to that provider.

Provider configs are linked to a provider and can optionally be locked to a specific provider deployment. This lets you have multiple configs for the same provider (e.g. one for a staging environment, one for production).

You can also link a provider config to a **Provider Config Vault** entry, which stores a reusable config template you can apply across multiple deployments.

<Info>
  Not all providers require configuration. If a provider has no required config fields, Metorial auto-creates a default config when you create a session.
</Info>

## Provider Auth Configs

A **provider auth config** stores the authentication credentials for a specific user's connection to a provider. This is where OAuth tokens and manual API keys live.

There are three types:

| Type              | Description                                                               |
| ----------------- | ------------------------------------------------------------------------- |
| `manual`          | Credentials entered directly (e.g. an API key for Exa or Tavily)          |
| `oauth_automated` | OAuth tokens obtained via a [Provider Setup Session](/integrations-oauth) |
| `oauth_manual`    | OAuth tokens imported manually                                            |

Auth configs are stored per user. If 100 users connect their Slack accounts, you have 100 auth configs. This keeps credentials isolated and auditable.

In the dashboard, provider setup asks you to choose or create auth credentials/auth configs before creating an integration or Magic MCP server.

<img src="https://mintcdn.com/metorial/Avvcg5xA3rtWIxf9/images/dashboard-audit/provider-github-create-magic-mcp-flow.png?fit=max&auto=format&n=Avvcg5xA3rtWIxf9&q=85&s=33b4b2e9598c098fc7a357680147d346" alt="GitHub Magic MCP auth config" width="679" height="1000" data-path="images/dashboard-audit/provider-github-create-magic-mcp-flow.png" />

## Tool Filters

Provider setup also includes tool filters. You can allow, reject, or mix tools by category:

* read-only tools
* write tools
* destructive tools

For high-impact providers like GitHub and Linear, review destructive tools before exposing them to production agents.

## Provider Setup Sessions

A **provider setup session** is the flow you use to get a user authenticated with a provider. You create a setup session and redirect your user to its URL. They complete the auth flow (OAuth or manual config entry), and when they finish, Metorial creates a provider auth config automatically.

Setup sessions support three modes:

| Mode              | Use when                                        |
| ----------------- | ----------------------------------------------- |
| `auth_only`       | The provider needs authentication but no config |
| `config_only`     | The provider needs configuration but no auth    |
| `auth_and_config` | The provider needs both                         |

Setup sessions expire if the user doesn't complete them. You can poll or webhook to check their status (`pending` → `completed` / `expired` / `failed`).

See [OAuth Integrations](/integrations-oauth) for the full setup flow.

## How These Entities Compose

When creating a session, you attach one or more **provider deployments** to it. Metorial uses the deployment to look up the provider and then figures out what else it needs:

* If the provider requires **authentication**, you must supply a matching provider auth config—or create one first via a setup session.
* If the provider requires **configuration**, you must supply a provider config—or Metorial creates a default one automatically.
* You always need at least a **provider deployment** (or enough information to find one) for each provider in the session.

<Info>
  Metorial auto-creates missing pieces where possible. For example, if a provider has no required config fields, you don't need to create a config manually since Metorial creates a default one for the session.
</Info>

A single session can attach to **multiple provider combinations** at once, mixing different providers and different users' auth configs.

## Custom Providers

Beyond the catalog, you can build and deploy your own providers. See the [Custom Providers](/custom-servers-overview) section for details on custom and external providers.

## What's Next?

<CardGroup cols={2}>
  <Card title="Sessions Guide" icon="circle-dot" href="/concepts-sessions">
    Learn how sessions connect to provider deployments.
  </Card>

  <Card title="OAuth Integrations" icon="shield" href="/integrations-oauth">
    Set up OAuth-based provider auth configs.
  </Card>

  <Card title="API Key Integrations" icon="key" href="/integrations-api-key">
    Set up API key-based provider auth configs.
  </Card>

  <Card title="Custom Providers" icon="code" href="/custom-servers-overview">
    Build and deploy your own providers.
  </Card>
</CardGroup>
