numeral
Calculate sales tax & VAT, record transactions and refunds, manage products and customers.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin numeral_list_transaction_refunds
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"numeral": {
"url": "https://numeral.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://numeral.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (11)
🟢numeral_ping
Health check — verifies the API key works and reports the environment (test/prod), api_version, and server timestamp. Numeral: GET /tax/ping.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢numeral_calculate_tax(customer, order_details, origin_address, metadata)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer": {
"type": "object",
"properties": {
"id": {
"description": "A Numeral customer id (cus_...) for order tracking / exemptions.",
"type": "string"
},
"address": {
"type": "object",
"properties": {
"address_line_1": {
"type": "string",
"description": "Street address, line 1."
},
"address_line_2": {
"description": "Street address, line 2 (optional).",
"type": "string"
},
"address_city": {
"type": "string",
"description": "City."
},
"address_province": {
"type": "string",
"description": "State/province/region — a valid 2-letter ISO 3166-2 subdivision code (e.g. \"CA\")."
},
"address_postal_code": {
"type": "string",
"description": "Postal/ZIP code."
},
"address_country": {
"type": "string",
"description": "Country — a valid ISO 3166-1 alpha-2 code (e.g. \"US\")."
},
"address_type": {
"type": "string",
"enum": [
"shipping",
"billing"
],
"description": "Address type: \"shipping\" for physical goods, \"billing\" for software/digital goods."
}
},
"required": [
"address_line_1",
"address_city",
"address_province",
"address_postal_code",
"address_country",
"address_type"
],
"description": "Customer address (required)."
}
},
"required": [
"address"
],
"description": "Customer details — address is required."
},
"order_details": {
"type": "object",
"properties": {
"customer_currency_code": {
"type": "string",
"description": "Currency code. For API version 2024-09-01: \"USD\" or \"CAD\"."
},
"tax_included_in_amount": {
"type": "boolean",
"description": "Do the line-item amounts already include tax? Typically false for North America."
},
"line_items": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"amount": {
"type": "number",
"description": "Line-item price in the currency's SMALLEST unit (e.g. USD 2000 = $20.00). Tax is calculated against this."
},
"quantity": {
"type": "number",
"description": "Quantity of this product being sold."
},
"reference_product_id": {
"description": "Your product id (required if no product_category).",
"type": "string"
},
"product_category": {
"description": "A tax category from Numeral's taxonomy, e.g. \"GENERAL_MERCHANDISE\", \"SAAS_GENERAL\" (required if no reference_product_id).",
"type": "string"
},
"fallback_product_category": {
"description": "Fallback tax category used when reference_product_id has no matching product in Numeral.",
"type": "string"
},
"reference_line_item_id": {
"description": "Your line-item id (optional; for record keeping).",
"type": "string"
}
},
"required": [
"amount",
"quantity"
]
},
"description": "Order line items (one per product type)."
}
},
"required": [
"customer_currency_code",
"tax_included_in_amount",
"line_items"
],
"description": "Order details."
},
"origin_address": {
"description": "The address a product ships from. Optional on 2024-09-01; required on API version 2025-05-12+.",
"type": "object",
"properties": {
"address_line_1": {
"type": "string",
"description": "Street address, line 1."
},
"address_line_2": {
"description": "Street address, line 2 (optional).",
"type": "string"
},
"address_city": {
"type": "string",
"description": "City."
},
"address_province": {
"type": "string",
"description": "State/province/region — a valid 2-letter ISO 3166-2 subdivision code (e.g. \"CA\")."
},
"address_postal_code": {
"type": "string",
"description": "Postal/ZIP code."
},
"address_country": {
"type": "string",
"description": "Country — a valid ISO 3166-1 alpha-2 code (e.g. \"US\")."
}
},
"required": [
"address_line_1",
"address_city",
"address_province",
"address_postal_code",
"address_country"
]
},
"metadata": {
"description": "Arbitrary string key/value metadata.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"customer",
"order_details"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢numeral_get_transaction(transaction_id)
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}.
Eingabe-Schema
{
"type": "object",
"properties": {
"transaction_id": {
"type": "string",
"description": "The Numeral transaction id (tr_...)."
}
},
"required": [
"transaction_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢numeral_list_transaction_refunds(transaction_id)
List all refunds recorded against a transaction. Returns {refunds:[...]}. Numeral: GET /tax/transactions/{transaction_id}/refunds.
Eingabe-Schema
{
"type": "object",
"properties": {
"transaction_id": {
"type": "string",
"description": "The Numeral transaction id (tr_...)."
}
},
"required": [
"transaction_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢numeral_list_products(cursor)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"cursor": {
"description": "Pagination cursor — pass the last_product_id from the previous page.",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢numeral_get_product(reference_product_id)
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}.
Eingabe-Schema
{
"type": "object",
"properties": {
"reference_product_id": {
"type": "string",
"description": "Your product id (the reference_product_id used when the product was created)."
}
},
"required": [
"reference_product_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢numeral_get_customer(customer_id, id_type)
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}.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_id": {
"type": "string",
"description": "The customer id — a Numeral id (cus_...) by default, or your reference id when id_type=\"reference\"."
},
"id_type": {
"description": "Which id space `customer_id` is in (default: numeral).",
"type": "string",
"enum": [
"numeral",
"reference"
]
}
},
"required": [
"customer_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴numeral_create_transaction(calculation_id, reference_order_id, transaction_processed_at, metadata)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"calculation_id": {
"type": "string",
"description": "The calculation id returned by numeral_calculate_tax."
},
"reference_order_id": {
"type": "string",
"description": "Your order id for this sale (used for record keeping / dedupe)."
},
"transaction_processed_at": {
"description": "Unix timestamp (SECONDS) the sale was processed. Defaults to now if omitted.",
"type": "number"
},
"metadata": {
"description": "Arbitrary string key/value metadata.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"calculation_id",
"reference_order_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴numeral_create_refund(transaction_id, type, refund_processed_at, line_items)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"transaction_id": {
"type": "string",
"description": "The transaction id (tr_...) to refund."
},
"type": {
"type": "string",
"enum": [
"full",
"partial"
],
"description": "\"full\" refunds the whole transaction; \"partial\" requires line_items."
},
"refund_processed_at": {
"description": "Unix timestamp (SECONDS) the refund was made. Defaults to now if omitted.",
"type": "number"
},
"line_items": {
"description": "Required for type=\"partial\": the line items to refund.",
"type": "array",
"items": {
"type": "object",
"properties": {
"reference_product_id": {
"type": "string",
"description": "Product id to apply the refund against (matches the original transaction line item)."
},
"reference_line_item_id": {
"description": "Your line-item id (optional; for reporting).",
"type": "string"
},
"sales_amount_refunded": {
"description": "Sale amount refunded for this line, in the currency's smallest unit (cents).",
"type": "number"
}
},
"required": [
"reference_product_id"
]
}
}
},
"required": [
"transaction_id",
"type"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴numeral_create_product(reference_product_id, reference_product_name, product_category)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"reference_product_id": {
"type": "string",
"description": "Your product id (used to reference this product in calculations)."
},
"reference_product_name": {
"type": "string",
"description": "Human-readable product name."
},
"product_category": {
"type": "string",
"description": "A tax category from Numeral's taxonomy, e.g. \"GENERAL_MERCHANDISE\", \"SAAS_GENERAL\"."
}
},
"required": [
"reference_product_id",
"reference_product_name",
"product_category"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴numeral_create_customer(email, name, is_tax_exempt, reference_customer_id)
CREATES a customer record — this WRITES to your Numeral customer list (used for order tracking and tax exemptions). Numeral: POST /tax/customers.
Eingabe-Schema
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Customer email (required)."
},
"name": {
"description": "Customer name.",
"type": "string"
},
"is_tax_exempt": {
"description": "Whether this customer is tax exempt.",
"type": "boolean"
},
"reference_customer_id": {
"description": "Your own id for this customer (for reference-based lookups).",
"type": "string"
}
},
"required": [
"email"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Empfohlene Prompts
numeral_get_transactionnumeral_get_transactionnumeral_list_transaction_refundsnumeral_list_transaction_refundsnumeral_list_transaction_refundsnumeral_get_transactionCommunity
Nachweis