SeekAPI China Procurement for AI Agents
by kiddhu · remote · no sign-in to list tools · v0.1.10 · published by GitHub user kiddhu
China Supply Check: Image Stripe USD2.99 live; x402 2.99 USDC/Base; 1–3 suppliers, report/JSON/RFQ.
16 tools: 3 can delete or cancel things, 5 change things and 8 only read.
Scanned Oct 21, 2026
- Deletes or cancels3Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things5Claude Code: ask: see these tools
- Only reads8Claude Code: allow: see these tools
10 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http seekapi https://api.seekapi.ai/mcpFindings
Matches of fixed checks, with the text they matched.
The input schema at properties.draft.anyOf[1].properties.product_link.properties.observation.properties.brand.$ref contains a 44-character base64 string.
What this check looks forMatched text
inputSchema.properties.draft.anyOf[1].properties.product_link.properties.observation.properties.brand.$ref: "#/properties/draft/anyOf/1/properties/product_link/properties/obs..."
The input schema at properties.draft.anyOf[1].properties.product_link.properties.observation.properties.model.$ref contains a 44-character base64 string.
What this check looks forMatched text
inputSchema.properties.draft.anyOf[1].properties.product_link.properties.observation.properties.model.$ref: "#/properties/draft/anyOf/1/properties/product_link/properties/obs..."
The input schema at properties.draft.anyOf[1].properties.product_link.properties.observation.properties.variant.$ref contains a 44-character base64 string.
What this check looks forMatched text
inputSchema.properties.draft.anyOf[1].properties.product_link.properties.observation.properties.variant.$ref: "#/properties/draft/anyOf/1/properties/product_link/properties/obs..."
The input schema at properties.purchase.anyOf[1].properties.intent_id.$ref contains a 46-character base64 string.
What this check looks forMatched text
inputSchema.properties.purchase.anyOf[1].properties.intent_id.$ref: "#/properties/purchase/anyOf/0/properties/intent_id"
The input schema at properties.purchase.anyOf[1].properties.draft_digest.$ref contains a 45-character base64 string.
What this check looks forMatched text
inputSchema.properties.purchase.anyOf[1].properties.draft_digest.$ref: "#/properties/purchase/anyOf/0/properties/draft_digest"
The input schema at properties.purchase.anyOf[1].properties.customer_confirmed_digest.$ref contains a 48-character base64 string.
What this check looks forMatched text
inputSchema.properties.purchase.anyOf[1].properties.customer_confirmed_digest.$ref: "#/properties/purchase/anyOf/0/properties/customer_confirmed_digest"
Show 4 more findingsShow fewer
The server marks "invoke_product_detail_v0" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "invoke_product_detail_v0" says "invoke": a word for a change.
The server marks "invoke_product_public_offer_snapshot_v0" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "invoke_product_public_offer_snapshot_v0" says "invoke": a word for a change.
The server marks "invoke_shop_product_page_v0" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "invoke_shop_product_page_v0" says "invoke": a word for a change.
The server marks "invoke_seller_public_profile_v0" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "invoke_seller_public_profile_v0" says "invoke": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
16 tools
Deletes or cancels 3Claude Code: deny
invoke_product_keyword_search_v0Restricted product-search pilot; use China Supply Check for the public sourcing product.No findings
Why it is in this group
- The name "invoke_product_keyword_search_v0" says "invoke": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Restricted product-search pilot; use China Supply Check for the public sourcing product. Explicit idempotency is required for eligible orders. Other tools are sandbox.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: true
purchase_china_supply_check_v0Buy the exact confirmed brief for 2.99 USDC on Base via official x402.3 findings
Why it is in this group
- The name "purchase_china_supply_check_v0" says "purchase": a word that usually means money moves, which cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Findings
- Warn
The input schema at properties.purchase.anyOf[1].properties.intent_id.$ref contains a 46-character base64 string.
What this check looks forMatched text
inputSchema.properties.purchase.anyOf[1].properties.intent_id.$ref: "#/properties/purchase/anyOf/0/properties/intent_id"
- Warn
The input schema at properties.purchase.anyOf[1].properties.draft_digest.$ref contains a 45-character base64 string.
What this check looks forMatched text
inputSchema.properties.purchase.anyOf[1].properties.draft_digest.$ref: "#/properties/purchase/anyOf/0/properties/draft_digest"
- Warn
The input schema at properties.purchase.anyOf[1].properties.customer_confirmed_digest.$ref contains a 48-character base64 string.
What this check looks forMatched text
inputSchema.properties.purchase.anyOf[1].properties.customer_confirmed_digest.$ref: "#/properties/purchase/anyOf/0/properties/customer_confirmed_digest"
Description, as the server wrote it Buy the exact confirmed brief for 2.99 USDC on Base via official x402. Signed wallet invocation and independent image delegation required. Authorized paid images hand off automatically after durable settlement; purchase never runs Provider synchronously. Results disclose product match, source evidence and any shortages under their confirmed policy. Call discover_china_supply_check_v0 for current independent image/text payment availability. Human card entry: https://api.seekapi.ai/checkout/stripe/image for USD 2.99 hosted Checkout; legacy text/model Stripe is OFF. Read the existing result; do not pay again.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: true
run_china_supply_check_v0Existing text/model: execute paid CSC once.No findings
Why it is in this group
- The name "run_china_supply_check_v0" says "run": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Existing text/model: execute paid CSC once. Public images: read automatic fulfillment progress/result, no new Provider effect on this read. Signed wallet invocation required; delivered replay is free, do not pay again.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: true
Changes things 5Claude Code: ask
invoke_product_detail_v0Deterministic sandbox fixture only; no provider call or payment.1 finding
Why it is in this group
- The name "invoke_product_detail_v0" says "invoke": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "invoke_product_detail_v0" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "invoke_product_detail_v0" says "invoke": a word for a change.
Description, as the server wrote it Deterministic sandbox fixture only; no provider call or payment. Deterministic Sandbox interpreter for a single item-id product detail; metadata is machine-readable while production and real-value activation remain disabled.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
invoke_product_public_offer_snapshot_v0Deterministic sandbox fixture only; no provider call or payment.1 finding
Why it is in this group
- The name "invoke_product_public_offer_snapshot_v0" says "invoke": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "invoke_product_public_offer_snapshot_v0" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "invoke_product_public_offer_snapshot_v0" says "invoke": a word for a change.
Description, as the server wrote it Deterministic sandbox fixture only; no provider call or payment. Deterministic Sandbox interpreter for a single item-id public offer snapshot; metadata is machine-readable while production and real-value activation remain disabled.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
invoke_seller_public_profile_v0Deterministic sandbox fixture only; no provider call or payment.1 finding
Why it is in this group
- The name "invoke_seller_public_profile_v0" says "invoke": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "invoke_seller_public_profile_v0" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "invoke_seller_public_profile_v0" says "invoke": a word for a change.
Description, as the server wrote it Deterministic sandbox fixture only; no provider call or payment. Deterministic Sandbox interpreter for a single seller-id public profile; metadata is machine-readable while production and real-value activation remain disabled.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
invoke_shop_product_page_v0Deterministic sandbox fixture only; no provider call or payment.1 finding
Why it is in this group
- The name "invoke_shop_product_page_v0" says "invoke": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "invoke_shop_product_page_v0" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "invoke_shop_product_page_v0" says "invoke": a word for a change.
Description, as the server wrote it Deterministic sandbox fixture only; no provider call or payment. Deterministic Sandbox interpreter for a single shop-id product page; metadata is machine-readable while production and real-value activation remain disabled.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
prepare_china_supply_check_v0Free image-first or text/model China Supply Check draft and confirmation digest.3 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.
Findings
- Warn
The input schema at properties.draft.anyOf[1].properties.product_link.properties.observation.properties.brand.$ref contains a 44-character base64 string.
What this check looks forMatched text
inputSchema.properties.draft.anyOf[1].properties.product_link.properties.observation.properties.brand.$ref: "#/properties/draft/anyOf/1/properties/product_link/properties/obs..."
- Warn
The input schema at properties.draft.anyOf[1].properties.product_link.properties.observation.properties.model.$ref contains a 44-character base64 string.
What this check looks forMatched text
inputSchema.properties.draft.anyOf[1].properties.product_link.properties.observation.properties.model.$ref: "#/properties/draft/anyOf/1/properties/product_link/properties/obs..."
- Warn
The input schema at properties.draft.anyOf[1].properties.product_link.properties.observation.properties.variant.$ref contains a 44-character base64 string.
What this check looks forMatched text
inputSchema.properties.draft.anyOf[1].properties.product_link.properties.observation.properties.variant.$ref: "#/properties/draft/anyOf/1/properties/product_link/properties/obs..."
Description, as the server wrote it Free image-first or text/model China Supply Check draft and confirmation digest. Use the customer's own language; no Chinese translation or 1688 knowledge is required. A bounded PNG may be sent once as base64 for immediate sanitization; the canonical response contains only digest and metadata. Call discover_china_supply_check_v0 for current payment availability and prices. Review the exact draft before confirming payment. No payment, order, Provider or supplier contact.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
Only reads 8Claude Code: allow
discover_china_supply_check_v0Read China Supply Check prices, current payment availability and the product-first public example.No findings
Why it is in this group
- The description's first verb is "read": a word for reading.
Description, as the server wrote it Read China Supply Check prices, current payment availability and the product-first public example. The example explains matched products, comparable commercial scores, distinct suppliers and source factory tiers; missing non-hard fields remain RFQ unknowns. Call discover_china_supply_check_v0 and check its live response before starting a new purchase. Existing reports retain their stated selection policy. Listing prices are not formal quotes. Read-only; no payment or sourcing.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
discover_product_detail_v0Read-only discovery for product_detail_v0; no payment or provider call.No findings
Why it is in this group
- The description's first verb is "read": a word for reading.
Description, as the server wrote it Read-only discovery for product_detail_v0; no payment or provider call.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
discover_product_keyword_search_v0Read-only discovery for product_keyword_search_v0; no payment or provider call.No findings
Why it is in this group
- The name "discover_product_keyword_search_v0" says "search": a word for reading.
Description, as the server wrote it Read-only discovery for product_keyword_search_v0; no payment or provider call.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
discover_product_public_offer_snapshot_v0Read-only discovery for product_public_offer_snapshot_v0; no payment or provider call.No findings
Why it is in this group
- The name "discover_product_public_offer_snapshot_v0" says "snapshot": a word for reading.
Description, as the server wrote it Read-only discovery for product_public_offer_snapshot_v0; no payment or provider call.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
discover_seller_public_profile_v0Read-only discovery for seller_public_profile_v0; no payment or provider call.No findings
Why it is in this group
- The description's first verb is "read": a word for reading.
Description, as the server wrote it Read-only discovery for seller_public_profile_v0; no payment or provider call.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
discover_shop_product_page_v0Read-only discovery for shop_product_page_v0; no payment or provider call.No findings
Why it is in this group
- The description's first verb is "read": a word for reading.
Description, as the server wrote it Read-only discovery for shop_product_page_v0; no payment or provider call.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
result_china_supply_check_v0Read your durable Agent CSC order with independent signed-wallet authentication; zero payment and Provider effects.No findings
Why it is in this group
- The description's first verb is "read": a word for reading.
Description, as the server wrote it Read your durable Agent CSC order with independent signed-wallet authentication; zero payment and Provider effects. Completed images return csc.delivery.v4 with 1–3 distinct source-backed suppliers and English report data. Stripe users use their secure card recovery link. Do not repay for existing results.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
status_china_supply_check_v0Read your durable Agent CSC order with independent signed-wallet authentication; zero payment and Provider effects.No findings
Why it is in this group
- The name "status_china_supply_check_v0" says "status": a word for reading.
Description, as the server wrote it Read your durable Agent CSC order with independent signed-wallet authentication; zero payment and Provider effects. Completed images return csc.delivery.v4 with 1–3 distinct source-backed suppliers and English report data. Stripe users use their secure card recovery link. Do not repay for existing results.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- destructiveHint: false
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 0.1.10. Values in angle brackets are yours to fill in.
claude mcp add --transport http seekapi https://api.seekapi.ai/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__seekapi__discover_china_supply_check_v0",
"mcp__seekapi__status_china_supply_check_v0",
"mcp__seekapi__result_china_supply_check_v0",
"mcp__seekapi__discover_product_keyword_search_v0",
"mcp__seekapi__discover_product_detail_v0",
"mcp__seekapi__discover_product_public_offer_snapshot_v0",
"mcp__seekapi__discover_shop_product_page_v0",
"mcp__seekapi__discover_seller_public_profile_v0"
],
"ask": [
"mcp__seekapi__prepare_china_supply_check_v0",
"mcp__seekapi__invoke_product_detail_v0",
"mcp__seekapi__invoke_product_public_offer_snapshot_v0",
"mcp__seekapi__invoke_shop_product_page_v0",
"mcp__seekapi__invoke_seller_public_profile_v0"
],
"deny": [
"mcp__seekapi__purchase_china_supply_check_v0",
"mcp__seekapi__run_china_supply_check_v0",
"mcp__seekapi__invoke_product_keyword_search_v0"
]
}
}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 seekapi. Review it before you use it.
