Skip to main content
Glama
DanFrModa

Stripe MCP Server

by DanFrModa

Stripe MCP Server

Сервер MCP (Model Context Protocol), который предоставляет API Stripe для Claude. Предназначен для развёртывания на Railway в режиме только для чтения.

👉 Шаги развёртывания находятся в DEPLOY-RAILWAY.md.


Что он делает

Даёт Claude 17 инструментов для запросов к Stripe: клиенты, платежи, оплаты, подписки, счета, каталог, баланс, транзакции, выплаты, события и споры — плюс универсальный инструмент, который обращается к любому endpoint'у, ещё один, который разрешает любой объект по его id, и агрегированный отчёт о доходах.

Инструмент

Endpoint

stripe_whoami

проверяет ключ, режим и разрешения

stripe_request

любой endpoint, любой метод

stripe_get_object

разрешает любой id (cus_, ch_, sub_...)

stripe_search

GET /v1/{ресурс}/search

stripe_list_customers

GET /v1/customers

stripe_list_charges

GET /v1/charges

stripe_list_payment_intents

GET /v1/payment_intents

stripe_list_subscriptions

GET /v1/subscriptions

stripe_list_invoices

GET /v1/invoices

stripe_list_products

GET /v1/products

stripe_list_prices

GET /v1/prices

stripe_get_balance

GET /v1/balance

stripe_list_balance_transactions

GET /v1/balance_transactions

stripe_list_payouts

GET /v1/payouts

stripe_list_events

GET /v1/events

stripe_list_disputes

GET /v1/disputes

stripe_revenue_summary

разбивает на страницы и суммирует брутто/комиссии/нетто


Related MCP server: Stripe MCP Server

Переменные окружения

Переменная

Обязательная

По умолчанию

Описание

STRIPE_API_KEY

да

Restricted key (rk_...) или secret key (sk_...)

STRIPE_MCP_TRANSPORT

на Railway

stdio

http для удалённого сервера

MCP_AUTH_TOKEN

если http

Секрет, защищающий endpoint. Минимум 32 символа

STRIPE_READ_ONLY

нет

см. ниже

1 блокирует все записи

STRIPE_ALLOW_LIVE_WRITES

нет

0

Вторая решётка: записи с ключом live

STRIPE_API_BASE

нет

https://api.stripe.com

Для указания на mock

STRIPE_API_VERSION

нет

Задаёт заголовок Stripe-Version

STRIPE_ACCOUNT

нет

Аккаунт Connect (acct_...) для всех вызовов

STRIPE_MAX_CHARS

нет

20000

Обрезка ответов

STRIPE_TIMEOUT

нет

45

Таймаут в секундах

PORT

нет

8000

Railway вводит его сам


Три решётки записи

Stripe работает с реальными деньгами: неверный POST возвращает средства клиенту, отменяет подписку или навсегда удаляет запись. Поэтому есть три независимых замка, и запись должна пройти через все три.

1. STRIPE_READ_ONLY — значение по умолчанию зависит от транспорта

  • stdio (локально): записи разрешены по умолчанию. Один доверенный пользователь на своей машине.

  • http (удалённо): записи заблокированы по умолчанию. Нужно намеренно установить STRIPE_READ_ONLY=0, чтобы их включить.

Забыть переменную в публичном развёртывании оставляет его в режиме только для чтения, а не открытым.

2. STRIPE_ALLOW_LIVE_WRITES — решётка live-режима

Даже если вы отключите read-only, ключ live по-прежнему отклоняет записи, пока вы не установите STRIPE_ALLOW_LIVE_WRITES=1. Тестовые ключи (sk_test_, rk_test_) не проходят через эту решётку: экспериментировать с тестовыми данными не должно требовать церемоний.

3. confirm=true — решётка по endpoint'у

Деструктивные endpoint'ы (/v1/refunds, /v1/payouts, /v1/transfers, отмена подписок, удаление клиентов, закрытие споров) требуют confirm=true в вызове, помимо всего вышеперечисленного. Инструмент, запущенный по ошибке, не дойдёт туда сам.

Каждый отказ сообщает, какая из трёх решёток его остановила.


Аутентификация endpoint'а

Протокол MCP не имеет собственной аутентификации. В режиме http этот сервер требует Authorization: Bearer <MCP_AUTH_TOKEN> в каждом запросе, либо секрет, встроенный в путь (/s/<секрет>/mcp) для коннекторов Claude. /healthz — единственный публичный маршрут.

Сервер отказывается запускаться, если MCP_AUTH_TOKEN отсутствует или имеет менее 32 символов. Это намеренно: предотвращает случайную публикацию открытого шлюза к вашему аккаунту Stripe.


Запуск локально

pip install -r requirements.txt

# stdio (para Claude Desktop)
STRIPE_API_KEY=rk_test_xxx python stripe_mcp.py

# http (como en Railway)
STRIPE_MCP_TRANSPORT=http \
STRIPE_API_KEY=rk_test_xxx \
MCP_AUTH_TOKEN=$(python3 -c "import secrets;print(secrets.token_urlsafe(48))") \
PORT=8000 python stripe_mcp.py

При запуске выводится, в каком режиме он остался:

[stripe-mcp] streamable-http on 0.0.0.0:8000  mode=test  read_only=True  allow_live_writes=False  writes_enabled=False

Заметки об API Stripe

Вещи, которые сервер уже решает за вас, и которые полезно знать при чтении ответов:

  • Stripe не принимает JSON в теле. Всё идёт application/x-www-form-urlencoded с нотацией квадратных скобок: metadata[order]=6735, expand[]=customer, items[0][price]=price_1. Сервер переводит только вложенные dict'ы и списки.

  • Деньги — это целое число в минимальной единице. 2500 с usd — это $25.00. И есть валюты с нулём десятичных знаков (JPY, KRW, CLP…), где целое и есть сумма — делить на 100 там было бы ошибкой. Форматированные выходные данные это учитывают.

  • Test и live — это отдельные вселенные. id, созданный в test, возвращает 404 с live-ключом и наоборот. Это самая частая причина 404 с правильным id.

  • Пагинация по курсору, а не по страницам. Берётся последний id и передаётся как starting_after. Когда есть ещё, ответ включает next_page_hint с точным значением.

  • Нет PATCH или PUT. Stripe использует POST как для создания, так и для обновления. Только GET, POST и DELETE.

  • Списки не фильтруют по status в charges и payment_intents. Нужно фильтровать по возвращённым записям или использовать stripe_search.

  • stripe_list_subscriptions по умолчанию пропускает отменённые. Для вопросов о churn нужно передать status='all', иначе ответ будет неверным молча.

  • Индекс поиска занимает до минуты, чтобы увидеть только что созданный объект. Для новых объектов ищите их по id.

  • События хранятся только 30 дней. Для более ранних нужно обращаться к объектам.

  • Нет endpoint'а агрегации. Поэтому stripe_revenue_summary разбивает на страницы и суммирует на стороне MCP-сервера, и предупреждает с complete=false, когда лимит страниц прервал подсчёт — эти итоги частичные и не должны сообщаться как окончательные.

  • Каждый POST выходит с Idempotency-Key, так что повторная попытка не списывает дважды. Stripe хранит их 24 часа.


Безопасность

  • Секреты хранятся в переменных окружения, никогда в коде. .gitignore блокирует файлы .env.

  • Используйте restricted key (rk_...), а не secret key. Их можно создавать в дашборде сколько угодно раз и давать разрешения по ресурсам. Для этого развёртывания: всё на Read, ничего на Write. sk_live_ даёт полный доступ к аккаунту, включая перемещение денег.

  • Один общий токен означает нулевую трассируемость по людям. Всё, что делает кто-либо, записывается как один и тот же ключ.

  • Нет собственного rate limiting. Тот, у кого есть MCP_AUTH_TOKEN, может обращаться к Stripe, пока не упрётся в лимит Stripe (~100 req/s чтения в live).

  • Чтобы мгновенно прекратить доступ: удалите restricted key на https://dashboard.stripe.com/apikeys — сервер станет бесполезным сразу.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude to connect to and interact with SQLite, SQL Server, PostgreSQL, and MySQL databases through natural language. Supports executing queries, managing tables, exporting data, and storing business insights with authentication options including AWS IAM.
    853
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural language interaction with Stripe accounts to query customers, revenue, invoices, subscriptions, disputes, and issue refunds.
    59
    1
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    Enables Claude to integrate with Stripe for creating payment links, processing payments, and managing products and customers.
    17
    59
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables integration with Stripe APIs through function calling, supporting operations on customers, products, invoices, subscriptions, and more.
    10,572
    MIT

View all related MCP servers

Related MCP Connectors

  • Read-only bank access for your AI agent. Connects Claude, ChatGPT, Cursor, Gemini, Codex.

  • Connect your team's living knowledge base — docs, data, issues, CRM — to Claude and ChatGPT.

  • WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DanFrModa/Stripe-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server