Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.artgas1/robokassa-mcp

PYPI · ROBOKASSA-MCP · SCANNED SEP 21

Comprehensive MCP server for the Robokassa payment gateway (18 tools, full API coverage).

Available components

0 this week 61 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 1 of 24 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency35
Schema Quality & AI Usability66
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 2672 tokens (~148/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
  • Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage79
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 25% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "refund_create" implies "refund" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the io.github.artgas1/robokassa-mcp server?

io.github.artgas1/robokassa-mcp runs locally as a PyPI package, launched with uvx robokassa-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · robokassa-mcp

# add to Claude Code
claude mcp add artgas1-robokassa-mcp -- uvx robokassa-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "artgas1-robokassa-mcp": {
      "command": "uvx",
      "args": [
        "robokassa-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "artgas1-robokassa-mcp": {
      "command": "uvx",
      "args": [
        "robokassa-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add artgas1-robokassa-mcp -- uvx robokassa-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "artgas1-robokassa-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "robokassa-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add artgas1-robokassa-mcp --command uvx --arg robokassa-mcp
# ~/.hermes/config.yaml
mcp_servers:
  artgas1-robokassa-mcp:
    command: "uvx"
    args: ["robokassa-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "artgas1-robokassa-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "robokassa-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add artgas1-robokassa-mcp -t stdio -c uvx -a robokassa-mcp
// mcp.json
{
  "mcpServers": {
    "artgas1-robokassa-mcp": {
      "command": "uvx",
      "args": [
        "robokassa-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 21 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 −4
    • Stability: pass → 0.77 functional
  • 17 Sept 26 +1
    • Stability: 0.97 → pass security
  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Sept 26 −3
    • Stability: pass → 0.83 functional
  • 11 Sept 26 +1
    • Stability: 0.97 → pass security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Analysed pypi/robokassa-mcp@0.1.2

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 24 packages
Packages resolved 24
Stale 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 18 exposed · ~2,672 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
build_split_invoice ~84

Build a URL for a multi-recipient (marketplace-style) split payment. Each split: `{merchantLogin, amount, description?}`. Sum of amounts must equal out_amount.

NameTypeReqDescription
description
email
inc_curr
inv_id
out_amountnumberyes
splitsarrayyes

Structured output declared, but exposes no named fields.

No examples provided.

calc_out_sum ~132

Calculate the amount credited to the shop for a given customer payment. Useful for showing the commission / final sum in checkout UI. Signature: `<algorithm>(MerchantLogin:IncSum:Password#1)`.

NameTypeReqDescription
algorithmstringSignature algorithm configured in the cabinet.
inc_curr_labelSpecific payment method label from `list_currencies`. If omitted, Robokassa calculates for the default method.
inc_sumnumberyesAmount the customer pays.
merchant_loginFalls back to ROBOKASSA_LOGIN.
password1Falls back to ROBOKASSA_PASSWORD1.

Structured output declared, but exposes no named fields.

No examples provided.

check_payment ~297

Check the current state of a Robokassa payment by invoice ID. Uses the `OpStateExt` XML interface. Returns a structured summary including the state code (5/10/20/50/60/80/100), the OpKey (required later for initiating a refund via Refund/Create), sums, payment method, and any user-defined `Shp_*` parameters attached at checkout. State codes: 5 — инициализирована, не оплачена 10 — отменена (таймаут / пользователь) 20 — HOLD (предавторизация) 50 — средства получены, зачисление магазину 60 — отказ в зачислении, средства возвращены покупателю (это НЕ пользовательский refund — для него используйте refund_status) 80 — приостановлена (security check) 100 — оплачена ✅ Credentials may be passed explicitly or via ROBOKASSA_LOGIN / ROBOKASSA_PASSWORD2 environment variables. Note: OpStateExt does NOT reflect post-payment refunds initiated through the Robokassa cabinet or Refund/Create. For that, store the requestId from Refund/Create and poll Refund/GetState.

NameTypeReqDescription
algorithmstring
inv_idintegeryes
merchant_login
password2

Structured output declared, but exposes no named fields.

No examples provided.

create_invoice ~330

Build a signed Robokassa checkout URL + form fields for a new payment. Does NOT make an HTTP request — produces the URL to redirect the user to.

NameTypeReqDescription
algorithmstringSignature hash algorithm.
culturestringUI locale (`ru` / `en` / `kk`).
currencyRestrict to specific payment method (`IncCurrLabel`).
descriptionHuman-readable order description.
emailPre-fill customer email on the payment page.
inv_idintegeryesUnique invoice number. Pass 0 to let Robokassa assign one.
is_testbooleanUse sandbox checkout instead of production.
merchant_loginShop ID. Falls back to ROBOKASSA_LOGIN env var.
out_sumnumberyesAmount to charge (any numeric type; normalized to 2 decimals).
password1Password#1. Falls back to ROBOKASSA_PASSWORD1 env var.
receipt_itemsOptional 54-ФЗ fiscal receipt items. Each item: `{name, quantity, sum, tax, payment_method, payment_object, nomenclature_code}`. Tax ∈ none / vat0 / vat5 / vat7 / vat10 / vat20 / vat105 / vat107 /…
receipt_snoTaxation scheme (`osn` / `usn_income` / etc.).
shp_paramsExtra `Shp_*` params echoed back in ResultURL. Keys may be passed without the `Shp_` prefix.

Structured output declared, but exposes no named fields.

No examples provided.

hold_cancel ~44

Release a hold without capturing the reserved funds.

NameTypeReqDescription
algorithmstring
inv_idintegeryes
merchant_login
password1

Structured output declared, but exposes no named fields.

No examples provided.

hold_confirm ~100

Capture previously-reserved funds for a held transaction. Cart can be reduced (smaller `receipt_items`) before capture, but not increased. Pass the same OutSum (possibly smaller) as the original hold.

NameTypeReqDescription
algorithmstring
inv_idintegeryes
merchant_login
out_sumnumberyes
password1
receipt_items
receipt_sno

Structured output declared, but exposes no named fields.

No examples provided.

hold_init ~160

Build a checkout URL with StepByStep=true for two-step pre-auth. Funds are reserved on the card; use `hold_confirm` to capture or `hold_cancel` to release. Max hold window: 7 days. Notification for successful hold is delivered to ResultURL2 (not the standard ResultURL). Requires prior agreement with Robokassa and only works with card payments.

NameTypeReqDescription
algorithmstring
culturestring
description
email
inv_idintegeryes
is_testboolean
merchant_login
out_sumnumberyes
password1
receipt_items
receipt_sno

Structured output declared, but exposes no named fields.

No examples provided.

init_recurring_parent ~122

Build a checkout URL marking the payment as a recurring parent. After the user pays, the shop can silently charge subsequent amounts via `recurring_charge` citing this invoice's `inv_id`.

NameTypeReqDescription
algorithmstring
culturestring
description
email
inv_idintegeryes
is_testboolean
merchant_login
out_sumnumberyes
password1
receipt_items
receipt_sno

Structured output declared, but exposes no named fields.

No examples provided.

list_currencies ~146

List payment methods / currencies available to a Robokassa shop. Returns the full catalogue grouped by payment family (BankCard, SBP, SberPay, YandexPay, etc.) with per-method Label, Alias, Name, and min/max transaction bounds where applicable. The Label values are what you pass as `IncCurrLabel` when calling `create_invoice` to restrict the user to a specific payment method. No password / signature required — GetCurrencies is a public endpoint.

NameTypeReqDescription
languagestringUI language for Name fields (`ru` / `en`).
merchant_loginShop identifier. Falls back to ROBOKASSA_LOGIN env var.

Structured output declared, but exposes no named fields.

No examples provided.

partner_refund ~106

Alternative refund path via Partner API (for CPA / SaaS integrators). Merchant-only users should prefer `refund_create` instead (uses Password#3). Partner API requires `RoboxPartnerId` and partner-specific auth headers — typically `{"Authorization": "Bearer <partner-jwt>"}`.

NameTypeReqDescription
auth_headersobjectyes
op_keystringyes
receipt
refund_sum
robox_partner_idstringyes

Structured output declared, but exposes no named fields.

No examples provided.

recurring_charge ~124

Silently charge a recurring subscription payment. `previous_inv_id` must be the inv_id of an already-paid parent (created with `init_recurring_parent`). Response `"OK<InvId>"` means accepted, NOT captured — verify via `check_payment`.

NameTypeReqDescription
algorithmstring
description
merchant_login
new_inv_idintegeryes
out_sumnumberyes
password1
previous_inv_idintegeryes
receipt_items
receipt_sno

Structured output declared, but exposes no named fields.

No examples provided.

refund_create ~362

Initiate a refund for a successful Robokassa payment. Requires `op_key` — obtained from `check_payment` (OpStateExt) or the `Result2` webhook payload for the original operation. Refund amount: - Omit `refund_sum` for a FULL refund of the original operation. - Pass a numeric amount for a partial refund. Fiscal receipt: - Omit `items` to refund without emitting a fiscal receipt (appropriate when the original sale was not fiscalized through Robokassa). - Pass a list of items to emit a receipt for the refund. Each item: `{name, quantity, cost, tax, payment_method, payment_object}` where tax ∈ none/vat0/vat5/vat7/vat10/vat20/vat105/vat107/vat110/vat120, payment_method ∈ full_payment/advance/..., payment_object ∈ commodity/service/payment/... Authentication: Uses JWT signed with `Password#3`. This is distinct from Password#1 (checkout) and Password#2 (XML status). Access to the Refund API must be enabled in the Robokassa cabinet separately. Returns: `{success: bool, request_id: str | None, message: str | None}`. Store `request_id` to poll refund status via `refund_status`. Common failure messages: NotEnoughOperationFunds, OperationNotFound, AlreadyRefunded. Credentials may be passed explicitly or via the ROBOKASSA_PASSWORD3 env var.

NameTypeReqDescription
algorithmstring
items
op_keystringyes
password3
refund_sum

Structured output declared, but exposes no named fields.

No examples provided.

refund_status ~34

Check the current state of a previously-created refund request.

NameTypeReqDescription
request_idstringyesGUID returned by `refund_create()`.

Structured output declared, but exposes no named fields.

No examples provided.

second_receipt_create ~207

Emit a final (second) 54-ФЗ fiscal receipt after an advance/prepayment sale. For merchants using Robokassa Fiscal. `merchant_id` is the Fiscal merchantId (e.g. `robokassa_sell`); `origin_id` is the InvId of the original operation. Max 2 receipts per operation. items: `[{name, quantity, sum, tax, payment_method, payment_object}]`. payments: typically `[{type: 2, sum: <total>}]` for offsetting a prepayment. client: `{email}` or `{phone}`.

NameTypeReqDescription
clientobjectyes
itemsarrayyes
merchant_idstringyes
origin_idstringyes
password1
paymentsarrayyes
receipt_idstringyes
sno
totalnumberyes
urlstringyes
vats

Structured output declared, but exposes no named fields.

No examples provided.

second_receipt_status ~59

Check registration status of a 54-ФЗ fiscal receipt. Use `merchant_id="robokassa_state"` for status lookups.

NameTypeReqDescription
merchant_idstringyes
password1
receipt_idstringyes

Structured output declared, but exposes no named fields.

No examples provided.

send_sms ~82

Send an SMS via Robokassa's SMS service. Paid feature — requires a non-zero SMS balance in the cabinet. Phone must be in international format (e.g. `79991234567`).

NameTypeReqDescription
algorithmstring
merchant_login
messagestringyes
password1
phonestringyes

Structured output declared, but exposes no named fields.

No examples provided.

verify_result_signature ~160

Verify the SignatureValue on a Robokassa ResultURL request. Robokassa POSTs payment notifications to the merchant's ResultURL after a successful checkout. The merchant must verify the signature to confirm the notification is authentic, then respond with the string returned by `build_ok_response(inv_id)` — otherwise Robokassa retries.

NameTypeReqDescription
algorithmstringSignature algorithm configured in the cabinet.
paramsobjectyesForm-encoded body from the ResultURL request. Must contain OutSum, InvId, SignatureValue. Any `Shp_*` parameters included in the body are automatically incorporated into signature verification.
password2Shop's Password#2. Falls back to ROBOKASSA_PASSWORD2 env var.

Structured output declared, but exposes no named fields.

No examples provided.

verify_success_signature ~123

Verify the SignatureValue on a Robokassa SuccessURL redirect. SuccessURL is the browser-side redirect after payment completes. Unlike ResultURL it does NOT mean the payment is credited — only that the user returned to the success page. Still, verifying the signature guards against CSRF / tampering.

NameTypeReqDescription
algorithmstringSignature algorithm configured in the cabinet.
paramsobjectyesQuery-string params from the SuccessURL GET request.
password1Shop's Password#1. Falls back to ROBOKASSA_PASSWORD1 env var.

Structured output declared, but exposes no named fields.

No examples provided.

Common questions

What is the io.github.artgas1/robokassa-mcp server?

io.github.artgas1/robokassa-mcp is listed in the public MCP registry as io.github.artgas1/robokassa-mcp. Comprehensive MCP server for the Robokassa payment gateway (18 tools, full API coverage). This page covers its PyPI package (robokassa-mcp).

Is the io.github.artgas1/robokassa-mcp server safe to use?

io.github.artgas1/robokassa-mcp scores 61 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.artgas1/robokassa-mcp server expose?

io.github.artgas1/robokassa-mcp exposes 18 tools: check_payment, refund_create, refund_status, create_invoice, verify_result_signature, and 13 more. Their descriptions and schemas cost roughly 2,672 tokens of context every time the server is loaded.

Is the io.github.artgas1/robokassa-mcp server still maintained?

io.github.artgas1/robokassa-mcp is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.