paytriage
paytriage
Читает ошибку платёжного шлюза и объясняет, что она, скорее всего, означает, что проверить дальше и безопасно ли повторять попытку.
Скармливаете ему строку лога, текст ошибки или целый файл лога. Он отвечает обычным языком, а не кодом, который нужно искать в справочнике.
Без зависимостей. Python 3.8 и выше. Работает как CLI, как библиотека и как MCP сервер, к которому может обратиться агент.
Зачем
Специалисты поддержки и разработчики тратят много времени на превращение
response_code="51" в «на карте клиента не было денег, это не ваша ошибка».
Этот перевод живёт в головах людей и в закладках на PDF. Этот инструмент кладёт
его в файл, который можно читать, искать по нему и исправлять.
Случай с таймаутом — самый важный. Таймаут — это не отказ. Транзакция могла уже быть авторизована на той стороне, так что слепой повтор — это способ дважды списать деньги с клиента. paytriage проговаривает это каждый раз.
Установка
git clone https://github.com/Flyingmiata-droid/paytriage.git
cd paytriage
pip install -e .Или пропустите установку и запустите на месте с помощью python -m paytriage.cli.
Использование из командной строки
$ paytriage 'AUTH DECLINED response_code="51" insufficient funds'
[low] Insufficient funds (decline)
cause: The issuer declined the authorization because the account did not have
enough available balance or credit.
check: Nothing to fix on the integration side. Ask the cardholder to use
another card or retry later.
matched response code: 51
safe to retry: noЦелый файл, сводкой:
$ paytriage -f examples/gateway.log --summary
lines: 11 matched: 9 unmatched: 2
by severity:
low: 2
medium: 3
high: 2
critical: 2
by signature:
decline.insufficient_funds: 1
transport.tls_handshake: 1
format.signature_mismatch: 1
...Добавьте --json к любому вызову, чтобы получить машиночитаемый вывод.
Использование как библиотеки
from paytriage import triage_line
result = triage_line("SSLError: handshake failure tlsv1 alert protocol version")
result.severity # "critical"
result.retryable # True
result.findings[0].label # "TLS handshake failure"
result.findings[0].fix # what to checkИспользование как MCP сервера
Сервер говорит на JSON-RPC через stdio и предоставляет один инструмент,
triage_payment_error, чтобы агент мог передать ему ошибку и получить
структурированный ответ.
python -m paytriage.mcp_serverКонфигурация Claude Desktop или Claude Code:
{
"mcpServers": {
"paytriage": {
"command": "python",
"args": ["-m", "paytriage.mcp_server"]
}
}
}Что покрывает
Двадцать четыре сигнатуры в шести семействах:
Отказы: недостаточно средств, do not honor, карта просрочена, заберите карту, неверный номер
Верификация: несовпадение AVS, несовпадение CVV
Транспорт: рукопожатие TLS, сертификат истёк или недоверенный, таймаут, соединение отклонено или сброшено, DNS
API: 401, 403, 429, 5xx
Формат сообщения: разбор XML, разбор JSON, несовпадение подписи или HMAC, отсутствует обязательное поле
Бизнес-правила: повторная транзакция, неподдерживаемая валюта, неверная сумма, неверный токен
Сопоставление идёт по коду ответа, если он есть, и по шаблону в остальных случаях. Строка может соответствовать нескольким сигнатурам сразу, и результаты возвращаются от худшего к лучшему.
Чем это не является
Не скоринг фрода и не риск-движок.
Не подключено ни к какому шлюзу. Оно читает текст, который у вас уже есть, и не совершает сетевых вызовов.
Не исчерпывающий справочник. Это инструмент первичной триажной помощи. Документация самого эмитента остаётся авторитетным источником по любому конкретному коду.
Не принимает решений. Ничто здесь не должно само по себе повторять платёж.
Добавление сигнатуры
Всё живёт в одной таблице в paytriage/signatures.py. Сигнатура — это шаблон
или набор кодов, плюс причина, решение и серьёзность. Добавьте запись, добавьте
тест, откройте pull request. Исправления существующих формулировок так же
приветствуются, как и новые записи.
Тесты
python -m unittest discover -s tests -t .23 теста, без сети, без загрузки фикстур.
Лицензия
MIT. См. LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Check if a counterparty is safe to pay: trust/risk score for AI agents. Scam/phishing screen.
Find your AI agent's likely failure mode, get runtime settings, and clarify ambiguous prompts.
Verify x402 payment endpoints before an AI agent pays: scam scan, on-chain checks, trust scores.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Flyingmiata-droid/paytriage'
If you have feedback or need assistance with the MCP directory API, please join our Discord server