Skip to content

Numeral MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi

Calculate sales tax & VAT, record transactions and refunds, manage products and customers.

Deletes · 4Changes · 1

11 tools: 4 can delete or cancel things, 1 change things and 6 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http numeral https://numeral.usefulapi.io/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

11 tools

Deletes or cancels 4Claude Code: deny
  • numeral_create_customerCREATES a customer record — this WRITES to your Numeral customer list (used for order tracking and tax exemptions).No findings

    Why it is in this group

    • The name "numeral_create_customer" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    CREATES a customer record — this WRITES to your Numeral customer list (used for order tracking and tax exemptions). Numeral: POST /tax/customers.

    Annotations the server declares

    • title: Create customer
    • destructiveHint: true
  • numeral_create_productCREATES (or upserts) a product with its tax category — this WRITES to your Numeral product catalog, which drives future tax calculations.No findings

    Why it is in this group

    • The name "numeral_create_product" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    CREATES (or upserts) a product with its tax category — this WRITES to your Numeral product catalog, which drives future tax calculations. Numeral: POST /tax/products.

    Annotations the server declares

    • title: Create product
    • destructiveHint: true
  • numeral_create_refundRECORDS a refund against a transaction — this WRITES a live tax/compliance record (adjusts tax owed).No findings

    Why it is in this group

    • The name "numeral_create_refund" says "create": a word for a change.
    • The name "numeral_create_refund" also says "refund": a word that usually means money moves, which cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    RECORDS a refund against a transaction — this WRITES a live tax/compliance record (adjusts tax owed). Use type="full" to refund the whole transaction, or type="partial" with line_items (each keyed by reference_product_id) for a partial refund. Numeral: POST /tax/refunds.

    Annotations the server declares

    • title: Create refund
    • destructiveHint: true
  • numeral_create_transactionRECORDS a completed sale as a transaction — this WRITES a live tax/compliance record used for filings.No findings

    Why it is in this group

    • The name "numeral_create_transaction" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    RECORDS a completed sale as a transaction — this WRITES a live tax/compliance record used for filings. Supply the `calculation_id` returned by numeral_calculate_tax and your `reference_order_id`. Numeral: POST /tax/transactions.

    Annotations the server declares

    • title: Create transaction
    • destructiveHint: true
Changes things 1Claude Code: ask
  • numeral_calculate_taxCalculate sales tax / VAT for an order — a STATELESS quote that persists nothing (record it later with numeral_create_transaction using the returned calculation id).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Calculate sales tax / VAT for an order — a STATELESS quote that persists nothing (record it later with numeral_create_transaction using the returned calculation id). Returns per-jurisdiction rates, total_tax_amount, and totals. Provide a customer address and one or more line items (each needs reference_product_id OR product_category). Amounts are in the currency's smallest unit (cents). Numeral: POST /tax/calculations.

    Annotations the server declares

    • title: Calculate tax
    • readOnlyHint: true
Only reads 6Claude Code: allow
  • numeral_get_customerGet a customer by id.No findings

    Why it is in this group

    • The name "numeral_get_customer" says "get": a word for reading.
    Description, as the server wrote it
    Get a customer by id. By default `customer_id` is the Numeral id (cus_...); set id_type to "reference" to look up by your own reference_customer_id. Returns name, email, and tax-exempt status. Numeral: GET /tax/customers/{customer_id}.

    Annotations the server declares

    • title: Get customer
    • readOnlyHint: true
  • numeral_get_productGet a single product by its reference_product_id (your id).No findings

    Why it is in this group

    • The name "numeral_get_product" says "get": a word for reading.
    Description, as the server wrote it
    Get a single product by its reference_product_id (your id). Returns the product's name, product_category, and timestamps. Numeral: GET /tax/products/{reference_product_id}.

    Annotations the server declares

    • title: Get product
    • readOnlyHint: true
  • numeral_get_transactionGet a recorded transaction by its Numeral id (tr_...).No findings

    Why it is in this group

    • The name "numeral_get_transaction" says "get": a word for reading.
    Description, as the server wrote it
    Get a recorded transaction by its Numeral id (tr_...). Returns the transaction with its line items, currencies, and metadata. Numeral: GET /tax/transactions/{transaction_id}.

    Annotations the server declares

    • title: Get transaction
    • readOnlyHint: true
  • numeral_list_productsList your Numeral products (up to 50 per page), each with its reference id, name, and product_category.No findings

    Why it is in this group

    • The name "numeral_list_products" says "list": a word for reading.
    Description, as the server wrote it
    List your Numeral products (up to 50 per page), each with its reference id, name, and product_category. Use `cursor` (the last_product_id from a previous page) to paginate; has_more indicates more pages. Numeral: GET /tax/products.

    Annotations the server declares

    • title: List products
    • readOnlyHint: true
  • numeral_list_transaction_refundsList all refunds recorded against a transaction.No findings

    Why it is in this group

    • The name "numeral_list_transaction_refunds" says "list": a word for reading.
    Description, as the server wrote it
    List all refunds recorded against a transaction. Returns {refunds:[...]}. Numeral: GET /tax/transactions/{transaction_id}/refunds.

    Annotations the server declares

    • title: List transaction refunds
    • readOnlyHint: true
  • numeral_pingHealth check — verifies the API key works and reports the environment (test/prod), api_version, and server timestamp.No findings

    Why it is in this group

    • The name "numeral_ping" says "ping": a word for reading.
    Description, as the server wrote it
    Health check — verifies the API key works and reports the environment (test/prod), api_version, and server timestamp. Numeral: GET /tax/ping.

    Annotations the server declares

    • title: Ping (health check)
    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.16.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http numeral https://numeral.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__numeral__numeral_ping",
      "mcp__numeral__numeral_get_transaction",
      "mcp__numeral__numeral_list_transaction_refunds",
      "mcp__numeral__numeral_list_products",
      "mcp__numeral__numeral_get_product",
      "mcp__numeral__numeral_get_customer"
    ],
    "ask": [
      "mcp__numeral__numeral_calculate_tax"
    ],
    "deny": [
      "mcp__numeral__numeral_create_transaction",
      "mcp__numeral__numeral_create_refund",
      "mcp__numeral__numeral_create_product",
      "mcp__numeral__numeral_create_customer"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as numeral. Review it before you use it.