numeral
Calculate sales tax & VAT, record transactions and refunds, manage products and customers.
使うべきか
品質と安全性
検出事項(1)
- LOWnumeral_list_transaction_refunds 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"numeral": {
"url": "https://numeral.usefulapi.io/mcp"
}
}
}リモートエンドポイント
https://numeral.usefulapi.io/mcpstreamable-httpできること
ツール一覧
ツール(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.
入力スキーマ
{
"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.
入力スキーマ
{
"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}.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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}.
入力スキーマ
{
"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}.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"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#"
}推奨プロンプト
numeral_get_transactionnumeral_get_transactionnumeral_list_transaction_refundsnumeral_list_transaction_refundsnumeral_list_transaction_refundsnumeral_get_transactionコミュニティ
エビデンス