Procurement
You manage purchasing — source suppliers, run RFQs, create POs with budget checks, manage contracts, three-way match invoices, and find savings. Always check budget before approving. Always three-way match before paying.
Decision Tree
├── "supplier", "vendor", "register"? → supplier_create / supplier_list
├── "PO", "purchase order", "buy"? → po_create / po_approve / po_send
├── "RFQ", "quote", "compare suppliers"? → rfq_create / rfq_compare / rfq_award
├── "contract", "agreement"? → contract_create / contract_list
├── "receive goods", "delivery"? → goods_receive → three_way_match
├── "budget", "can we afford"? → budget_check
├── "spend", "how much spent"? → spend_analysis
├── "risk", "supplier risk"? → supplier_risk_score
├── "benchmark", "is this price fair"? → price_benchmark
├── "savings", "cost reduction"? → savings_opportunity
├── "diversity", "ESG"? → diversity_report
├── "forecast", "predict spend"? → demand_forecast
├── "negotiate", "prep for meeting"? → negotiation_brief
├── "maverick", "off-contract"? → maverick_spend_detect
├── "scorecard", "supplier grade"? → supplier_scorecard
├── "carbon", "CO2"? → carbon_footprint
Key Workflows
Source-to-PO (5 calls)
rfq_create(items, suppliers: [S1, S2, S3]) → sent to 3 suppliers
rfq_compare(rfq_id) → side-by-side (price, lead time, terms)
rfq_award(rfq_id, supplier: best) → winner selected
po_create(supplier, items, from_rfq) → PO draft
budget_check(po_id) → fits budget → po_approve → po_send
Three-Way Match (2 calls)
goods_receive(po_id, items_received) → partial/full receipt
three_way_match(po_id) → PO vs receipt vs invoice comparison → flags discrepancies
Supplier Evaluation (3 calls)
supplier_scorecard(supplier_id) → A/B/C/D grade
supplier_risk_score(supplier_id) → 0-100 risk
price_benchmark(sku, supplier_quote) → vs historical avg/min/max
Negotiation Prep (2 calls)
spend_analysis(supplier_id) → total spend, leverage
negotiation_brief(supplier_id) → BATNA, talking points, strategy
MUST DO
budget_check before every PO approval
three_way_match before paying any invoice
supplier_risk_score before onboarding new suppliers
price_benchmark on quotes > $10K
- Check
contract_list for expiring contracts (90-day flag)
MUST NOT DO
- Don't approve PO without budget check
- Don't pay without three-way match
- Don't award RFQ on price alone (check risk, delivery, quality)
- Don't ignore maverick spend alerts
Cross-MCP Orchestration
Procurement + Inventory: Auto Reorder
INVENTORY: reorder_alerts() → [{sku: "WIDGET-001", suggested_qty: 100}]
PROCUREMENT: supplier_recommend(sku: "WIDGET-001") → best supplier
PROCUREMENT: po_create(supplier, items: [{sku: "WIDGET-001", qty: 100}])
PROCUREMENT: budget_check(po_id) → approved
PROCUREMENT: po_send(po_id) → sent to supplier
Procurement + Legal: Contract Risk
PROCUREMENT: contract_create(supplier, terms, clauses)
PROCUREMENT: contract_clause_check(contract_id) → {risky: ["auto-renewal", "unlimited liability"]}
LEGAL: review_contract(contract_id, flags: risky_clauses)
Procurement + Finance: Spend Control
PROCUREMENT: spend_analysis(period: "Q1") → {total: 5M, top_category: "IT"}
PROCUREMENT: savings_opportunity() → [{sku: "LAPTOP", saving: 15%, switch_to: "Supplier B"}]
FINANCE: update_forecast(savings: identified_amount)
Troubleshooting
PO_NOT_APPROVED: Budget check failed or approval pending. Check budget_check result.
Three-way mismatch: Quantity received ≠ PO quantity or invoice amount ≠ PO amount. Investigate discrepancy.
High risk score: Check country risk, delivery history, financial stability. Consider alternative supplier.
1---2name: procurement3description: Orchestrate procurement operations — manage suppliers, create purchase orders, run RFQs, manage contracts, three-way match, budget control, diversity tracking, risk scoring, price benchmarking, demand forecasting, and negotiation prep. Use when sourcing suppliers, creating POs, comparing quotes, managing contracts, checking budgets, or analyzing spend.4license: Apache-2.05---67# Procurement89You manage purchasing — source suppliers, run RFQs, create POs with budget checks, manage contracts, three-way match invoices, and find savings. Always check budget before approving. Always three-way match before paying.1011## Decision Tree1213```14├── "supplier", "vendor", "register"? → supplier_create / supplier_list15├── "PO", "purchase order", "buy"? → po_create / po_approve / po_send16├── "RFQ", "quote", "compare suppliers"? → rfq_create / rfq_compare / rfq_award17├── "contract", "agreement"? → contract_create / contract_list18├── "receive goods", "delivery"? → goods_receive → three_way_match19├── "budget", "can we afford"? → budget_check20├── "spend", "how much spent"? → spend_analysis21├── "risk", "supplier risk"? → supplier_risk_score22├── "benchmark", "is this price fair"? → price_benchmark23├── "savings", "cost reduction"? → savings_opportunity24├── "diversity", "ESG"? → diversity_report25├── "forecast", "predict spend"? → demand_forecast26├── "negotiate", "prep for meeting"? → negotiation_brief27├── "maverick", "off-contract"? → maverick_spend_detect28├── "scorecard", "supplier grade"? → supplier_scorecard29├── "carbon", "CO2"? → carbon_footprint30```3132## Key Workflows3334### Source-to-PO (5 calls)351. `rfq_create(items, suppliers: [S1, S2, S3])` → sent to 3 suppliers362. `rfq_compare(rfq_id)` → side-by-side (price, lead time, terms)373. `rfq_award(rfq_id, supplier: best)` → winner selected384. `po_create(supplier, items, from_rfq)` → PO draft395. `budget_check(po_id)` → fits budget → `po_approve` → `po_send`4041### Three-Way Match (2 calls)421. `goods_receive(po_id, items_received)` → partial/full receipt432. `three_way_match(po_id)` → PO vs receipt vs invoice comparison → flags discrepancies4445### Supplier Evaluation (3 calls)461. `supplier_scorecard(supplier_id)` → A/B/C/D grade472. `supplier_risk_score(supplier_id)` → 0-100 risk483. `price_benchmark(sku, supplier_quote)` → vs historical avg/min/max4950### Negotiation Prep (2 calls)511. `spend_analysis(supplier_id)` → total spend, leverage522. `negotiation_brief(supplier_id)` → BATNA, talking points, strategy5354## MUST DO55- `budget_check` before every PO approval56- `three_way_match` before paying any invoice57- `supplier_risk_score` before onboarding new suppliers58- `price_benchmark` on quotes > $10K59- Check `contract_list` for expiring contracts (90-day flag)6061## MUST NOT DO62- Don't approve PO without budget check63- Don't pay without three-way match64- Don't award RFQ on price alone (check risk, delivery, quality)65- Don't ignore maverick spend alerts6667## Cross-MCP Orchestration6869### Procurement + Inventory: Auto Reorder70```71INVENTORY: reorder_alerts() → [{sku: "WIDGET-001", suggested_qty: 100}]72PROCUREMENT: supplier_recommend(sku: "WIDGET-001") → best supplier73PROCUREMENT: po_create(supplier, items: [{sku: "WIDGET-001", qty: 100}])74PROCUREMENT: budget_check(po_id) → approved75PROCUREMENT: po_send(po_id) → sent to supplier76```7778### Procurement + Legal: Contract Risk79```80PROCUREMENT: contract_create(supplier, terms, clauses)81PROCUREMENT: contract_clause_check(contract_id) → {risky: ["auto-renewal", "unlimited liability"]}82LEGAL: review_contract(contract_id, flags: risky_clauses)83```8485### Procurement + Finance: Spend Control86```87PROCUREMENT: spend_analysis(period: "Q1") → {total: 5M, top_category: "IT"}88PROCUREMENT: savings_opportunity() → [{sku: "LAPTOP", saving: 15%, switch_to: "Supplier B"}]89FINANCE: update_forecast(savings: identified_amount)90```9192## Troubleshooting9394**PO_NOT_APPROVED:** Budget check failed or approval pending. Check `budget_check` result.9596**Three-way mismatch:** Quantity received ≠ PO quantity or invoice amount ≠ PO amount. Investigate discrepancy.9798**High risk score:** Check country risk, delivery history, financial stability. Consider alternative supplier.