MCP 服务器

purchase-order

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

此 MCP 可以做什么

Creates and manages supplier purchase orders, receipts, credit notes, delivery tracking, PDF documents, and plain-text order summaries.

billing_docs_report
Credited money and open orders
Over a date range: what was credited back per currency and against how many invoices, what is still on order per currency, and every open order past its delivery date with days late. Pro; the list tools are free.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'to': {'type': 'string', 'description': 'YYYY-MM-DD, latest document date to count'}, 'from': {'type': 'string', 'description': 'YYYY-MM-DD, earliest document date to count'}}, 'additionalProperties': False}
credit_note_create
Credit an invoice
Credit one invoice: the whole invoice, a GROSS amount_minor split over its VAT rates, or named lines. Amounts store negative, reusing the invoice's own rates. Free: 5 a month. Send it with credit_note_text.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['invoice', 'reason'], 'properties': {'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['line'], 'properties': {'line': {'type': 'integer', 'description': '1-based position of the line on the invoice, as shown by invoice_get', 'exclusiveMinimum': 0}, 'quantity': {'type': 'number', 'maximum': 1000000000000, 'minimum': -1000000000000, 'description': 'Credit only this many units. Defaults to the whole line', 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'maxItems': 200, 'minItems': 1, 'description': 'Credit only these invoice lines. Leave out with amount_minor for a full credit note'}, 'notes': {'type': 'string', 'maxLength': 10000, 'description': 'Free text printed under the totals'}, 'reason': {'type': 'string', 'maxLength': 1000, 'minLength': 1, 'description': 'Why the money is being given back, e.g. "returned goods" or "billed twice". Printed on the document'}, 'invoice': {'type': 'string', 'minLength': 1, 'description': 'The invoice number to credit, e.g. INV-2026-0001'}, 'issue_date': {'type': 'string', 'description': "YYYY-MM-DD, defaults to today in your business profile's timezone"}, 'amount_minor': {'type': 'integer', 'maximum': 1000000000000, 'description': "Credit this GROSS amount, VAT included, in minor units. Split across the invoice's VAT rates in proportion to each rate's share of the total", 'exclusiveMinimum': 0}}, 'additionalProperties': False}
credit_note_delete
Delete a credit note
Remove one credit note never posted to its invoice and never rendered, freeing that month's slot; the invoice becomes creditable again. One with a dependent is refused: issue a fresh note to reverse a sent one.
可能执行破坏性操作
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Credit note id such as CN-2026-0001, or an exact client name'}}, 'additionalProperties': False}
credit_note_get
Show one credit note
Return one credit note in full by id or exact client name: every negated line, VAT lines, totals, the reason, and the invoice number and date it reverses. Reads only. Use credit_note_list for the ids.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Credit note id such as CN-2026-0001, or an exact client name'}}, 'additionalProperties': False}
credit_note_list
List credit notes
List credit notes newest first: id, invoice, client, basis, reason, currency and the NEGATIVE total, with the amount credited per currency. Filter by invoice, client or issue date range.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'to': {'type': 'string', 'description': 'YYYY-MM-DD, latest issue date'}, 'from': {'type': 'string', 'description': 'YYYY-MM-DD, earliest issue date'}, 'client': {'type': 'string', 'description': 'Only credit notes for clients whose name contains this text'}, 'invoice': {'type': 'string', 'description': 'Only credit notes issued against this invoice number'}}, 'additionalProperties': False}
credit_note_pdf
Render the credit note as a PDF
Call this tool to render one credit note as an A4 print-ready document and return a download link valid for one hour: the invoice layout titled CREDIT NOTE, with the invoice it reverses. Pro.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Credit note id such as CN-2026-0001'}, 'out_path': {'type': 'string', 'description': 'Name for the downloaded file, e.g. acme-credit. Defaults to the document id; the document comes back as a download link valid for one hour'}}, 'additionalProperties': False}
credit_note_text
Plain-text credit note to paste into email
Turn a credit note into a plain-text summary to paste into an email: the negated line table, VAT lines, total, reason, and what now comes off the invoice. Also a .txt download link valid one hour. Free; credit_note_pdf writes the A4 document.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Credit note id such as CN-2026-0001'}, 'greeting': {'type': 'string', 'description': 'Opening line, default "Hello" plus the client name'}, 'sign_off': {'type': 'string', 'description': 'Closing line, default your business name from the shared profile'}}, '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': {}}
purchase_order_create
Raise a purchase order
Raise a purchase order to a supplier from items and return its PO number and totals. unit_price is in MAJOR units; currency, VAT and the buyer block come from the shared profile. Free: 5 documents a calendar month.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['supplier', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'quantity', 'unit_price_minor'], 'properties': {'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': "Only to state the line's currency; every line on one document must agree"}, 'quantity': {'type': 'number', 'maximum': 1000000000000, 'minimum': -1000000000000, 'description': 'Units ordered, must be greater than zero', 'exclusiveMinimum': 0}, 'tax_rate': {'type': 'number', 'maximum': 1000, 'minimum': 0, 'description': 'VAT percent for this line, overrides the business default'}, 'description': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'every line needs a description, 500 characters or fewer'}, 'unit_price_minor': {'type': 'integer', 'maximum': 1000000000000, 'minimum': 0, 'description': 'Price per unit in MINOR units: 9000 = 90.00 EUR, 90 = JPY 90. Never a decimal'}}, 'additionalProperties': False}, 'maxItems': 200, 'minItems': 1, 'description': 'What is being ordered'}, 'notes': {'type': 'string', 'maxLength': 10000, 'description': 'Free text printed under the totals, e.g. delivery address or terms'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'description': 'Defaults to your business default currency'}, 'supplier': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Supplier name or client id. A name the invoice server already knows brings its address, email and VAT id onto the order'}, 'tax_rate': {'type': 'number', 'maximum': 1000, 'minimum': 0, 'description': 'VAT percent for lines with no rate of their own. Defaults to the business default'}, 'issue_date': {'type': 'string', 'description': "YYYY-MM-DD, defaults to today in your business profile's timezone"}, 'supplier_email': {'type': 'string', 'maxLength': 320, 'description': "Only if the user gave it; otherwise the stored client's email is used"}, 'supplier_vat_id': {'type': 'string', 'maxLength': 64, 'description': 'Supplier VAT / tax registration id'}, 'discount_percent': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Discount applied to every line, in percent'}, 'supplier_address': {'type': 'string', 'maxLength': 2000, 'description': 'Postal address for the SUPPLIER block, newlines allowed'}, 'expected_delivery_date': {'type': 'string', 'description': 'YYYY-MM-DD, when the goods or work are due'}}, 'additionalProperties': False}
purchase_order_delete
Delete a purchase order
Remove one purchase order with nothing received and never rendered, freeing that month's slot. One with a receipt is refused, naming it. The PO number is never reissued. purchase_order_receive logs arrivals.
可能执行破坏性操作
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Purchase order id such as PO-2026-0001, or an exact supplier name'}}, 'additionalProperties': False}
purchase_order_get
Show one purchase order
Return one purchase order in full by id or exact supplier name: buyer and supplier blocks, every line with unit price and VAT, totals, the delivery date, status and every receipt with its date and note.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Purchase order id such as PO-2026-0001, or an exact supplier name'}}, 'additionalProperties': False}
purchase_order_list
List purchase orders
List purchase orders newest first: id, supplier, order and expected delivery dates, status open, partially_received or received, currency, total and received date. Filter by status, supplier or date range.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'to': {'type': 'string', 'description': 'YYYY-MM-DD, latest order date'}, 'from': {'type': 'string', 'description': 'YYYY-MM-DD, earliest order date'}, 'status': {'enum': ['open', 'partially_received', 'received', 'all'], 'type': 'string', 'description': 'Default "all"'}, 'supplier': {'type': 'string', 'description': 'Only orders to suppliers whose name contains this text'}}, 'additionalProperties': False}
purchase_order_pdf
Render the purchase order as a PDF
Call this tool to render one purchase order as an A4 print-ready document and return a download link valid for one hour: the invoice layout titled PURCHASE ORDER, with the buyer and supplier. Pro.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Purchase order id such as PO-2026-0001'}, 'out_path': {'type': 'string', 'description': 'Name for the downloaded file, e.g. acme-credit. Defaults to the document id; the document comes back as a download link valid for one hour'}}, 'additionalProperties': False}
purchase_order_receive
Mark a purchase order received
Record that an order arrived. partial keeps it open and can be repeated, each receipt kept with its date and note; a full receipt closes it. An order already received, or a date before the order date, is refused.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Purchase order id such as PO-2026-0001'}, 'date': {'type': 'string', 'description': 'YYYY-MM-DD, defaults to today'}, 'note': {'type': 'string', 'maxLength': 10000, 'description': 'What arrived, e.g. "8 of 10 units, 2 back-ordered"'}, 'partial': {'type': 'boolean', 'description': 'True when only some of the order arrived. The order stays open and can be received again. Default false'}}, 'additionalProperties': False}
purchase_order_text
Plain-text purchase order to paste into email
Turn a purchase order into a plain-text order to paste into an email: the line table, VAT lines, total, and a line asking the supplier to deliver by the date and quote the PO number. Also a .txt download link valid one hour. Free on every tier.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Purchase order id such as PO-2026-0001'}, 'greeting': {'type': 'string', 'description': 'Opening line, default "Hello" plus the supplier name'}, 'sign_off': {'type': 'string', 'description': 'Closing line, default your business name from the shared profile'}}, 'additionalProperties': False}
已添加
license_activate
2026年9月24日 02:40
已添加
license_status
2026年9月24日 02:40
已添加
billing_docs_report
2026年9月24日 02:40
已添加
purchase_order_delete
2026年9月24日 02:40
已添加
purchase_order_receive
2026年9月24日 02:40
已添加
purchase_order_text
2026年9月24日 02:40
已添加
purchase_order_pdf
2026年9月24日 02:40
已添加
purchase_order_get
2026年9月24日 02:40
已添加
purchase_order_list
2026年9月24日 02:40
已添加
purchase_order_create
2026年9月24日 02:40
已添加
credit_note_delete
2026年9月24日 02:40
已添加
credit_note_text
2026年9月24日 02:40
已添加
credit_note_pdf
2026年9月24日 02:40
已添加
credit_note_get
2026年9月24日 02:40
已添加
credit_note_list
2026年9月24日 02:40
已添加
credit_note_create
2026年9月24日 02:40