# io.github.tonyback0101-cmyk/buyer-intelligence (remote · www.procureradar.com)

Find verified global B2B buyers by category & country. Free anonymous discovery. SGX-listed.

- Trust score: 77/100 (medium)
- Change this week: +8
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `www.procureradar.com`: 77/100 (this document), [markdown](https://verifymcp.io/servers/tonyback0101-cmyk-buyer-intelligence/api-mcp.md), [page](https://verifymcp.io/servers/tonyback0101-cmyk-buyer-intelligence/api-mcp)

## Channel facts

- Endpoint: `https://www.procureradar.com/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.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-08-03.

- **Endpoint Security**: 94/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - 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.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 72/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1715 tokens (~131/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 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.
- **Capabilities**: 20/100
  - Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http tonyback0101-cmyk-buyer-intelligence https://www.procureradar.com/api/mcp
```

### Codex

```toml
[mcp_servers.tonyback0101-cmyk-buyer-intelligence]
url = "https://www.procureradar.com/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tonyback0101-cmyk-buyer-intelligence": {
      "type": "remote",
      "url": "https://www.procureradar.com/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add tonyback0101-cmyk-buyer-intelligence --url https://www.procureradar.com/api/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  tonyback0101-cmyk-buyer-intelligence:
    url: "https://www.procureradar.com/api/mcp"
```

### Other

```json
{
  "mcpServers": {
    "tonyback0101-cmyk-buyer-intelligence": {
      "type": "http",
      "url": "https://www.procureradar.com/api/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-08-03 (score 77, +1)

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

### 2026-07-31 (score 76, +5)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 71, +1)

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

### 2026-07-28 (score 70, +1)

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

### 2026-07-27 (score 69, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 69)

First indexed and scored.

## MCP tools (13)

### `find_buyers` (~205 tokens)

Search 500,000+ verified importers and distributors by product category and target country. Returns company profiles + a `coverage` object. When in-database coverage is thin (empty/partial), the response includes an `acquisition` task (task_id) — a background crawl is started automatically (free). Poll it with check_discovery_task until status=completed to get freshly gathered buyers. Contact details are not included — use enrich_buyer_contact to get them.

Input parameters:

- `category` (string, required): Product category (e.g. 'flour', 'stainless steel tableware', 'LED lighting')
- `country_iso` (string): ISO 3166-1 alpha-2 country code (e.g. MY, ID, KE, AE, GB)
- `limit` (number): Max results to return (default 20, max 100)
- `quality_grade` (string): Filter by data quality. 'premium' = verified contact + multi-source evidence.

### `enrich_buyer_contact` (~95 tokens)

Run 6-layer contact enrichment for a buyer: direct website scraping → proxy retry → BFS contact pages → LLM text extraction → vision screenshot → Serper fallback. Returns email, phone, WhatsApp, decision-maker names. Costs Zhimao Points.

Input parameters:

- `target_company_name` (string): Buyer's company name
- `target_domain` (string, required): Buyer's website domain (e.g. 'example-importer.com')

### `analyze_buyer_intelligence` (~91 tokens)

Deep company intelligence for a buyer: corporate registry verification, customs import records, supply chain mapping, decision-maker profiling, risk flags. Returns 0-100 score with evidence chain.

Input parameters:

- `country_iso` (string): ISO 3166-1 alpha-2 country code
- `target_company_name` (string): Buyer's company name
- `target_domain` (string, required): Buyer's website domain

### `submit_discovery_job` (~111 tokens)

Explicitly submit an async batch buyer discovery job for a category + country. Returns a job_id; poll it with check_discovery_task until status=completed. Note: find_buyers already auto-starts a background crawl when coverage is thin, so usually you only need this for a forced/fresh deep crawl.

Input parameters:

- `category` (string, required): Product category to discover buyers for
- `country_iso` (string, required): Target country ISO code
- `keywords` (array): Additional keywords to refine the search

### `check_discovery_task` (~120 tokens)

Poll a background buyer-discovery task created by find_buyers (acquisition.task_id) or submit_discovery_job. Returns status (working | completed | failed); when completed, includes the freshly gathered buyers. Use exponential backoff (start ~20s) and stop polling once status is completed or failed. Free.

Input parameters:

- `limit` (number): Max buyers to return when completed (default 50, max 100)
- `task_id` (string, required): The task_id returned in find_buyers' acquisition field, or a discovery job_id

### `list_group_buy_pools` (~81 tokens)

List open collective sourcing projects (联拼宝 / Lianpinbao). Multiple suppliers co-sell into shared buyer pools, reducing per-supplier MOQ. Find pools where you can join to access existing buyer demand.

Input parameters:

- `category` (string): Filter by product category keyword (optional)
- `status` (string): Pool status (default: open)

### `search_products` (~152 tokens)

Search live products listed by ProcureRadar suppliers by keyword, destination country, supplier country, or category. Returns product_id values needed to request a quote. Free & anonymous (IP rate-limited). This is the first step of the buyer-side transaction loop: search_products → request_quote → list_quotes → place_order.

Input parameters:

- `category` (string): Category code (mall_category_code), optional
- `country_iso` (string): Destination country ISO2 (filters by deliverable SKUs)
- `limit` (number): Max results (default 20, max 50)
- `q` (string): Keyword (product title / SKU / supplier name)
- `supplier_country` (string): Supplier origin country ISO2

### `search_stores` (~170 tokens)

Discover verified supplier storefronts (supply nodes) on ProcureRadar by target-market country and industry. Each store groups multiple products from one verified supplier and returns sample_product_ids you can quote on. Use this to find a supplier store first, then search_products / request_quote. Free & anonymous (IP rate-limited). Organizing principle: country × industry matrix.

Input parameters:

- `country` (string): Target-market country ISO2 the store operates/sells into (e.g. MY, VN, JP)
- `industry` (string): Industry key (85-industry taxonomy, aligns with product category codes, e.g. 'beauty_personal_care')
- `limit` (number): Max results (default 20, max 50)
- `q` (string): Store name keyword (optional)

### `request_quote` (~161 tokens)

Start a transaction by sending a quote request (inquiry) to a supplier for a specific product_id (get one from search_products). Returns an inquiry_id. Requires authentication — the inquiry is owned by the authenticated buyer. The supplier then submits a quote; poll it with list_quotes.

Input parameters:

- `buyer_note` (string): Free-text note to the supplier (optional)
- `destination_city` (string): Destination city (optional)
- `destination_country` (string): Destination country ISO2 (optional)
- `product_id` (string, required): Product id to request a quote for (from search_products)
- `quantity` (number): Desired quantity (optional)
- `quantity_unit` (string): Unit for the quantity, e.g. 'pcs', 'kg' (optional)

### `list_quotes` (~86 tokens)

List the supplier quotes submitted for one of your inquiries (from request_quote). Returns each quote's id, unit price, total, MOQ, lead time and validity, plus acceptable_quote_ids you can pass to place_order. Requires authentication; only the inquiry's buyer (or the product's supplier) may read it.

Input parameters:

- `inquiry_id` (string, required): The inquiry_id returned by request_quote

### `place_order` (~191 tokens)

Accept a supplier quote and create an order (status pending_payment) for one of your inquiries. Pass the inquiry_id and the chosen quote_id (from list_quotes' acceptable_quote_ids). Optionally pass a mandate_id (from create_payment_mandate) to auto-authorize the order against an AP2 payment mandate within its limits — the response then includes mandate_authorization (authorized/declined + reason). Returns the order id, order_no and a payment next_step. Idempotent per inquiry: re-calling returns the existing order. Requires authentication.

Input parameters:

- `inquiry_id` (string, required): The inquiry_id (from request_quote / list_quotes)
- `mandate_id` (string): Optional AP2 payment mandate id (from create_payment_mandate) to auto-authorize this order within pre-approved limits.
- `quote_id` (string, required): The quote_id to accept (from list_quotes' acceptable_quote_ids)

### `create_payment_mandate` (~213 tokens)

Create an AP2 payment mandate: a pre-authorization that lets your agent place orders autonomously (human-not-present) within strict limits — total budget, optional per-order cap, currency, optional seller/category scope, and expiry. Returns a mandate_id to pass to place_order. Each order authorized against it is recorded as a verifiable intent and decrements the budget. Requires authentication.

Input parameters:

- `category_scope` (array): Optional list of allowed category codes (mall_category_code). Omit = any category.
- `currency` (string): Currency, e.g. USD (default USD). Must match the order currency to authorize.
- `expires_at` (string): Optional ISO timestamp after which the mandate is no longer valid.
- `max_per_order_amount` (number): Optional per-order cap
- `max_total_amount` (number, required): Total spend budget for this mandate (required, > 0)
- `seller_scope` (array): Optional list of allowed seller_user_id UUIDs. Omit = any seller.

### `list_payment_mandates` (~39 tokens)

List your AP2 payment mandates with status, currency, total/per-order limits, consumed and remaining budget, scope and expiry. Requires authentication.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/tonyback0101-cmyk-buyer-intelligence/api-mcp#diagnostics

## Score history

- 2026-08-03: 77
- 2026-08-02: 76
- 2026-08-01: 76
- 2026-07-31: 76
- 2026-07-30: 71
- 2026-07-29: 71
- 2026-07-28: 70
- 2026-07-27: 69
- 2026-07-26: 69

## Links

- Remote endpoint: https://www.procureradar.com/api/mcp
- Repository: https://github.com/tonyback0101-cmyk/procureradar-mcp-server
- Website: https://www.procureradar.com/
- Changelog RSS feed: https://verifymcp.io/servers/tonyback0101-cmyk-buyer-intelligence/api-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/tonyback0101-cmyk-buyer-intelligence/api-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/tonyback0101-cmyk-buyer-intelligence/api-mcp
