# BuyingMesh Procurement (remote · buyingmesh.com)

Structured B2B supply search, quoting, sandbox orders and fulfillment status for agents.

- Trust score: 70/100 (medium)
- Change this week: +11
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-18

> **Recent critical change**: Authorization (2026-10-12). See the changelog below before you install this server.

## Components

- remote · `buyingmesh.com`: 70/100 (this document), [markdown](https://verifymcp.io/servers/com-buyingmesh-procurement/buyingmesh.md), [page](https://verifymcp.io/servers/com-buyingmesh-procurement/buyingmesh)

## Channel facts

- Endpoint: `https://buyingmesh.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.3.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-18.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (create_order).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 72/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2503 tokens (~125/item across 20 items; 20 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 47/100
  - Stability observed for 14 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 21 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 20/100
  - Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28.

## Install

### How do I install the BuyingMesh Procurement MCP server?

BuyingMesh Procurement is a hosted endpoint at https://buyingmesh.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-buyingmesh-procurement 'https://buyingmesh.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-buyingmesh-procurement": {
      "url": "https://buyingmesh.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-buyingmesh-procurement": {
      "type": "http",
      "url": "https://buyingmesh.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-buyingmesh-procurement]
url = "https://buyingmesh.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-buyingmesh-procurement": {
      "type": "remote",
      "url": "https://buyingmesh.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-buyingmesh-procurement --url 'https://buyingmesh.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-buyingmesh-procurement:
    url: "https://buyingmesh.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-buyingmesh-procurement": {
      "Transport": "http",
      "Url": "https://buyingmesh.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-buyingmesh-procurement -t streamable-http -u 'https://buyingmesh.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-buyingmesh-procurement": {
      "type": "http",
      "url": "https://buyingmesh.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-18 (score 70, +6)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “create_order” rewrote its description, which is the text the model reads
- [security] Tool “search_products” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: pass → fail
- [functional improvement] Tool coverage: 1% → 100%
- [functional improvement] Tool “cancel_order” now declares an output schema
- [functional improvement] Tool “compare_quotes” now declares an output schema
- [functional improvement] Tool “compare_supplier_offers” now declares an output schema
- [functional improvement] Tool “contact_support” now declares an output schema
- [functional improvement] Tool “create_order” now declares an output schema
- [functional improvement] Tool “create_quote” now declares an output schema
- [functional improvement] Tool “estimate_landed_cost” now declares an output schema
- [functional improvement] Tool “get_order_status” now declares an output schema
- [functional improvement] Tool “get_product” now declares an output schema
- [functional improvement] Tool “get_quote” now declares an output schema
- [functional improvement] Tool “get_supplier” now declares an output schema
- [functional improvement] Tool “get_supplier_performance” now declares an output schema
- [functional improvement] Tool “list_supplier_products” now declares an output schema
- [functional improvement] Tool “lookup_tariffs” now declares an output schema
- [functional improvement] Tool “request_buyer_confirmation” now declares an output schema
- [functional improvement] Tool “search_products” now declares an output schema
- [functional improvement] Tool “search_shipping_rates” now declares an output schema
- [functional improvement] Tool “search_suppliers” now declares an output schema
- [functional improvement] Tool “update_order_status” now declares an output schema
- [functional] First check of Tool coverage: 100
- [functional] Schema quality: fair → good
- [functional] Server version: 0.5.3 → 0.5.4
- [functional] New tool “submit_inquiry”
- [cosmetic] “cancel_order” reworded the description of “orderId”
- [cosmetic] “cancel_order” reworded the description of “reason”
- [cosmetic] “compare_quotes” reworded the description of “destination”
- [cosmetic] “compare_quotes” reworded the description of “environment”
- [cosmetic] “compare_quotes” reworded the description of “items”
- [cosmetic] “compare_supplier_offers” reworded the description of “destination”
- [cosmetic] “compare_supplier_offers” reworded the description of “environment”
- [cosmetic] “compare_supplier_offers” reworded the description of “items”
- [cosmetic] “contact_support” reworded the description of “agentId”
- [cosmetic] “contact_support” reworded the description of “agentName”
- [cosmetic] “contact_support” reworded the description of “context”
- [cosmetic] “contact_support” reworded the description of “message”
- [cosmetic] “contact_support” reworded the description of “page”
- [cosmetic] “contact_support” reworded the description of “replyTo”
- [cosmetic] “contact_support” reworded the description of “subject”
- [cosmetic] “create_order” reworded the description of “agent”
- [cosmetic] “create_order” reworded the description of “buyer”
- [cosmetic] “create_order” reworded the description of “idempotencyKey”
- [cosmetic] “create_order” reworded the description of “quoteId”
- [cosmetic] “create_order” reworded the description of “shippingAddress”
- [cosmetic] “create_quote” reworded the description of “destination”
- [cosmetic] “create_quote” reworded the description of “environment”
- [cosmetic] “create_quote” reworded the description of “items”
- [cosmetic] “estimate_landed_cost” reworded the description of “destination”
- [cosmetic] “estimate_landed_cost” reworded the description of “dimensionsCm”
- [cosmetic] “estimate_landed_cost” reworded the description of “environment”
- [cosmetic] “estimate_landed_cost” reworded the description of “hsCode”
- [cosmetic] “estimate_landed_cost” reworded the description of “items”
- [cosmetic] “estimate_landed_cost” reworded the description of “weightKg”
- [cosmetic] “get_order_status” reworded the description of “orderId”
- [cosmetic] “get_product” reworded the description of “environment”
- [cosmetic] “get_product” reworded the description of “sku”
- [cosmetic] “get_quote” reworded the description of “quoteId”
- [cosmetic] “get_supplier” reworded the description of “supplierId”
- [cosmetic] “get_supplier_performance” reworded the description of “supplierId”
- [cosmetic] “list_supplier_products” reworded the description of “category”
- [cosmetic] “list_supplier_products” reworded the description of “cursor”
- [cosmetic] “list_supplier_products” reworded the description of “gtin”
- [cosmetic] “list_supplier_products” reworded the description of “limit”
- [cosmetic] “list_supplier_products” reworded the description of “material”
- [cosmetic] “list_supplier_products” reworded the description of “maxLeadTimeDays”
- [cosmetic] “list_supplier_products” reworded the description of “maxMoq”
- [cosmetic] “list_supplier_products” reworded the description of “maxPrice”
- [cosmetic] “list_supplier_products” reworded the description of “minInventory”
- [cosmetic] “list_supplier_products” reworded the description of “minMoq”
- [cosmetic] “list_supplier_products” reworded the description of “minPrice”
- [cosmetic] “list_supplier_products” reworded the description of “q”
- [cosmetic] “list_supplier_products” reworded the description of “size”
- [cosmetic] “list_supplier_products” reworded the description of “sku”
- [cosmetic] “list_supplier_products” reworded the description of “supplierId”
- [cosmetic] “list_supplier_products” reworded the description of “verifiedOnly”
- [cosmetic] “lookup_tariffs” reworded the description of “currency”
- [cosmetic] “lookup_tariffs” reworded the description of “customsValue”
- [cosmetic] “lookup_tariffs” reworded the description of “destinationCountry”
- [cosmetic] “lookup_tariffs” reworded the description of “hsCode”
- [cosmetic] “request_buyer_confirmation” reworded the description of “buyerNote”
- [cosmetic] “request_buyer_confirmation” reworded the description of “quoteId”
- [cosmetic] “search_products” reworded the description of “category”
- [cosmetic] “search_products” reworded the description of “currency”
- [cosmetic] “search_products” reworded the description of “cursor”
- [cosmetic] “search_products” reworded the description of “environment”
- [cosmetic] “search_products” reworded the description of “gtin”
- [cosmetic] “search_products” reworded the description of “inventoryStatus”
- [cosmetic] “search_products” reworded the description of “limit”
- [cosmetic] “search_products” reworded the description of “material”
- [cosmetic] “search_products” reworded the description of “maxLeadTimeDays”
- [cosmetic] “search_products” reworded the description of “maxMoq”
- [cosmetic] “search_products” reworded the description of “maxPrice”
- [cosmetic] “search_products” reworded the description of “minInventory”
- [cosmetic] “search_products” reworded the description of “minMoq”
- [cosmetic] “search_products” reworded the description of “minPrice”
- [cosmetic] “search_products” reworded the description of “q”
- [cosmetic] “search_products” reworded the description of “qualificationStatus”
- [cosmetic] “search_products” reworded the description of “size”
- [cosmetic] “search_products” reworded the description of “sku”
- [cosmetic] “search_products” reworded the description of “supplierId”
- [cosmetic] “search_products” reworded the description of “supplierSlug”
- [cosmetic] “search_products” reworded the description of “verifiedOnly”
- [cosmetic] “search_shipping_rates” reworded the description of “destination”
- [cosmetic] “search_shipping_rates” reworded the description of “dimensionsCm”
- [cosmetic] “search_shipping_rates” reworded the description of “origin”
- [cosmetic] “search_shipping_rates” reworded the description of “quantity”
- [cosmetic] “search_shipping_rates” reworded the description of “weightKg”
- [cosmetic] “search_suppliers” reworded the description of “category”
- [cosmetic] “search_suppliers” reworded the description of “countryRegion”
- [cosmetic] “search_suppliers” reworded the description of “cursor”
- [cosmetic] “search_suppliers” reworded the description of “limit”
- [cosmetic] “search_suppliers” reworded the description of “minProducts”
- [cosmetic] “search_suppliers” reworded the description of “q”
- [cosmetic] “search_suppliers” reworded the description of “supplierType”
- [cosmetic] “search_suppliers” reworded the description of “verified”
- [cosmetic] “update_order_status” reworded the description of “data”
- [cosmetic] “update_order_status” reworded the description of “orderId”
- [cosmetic] “update_order_status” reworded the description of “status”

### 2026-10-17 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-15 (score 63, +1)

- [functional] Server version: 0.5.2 → 0.5.3

### 2026-10-13 (score 62, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “compare_quotes” rewrote its description, which is the text the model reads
- [security] Tool “create_order” rewrote its description, which is the text the model reads
- [security] Tool “create_quote” rewrote its description, which is the text the model reads
- [security] Tool “search_products” rewrote its description, which is the text the model reads
- [security] Tool “search_shipping_rates” rewrote its description, which is the text the model reads
- [security] Tool “update_order_status” rewrote its description, which is the text the model reads
- [functional] Server version: 0.5.1 → 0.5.2

### 2026-10-12 (score 62, +3)

- [critical regression] Authorization: unverified → fail
- [security] Tool “cancel_order” is now declared destructive
- [security] Tool “create_order” is now declared destructive
- [security] Tool “update_order_status” is now declared destructive
- [functional] Destructive annotations: All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
- [functional] Server version: 0.5.0 → 0.5.1

### 2026-10-10 (score 59, +6)

- [security improvement] HTTPS: unverified → pass
- [security improvement] HSTS header: fail → pass
- [functional regression] Schema quality: 60 → 74
- [functional improvement] Stability: unverified → 0.20
- [functional] Schema quality: good → fair
- [functional] Destructive annotations: pass → 0

### 2026-10-04 (score 53)

First indexed and scored.

## MCP tools (20)

### `search_products` (~460 tokens)

Search structured products using exact SKU or GTIN, supplier, material, dimensions, MOQ, price, inventory state, lead time and qualification filters. Returns approved merchant listings; inventory may be unknown and must be freshly confirmed before quote or order.

Input parameters:

- `category` (string): Exact normalized product category, for example jewelry or hair-accessories.
- `currency` (string): ISO 4217 currency code for price filtering, normally USD.
- `cursor` (string): Opaque pagination cursor returned by a previous search response.
- `environment` (string): Catalog environment. Only production reviewed listings are publicly available.
- `gtin` (string): Exact GTIN, UPC or EAN identifier when supplied by the merchant.
- `inventoryStatus` (string): Inventory evidence filter. confirmed means supplier-confirmed sellable units; unknown means a fresh confirmation is required.
- `limit` (integer): Number of results to return; server clamps this to a safe maximum of 100.
- `material` (string): Case-insensitive material filter, such as stainless steel or acetate.
- `maxLeadTimeDays` (integer): Maximum stated supplier lead time in calendar days.
- `maxMoq` (integer): Maximum acceptable order quantity in whole units.
- `maxPrice` (number): Maximum unit price in the requested currency.
- `minInventory` (integer): Minimum currently sellable inventory in whole units; unknown inventory is not counted.
- `minMoq` (integer): Minimum acceptable order quantity in whole units.
- `minPrice` (number): Minimum unit price in the requested currency.
- `q` (string): Free-text search across SKU, product name, material, size, category and supplier name.
- `qualificationStatus` (string): Merchant qualification text to match, such as verified or reviewed.
- `size` (string): Case-insensitive size or dimension filter using the merchant value.
- `sku` (string): Exact public SKU identifier; use this for a single known product.
- `supplierId` (string): Stable BuyingMesh supplier ID returned by search_suppliers or get_supplier.
- `supplierSlug` (string): Public supplier slug from the supplier storefront URL.
- `verifiedOnly` (boolean): When true, return only listings with a verified supplier or qualification signal.

Output parameters:

- `items` (array): Matching product records.
- `mode` (string)
- `nextCursor` (string|null): Cursor for the next page, or null.
- `queryCost` (object)
- `total` (integer): Total matching records.

### `search_suppliers` (~168 tokens)

Find approved public supplier storefronts and inspect reviewed credentials and platform-observed performance.

Input parameters:

- `category` (string): Supplier category to match against the reviewed catalog.
- `countryRegion` (string): Exact country or region code/name used by the supplier profile.
- `cursor` (string): Opaque pagination cursor returned by a previous supplier search.
- `limit` (integer): Number of suppliers to return; server clamps this to 100.
- `minProducts` (integer): Minimum number of approved public SKUs in the supplier storefront.
- `q` (string): Free-text search across public supplier name, legal name, description and slug.
- `supplierType` (string): Supplier profile type, such as manufacturer, wholesaler or brand.
- `verified` (boolean): Filter by platform-reviewed verification state.

Output parameters:

- `items` (array)
- `nextCursor` (string|null)
- `total` (integer)

### `get_supplier` (~41 tokens)

Retrieve a public supplier storefront by stable supplier ID or public slug.

Input parameters:

- `supplierId` (string, required): Stable supplier ID or public supplier slug returned by search_suppliers.

### `list_supplier_products` (~288 tokens)

List precisely filtered, approved catalog products for a public supplier storefront.

Input parameters:

- `category` (string): Exact normalized category filter.
- `cursor` (string): Opaque pagination cursor returned by a previous product list.
- `gtin` (string): Exact GTIN, UPC or EAN filter within the selected supplier storefront.
- `limit` (integer): Number of products to return; server clamps this to 100.
- `material` (string): Case-insensitive material filter.
- `maxLeadTimeDays` (integer): Maximum stated lead time in calendar days.
- `maxMoq` (integer): Maximum acceptable order quantity in whole units.
- `maxPrice` (number): Maximum unit price in the listing currency.
- `minInventory` (integer): Minimum supplier-confirmed sellable inventory in whole units.
- `minMoq` (integer): Minimum acceptable order quantity in whole units.
- `minPrice` (number): Minimum unit price in the listing currency.
- `q` (string): Free-text filter across the selected supplier product fields.
- `size` (string): Case-insensitive size or dimension filter.
- `sku` (string): Exact SKU filter within the selected supplier storefront.
- `supplierId` (string, required): Stable supplier ID returned by search_suppliers; this scopes every result to one storefront.
- `verifiedOnly` (boolean): When true, return only products with the supplier verification signal.

Output parameters:

- `items` (array)
- `nextCursor` (string|null)
- `supplierId` (string)
- `supplierSlug` (string)
- `total` (integer)

### `get_product` (~59 tokens)

Retrieve a product as Schema.org JSON-LD from the selected catalog environment.

Input parameters:

- `environment` (string): Catalog environment. Public detail is available only for production listings.
- `sku` (string, required): Exact public SKU returned by search_products or list_supplier_products.

### `compare_quotes` (~82 tokens)

Compare non-binding quote options for approved merchant SKUs by quantity and destination. Returns no options when the catalog is empty.

Input parameters:

- `destination` (object, required): Buyer delivery destination used for shipping estimates.
- `environment` (string): Catalog environment. Only production listings can produce a quote.
- `items` (array, required): At least one requested line with sku and a positive integer quantity.

### `create_quote` (~88 tokens)

Create a retrievable, non-binding quote snapshot for published merchant SKUs. Real order creation remains disabled until production settlement and fulfillment are ready.

Input parameters:

- `destination` (object, required): Buyer delivery destination used for the non-binding quote.
- `environment` (string): Catalog environment. Only production listings can produce a quote.
- `items` (array, required): At least one requested line with sku and a positive integer quantity.

### `get_quote` (~50 tokens)

Retrieve a previously created quote by quoteId and inspect its expiry, line items, destination and supplier options.

Input parameters:

- `quoteId` (string, required): Quote identifier beginning with q_, returned by create_quote or compare_quotes.

### `create_order` (~146 tokens)

Request an order from a buyer-approved production quote. Live order creation is currently closed: this tool returns the stable error code ordering_not_open and recommends submit_inquiry until settlement and fulfillment are enabled. It never charges the buyer while closed.

Input parameters:

- `agent` (object): Optional agent identity retained for supplier communication and audit.
- `buyer` (object, required): Buyer identity used for order records and supplier communication.
- `idempotencyKey` (string): Client-generated key reused on retries to prevent duplicate order creation.
- `quoteId` (string, required): Production quote ID beginning with q_; it must be current and explicitly approved by the buyer.
- `shippingAddress` (object, required): Complete destination address for fulfillment.

Output parameters:

- `error` (string): Stable error code, such as ordering_not_open.
- `message` (string)
- `nextStep` (string)
- `order` (object)

### `get_order_status` (~41 tokens)

Read order status, tracking number, ETA, payment mode and fulfillment events.

Input parameters:

- `orderId` (string, required): Order identifier returned by a successful production order creation.

### `update_order_status` (~90 tokens)

Advance an enabled order through an allowed fulfillment state transition and emit its webhook event. Use only when the responsible fulfillment party has supplied evidence.

Input parameters:

- `data` (object): Evidence for the transition, such as trackingNumber, carrier, eta or dispute reason.
- `orderId` (string, required): Order identifier returned by create_order.
- `status` (string, required): Next allowed fulfillment state supported by the order state machine.

### `cancel_order` (~60 tokens)

Cancel an order before fulfillment when the state machine permits it. Cancellation is terminal and emits order.cancelled.

Input parameters:

- `orderId` (string, required): Order identifier returned by create_order.
- `reason` (string): Short human-readable cancellation reason recorded in the order event.

### `compare_supplier_offers` (~82 tokens)

Compare eligible supplier offers for the same requested SKUs, quantity and destination. This is read-only and returns estimated shipping separately from item subtotal.

Input parameters:

- `destination` (object, required): Buyer delivery destination for shipping estimates.
- `environment` (string): Catalog environment. Only production listings are public.
- `items` (array, required): Requested SKU lines used to compare complete supplier offers.

Output parameters:

- `destination` (object)
- `items` (array)
- `observedAt` (string)
- `options` (array)
- `readOnly` (boolean)
- `status` (string)
- `total` (integer)

### `get_supplier_performance` (~57 tokens)

Retrieve platform-observed supplier fulfillment metrics, order sample size and as-of timestamp. Self-reported claims are not substituted for observed data.

Input parameters:

- `supplierId` (string, required): Stable supplier ID returned by search_suppliers or a supplier product.

Output parameters:

- `observedAt` (string)
- `performance` (object)
- `supplierId` (string)

### `search_shipping_rates` (~108 tokens)

Return non-binding shipping estimates from an origin to a destination. Carrier confirmation is required before any transaction.

Input parameters:

- `destination` (object, required): Delivery destination; country is required for zone estimation.
- `dimensionsCm` (object): Packed shipment dimensions in centimeters.
- `origin` (object): Optional shipment origin used to refine the estimate.
- `quantity` (integer): Number of units in the shipment.
- `weightKg` (number): Packed weight per unit in kilograms; a default assumption is used when omitted.

Output parameters:

- `assumptions` (object)
- `destination` (string)
- `observedAt` (string)
- `options` (array)
- `requiresCarrierConfirmation` (boolean)
- `status` (string)

### `lookup_tariffs` (~106 tokens)

Return a preliminary HS-code and destination tariff estimate. Customs classification and the final duty remain subject to broker confirmation.

Input parameters:

- `currency` (string): ISO 4217 currency code for customsValue.
- `customsValue` (number): Declared customs value of the goods in the supplied currency.
- `destinationCountry` (string, required): Destination ISO country code used for the indicative duty range.
- `hsCode` (string, required): HS code supplied by the merchant or customs broker, without spaces where possible.

Output parameters:

- `assumptions` (object)
- `destinationCountry` (string)
- `estimatedDuty` (object)
- `hsCode` (string)
- `requiresBrokerConfirmation` (boolean)

### `estimate_landed_cost` (~130 tokens)

Combine product subtotal, estimated shipping and preliminary duty into a destination landed-cost range. The response includes assumptions and must not be treated as a binding quote.

Input parameters:

- `destination` (object, required): Buyer delivery destination for shipping and duty assumptions.
- `dimensionsCm` (object): Optional packed shipment dimensions in centimeters.
- `environment` (string): Catalog environment. Only production listings are public.
- `hsCode` (string): Optional HS code used for preliminary duty estimation.
- `items` (array, required): Requested SKU lines used to calculate product subtotal.
- `weightKg` (number): Optional packed weight per unit in kilograms.

Output parameters:

- `assumptions` (object)
- `currency` (string)
- `duty` (object)
- `landedCost` (object)
- `observedAt` (string)
- `requiresConfirmation` (boolean)
- `shipping` (object)
- `status` (string)
- `subtotal` (number)

### `request_buyer_confirmation` (~69 tokens)

Create a short-lived explicit confirmation request for a quote before any order mutation. This tool has no payment or order side effect.

Input parameters:

- `buyerNote` (string): Optional buyer instruction shown with the confirmation request.
- `quoteId` (string, required): Quote identifier beginning with q_, returned by create_quote.

Output parameters:

- `confirmationId` (string)
- `expiresAt` (string)
- `nextStep` (string)
- `quoteId` (string)
- `status` (string)

### `submit_inquiry` (~173 tokens)

Send a structured, non-binding product inquiry to the responsible merchant. Use this when inventory is unknown, a buyer needs a supplier answer, or a quote cannot yet be issued. The inquiry stores SKU, quantity, destination, buyer and agent identity and does not create an order or payment.

Input parameters:

- `agent` (object): Optional calling-agent identity included in the inquiry audit record.
- `buyer` (object, required): Buyer contact details required for supplier follow-up.
- `destination` (object, required): Buyer delivery destination.
- `idempotencyKey` (string): Client-generated key reused on retries so the same inquiry is not duplicated.
- `items` (array, required): One to 50 SKU lines. Use this when inventory is unknown or a supplier answer is needed.
- `message` (string): Additional non-sensitive instructions or questions for the supplier.

Output parameters:

- `buyer` (object)
- `destination` (object)
- `inquiryId` (string)
- `items` (array)
- `nextStep` (string)
- `notificationCount` (integer)
- `notificationStatus` (string)
- `status` (string)

### `contact_support` (~145 tokens)

Send a support request from an agent to the BuyingMesh operator by email. Never include private keys, passwords or payment secrets.

Input parameters:

- `agentId` (string): Stable calling agent identifier for support correlation.
- `agentName` (string): Calling agent or application name.
- `context` (object): Optional structured diagnostic context. Exclude secrets.
- `message` (string, required): Clear support question or issue. Do not include passwords, private keys or payment secrets.
- `page` (string): Optional page, endpoint or resource where the issue occurred.
- `replyTo` (string): Optional email address where the operator can reply.
- `subject` (string): Short email subject for the operator.

Output parameters:

- `channel` (string)
- `destination` (string)
- `error` (string)
- `message` (string)
- `receivedAt` (string)
- `requestId` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-buyingmesh-procurement/buyingmesh#diagnostics

## Score history

- 2026-10-18: 70
- 2026-10-17: 64
- 2026-10-16: 63
- 2026-10-15: 63
- 2026-10-14: 62
- 2026-10-13: 62
- 2026-10-12: 62
- 2026-10-10: 59
- 2026-10-04: 53

## Common questions

### What is the BuyingMesh Procurement MCP server?

BuyingMesh Procurement is an MCP server listed in the public MCP registry as com.buyingmesh/procurement. Structured B2B supply search, quoting, sandbox orders and fulfillment status for agents. This page covers its hosted endpoint (https://buyingmesh.com/mcp).

### Is the BuyingMesh Procurement MCP server safe to use?

BuyingMesh Procurement scores 70 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the BuyingMesh Procurement MCP server expose?

BuyingMesh Procurement exposes 20 tools: search_products, search_suppliers, get_supplier, list_supplier_products, get_product, and 15 more. Their descriptions and schemas cost roughly 2,443 tokens of context every time the server is loaded.

### Does the BuyingMesh Procurement MCP server require authentication?

No. We connected to BuyingMesh Procurement without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the BuyingMesh Procurement MCP server still maintained?

BuyingMesh Procurement is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://buyingmesh.com/mcp
- Website: https://buyingmesh.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-buyingmesh-procurement/buyingmesh.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-buyingmesh-procurement/buyingmesh.json
- HTML version of this page: https://verifymcp.io/servers/com-buyingmesh-procurement/buyingmesh
