ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที เข้าสู่ระบบด้วย Google เพื่อเขียนรีวิวได้แล้ว
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Clover POS

โดย SBolivarLoLรุ่น 0.7.0i★ 1iรันบนเครื่อง
ชื่อใน registryio.github.SBolivarLoL/clover-mcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Clover POS for a single merchant: sales, inventory, orders, customers (reads + safe writes).

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: ร้านค้าออนไลน์และรับเงิน
  • ต้องใส่ค่าเหล่านี้: CLOVER_MERCHANT_ID, CLOVER_ACCESS_TOKEN, CLOVER_REFRESH_TOKEN, CLOVER_OAUTH_CLIENT_SECRET

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

  • ผลตรวจเบื้องต้น: ผ่าน 2 จาก 2 ข้อ
  • รันในเครื่องคุณด้วยสิทธิ์ของผู้ใช้คุณ (ไฟล์ อินเทอร์เน็ต แอปต่าง ๆ)
  • ค่าที่คุณต้องใส่เอง: CLOVER_MERCHANT_ID, CLOVER_ACCESS_TOKEN, CLOVER_REGION, CLOVER_SANDBOX, CLOVER_AUTH_MODE, CLOVER_REFRESH_TOKEN, CLOVER_OAUTH_CLIENT_ID, CLOVER_OAUTH_CLIENT_SECRET

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "clover": {
      "command": "uvx",
      "args": [
        "clover-mcp"
      ],
      "env": {
        "CLOVER_MERCHANT_ID": "ใส่ค่าของคุณ",
        "CLOVER_ACCESS_TOKEN": "ใส่ค่าของคุณ",
        "CLOVER_REGION": "ใส่ค่าของคุณ",
        "CLOVER_SANDBOX": "ใส่ค่าของคุณ",
        "CLOVER_AUTH_MODE": "ใส่ค่าของคุณ",
        "CLOVER_REFRESH_TOKEN": "ใส่ค่าของคุณ",
        "CLOVER_OAUTH_CLIENT_ID": "ใส่ค่าของคุณ",
        "CLOVER_OAUTH_CLIENT_SECRET": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add clover --env CLOVER_MERCHANT_ID='ใส่ค่าของคุณ' --env CLOVER_ACCESS_TOKEN='ใส่ค่าของคุณ' --env CLOVER_REGION='ใส่ค่าของคุณ' --env CLOVER_SANDBOX='ใส่ค่าของคุณ' --env CLOVER_AUTH_MODE='ใส่ค่าของคุณ' --env CLOVER_REFRESH_TOKEN='ใส่ค่าของคุณ' --env CLOVER_OAUTH_CLIENT_ID='ใส่ค่าของคุณ' --env CLOVER_OAUTH_CLIENT_SECRET='ใส่ค่าของคุณ' -- uvx clover-mcp

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "clover": {
      "command": "uvx",
      "args": [
        "clover-mcp"
      ],
      "env": {
        "CLOVER_MERCHANT_ID": "ใส่ค่าของคุณ",
        "CLOVER_ACCESS_TOKEN": "ใส่ค่าของคุณ",
        "CLOVER_REGION": "ใส่ค่าของคุณ",
        "CLOVER_SANDBOX": "ใส่ค่าของคุณ",
        "CLOVER_AUTH_MODE": "ใส่ค่าของคุณ",
        "CLOVER_REFRESH_TOKEN": "ใส่ค่าของคุณ",
        "CLOVER_OAUTH_CLIENT_ID": "ใส่ค่าของคุณ",
        "CLOVER_OAUTH_CLIENT_SECRET": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "clover": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "clover-mcp"
      ],
      "env": {
        "CLOVER_MERCHANT_ID": "ใส่ค่าของคุณ",
        "CLOVER_ACCESS_TOKEN": "ใส่ค่าของคุณ",
        "CLOVER_REGION": "ใส่ค่าของคุณ",
        "CLOVER_SANDBOX": "ใส่ค่าของคุณ",
        "CLOVER_AUTH_MODE": "ใส่ค่าของคุณ",
        "CLOVER_REFRESH_TOKEN": "ใส่ค่าของคุณ",
        "CLOVER_OAUTH_CLIENT_ID": "ใส่ค่าของคุณ",
        "CLOVER_OAUTH_CLIENT_SECRET": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • CLOVER_MERCHANT_ID จำเป็น env
    Clover merchant ID
  • CLOVER_ACCESS_TOKEN ความลับ จำเป็น env
    Clover API access token
  • CLOVER_REGION env
    Clover API region: na | eu | la
  • CLOVER_SANDBOX env
    Use the Clover sandbox host when true
  • CLOVER_AUTH_MODE env
    Auth mode: token | oauth_refresh
  • CLOVER_REFRESH_TOKEN ความลับ env
    OAuth refresh token (oauth_refresh mode)
  • CLOVER_OAUTH_CLIENT_ID env
    OAuth app client ID (oauth_refresh mode)
  • CLOVER_OAUTH_CLIENT_SECRET ความลับ env
    OAuth app client secret (oauth_refresh mode)

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ใช้กับโปรแกรมไหนได้

ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569

ติดตั้งบนเครื่องได้ใน

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

ดูโปรแกรมทั้งหมดพร้อมข้อดีข้อเสีย →

คู่มือที่เกี่ยวข้อง

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 11 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub SBolivarLoL ซึ่งเป็นเจ้าของ repo

  • ✓ ผ่าน

    ยังมีคนดูแล

    มีการแก้โค้ดล่าสุด เดือนที่แล้ว

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

พูดคุย

ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์

ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย

ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx

เข้าสู่ระบบด้วย Google เพื่อโพสต์

รีวิวจากผู้ใช้

ยังไม่มีรีวิว

เข้าสู่ระบบด้วย Google เพื่อเขียนรีวิว

เทียบกับตัวอื่นในหมวด ร้านค้าออนไลน์และรับเงินi

  • ดาวมากกว่า 85% ของอีก 2689 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 14% ของอีก 2689 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 2689 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Clover POS ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 2 จาก 2 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: CLOVER_MERCHANT_ID, CLOVER_ACCESS_TOKEN, CLOVER_REFRESH_TOKEN, CLOVER_OAUTH_CLIENT_SECRET

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด เดือนที่แล้ว และส่งรุ่นล่าสุด (0.7.0) เข้า registry 4 เดือนที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spree Commerce developer docs for AI agents, Stripe MCP, Sessy — Amazon SES observability

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Spree Commerce developer docs for AI agents

Spree Commerce docs for AI coding agents: build headless B2B and marketplace ecommerce on its APIs.

โดย spreeใช้กันมาก★ 15.8K ดาวรวมทั้งรีโปอัปเดต 11 วันที่ผ่านมา

รันบนคลาวด์

Stripe MCP

server ทางการของ Stripe ให้ AI ดูและจัดการลูกค้า สินค้า การชำระเงิน และใบแจ้งหนี้ ต่อผ่านคลาวด์ของ Stripe และล็อกอินแบบ OAuth

โดย stripeใช้กันมาก★ 2.1Kอัปเดต 13 เดือนที่ผ่านมา

รันบนคลาวด์✓ stripe.com

Sessy — Amazon SES observability

Read-only Amazon SES observability: search events, inspect bounces, pull delivery stats.

โดย marckohlbruggeกำลังโต★ 945อัปเดต 3 เดือนที่ผ่านมา

รันบนคลาวด์

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

clover-mcp

MCP server for the Clover POS REST API — gives AI assistants (Claude, Cursor, etc.) read and safe-write access to a Clover merchant's sales, inventory, orders, and customers.

Status: v0.7.0 released; working tree (unreleased) — 56 tools, 6 prompts, both auth modes, 399 tests. Runs locally (stdio, single merchant) or remotely over HTTP with OAuth, single- or multi-tenant (see docs/DEPLOY.md). Endpoint contracts are sandbox-verified in docs/endpoints.md.

⚠️ Independent project — not affiliated with, endorsed by, or sponsored by Clover Network, LLC or Fiserv, Inc. "Clover" is a trademark of its respective owner and is used here only nominatively to describe interoperability. Provided as is, without warranty — see Legal & disclaimer.

What it can do

  • Sales summaries, payment and refund reports
  • Inventory lookups and low-stock alerts
  • Order history and open-order inspection
  • Customer search and creation
  • Employee, shift, role, category, modifier, tax, tender, and device lookups; best-selling items
  • Pricing config lookups: discount catalogue, tip-suggestion presets, default service charge
  • Safe writes: update item prices, set stock quantities, create customers/items/categories/orders, add line items, update customers, rename items, apply order discounts, create modifier groups/modifiers/tags
  • AI tools (reason via your client's model — the server holds no LLM key): sales briefings, reorder suggestions, anomaly detection, category suggestions, customer-message drafts
  • Predefined prompt workflows: daily briefing, weekly sales report, inventory health check, end-of-day closeout, customer lookup, monthly tax summary

What it cannot do (by design): process refunds, capture payments, void charges, delete records. Those stay in the Clover dashboard.

Tools

ToolKindNotes
get_merchant_info / get_merchant_propertiesreadprofile + POS config (banking fields never returned)
get_sales_summaryreadaggregated window (see Sales summary semantics)
get_sales_by_employee / get_tips_by_employee / get_sales_by_hourreademployee attribution, tip-out, and merchant-local daypart reporting (PAYMENTS_R; employee names are best-effort)
list_payments / list_refunds / list_credits / list_tendersreadpayments, refunds, credits, tender types
list_orders / get_order / list_open_orders / list_order_typesreadorder history + detail
list_items / get_item / list_low_stock_itemsreadinventory + stock; get_item(include=[...]) opts in to modifier_groups/tax_rates/categories/tags association detail
list_categories / list_modifiers / list_taxes / list_item_groups / list_attributes / list_tags / list_discountsreadcatalog structure
list_tip_suggestions / get_default_service_chargereadtip presets + service-charge config
list_devices / list_opening_hours / list_cash_eventsreadterminals, hours, cash-drawer log
get_top_itemsreadbest-sellers by units in a window
list_employees / get_employee / list_shifts / list_active_shifts / list_rolesreadPINs never returned (EMPLOYEES_R)
search_customers / get_customerreadcards never returned
whoamireadmulti-tenant identity diagnostic (no secrets)
summarize_sales / inventory_reorder_suggestions / detect_sales_anomalies / suggest_item_categories / draft_customer_messageAIreason via your client's model; read-only suggestions
create_customer / update_customerwritedup-check + dry_run; update confirms via elicitation
create_item / create_category / create_order / add_line_itemwriteguarded: dry_run + confirm before writing
set_item_price_cents / set_item_stock_quantity / update_item_namewriteoptimistic-lock pre-check, bounds, dry_run
apply_order_discountwriteexactly one of percentage / amount_cents / catalogue_discount_id; negates positive amount_cents to Clover's required negative wire value; catalogue path resolves name+value client-side; dry_run preview includes a client-computed line-item subtotal
create_modifier_group / create_modifier / create_tagwritedup-guard (group/tag) or parent pre-check (modifier); guarded: dry_run + confirm before writing

Every tool carries MCP behaviour annotations (readOnlyHint / destructiveHint / idempotentHint) so clients can parallelize reads and prompt before writes.

Install

Published on PyPI — no clone needed:

uvx clover-mcp          # run directly (recommended)

or

pip install clover-mcp # then launch with: clover-mcp

From source (for development):

git clone https://github.com/SBolivarLoL/clover-mcp-server

cd clover-mcp-server uv pip install -e .

Configuration

Copy .env.example to .env and fill in your values:

cp .env.example .env

Required:

VariableDescription
CLOVER_MERCHANT_IDYour Clover merchant ID
CLOVER_ACCESS_TOKENYour Clover API access token

Optional:

VariableDefaultDescription
CLOVER_REGIONnana, eu, or la
CLOVER_SANDBOXfalsetrue to use the Clover sandbox
CLOVER_AUTH_MODEtokentoken or oauth_refresh
CLOVER_READ_ONLYfalseRefuse every write before making a Clover request
CLOVER_WRITE_LIMIT_COUNT10Maximum writes per safety window; 0 disables, negative values are rejected
CLOVER_WRITE_LIMIT_WINDOW_S300Positive write-safety window in seconds
Auth modes
  • `token` — paste a static access token. Works for sandbox and single-merchant production use. If the token expires, regenerate it in the Clover Developer Dashboard.
  • `oauth_refresh` — the server auto-refreshes on expiry and persists the new token pair to CLOVER_TOKEN_STORE (default: ~/.config/clover-mcp/tokens.json, mode 0600). Clover refresh tokens are single-use, so the rotated pair is written back after each refresh. Run scripts/get_sandbox_token.py to obtain tokens — it writes them straight to the store, so you only set CLOVER_AUTH_MODE, CLOVER_OAUTH_CLIENT_ID, CLOVER_OAUTH_CLIENT_SECRET, and CLOVER_MERCHANT_ID in .env (no token values needed). Pasting CLOVER_ACCESS_TOKEN / CLOVER_REFRESH_TOKEN into .env still works as an alternative.

Use a least-privilege token. Grant only the permission scopes the tools you actually use require (see the table below). A read-only deployment needs no *_W scopes at all. Don't reuse a production token in sandbox or vice versa.

Claude Desktop setup

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{

"mcpServers": { "clover": { "command": "uvx", "args": ["clover-mcp"], "env": { "CLOVER_MERCHANT_ID": "your_merchant_id", "CLOVER_ACCESS_TOKEN": "your_token", "CLOVER_REGION": "na" } } } }

Cursor setup

Add to .cursor/mcp.json in your project (or ~/.cursor/mcp.json globally):

{

"mcpServers": { "clover": { "command": "uvx", "args": ["clover-mcp"], "env": { "CLOVER_MERCHANT_ID": "your_merchant_id", "CLOVER_ACCESS_TOKEN": "your_token" } } } }

Required Clover permissions

Your token must have the following Clover permission scopes:

PermissionUsed by
MERCHANT_Rget_merchant_info
ORDERS_Rlist_orders, get_order, list_open_orders
PAYMENTS_Rlist_payments, list_refunds, list_credits, get_sales_summary, get_sales_by_employee, get_tips_by_employee, get_sales_by_hour
ORDERS_R…also get_top_items
INVENTORY_Rlist_items, get_item, list_low_stock_items, list_categories, list_modifiers, list_taxes, list_discounts, list_item_groups, list_attributes, list_tags
INVENTORY_Wset_item_price_cents, set_item_stock_quantity, create_item, create_category, update_item_name, create_modifier_group, create_modifier, create_tag
ORDERS_Wcreate_order, add_line_item, apply_order_discount
CUSTOMERS_Rsearch_customers, get_customer
CUSTOMERS_Wcreate_customer, update_customer
EMPLOYEES_Rlist_employees, get_employee, list_shifts, list_active_shifts, list_roles (optional)
MERCHANT_R…also list_devices, list_tenders, list_order_types, list_opening_hours, list_cash_events, list_tip_suggestions, get_default_service_charge

Read scopes (*_R) are probed at startup; the server warns about any missing ones (it no longer exits — a hosted server must still start) and the affected tools return a 403 when called. EMPLOYEES_R is optional. Write scopes (*_W) are not probed (a probe would mutate data) — a missing write scope surfaces as a 403 the first time you call that tool. Permission changes on a Clover app require the merchant to reinstall the app.

Remote / hosted (v2)

By default this runs locally over stdio for a single merchant. To run it remotely:

  • FastMCP Cloud / Horizon (easiest): deploy with entrypoint server.py:mcp, enable the platform's built-in auth, and set single-merchant Clover env vars. The platform handles OAuth, HTTPS, and transport — no IdP setup, and do not set CLOVER_TRANSPORT/CLOVER_AUTH_* (that path needs an IdP and will fail).
  • Self-host: use server.py:create_server, which makes clover-mcp an OAuth 2.1 resource server (validates your IdP's JWTs, publishes Protected Resource Metadata per RFC 9728, routes by token claim) and refuses to start without an IdP so it can't run open.

Full setup for both in [docs/DEPLOY.md](docs/DEPLOY.md). How SSO/SAML, SCIM, audit, and multi-tenant authorization fit: [docs/enterprise-identity.md](docs/enterprise-identity.md).

Sales summary semantics

get_sales_summary makes the accounting explicit so the LLM can explain it:

  • Gross = sum of result=SUCCESS payment amounts. FAIL/AUTH/uncaptured PRE_AUTH are excluded.
  • Refunds come from the dedicated /refunds endpoint (Clover refunds are separate objects with a positive amount, not negative payments). Voids are counted from voided payments. Both are reported separately (refund_count/refund_amount, void_count) — never netted into payment_count. net_sales = gross_sales - refund_amount.
  • Tips and taxes are broken out as their own line items.
  • Service charges are *not* reported separately: Clover exposes them on the order only as a percentage (no computed amount), and what customers actually paid is already in gross_sales via payment totals.
  • Offline payments are included; a note flags the window when any are present.
  • Currency comes from the merchant record, never defaulted.
  • Windows longer than 90 days are split and concatenated transparently.

Development

uv pip install -e ".[dev]"

pytest ruff check src/ tests/ scripts/ ruff format --check src/ tests/ scripts/ mypy src/clover_mcp/

Correctness eval + latency/load benchmark against a sandbox: uv run python scripts/benchmark.py — methodology, results, and failure analysis in docs/eval.md.

Architecture (diagrams + module map): docs/ARCHITECTURE.md. Run a 5-minute demo: uv run python scripts/demo.py (or the

ตัดมาแค่ช่วงต้น อ่านต่อใน repo