MCP 服务器

rate-card

io.github.theluckystrike/rate-card
商业与运营 公开且可连接 MCP 2026-07-28

此 MCP 可以做什么

Maintains dated labour rates and product price catalogues, retrieves prices, and resolves catalogue lines for invoices and quotes.

catalogue_report
Report the catalogue
Report the catalogue as at date: how many SKUs there are, how many price rows are in force, which rows a later row already replaces, and which SKUs carry no price in the profile's default currency. Reads only. Pro.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'date': {'type': 'string', 'maxLength': 10, 'description': 'The day the report is in force, YYYY-MM-DD. Default today'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum rows listed in each section, default and ceiling 500'}}, 'additionalProperties': False}
license_activate
Activate license
Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': 'License key from checkout, MCPL1.<payload>.<signature>'}}, 'additionalProperties': False}
license_status
License status
Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
lines_resolve
Price lines from the catalogue
Turn a list of sku or role lines into invoice_create-ready and quote_create-ready items priced from the catalogue as of each line's date. An unknown code is refused by name and never priced. Free.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['lines'], 'properties': {'date': {'type': 'string', 'maxLength': 10, 'description': 'The day the whole list is priced as of, YYYY-MM-DD. Default today'}, 'tier': {'type': 'string', 'maxLength': 40, 'description': 'Price tier for every line. Default standard'}, 'lines': {'type': 'array', 'items': {'type': 'object', 'properties': {'sku': {'type': 'string', 'maxLength': 200, 'description': 'A catalogue code or product name. One of sku or role, never both'}, 'date': {'type': 'string', 'maxLength': 10, 'description': "The day this line is priced as of, YYYY-MM-DD. Overrides the call's date"}, 'role': {'type': 'string', 'maxLength': 64, 'description': 'A rate card role. One of sku or role, never both'}, 'tier': {'type': 'string', 'maxLength': 40, 'description': "Price tier for this line. Overrides the call's tier"}, 'hours': {'type': 'number', 'maximum': 100000, 'description': 'Hours worked, for a role line', 'exclusiveMinimum': 0}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': "Overrides the call's currency for this line. Every line on one payload must agree"}, 'quantity': {'type': 'number', 'maximum': 1000000, 'description': 'How many, for a sku line', 'exclusiveMinimum': 0}, 'description': {'type': 'string', 'maxLength': 2000, 'description': "Override the catalogue name on the customer's document"}}, 'additionalProperties': False}, 'maxItems': 200, 'minItems': 1, 'description': 'The lines to price, each a sku with a quantity or a role with hours'}, 'client': {'type': 'string', 'maxLength': 200, 'description': 'Client name or id, copied into both payloads. invoice_create and quote_create both need one'}, 'currency': {'$ref': '#/properties/lines/items/properties/currency', 'description': "The currency for every line. Defaults to the shared business profile's"}, 'tax_rate': {'type': 'number', 'maximum': 1000, 'minimum': 0, 'description': 'VAT percent for lines whose SKU carries no rate of its own, overriding the shared profile'}}, 'additionalProperties': False}
price_list_pdf
The price list as an HTML document (print to PDF)
Call this tool to render the price list for one currency and tier as an A4 HTML document laid out for print-to-PDF (this hosted endpoint has no PDF renderer) and return a download link valid for one hour: every SKU with its unit, its price in force and the day that price started. Pro.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'date': {'type': 'string', 'maxLength': 10, 'description': 'The day the list is in force, YYYY-MM-DD. Default today'}, 'tier': {'type': 'string', 'maxLength': 40, 'description': 'One tier. Default standard'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': "Defaults to the shared business profile's currency"}, 'out_path': {'type': 'string', 'maxLength': 1000, 'description': 'Name for the downloaded file, e.g. trade-prices-april. Defaults to price-list-<currency>-<tier>-<date>; the list comes back as a download link valid for one hour'}}, 'additionalProperties': False}
price_list_text
The price list as plain text
Print the price list as plain text: every SKU with its unit, the price in force on a date and any later price booked, then the labour rate cards, under your business name. Also a .txt download link valid one hour. Free; price_list_pdf writes the A4 page.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'date': {'type': 'string', 'maxLength': 10, 'description': 'The day the list is in force, YYYY-MM-DD. Default today'}, 'tier': {'type': 'string', 'maxLength': 40, 'description': 'One tier, or omit for standard. Pass all for every tier, which is Pro'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': "Defaults to the shared business profile's currency"}}, 'additionalProperties': False}
rate_get
The hourly rate on a date
Show the hourly rate for a role as of a date and currency: the row picked is the latest valid_from at or before that date, and the answer names it. With no role given, lists every card. Free.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'date': {'type': 'string', 'maxLength': 10, 'description': 'The day the rate is wanted for, YYYY-MM-DD. Default today'}, 'role': {'type': 'string', 'maxLength': 64, 'description': 'The role, e.g. senior developer. Omit to list every rate card'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': "Defaults to the shared business profile's currency"}}, 'additionalProperties': False}
rate_set
Set a labour rate
Set the hourly charge-out rate on a labour card: role, currency, hourly_minor in whole MINOR units and the day it starts. The same role, currency and date REPLACES that row rather than adding one. Free.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['role', 'hourly_minor'], 'properties': {'sku': {'type': 'string', 'maxLength': 64, 'description': "A catalogue code this role bills under, so a resolved hours line carries the SKU's name and VAT rate"}, 'note': {'type': 'string', 'maxLength': 2000}, 'role': {'type': 'string', 'maxLength': 64, 'description': 'The role charged for, e.g. senior developer. Lower case, this is what an hours line is priced from'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': "ISO code this rate is in. Defaults to the shared business profile's currency"}, 'valid_from': {'type': 'string', 'maxLength': 10, 'description': 'The first day this rate applies, YYYY-MM-DD. Default today'}, 'hourly_minor': {'type': 'integer', 'maximum': 1000000000000, 'minimum': 0, 'description': 'The hourly rate in whole minor units. 8500 is EUR 85.00 an hour. Never a decimal'}}, 'additionalProperties': False}
sku_delete
Delete an unused SKU
Delete a catalogue line no rate card points at and that never priced a resolved line, freeing a free-tier slot. Otherwise it is refused, naming what depends on it: reprice it to withdraw it instead.
可能执行破坏性操作
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sku'], 'properties': {'sku': {'type': 'string', 'maxLength': 200, 'description': 'The SKU code, e.g. WEB-AUDIT, or the product name when only one product carries it'}}, 'additionalProperties': False}
sku_get
The price of one SKU on a date
Show the price of one SKU as of a date, in one currency and tier: the row picked is the latest valid_from at or before that date, and the answer names the row and any later one already booked. Free.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sku'], 'properties': {'sku': {'type': 'string', 'maxLength': 200, 'description': 'The SKU code, e.g. WEB-AUDIT, or the product name when only one product carries it'}, 'date': {'type': 'string', 'maxLength': 10, 'description': 'The day the price is wanted for, YYYY-MM-DD. Default today'}, 'tier': {'type': 'string', 'maxLength': 40, 'description': 'Price tier. Default standard'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': "Defaults to the shared business profile's currency"}}, 'additionalProperties': False}
sku_list
List the catalogue
List catalogue lines with the price in force today, filtered by code prefix, by currency and by tier. A SKU with no price in that currency and tier is listed and said to have none. Free.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'date': {'type': 'string', 'maxLength': 10, 'description': 'Show the price in force on this day instead of today, YYYY-MM-DD'}, 'tier': {'type': 'string', 'maxLength': 40, 'description': 'Price tier. Default standard'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum rows returned, default and ceiling 500'}, 'prefix': {'type': 'string', 'maxLength': 64, 'description': 'Only codes starting with this, e.g. HOST- for every hosting line'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': "The currency the price in force is shown in. Defaults to the profile's"}}, 'additionalProperties': False}
sku_set
Add or reprice a SKU
Add a catalogue line or reprice one: a code, a name, a unit, an optional VAT rate, and price_minor in whole minor units for one currency, tier and valid_from. A repriced line keeps its old rows. Free: 25 SKUs, one tier.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sku', 'name', 'price_minor'], 'properties': {'sku': {'type': 'string', 'maxLength': 64, 'description': 'The code, e.g. WEB-AUDIT. Upper case, no spaces. This is what an invoice line is filed under'}, 'name': {'type': 'string', 'maxLength': 200, 'description': "What it is on the customer's document, e.g. Website audit"}, 'note': {'type': 'string', 'maxLength': 2000}, 'tier': {'type': 'string', 'maxLength': 40, 'description': 'Price tier, e.g. trade or list. Default standard. A second tier is Pro'}, 'unit': {'type': 'string', 'maxLength': 40, 'description': 'What one of it is: each, hour, month, 1000 words. Default each. Required the first time'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': "ISO code this price is in. Defaults to the shared business profile's currency"}, 'vat_rate': {'type': 'number', 'maximum': 1000, 'minimum': 0, 'description': "VAT percent for this product, overriding the shared profile's default on a resolved line"}, 'valid_from': {'type': 'string', 'maxLength': 10, 'description': 'The first day this price applies, YYYY-MM-DD. Default today'}, 'price_minor': {'type': 'integer', 'maximum': 1000000000000, 'minimum': 0, 'description': 'The price of ONE, in whole minor units. 45000 is EUR 450.00. Never a decimal'}, 'duplicate_ok': {'type': 'boolean', 'description': 'Add it even though another code already carries the same product at the same price. Default false'}}, 'additionalProperties': False}
已添加
license_activate
2026年9月24日 02:40
已添加
license_status
2026年9月24日 02:40
已添加
catalogue_report
2026年9月24日 02:40
已添加
price_list_pdf
2026年9月24日 02:40
已添加
price_list_text
2026年9月24日 02:40
已添加
lines_resolve
2026年9月24日 02:40
已添加
rate_get
2026年9月24日 02:40
已添加
rate_set
2026年9月24日 02:40
已添加
sku_delete
2026年9月24日 02:40
已添加
sku_list
2026年9月24日 02:40
已添加
sku_get
2026年9月24日 02:40
已添加
sku_set
2026年9月24日 02:40