ingrammicro-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AUTH_MODE | No | gateway (per-request headers, SOP-compliant) or env (shared credential, local dev only) | gateway |
| MCP_HTTP_HOST | No | Listening host | 0.0.0.0 |
| MCP_HTTP_PORT | No | Listening port | 8080 |
| MCP_TRANSPORT | No | http (production) or stdio (local dev) | stdio |
| INGRAMMICRO_BASE_URL | No | Override for sandbox testing | https://api.ingrammicro.com |
| INGRAMMICRO_CLIENT_ID | No | Only used in env mode - OAuth2 Client ID | |
| INGRAMMICRO_SENDER_ID | No | IM-SenderID value sent on every call | MSPbots |
| INGRAMMICRO_COUNTRY_CODE | No | Only used in env mode - Two-letter ISO country code (IM-CountryCode) | |
| INGRAMMICRO_CLIENT_SECRET | No | Only used in env mode - OAuth2 Client Secret | |
| INGRAMMICRO_CUSTOMER_NUMBER | No | Only used in env mode - Ingram Micro reseller account number (IM-CustomerNumber) |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ingrammicro_search_productsA | Search Ingram Micro's product catalog by keyword, vendor, category, or SKU type. "What's the Ingram part number for Cisco switch model X" or "list Microsoft cloud SKUs with discounts" both start here. Returns matching products with Ingram/vendor part numbers; call ingrammicro_get_price_and_availability next for live pricing/stock. |
| ingrammicro_get_product_detailA | Get full catalog detail for one product by its Ingram Micro part number (from ingrammicro_search_products). Use ingrammicro_get_product_detail_by_reference instead if you only have the vendor's own part number or a subscription plan id/name. |
| ingrammicro_get_product_detail_by_referenceA | Get catalog detail for a product identified by the vendor's own part number, or by subscription plan id/name — for when you don't have Ingram's own part number. Exactly one of vendor_part_number, plan_id, or plan_name must be given. |
| ingrammicro_get_price_and_availabilityA | Get real-time price and/or stock availability for one or more SKUs — the step before placing an order, to confirm current price and that stock exists before calling ingrammicro_create_order. |
| ingrammicro_create_orderA | Place a real purchase order for stocked, direct-ship, licensing, or warranty SKUs. Real money against the reseller's net-terms account — Ingram does not support credit-card API ordering. |
| ingrammicro_create_cloud_orderA | Place a cloud-subscription order, or convert an existing Quote (Quote-to-Order / Configure-to-Order) into a real order. Asynchronous: this call only returns a confirmationNumber acknowledging receipt — Ingram Micro pushes the actual order result (success or error) later via its own webhook, not in this response. |
| ingrammicro_modify_orderA | Change an order placed with the customer-hold flag — add/update/ delete lines, change ship-to, or release the hold. ONLY works within roughly 24 hours of placement, and only if the order was created with the customer-hold flag (void after 24h if never released). An order placed WITHOUT customer-hold cannot be modified — this call fails. Confirm with a human before changing quantities or the shipping address. |
| ingrammicro_cancel_orderA | Cancel an order before it reaches Ingram Micro's warehouse. |
| ingrammicro_get_orderA | Get full status/line detail for one order — shipping status, tracking, per-line fulfillment. Use ingrammicro_search_orders instead if you don't already have the exact order number. |
| ingrammicro_search_ordersA | Search past/current orders by PO number, status, product, or date. Use this to find the exact order number before calling ingrammicro_get_order, ingrammicro_modify_order, or ingrammicro_cancel_order. |
| ingrammicro_search_quotesA | Search quotes by number, status, vendor, or end customer. Use this to find a quote's number before ingrammicro_get_quote, ingrammicro_validate_quote_to_order, or converting it to an order with ingrammicro_create_cloud_order. |
| ingrammicro_get_quoteA | Get full detail for one quote — line items, pricing, expiry, and current status. |
| ingrammicro_create_quoteA | Create a new quote — a price hold, not a purchase. Convert it to a real order later with ingrammicro_create_cloud_order(quote_number=...) after validating with ingrammicro_validate_quote_to_order. |
| ingrammicro_validate_quote_to_orderA | Validate a quote before converting it to an order, and learn which fields the vendor requires at header and line level for the Quote-to-Order call. |
| ingrammicro_search_invoicesA | Search invoices by order, invoice number, date range, or status. Use this to find the exact invoice number before calling ingrammicro_get_invoice. |
| ingrammicro_get_invoiceA | Get full line-level detail for one invoice. |
| ingrammicro_search_renewalsA | Search upcoming or past subscription/support renewals by order, vendor, end customer, or opportunity status. Use this to find the renewal id before ingrammicro_get_renewal. |
| ingrammicro_get_renewalA | Get full detail for one renewal opportunity. |
| ingrammicro_search_dealsA | Search special-pricing deals (vendor discount bids) by vendor or end customer. A deal's id can be passed as special_bid_number when placing an order, or as deal_id when creating a quote. Use this to find the exact deal id before ingrammicro_get_deal. |
| ingrammicro_get_dealA | Get full detail for one special-pricing deal, including which products/vendors it covers. |
| ingrammicro_search_returnsA | Search return (RMA) requests by invoice, product, or status. Use this to find the exact case_request_number before calling ingrammicro_get_return. |
| ingrammicro_get_returnA | Get full detail and current status for one return (RMA) request. |
| ingrammicro_create_returnA | File one or more return (RMA) requests against already-invoiced product. Each entry needs the original invoice, a quantity, primary/secondary reason, box count, and a full ship-from address — Ingram rejects a request missing any of those. Confirm with a human before filing; a filed return cannot be un-filed through this API. |
| ingrammicro_get_freight_estimateA | Estimate freight/shipping cost for a set of SKUs and quantities before placing an order — check this when shipping cost matters to the customer's decision. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/MSPbotsAI/ingrammicro-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server