Skip to main content
Glama
KiezelPay Sales MCP

KiezelPay Sales MCP

by skusVV

KiezelPay Sales MCP

An MCP client + server that lets you talk to your KiezelPay merchant sales data in natural language. Claude picks which reporting call to make, your products become attachable context, and common analyses are one-word commands.

The read-only KiezelPay merchant reporting API is wrapped as:

  • Tools (Claude calls these autonomously)

    • get_sales_summary - balance, totals, active trials, next/previous payout

    • get_sales_today / get_sales_yesterday - your sales vs. the best merchant + your rank (optional platform)

    • get_purchase_history - recent individual purchases (limit, platform, sort)

    • list_products - distinct product names, derived from history

    • get_product_sales - aggregated stats for one product

  • Resources - your products (derived by aggregating the product field across purchase history)

    • kpay://products - list of product names

    • kpay://products/{product} - one product's aggregate (count, revenue*, countries, platforms, first/last sale)

  • Prompts - one-word analyses

    • /analyze-product <product> - performance deep-dive

    • /trend-product <product> - trajectory over the available history window

    • /predict-product <product> - near-term estimate (a heuristic extrapolation, not a statistical forecast)

    • /sales-report - overall executive summary

* revenue is included only if the history records carry a price field.

Prerequisites

  • Python 3.10+

  • An Anthropic API key (for the chat host)

  • A KiezelPay merchant API key - get it at https://kiezelpay.com/account/api

    • The public test key 0123456789abcdef0123456789abcdef works for summary/today/yesterday, but not /history, so products and the product prompts need a real key.

Related MCP server: Amazon Ads Manager MCP Server

Setup

1. Configure environment variables

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

ANTHROPIC_API_KEY=""          # your Anthropic API key
CLAUDE_MODEL="claude-sonnet-5"
KIEZELPAY_API_KEY=""          # your KiezelPay merchant key
USE_UV="1"

The KiezelPay key is used only by the MCP server, is read from the environment, and is never returned to the model or printed. .env is gitignored.

2. Install dependencies

Using uv (recommended):

uv venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
uv pip install -e .

Or without uv:

python -m venv .venv
source .venv/bin/activate
pip install anthropic python-dotenv prompt-toolkit "mcp[cli]>=1.8.0" "httpx>=0.27.0"

3. Run the chat host

uv run main.py     # or: python main.py

Usage

Chat naturally - Claude will call the right tools:

> How did sales go today, and what's my current balance?
> Which products sold the most in the last 200 purchases?

Attach a product as context with @ (Tab to autocomplete):

> How is @RadPro doing lately?

Run an analysis prompt with / (Tab to autocomplete):

> /analyze-product RadPro
> /trend-product RadPro
> /predict-product RadPro
> /sales-report

Use from Claude Desktop / Claude Code

The server speaks stdio, so any MCP host can run it. Example Claude Desktop entry:

{
  "mcpServers": {
    "kiezelpay": {
      "command": "uv",
      "args": ["run", "mcp_server.py"],
      "cwd": "/absolute/path/to/kiezelpay-mcp",
      "env": { "KIEZELPAY_API_KEY": "your_key_here" }
    }
  }
}

Project layout

File

Role

mcp_server.py

KiezelPay Sales MCP server (tools, product resources, prompts)

kpay_api.py

Thin async HTTP client for the KiezelPay merchant API + product aggregation

mcp_client.py

Generic MCP client + a small test harness (uv run mcp_client.py)

main.py

CLI chat host entry point

core/

Chat host internals (Claude wrapper, chat loop, tool manager, CLI I/O)

Notes & caveats

  • The API is read-only; this MCP never mutates anything.

  • Products are derived from history, so the catalog only reflects the fetched window (CATALOG_LIMIT in mcp_server.py, default 200). Raise it for a longer catalog.

  • /predict-product is a reasoning-based estimate over past patterns, not a real forecast.

  • If today/yesterday day boundaries look off, adjust the timezone offset in kpay_api.py (tz_offset_minutes()).

Available Tools

6 tools
get_product_salesA

Get aggregated sales for a single product derived from purchase history: purchase count, first/last sale, and breakdowns by country, platform, and trigger. Includes revenue if the history records carry a price.

Inputs: product (required), limit.

get_purchase_historyA

Get recent individual purchases. Each record includes paidDate, product, productId, country, platform, device, gross totalAmount, net amountToPayOut, status, and isRefunded. Use for detailed, purchase-level questions.

Inputs: sort, limit, platform.

get_sales_summaryA

Get the KiezelPay account sales summary: current balance, total purchases, total income, active trials, total paid out, and next/previous payout details.

Inputs: no named parameters.

get_sales_todayA

Get today's sales: your number of purchases, revenue (amount), and your rank among KiezelPay merchants for the day. Uses the local timezone for the day boundary.

Inputs: platform.

get_sales_yesterdayA

Get yesterday's sales: your number of purchases, revenue (amount), and your rank among KiezelPay merchants for the day. Uses the local timezone for the day boundary.

Inputs: platform.

list_productsA

List the distinct product names sold recently, derived from purchase history. Use this to discover which products exist before analyzing one.

Inputs: limit.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.4/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool targets a distinct aspect of sales data: products, account summary, daily stats, raw purchases, and product-level aggregates. The only close pair, get_sales_today and get_sales_yesterday, are clearly separated by the day in their names and descriptions.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern (list_products, get_sales_summary, get_sales_today, get_sales_yesterday, get_purchase_history, get_product_sales). The mix of 'list' and 'get' is standard and predictable, with no camelCase or chaotic variations.

    Tool Count5/5

    Six tools is well-scoped for a sales-focused MCP server. Each tool covers a distinct need without redundancy, making the set feel intentional and manageable.

    Completeness4/5

    The tool surface covers the core sales questions: summary, daily performance, raw history, product listing, and per-product breakdowns. Minor gaps exist, such as no arbitrary date-range sales tool or explicit trial/refund analytics, but these can be worked around via purchase history and product sales.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      F
      maintenance
      A production-ready MCP server that transforms natural language into safe, executable SQL queries with multi-database support and intelligent schema analysis.
      1
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      A read-only MCP server that enables restaurant staff to query Veloce POS data using natural language, supporting sales summaries, payment breakdowns, and weekly reports.
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that exposes a LangChain agent with short-term memory to analyze real e-commerce data through predefined SQL tools, enabling natural language queries on sales, customers, and logistics.
      -