npm package: @neuroequalityorg/mcp-stripe
Description: MCP server for Stripe API integration - list customers, create payment links, manage subscriptions, and more
Author: NeuralEquality.org
Latest version: 1.0.0

# @neuroequalityorg/mcp-stripe

MCP (Model Context Protocol) server for Stripe API integration. Enables AI assistants like Claude to interact with Stripe for payment processing, customer management, and subscriptions.

## Features

- **list_customers** - List and filter Stripe customers
- **create_payment_link** - Create payment links for one-time or recurring payments
- **get_balance** - Get current account balance
- **list_subscriptions** - List and filter subscriptions
- **create_product** - Create products with optional default pricing

## Installation

```bash
npm install -g @neuroequalityorg/mcp-stripe
```

Or use npx:

```bash
npx @neuroequalityorg/mcp-stripe
```

## Configuration

Set your Stripe API key as an environment variable:

```bash
export STRIPE_API_KEY=sk_live_xxx  # or sk_test_xxx for test mode
```

Or use `STRIPE_SECRET_KEY`:

```bash
export STRIPE_SECRET_KEY=sk_live_xxx
```

## Usage with Claude Desktop

Add to your Claude Desktop configuration (`~/.config/claude/claude_desktop_config.json` on Linux/Mac or `%APPDATA%\Claude\claude_desktop_config.json` on Windows):

```json
{
  "mcpServers": {
    "stripe": {
      "command": "npx",
      "args": ["@neuroequalityorg/mcp-stripe"],
      "env": {
        "STRIPE_API_KEY": "sk_live_your_key_here"
      }
    }
  }
}
```

## Tools

### list_customers

List Stripe customers with optional filtering.

**Parameters:**
- `limit` (number, optional): Max customers to return (1-100, default: 10)
- `email` (string, optional): Filter by email address
- `starting_after` (string, optional): Pagination cursor (customer ID)

**Example:**
```json
{
  "limit": 20,
  "email": "customer@example.com"
}
```

### create_payment_link

Create a Stripe Payment Link. Either provide an existing `price_id` or create a new product/price on the fly.

**Parameters:**
- `price_id` (string, optional): Existing Stripe Price ID
- `product_name` (string, optional): Name for new product (required if no price_id)
- `unit_amount` (number, optional): Price in cents (required if no price_id)
- `currency` (string, optional): Currency code (default: "usd")
- `quantity` (number, optional): Item quantity (default: 1)
- `allow_promotion_codes` (boolean, optional): Allow promo codes (default: false)

**Example (new product):**
```json
{
  "product_name": "Premium Plan",
  "unit_amount": 2999,
  "currency": "usd"
}
```

**Example (existing price):**
```json
{
  "price_id": "price_1234567890"
}
```

### get_balance

Get current Stripe account balance.

**Parameters:** None

**Returns:** Available and pending amounts by currency.

### list_subscriptions

List Stripe subscriptions with optional filtering.

**Parameters:**
- `limit` (number, optional): Max subscriptions to return (1-100, default: 10)
- `customer` (string, optional): Filter by customer ID
- `status` (string, optional): Filter by status (active, canceled, past_due, etc.)
- `starting_after` (string, optional): Pagination cursor (subscription ID)

**Example:**
```json
{
  "customer": "cus_xxx",
  "status": "active",
  "limit": 50
}
```

### create_product

Create a new Stripe product with optional default pricing.

**Parameters:**
- `name` (string, required): Product name
- `description` (string, optional): Product description
- `active` (boolean, optional): Available for purchase (default: true)
- `metadata` (object, optional): Key-value metadata
- `default_price_data` (object, optional): Default price configuration
  - `unit_amount` (number): Price in cents
  - `currency` (string): Currency code (default: "usd")
  - `recurring` (object, optional): For subscriptions
    - `interval`: "day", "week", "month", or "year"
    - `interval_count` (number): Intervals between billings (default: 1)

**Example (one-time):**
```json
{
  "name": "Widget Pro",
  "description": "Premium widget with all features",
  "default_price_data": {
    "unit_amount": 4999,
    "currency": "usd"
  }
}
```

**Example (subscription):**
```json
{
  "name": "Pro Plan",
  "description": "Monthly subscription",
  "default_price_data": {
    "unit_amount": 1999,
    "currency": "usd",
    "recurring": {
      "interval": "month"
    }
  }
}
```

## Security

- Never commit your Stripe API keys to version control
- Use test mode keys (`sk_test_...`) during development
- Restrict API key permissions in Stripe Dashboard when possible

## License

MIT

## Author

[NeuralEquality.org](https://neuroequality.org)