MCP 서버

goods-receipt

io.github.theluckystrike/goods-receipt
비즈니스 및 운영 커머스 및 리테일 공개 · 연결 가능 MCP 2026-07-28

이 MCP로 할 수 있는 일

Creates and manages goods-receipt notes against purchase orders, checks quantity tolerances, tracks discrepancies, and exports receipt data.

grn_add
Receive goods against a purchase order
Create a goods-receipt note (GRN) against an open purchase order. Give one cell per PO line: the whole units received and/or damaged. received is checked against the line's ordered quantity and the PO's over tolerance; receiving past the over tolerance is refused unless declared damaged. Shortage is recorded automatically (ordered minus received, floored at zero) and shown as a discrepancy. Partial deliveries are fine: raise several GRNs against the same PO. Free tier, full CRUD.
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['po', 'lines'], 'properties': {'po': {'type': 'string', 'maxLength': 40, 'description': 'Purchase-order id or reference, e.g. PO-0001'}, 'note': {'type': 'string', 'maxLength': 400, 'description': 'Memo for the whole GRN'}, 'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['line', 'received'], 'properties': {'line': {'type': 'string', 'maxLength': 40, 'description': 'PO line to receive, e.g. L01'}, 'damaged': {'type': 'integer', 'maximum': 1000000, 'minimum': 0, 'description': 'Whole units received but damaged'}, 'received': {'type': 'integer', 'maximum': 1000000, 'minimum': 0, 'description': 'Whole units of good stock'}, 'shortage': {'type': 'integer', 'maximum': 1000000, 'minimum': 0, 'description': 'Whole units short; when you know the count'}, 'damageNote': {'type': 'string', 'maxLength': 400, 'description': 'What was damaged'}, 'shortageNote': {'type': 'string', 'maxLength': 400, 'description': 'Why it is short'}}, 'additionalProperties': False}, 'maxItems': 200, 'minItems': 1, 'description': 'Which PO lines you are receiving now'}, 'carrier': {'type': 'string', 'maxLength': 60, 'description': 'Delivered by'}, 'receivedAt': {'type': 'string', 'maxLength': 10, 'description': 'ISO date of physical receipt (default today)'}}, 'additionalProperties': False}
grn_close
Close a goods-receipt note
Close an open GRN. A closed GRN can no longer take lines, and its discrepancies are treated as resolved. Closing is free-tier and never mutates the PO.
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['grn'], 'properties': {'grn': {'type': 'string', 'maxLength': 40, 'description': 'Open GRN id, e.g. GRN-0001'}}, 'additionalProperties': False}
grn_discrepancy
List discrepancies
List lines that are not as ordered: damaged units, a declared shortage, or received below the PO line's under tolerance. Optionally filter to one PO.
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'po': {'type': 'string', 'maxLength': 40, 'description': 'Only discrepancies on this purchase order'}, 'includeResolved': {'type': 'boolean', 'default': False, 'description': 'Include GRNs that are closed (resolved)'}}, 'additionalProperties': False}
grn_export_csv
Export goods receipts as CSV
Pro. Export every GRN (or just one PO's GRNs) as CSV with a header row: grn,po,po_reference,received_at,carrier,status,line,sku,received,damaged,shortage,damage_note,shortage_note. Watermark-free and not truncated.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'po': {'type': 'string', 'maxLength': 40, 'description': 'Export GRNs for one purchase order only'}}, 'additionalProperties': False}
grn_get
Get one goods-receipt note
Get a single goods-receipt note by id, with its lines, damage and shortage per line.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['grn'], 'properties': {'grn': {'type': 'string', 'maxLength': 40, 'description': 'GRN id, e.g. GRN-0001'}}, 'additionalProperties': False}
grn_line_add
Add a line to an open GRN
Add another PO line (or more units on a line already open on this GRN) to an existing open goods-receipt note. Useful when one delivery arrives in batches. The over-tolerance gate still applies to the PO line's cumulative received count across every GRN. Free tier, full CRUD.
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['grn', 'line', 'received'], 'properties': {'grn': {'type': 'string', 'maxLength': 40, 'description': 'Open GRN id, e.g. GRN-0001'}, 'line': {'type': 'string', 'maxLength': 40, 'description': 'PO line to receive, e.g. L01'}, 'damaged': {'type': 'integer', 'maximum': 1000000, 'minimum': 0, 'description': 'Whole units received but damaged'}, 'received': {'type': 'integer', 'maximum': 1000000, 'minimum': 0, 'description': 'Whole units of good stock'}, 'damageNote': {'type': 'string', 'maxLength': 400, 'description': 'What was damaged'}, 'shortageNote': {'type': 'string', 'maxLength': 400, 'description': 'Why it is short'}}, 'additionalProperties': False}
grn_list
List goods-receipt notes
List goods-receipt notes, newest first, optionally filtered to one purchase order.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'po': {'type': 'string', 'maxLength': 40, 'description': 'Only GRNs against this purchase order'}, 'includeLines': {'type': 'boolean', 'default': False, 'description': 'Include line detail'}}, 'additionalProperties': False}
grn_status_report
Goods-receipt status report
Reconcile every purchase order against every GRN: open POs (not yet fully received), POs fully received within tolerance, POs with at least one discrepancy, and per-line open/short/damaged counts. Nothing is written.
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'includeOnlyDiscrepancies': {'type': 'boolean', 'default': False, 'description': 'Only list POs with at least one discrepancy'}}, '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': {}}
po_add
Add a purchase order
Create a purchase order to receive goods against. Lines carry a sku, a description and an ordered whole-unit quantity. Over/under tolerances are whole percentages allowed above/below ordered before a GRN is flagged. Ids look like PO-0001. Free tier, full CRUD.
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['reference', 'supplier', 'lines'], 'properties': {'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['sku', 'description', 'ordered'], 'properties': {'sku': {'type': 'string', 'maxLength': 40, 'description': 'Stock-keeping unit / model code'}, 'ordered': {'type': 'integer', 'maximum': 1000000, 'minimum': 1, 'description': 'Whole units ordered'}, 'description': {'type': 'string', 'maxLength': 160, 'description': 'What it is'}}, 'additionalProperties': False}, 'maxItems': 200, 'minItems': 1, 'description': 'Lines on this purchase order'}, 'supplier': {'type': 'string', 'maxLength': 60, 'description': 'Who you ordered from'}, 'reference': {'type': 'string', 'maxLength': 60, 'description': 'Your own purchase-order number'}, 'overTolerancePct': {'type': 'integer', 'default': 10, 'maximum': 100, 'minimum': 0, 'description': 'Whole % extra allowed above ordered (default 10)'}, 'underTolerancePct': {'type': 'integer', 'default': 10, 'maximum': 100, 'minimum': 0, 'description': 'Whole % short allowed below ordered (default 10)'}}, 'additionalProperties': False}
추가됨
license_activate
2026년 9월 21일 2:40 AM
추가됨
license_status
2026년 9월 21일 2:40 AM
추가됨
grn_export_csv
2026년 9월 21일 2:40 AM
추가됨
grn_status_report
2026년 9월 21일 2:40 AM
추가됨
grn_close
2026년 9월 21일 2:40 AM
추가됨
grn_discrepancy
2026년 9월 21일 2:40 AM
추가됨
grn_get
2026년 9월 21일 2:40 AM
추가됨
grn_list
2026년 9월 21일 2:40 AM
추가됨
grn_line_add
2026년 9월 21일 2:40 AM
추가됨
grn_add
2026년 9월 21일 2:40 AM
추가됨
po_add
2026년 9월 21일 2:40 AM