# Manage Issuing cards with AI agents

Create cardholders and issue cards through Stripe's Model Context Protocol server.

Connect an AI agent to Stripe’s [Model Context Protocol (MCP) server](https://docs.stripe.com/mcp.md) to create Issuing cardholders and physical or virtual cards. You need access to [Issuing](https://docs.stripe.com/issuing/agents.md) and the Issuing create methods in Stripe MCP.

Issuing a card doesn’t give the agent a way to pay with it. Before you allow an agent to make purchases, choose a [supported payment path](https://docs.stripe.com/issuing/agents.md#how-agents-can-pay) and configure [spend controls](https://docs.stripe.com/issuing/agents.md#spend-controls).

If your MCP client doesn’t support [agent plugins](https://docs.stripe.com/agents/plugin.md) for Stripe, or you prefer to configure the Stripe MCP server and install the skills manually, follow these instructions:

#### Cursor

[Install in Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=stripe&config=eyJ1cmwiOiJodHRwczovL21jcC5zdHJpcGUuY29tIn0%3D)

Select **Install in Cursor** to open Cursor and add the Stripe MCP server. To configure it manually, add the following configuration to `~/.cursor/mcp.json`.

For more information, see [Cursor’s MCP documentation](https://cursor.com/docs/mcp).

```json
{
 "mcpServers": {
   "stripe": {
     "url": "https://mcp.stripe.com"
   }
 }
}
```

#### Claude Code

Run the following command to add the Stripe MCP server to Claude Code:

```bash
claude mcp add --transport http stripe https://mcp.stripe.com/
```

After you add the server, start Claude Code and run the `/mcp` command to authenticate Stripe with OAuth.

To authenticate with an [agent API key](https://docs.stripe.com/keys.md#agent-keys) instead of OAuth, add the server to your project’s `.mcp.json` file and reference an environment variable that holds your agent API key, rather than passing the key on the command line. In this example, `${AGENT_API_KEY}` is a placeholder; replace `AGENT_API_KEY` with the actual name of your environment variable, and set that environment variable in your shell before running Claude Code.

```json
{
  "mcpServers": {
    "stripe": {
      "type": "http",
      "url": "https://mcp.stripe.com",
      "headers": {
        "Authorization": "Bearer ${AGENT_API_KEY}"
      }
    }
  }
}
```

For more information, see the [Claude Code MCP documentation](https://code.claude.com/docs/en/mcp).

#### Claude Desktop

You can [install the official Stripe connector in Claude](https://claude.ai/directory/de127013-63f1-43d0-8dd2-b6cb5b4e5d1b) on the web and in Claude Desktop.

1. Select **Connect to Claude** and add the connector to your account or workspace.
2. Sign in to your Stripe account and grant permissions to Claude using the OAuth window when prompted.
3. In a conversation, select the plus icon, select **Connectors**, and enable Stripe.

For Team and Enterprise accounts, an owner must add the connector to the workspace before members can connect their Stripe accounts.

#### Codex

Run the following command to add the Stripe MCP server to Codex:

```bash
codex mcp add stripe --url https://mcp.stripe.com
```

The ChatGPT desktop app, Codex CLI, and Codex IDE extension support MCP servers and share the same configuration on your computer. To learn more, see the OpenAI [Codex MCP documentation](https://learn.chatgpt.com/docs/extend/mcp).

After you authenticate, you can switch between the ChatGPT desktop app, Codex CLI, and Codex IDE extension without configuring the Stripe MCP server again.

To authenticate with an [agent API key](https://docs.stripe.com/keys.md#agent-keys) instead of OAuth, set `bearer_token_env_var` to the name of an environment variable that holds your agent API key. In this example, `AGENT_API_KEY` is a placeholder; replace it with the actual name of your environment variable, not the name of the variable wrapped in braces.

```toml
[mcp_servers.stripe]
url = "https://mcp.stripe.com"
bearer_token_env_var = "AGENT_API_KEY" # Replace with the name of your environment variable
```

#### ChatGPT

You can [install the official Stripe plugin in ChatGPT](https://chatgpt.com/plugins/plugin_connector_690ab09fa43c8191bca40280e4563238). Connect your Stripe account and grant permissions to ChatGPT in the OAuth window when prompted.

To learn more, see the OpenAI [MCP documentation](https://learn.chatgpt.com/docs/extend/mcp).

#### VS Code

[Install in VS Code](https://vscode.dev/redirect/mcp/install?name=stripe&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.stripe.com%22%7D)

Select **Install in VS Code** to open VS Code and add the Stripe MCP server. To configure it manually, add the following configuration to `.vscode/mcp.json` in your workspace.

See the [VS Code MCP documentation](https://code.visualstudio.com/docs/agent-customization/mcp-servers) for more information.

```json
{
 "servers": {
   "stripe": {
     "type": "http",
     "url": "https://mcp.stripe.com"
   }
 }
}
```

#### Other

MCP is an open protocol supported by many clients. Follow your client’s MCP setup instructions and use `https://mcp.stripe.com` as the server URL.

Use OAuth when your client supports it. If your client doesn’t support OAuth, use an [agent API key](https://docs.stripe.com/keys.md#agent-keys) as a bearer token in the `Authorization` header. For example, if your client accepts a `headers` property, use the following configuration:

```json
{
 "stripe": {
   "url": "https://mcp.stripe.com",
   "headers": {
     "Authorization": "Bearer {{AGENT_API_KEY}}"
   }
 }
}
```

## Manage MCP access and sessions 

Stripe’s MCP server supports two authentication methods:

1. **OAuth**: Use OAuth when a client accesses Stripe on behalf of your Stripe user account.
2. **Agent API keys**: Use an [agent API key](https://docs.stripe.com/keys.md#agent-keys) when an AI application needs independent, persistent access to Stripe.

When you connect an MCP client with OAuth, the client opens Stripe’s OAuth consent page. You can grant access to one or more live mode accounts or sandboxes and set different permissions for each environment. See the [MCP authorization specification](https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization) for details.

If your organization manages your device or network, your IT administrator might block connections to external MCP servers. When the Stripe MCP server doesn’t connect in a managed environment, ask your IT department to allow `mcp.stripe.com`.

### Manage MCP access for all team members 

If you’re an administrator, you can [enable or disable MCP access](https://dashboard.stripe.com/settings/mcp-and-cli-access) for your entire team in the Dashboard. Configure access separately for live mode and sandbox environments.

### Manage your sessions 

Your authorized MCP clients appear under **OAuth sessions** in your [user settings](https://dashboard.stripe.com/settings/user). To revoke a session:

1. Find the client in the **OAuth sessions** list.
2. Click the overflow menu (⋯).
3. Select **Revoke access**.

### Manage sessions as an administrator 

To view or revoke another user’s sessions, your role must include permissions to manage team members. The **Administrator** role includes these permissions.

1. Open [Team and security](https://dashboard.stripe.com/settings/team) in the Dashboard.
2. Select the team member you want to manage.
3. Find the **OAuth sessions** table.
4. To revoke one session, click its overflow menu and select **Revoke access**. To revoke every listed session, select **Revoke all**.

Session management applies only to the account or organization and environment—live mode or a sandbox—that you’re currently viewing. Revoking a session removes access only within that scope. The session remains active for accounts outside your current scope.

When you view an organization, the **Accounts** column shows the accounts associated with each session.

## Create cardholders and cards

After you connect Stripe MCP, grant your client only the permissions it needs. If you use OAuth, select permissions for each account or sandbox during consent. For independent, persistent access, use an [agent API key](https://docs.stripe.com/keys.md#agent-keys) with restricted permissions.

Enable your MCP client’s tool approval setting so you can review write requests before the client runs them.

1. Ask your agent to find the Issuing create methods with `stripe_api_search`. Then, use `stripe_api_details` to inspect their parameters.
2. If you need a new cardholder, ask your agent to create one with `stripe_api_write`. Provide the information required by [Create a cardholder](https://docs.stripe.com/api/issuing/cardholders/create.md), including any applicable terms acceptance. Don’t invent terms acceptance details on behalf of the cardholder.
3. Ask your agent to create a physical or virtual card for the cardholder with `stripe_api_write`. Review the [card creation requirements](https://docs.stripe.com/api/issuing/cards/create.md), configure [spend controls](https://docs.stripe.com/issuing/controls/spending-controls.md) for the agent’s task, and review the request before you activate the card.

## Supported methods 

You can access the Issuing create methods through [Stripe MCP’s API tools](https://docs.stripe.com/mcp.md#tools). Use `stripe_api_search` to find a method, `stripe_api_details` to inspect it, and `stripe_api_write` to run it. Stripe doesn’t provide these methods as separate named MCP tools.

Access depends on your account’s Issuing eligibility and the permissions granted to your client.

| API method | What it does | Required permission |
| --- | --- | --- |
| [Create a cardholder](https://docs.stripe.com/api/issuing/cardholders/create.md) | Creates a person or company that can hold Issuing cards | **Issuing Cardholders: Write** |
| [Create a card](https://docs.stripe.com/api/issuing/cards/create.md) | Creates a physical or virtual card for an existing cardholder | **Issuing Cards: Write** |

Issuing read methods, including methods for listing cards, cardholders, authorizations, transactions, and disputes, have separate availability and permission requirements. Check the [supported API methods](https://docs.stripe.com/mcp.md#apis) for the methods available to your account.

Creating a card through MCP doesn’t approve purchases automatically or replace your [real-time authorization integration](https://docs.stripe.com/issuing/controls/real-time-authorizations.md).
