Spree Commerce: open-source B2B and marketplace ecommerce
Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Comprehensive MCP server for the Robokassa payment gateway (18 tools, full API coverage).
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ROBOKASSA_LOGIN, ROBOKASSA_PASSWORD1, ROBOKASSA_PASSWORD2, ROBOKASSA_PASSWORD3ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"robokassa": {
"command": "uvx",
"args": [
"robokassa-mcp"
],
"env": {
"ROBOKASSA_LOGIN": "ใส่ค่าของคุณ",
"ROBOKASSA_PASSWORD1": "ใส่ค่าของคุณ",
"ROBOKASSA_PASSWORD2": "ใส่ค่าของคุณ",
"ROBOKASSA_PASSWORD3": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add robokassa --env ROBOKASSA_LOGIN='ใส่ค่าของคุณ' --env ROBOKASSA_PASSWORD1='ใส่ค่าของคุณ' --env ROBOKASSA_PASSWORD2='ใส่ค่าของคุณ' --env ROBOKASSA_PASSWORD3='ใส่ค่าของคุณ' -- uvx robokassa-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"robokassa": {
"command": "uvx",
"args": [
"robokassa-mcp"
],
"env": {
"ROBOKASSA_LOGIN": "ใส่ค่าของคุณ",
"ROBOKASSA_PASSWORD1": "ใส่ค่าของคุณ",
"ROBOKASSA_PASSWORD2": "ใส่ค่าของคุณ",
"ROBOKASSA_PASSWORD3": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"robokassa": {
"type": "stdio",
"command": "uvx",
"args": [
"robokassa-mcp"
],
"env": {
"ROBOKASSA_LOGIN": "ใส่ค่าของคุณ",
"ROBOKASSA_PASSWORD1": "ใส่ค่าของคุณ",
"ROBOKASSA_PASSWORD2": "ใส่ค่าของคุณ",
"ROBOKASSA_PASSWORD3": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub artgas1 ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: ROBOKASSA_LOGIN, ROBOKASSA_PASSWORD1, ROBOKASSA_PASSWORD2, ROBOKASSA_PASSWORD3
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.2) เข้า registry 7 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
server ทางการของ Stripe ให้ AI ดูและจัดการลูกค้า สินค้า การชำระเงิน และใบแจ้งหนี้ ต่อผ่านคลาวด์ของ Stripe และล็อกอินแบบ OAuth
8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
robokassa-mcp
📚 Documentation · PyPI · Docker · MCP Registry
Comprehensive Python client and Model Context Protocol server for Robokassa — the Russian payment gateway.
Covers the full API surface: checkout, XML status interfaces, refunds, holding (pre-auth), recurring subscriptions, 54-ФЗ fiscal receipts, Partner API, and auxiliary endpoints.
# As an MCP server for Claude Desktop / Claude Code / Cursor / Windsurf
uvx robokassa-mcp
pip install robokassa-mcp
import asyncio
from decimal import Decimal from robokassa import create_invoice, RobokassaClient
invoice = create_invoice( merchant_login="my-shop", out_sum=Decimal("599.00"), inv_id=12345, password1="...", description="Premium subscription", email="user@example.com", ) print(invoice.url) # https://auth.robokassa.ru/Merchant/Index.aspx?...
async def check() -> None: async with RobokassaClient("my-shop", password2="...") as client: state = await client.check_payment(inv_id=12345) print(state.is_paid, state.info.op_key)
asyncio.run(check())
from robokassa import RobokassaClient
async def refund_flow(inv_id: int) -> None: async with RobokassaClient("my-shop", password2="p2", password3="p3") as client:
state = await client.check_payment(inv_id) assert state.info.op_key, "payment not complete yet"
created = await client.refund_create(state.info.op_key) print("refund requestId:", created.request_id)
while True: status = await client.refund_status(created.request_id) if status.is_terminal: print("final:", status.state) break
from fastapi import FastAPI, Request, HTTPException, PlainTextResponse
from robokassa import verify_result_signature, build_ok_response
app = FastAPI()
@app.post("/robokassa/result") async def result_url(req: Request) -> PlainTextResponse: form = dict(await req.form()) if not verify_result_signature(form, password2="..."): raise HTTPException(status_code=403, detail="Bad signature")
return PlainTextResponse(build_ok_response(form["InvId"]))
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": { "robokassa": { "command": "uvx", "args": ["robokassa-mcp"], "env": { "ROBOKASSA_LOGIN": "your-shop-login", "ROBOKASSA_PASSWORD1": "password1", "ROBOKASSA_PASSWORD2": "password2", "ROBOKASSA_PASSWORD3": "password3" } } } }
claude mcp add robokassa \
-e ROBOKASSA_LOGIN=my-shop \ -e ROBOKASSA_PASSWORD1=... \ -e ROBOKASSA_PASSWORD2=... \ -e ROBOKASSA_PASSWORD3=... \ -- uvx robokassa-mcp
Edit ~/.cursor/mcp.json:
{
"mcpServers": { "robokassa": { "command": "uvx", "args": ["robokassa-mcp"], "env": { "ROBOKASSA_LOGIN": "your-shop-login", "ROBOKASSA_PASSWORD1": "password1", "ROBOKASSA_PASSWORD2": "password2", "ROBOKASSA_PASSWORD3": "password3" } } } }
In user or workspace settings.json:
{
"github.copilot.chat.mcp.servers": { "robokassa": { "command": "uvx", "args": ["robokassa-mcp"], "env": { "ROBOKASSA_LOGIN": "your-shop-login", "ROBOKASSA_PASSWORD1": "password1", "ROBOKASSA_PASSWORD2": "password2", "ROBOKASSA_PASSWORD3": "password3" } } } }
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": { "robokassa": { "command": "uvx", "args": ["robokassa-mcp"], "env": { "ROBOKASSA_LOGIN": "your-shop-login", "ROBOKASSA_PASSWORD1": "password1", "ROBOKASSA_PASSWORD2": "password2", "ROBOKASSA_PASSWORD3": "password3" } } } }
uvx robokassa-mcp --transport http --port 8000
Flags: --transport {stdio,http,streamable-http,sse}, --host, --port.
All 18 tools are wrapped as @mcp.tool() and available to any MCP-capable agent (Claude Desktop, Claude Code, Cursor, Windsurf, etc.).
| Tool | Purpose | Auth |
|---|---|---|
create_invoice | Build a signed checkout URL (optional 54-ФЗ receipt). | Password#1 |
check_payment | Get current state of a payment by InvId (via OpStateExt). | Password#2 |
list_currencies | List payment methods available to the shop. | — |
calc_out_sum | Compute amount credited to shop for a given payment. | Password#1 |
refund_create | Initiate a refund (requires Refund API access). | Password#3 JWT |
refund_status | Poll refund progress by requestId. | — |
verify_result_signature | Validate a ResultURL webhook. | Password#2 |
verify_success_signature | Validate a SuccessURL redirect. | Password#1 |
hold_init / hold_confirm / hold_cancel | Two-step card pre-authorization. | Password#1 |
init_recurring_parent / recurring_charge | Subscription auto-charges. | Password#1 |
build_split_invoice | Marketplace multi-recipient checkout. | — |
send_sms | Paid SMS service. | Password#1 |
second_receipt_create / second_receipt_status | 54-ФЗ final receipt after advance. | Password#1 |
partner_refund | Alternative refund path for partner integrators. | Partner JWT |
Low-level signature helpers are available from Python only: compute_signature, op_state_signature, build_checkout_signature, build_refund_jwt, build_sms_signature, compute_result_signature, compute_success_signature, encode_fiscal_body.
Mapped against the 8 public Robokassa API groups:
| Group | Coverage | Module |
|---|---|---|
| Merchant Checkout | ✅ create_invoice (+ 54-ФЗ) | robokassa.checkout |
| XML Interfaces | ✅ check_payment, list_currencies, calc_out_sum | robokassa.xml_interface |
| Refund API | ✅ refund_create, refund_status | robokassa.refund |
| Holding / Pre-auth | ✅ init / confirm / cancel | robokassa.holding |
| Recurring | ✅ parent + child | robokassa.recurring |
| Fiscal 54-ФЗ | ✅ second receipt create / status | robokassa.fiscal |
| Partner API | 🟡 partner_refund only — see coverage notes | robokassa.partner |
| Auxiliary | ✅ send_sms, webhook signatures, split payments | robokassa.sms, robokassa.webhooks, robokassa.split |
Most high-level entry points fall back to these env vars when credentials aren't passed explicitly:
| Variable | Required for |
|---|---|
ROBOKASSA_LOGIN | All operations |
ROBOKASSA_PASSWORD1 | Checkout, webhook SuccessURL verification, CalcOutSumm, fiscal, SMS |
ROBOKASSA_PASSWORD2 | check_payment (OpStateExt), webhook ResultURL verification |
ROBOKASSA_PASSWORD3 | refund_create |
All signature-producing helpers accept algorithm= with "md5" / "sha256" / "sha384" / "sha512" — match whatever is configured in your Robokassa cabinet.
git clone https://github.com/artgas1/robokassa-mcp.git
cd robokassa-mcp uv sync --all-extras --dev uv run pytest # 107+ unit tests uv run ruff check . uv run pyright
MIT — see LICENSE. Drop-and-forget maintenance; PRs welcome but not guaranteed to be reviewed promptly.