Skip to content

io.github.tonyback0101-cmyk/buyer-intelligence

by tonyback0101-cmyk · remote · no sign-in to list tools · v1.0.1 · published by GitHub user tonyback0101-cmyk

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

Final · 1Changes · 6

13 tools: 1 do something that can't be undone, 6 change things and 6 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

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

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "analyze_buyer_intelligence" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "analyze_buyer_intelligence" says "analyze": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

13 tools

Can't be undone 1Claude Code: ask
  • create_payment_mandateCreate 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, c…No findings

    Why it is in this group

    • The name "create_payment_mandate" says "create": a word for a change.
    • The name "create_payment_mandate" also says "payment": a word that usually means money moves, which cannot be taken back.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Create AP2 payment mandate
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Changes things 6Claude Code: ask
  • analyze_buyer_intelligenceDeep company intelligence for a buyer: corporate registry verification, customs import records, supply chain mapping, decision-maker profiling, risk flags.1 finding

    Why it is in this group

    • The name "analyze_buyer_intelligence" says "analyze": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "analyze_buyer_intelligence" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "analyze_buyer_intelligence" says "analyze": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Analyze buyer company intelligence
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • check_discovery_taskPoll a background buyer-discovery task created by find_buyers (acquisition.task_id) or submit_discovery_job.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Check discovery task status
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • enrich_buyer_contactRun 6-layer contact enrichment for a buyer: direct website scraping → proxy retry → BFS contact pages → LLM text extraction → vision screenshot → Serper fallback.No findings

    Why it is in this group

    • The description's first verb is "run": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Enrich buyer contact details
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • place_orderAccept a supplier quote and create an order (status pending_payment) for one of your inquiries.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Place an order (accept quote)
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • request_quoteStart a transaction by sending a quote request (inquiry) to a supplier for a specific product_id (get one from search_products).No findings

    Why it is in this group

    • The name "request_quote" says "request": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Request a quote (create inquiry)
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • submit_discovery_jobExplicitly submit an async batch buyer discovery job for a category + country.No findings

    Why it is in this group

    • The name "submit_discovery_job" says "submit": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Submit buyer discovery job
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Only reads 6Claude Code: allow
  • find_buyersSearch 500,000+ verified importers and distributors by product category and target country.No findings

    Why it is in this group

    • The name "find_buyers" says "find": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Find verified B2B buyers
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_group_buy_poolsList open collective sourcing projects (联拼宝 / Lianpinbao).No findings

    Why it is in this group

    • The name "list_group_buy_pools" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List group-buy pools
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_payment_mandatesList your AP2 payment mandates with status, currency, total/per-order limits, consumed and remaining budget, scope and expiry.No findings

    Why it is in this group

    • The name "list_payment_mandates" says "list": a word for reading.
    Description, as the server wrote it
    List your AP2 payment mandates with status, currency, total/per-order limits, consumed and remaining budget, scope and expiry. Requires authentication.

    Annotations the server declares

    • title: List AP2 payment mandates
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_quotesList the supplier quotes submitted for one of your inquiries (from request_quote).No findings

    Why it is in this group

    • The name "list_quotes" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List quotes for an inquiry
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • search_productsSearch live products listed by ProcureRadar suppliers by keyword, destination country, supplier country, or category.No findings

    Why it is in this group

    • The name "search_products" says "search": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Search supplier products
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • search_storesDiscover verified supplier storefronts (supply nodes) on ProcureRadar by target-market country and industry.No findings

    Why it is in this group

    • The name "search_stores" says "search": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Search supplier storefronts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.1. Values in angle brackets are yours to fill in.

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

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__buyer-intelligence__find_buyers",
      "mcp__buyer-intelligence__list_group_buy_pools",
      "mcp__buyer-intelligence__search_products",
      "mcp__buyer-intelligence__search_stores",
      "mcp__buyer-intelligence__list_quotes",
      "mcp__buyer-intelligence__list_payment_mandates"
    ],
    "ask": [
      "mcp__buyer-intelligence__enrich_buyer_contact",
      "mcp__buyer-intelligence__analyze_buyer_intelligence",
      "mcp__buyer-intelligence__submit_discovery_job",
      "mcp__buyer-intelligence__check_discovery_task",
      "mcp__buyer-intelligence__request_quote",
      "mcp__buyer-intelligence__place_order",
      "mcp__buyer-intelligence__create_payment_mandate"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as buyer-intelligence. Review it before you use it.