Skip to main content
Glama
chris-youngblut-solutions

retail-ops-mcp-kit

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_purchase_orderA

Fetch one purchase order as the configured ERP would return it.

- po_id: corpus PO id, e.g. "PO-8801". Join key across the whole kit.

Returns the ERP-native PO envelope. Under sap_s4hana: an
API_PURCHASEORDER_PROCESS_SRV `{"d": {A_PurchaseOrder ... to_PurchaseOrderItem}}`
document with stringified decimals and /Date(ms)/ dates. Under netsuite: a REST
Record `purchaseOrder` with JSON numbers and an `item.items[]` sublist. Under
dynamics365: an OData V4 PurchaseOrderHeadersV2 entity with `@odata.etag` and
`dataAreaId`. Raises if the PO is unknown.
get_goods_receiptA

Fetch the goods receipt(s) for a PO — the GRN "actual" leg of the match.

- po_id: corpus PO id, e.g. "PO-8801".

Under sap_s4hana returns an API_MATERIAL_DOCUMENT_SRV A_MaterialDocumentHeader
collection with a to_MaterialDocumentItem list (GoodsMovementType 101). `condition`
and `qty_damaged` from the corpus surface as item-level annotations (short-ship /
over-ship / damage / UOM-mismatch traps). Returns an empty collection if nothing was
received.
get_invoiceA

Fetch one supplier invoice — the "charged" leg of the match.

- invoice_id: corpus invoice id, e.g. "INV-01".

Under sap_s4hana returns an API_SUPPLIERINVOICE_PROCESS_SRV A_SupplierInvoice with a
to_SuplrInvcItemPurOrdRef line referencing the PO. Carries
SupplierInvoiceIDByInvcgParty for duplicate-invoice detection (the PO-8808 trap:
INV-08a and INV-08b bill the same PO). Under netsuite: a vendorBill; under
dynamics365: a VendorInvoiceHeader. Raises if the invoice is unknown.
list_open_posA

List purchase orders with no fully-matching invoice yet — the open three-way-match workqueue.

Takes no args. A PO is "open" when its billed qty (summed across invoices) is less
than the ordered qty. Under sap_s4hana returns an OData collection
`{"d": {"results": [A_PurchaseOrder, ...], "__count": "N"}}`; under netsuite a
`{items, hasMore, offset, totalResults}` page; under dynamics365 an OData V4
`{"value": [...]}`.
stage_invoice_paymentA

STAGE (do not execute) a supplier-invoice payment for human approval.

- invoice_id: corpus invoice id, e.g. "INV-01".
- amount: payment amount; echoed into the staged payload for the human to confirm.
- currency: ISO code, default "USD".

Validates the invoice exists and the amount is numeric, then records a pending record
and returns {result:"pending_approval", approval_id, target_endpoint, ...}. Models SAP
API_JOURNALENTRYITEMBASIC_SRV vendor payment. THIS DOES NOT PAY ANYTHING — a human must
approve(approval_id, token) to execute. 'pay_invoice' is in policy.gated_actions, so
validation.policy_gated is true.
stage_po_amendmentA

STAGE (do not execute) a PO amendment (qty and/or price) for human approval.

- po_id: corpus PO id, e.g. "PO-8801".
- new_qty: optional new order quantity.
- new_unit_price: optional new net price per unit.

Validates the PO exists and at least one change is present, records a pending record,
returns pending_approval + approval_id. Models a PATCH to API_PURCHASEORDER_PROCESS_SRV
A_PurchaseOrder (If-Match / x-csrf-token write). 'po_amendment' is gated. Executes only
on human approval.
simulate_po_eventA

Synthesize an inbound ERP change event for the given PO (read-only; no state change).

- po_id: corpus PO id, e.g. "PO-8801".
- event_type: e.g. "Created" | "Changed".

Under sap_s4hana returns a SAP Advanced Event Mesh CloudEvents envelope on topic
sap/s4/beh/purchaseorder/v1/PurchaseOrder/<event_type>/v1 with payload {PurchaseOrder}.
Under netsuite: a SuiteScript user-event callback; under dynamics365: a Business Events
envelope. Use it to exercise event-driven wiring.
approveA

Approve a staged write. Requires the human approval token (server env RETAIL_OPS_MCP_APPROVAL_TOKEN) — the agent does not hold it, so an agent-supplied token is refused. On a valid human token the staged action executes (mock) and the record moves pending → executed. Refused if no token is configured (fail closed).

list_pending_approvalsA

List this server's staged, not-yet-approved writes (status=pending). Read-only. Lets a human see what awaits approval; the agent can see them but cannot approve.

get_approval_statusA

Return the current record for approval_id (pending | approved | executed | refused).

active_systemA

Which ERP dialect is wired (sap_s4hana | netsuite | dynamics365). Lets a host confirm the modeled system without leaking any credential.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chris-youngblut-solutions/retail-ops-mcp-kit'

If you have feedback or need assistance with the MCP directory API, please join our Discord server