MCP 服务器

Seldons Korea Trade

ai.seldons/korea-business-trade
商业与运营 电商与零售 公开且可连接 MCP 2026-07-28

此 MCP 可以做什么

Accesses Korean tax and fair-trade registries and supports HS-code and landed-cost research for trade operations.

analyze_product_page
What stops a product page selling abroad
Read a product page and its images and report what would stop it selling to overseas buyers — unclear or risky claims, information foreign buyers expect and cannot find, imagery that will not land, and wording that carries regulatory risk. Returns findings with severity, the evidence quoted from the page, and a suggested fix, plus an explicit list of what it could not check and why. Use it before launching a listing in a new market or when a page converts at home but not abroad. Do not read a short findings list as a pass — check the not-checked list first; it is usually the reason the list is short.
输入模式
{'type': 'object', 'required': ['product_url'], 'properties': {'language': {'enum': ['en', 'ko', 'ja'], 'type': 'string', 'default': 'en', 'description': 'Language for human-readable strings in the result. Codes and mark names stay in their original form.'}, 'product_url': {'type': 'string', 'format': 'uri', 'description': 'Public URL of the product page.'}}, 'additionalProperties': False}
calculate_export_price
Export retail price and landed cost
Work out a recommended retail price in a destination market from factory cost and shipping weight, after freight, duty, import tax, platform and payment fees, and a target margin. Returns the price in local currency rounded to that market's convention, the cost breakdown in USD, and — this is the point of the tool — an assumptions array naming every value the calculation had to supply itself, with its source and confidence. Use it when you need a defensible number rather than a guess, and read the assumptions before quoting the result: a single default can move the answer more than the inputs do. Duty rates are approximations from a maintained table, not a customs ruling, and de minimis thresholds usually do not apply to commercial imports.
输入模式
{'type': 'object', 'required': ['factory_cost', 'weight_kg', 'destination_market', 'category'], 'properties': {'category': {'type': 'string', 'description': 'Product category; drives the duty rate.'}, 'weight_kg': {'type': 'number', 'exclusiveMinimum': 0}, 'fx_per_usd': {'type': 'number', 'description': 'Units of factory_currency per 1 USD. Overrides the rate on file.', 'exclusiveMinimum': 0}, 'factory_cost': {'type': 'number', 'exclusiveMinimum': 0}, 'dimensions_cm': {'type': 'object', 'properties': {'width': {'type': 'number'}, 'height': {'type': 'number'}, 'length': {'type': 'number'}}, 'description': 'Omit only if you know the goods are dense. Without it freight ignores volumetric weight and the price comes out low.'}, 'target_margin': {'type': 'number', 'maximum': 95, 'minimum': 0, 'description': 'Percent, e.g. 45.'}, 'payment_fee_pct': {'type': 'number', 'maximum': 95, 'minimum': 0}, 'factory_currency': {'type': 'string', 'default': 'USD', 'description': 'ISO 4217 of factory_cost. If a rate for it is on file it is used; otherwise pass fx_per_usd.'}, 'platform_fee_pct': {'type': 'number', 'maximum': 95, 'minimum': 0}, 'destination_market': {'type': 'string', 'description': 'Lowercase ISO 3166-1 alpha-2.'}}, 'additionalProperties': False}
check_businesses_batch
Check many Korean businesses at once
Run check_counterparty over up to 100 business numbers in one call and return a per-number verdict plus a summary count. Use it for supplier onboarding, periodic re-screening of a vendor list, or cleaning a spreadsheet of counterparties. Numbers that fail come back as 'unknown' rather than failing the whole batch. Billed per number, not per call.
输入模式
{'type': 'object', 'required': ['business_numbers'], 'properties': {'business_numbers': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 100, 'minItems': 1}}, 'additionalProperties': False}
check_business_number
Korean business number format check
Validate the format and checksum of a South Korean business registration number (사업자등록번호). Returns whether the number is well formed, the normalised 000-00-00000 form, and which rule failed. Runs locally with no external lookup, so it is free and instant. Use it to reject malformed input before spending a call on anything else, and to normalise numbers pasted from documents or spreadsheets. It does NOT tell you whether the business exists, is still trading, or belongs to anyone in particular — a made-up number can pass this check.
输入模式
{'type': 'object', 'required': ['business_number'], 'properties': {'business_number': {'type': 'string', 'description': '10 digits, with or without hyphens or spaces.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['valid', 'normalized', 'digits', 'reason'], 'properties': {'valid': {'type': 'boolean'}, 'digits': {'type': 'string'}, 'reason': {'enum': ['length', 'non_numeric', 'checksum', None], 'type': ['string', 'null']}, 'normalized': {'type': ['string', 'null']}}}
check_certifications
Certification requirements for a product page
Read a product page and report which certifications and marks the product would need to sell in major export markets, which of them the page already shows, and which appear to be missing. Items the page does not give enough information to judge come back separately as uncertain rather than being assumed present or absent. Use it when preparing to enter a market or when auditing a listing before launch. It judges what the page says, not what the company holds — a missing mark here means the page does not show it, which is not the same as not having it.
输入模式
{'type': 'object', 'required': ['product_url'], 'properties': {'language': {'enum': ['en', 'ko', 'ja'], 'type': 'string', 'default': 'en', 'description': 'Language for human-readable strings in the result. Codes and mark names stay in their original form.'}, 'product_url': {'type': 'string', 'format': 'uri', 'description': 'Public URL of the product page.'}}, 'additionalProperties': False}
check_counterparty
Can we do business with this company?
Run every available check on a South Korean business and return one verdict — ok, caution, blocked or unknown — with coded reasons. Reach for this when the question is 'can we transact with this company' rather than a specific field lookup; it saves you interpreting tax codes yourself. Pass representative_name and opening_date to include an identity check. It returns 'unknown' rather than guessing when sources are unreachable, and only an actively trading business can come back 'ok'. Set require_ecommerce to block anyone without an active online-seller filing, or check_ecommerce to include the filing without making it a blocker — the filing is only looked up when you ask, so a plain call stays cheap.
输入模式
{'type': 'object', 'required': ['business_number'], 'properties': {'opening_date': {'type': 'string', 'pattern': '^\\d{8}$'}, 'business_number': {'type': 'string'}, 'check_ecommerce': {'type': 'boolean', 'default': False, 'description': 'Include the filing in the report without making it a blocker.'}, 'require_ecommerce': {'type': 'boolean', 'default': False, 'description': 'Block the verdict when there is no active online-seller filing.'}, 'representative_name': {'type': 'string'}}, 'additionalProperties': False}
get_business_status
Korean business tax status
Look up whether a South Korean business is still trading, according to the National Tax Service: operating, suspended, or closed, plus its VAT classification and the closure date if it closed. Use it to decide whether a counterparty can still issue tax invoices, or before paying an invoice from a company you have not dealt with recently. Results are cached up to 6 hours, 1 hour for suspended or closed, and every response says when it was retrieved. If the tax office is unreachable you may get a cached answer marked stale — check that flag before relying on it. This reports what the tax office says; it is not a credit check and not a tax opinion.
输入模式
{'type': 'object', 'required': ['business_number'], 'properties': {'business_number': {'type': 'string', 'description': '10 digits, with or without hyphens.'}}, 'additionalProperties': False}
get_ecommerce_registration
Korean online-seller filing (통신판매업 신고)
Check whether a South Korean business has filed as an online seller with the Fair Trade Commission — a legal requirement for selling to consumers online in Korea. Returns the filing number, the trading name it was filed under, the issuing authority, and the filing's current status. Use it when onboarding a merchant or before buying from a seller you do not know. IMPORTANT: a business can hold several filings, including dead ones from a former trading name, so 'registered' here means at least one filing is currently active — the count of other filings is returned too. A business that once filed and later closed it is reported differently from one that never filed; that distinction usually matters.
输入模式
{'type': 'object', 'required': ['business_number'], 'properties': {'business_number': {'type': 'string', 'description': '10 digits, with or without hyphens.'}}, 'additionalProperties': False}
lookup_hs_code
HS code estimate from a product page
Read a product page, including its images, and estimate the 6-digit HS code for what is being sold. Returns the code with a confidence score, the reasoning behind it, and alternative headings with why they might apply. Use it for export paperwork, duty estimates, and market-entry checks where you need a starting classification and the argument for it. This is an estimate, not a binding classification — do not present it as a customs ruling, and note that the importer of record carries the legal responsibility. It reads HTML and images only: anything a page draws with JavaScript after load is invisible to it, and the result says what it managed to read.
输入模式
{'type': 'object', 'required': ['product_url'], 'properties': {'language': {'enum': ['en', 'ko', 'ja'], 'type': 'string', 'default': 'en', 'description': 'Language for human-readable strings in the result. Codes and mark names stay in their original form.'}, 'product_url': {'type': 'string', 'format': 'uri', 'description': 'Public URL of the product page.'}}, 'additionalProperties': False}
order_quantity
How many units to order this cycle
Work out how many units of one SKU to order now, for a shop that reviews stock on a fixed cycle rather than continuously. Returns the order quantity, the target stock position it is reaching for, and the same warnings list as reorder_point. Use it when the question is HOW MANY to order today; use reorder_point when the question is WHETHER it is time to order at all. It covers lead time plus the review cycle, because stock ordered today has to last until the next review lands. It does NOT know your supplier case size, minimum order, or shelf life, so round the answer to what you can actually buy and hold.
输入模式
{'type': 'object', 'required': ['units_sold', 'period_days', 'lead_time_days', 'review_cycle_days', 'on_hand'], 'properties': {'on_hand': {'type': 'number', 'description': 'Units sellable right now.'}, 'on_order': {'type': 'number', 'default': 0, 'description': 'Units already ordered and not yet arrived.'}, 'units_sold': {'type': 'number', 'description': 'Units of this SKU sold in the period. Not revenue, not orders.'}, 'period_days': {'type': 'number', 'description': 'How many days the sales figure covers.'}, 'service_level': {'type': 'number', 'default': 0.95, 'description': 'Probability of not stocking out during a lead time, 0 to 1. 0.95 is usual. Higher costs more stock for less added cover.'}, 'lead_time_days': {'type': 'number', 'description': 'Days from placing the order to it being sellable on your shelf.'}, 'review_cycle_days': {'type': 'number', 'description': 'Days between stock reviews. 7 for a weekly check.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['order_quantity', 'target', 'reliable', 'warnings'], 'properties': {'target': {'type': 'integer'}, 'position': {'type': 'number'}, 'reliable': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'object'}}, 'cover_days': {'type': 'number'}, 'safety_stock': {'type': 'integer'}, 'order_quantity': {'type': 'integer'}}}
reorder_point
Reorder point and safety stock, with the cases where it is wrong
Work out the stock level at which to reorder a single SKU, and the safety stock inside it. Returns the reorder point, safety stock, demand per day, and a warnings list naming every reason the number may be unreliable: history shorter than the lead time, too few units to size from, under one unit per lead time, or no sales at all. Use it before placing a purchase order, and per SKU rather than for a whole catalogue at once. Read the warnings before using the number: when the list is not empty the arithmetic still returns a clean figure, and that figure is the one that gets people into trouble. It assumes demand over the lead time is roughly steady and roughly Poisson, so it does NOT hold for seasonal lines, weekend-only SKUs, or a product being promoted.
输入模式
{'type': 'object', 'required': ['units_sold', 'period_days', 'lead_time_days'], 'properties': {'units_sold': {'type': 'number', 'description': 'Units of this SKU sold in the period. Not revenue, not orders.'}, 'period_days': {'type': 'number', 'description': 'How many days the sales figure covers.'}, 'service_level': {'type': 'number', 'default': 0.95, 'description': 'Probability of not stocking out during a lead time, 0 to 1. 0.95 is usual. Higher costs more stock for less added cover.'}, 'lead_time_days': {'type': 'number', 'description': 'Days from placing the order to it being sellable on your shelf.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['reorder_point', 'safety_stock', 'reliable', 'warnings'], 'properties': {'z': {'type': 'number'}, 'formula': {'type': 'string'}, 'reliable': {'type': 'boolean'}, 'warnings': {'type': 'array', 'items': {'type': 'object', 'properties': {'code': {'type': 'string'}, 'detail': {'type': 'string'}}}}, 'safety_stock': {'type': 'integer'}, 'reorder_point': {'type': 'integer'}, 'service_level': {'type': 'number'}, 'demand_per_day': {'type': 'number'}, 'lead_time_demand': {'type': 'number'}}}
verify_business_identity
Confirm a number matches a name and opening date
Confirm that a business registration number, the representative's name, and the opening date all belong to the same registered business. Use it when you need proof of identity before a contract or a payout, not just proof that the company exists. IMPORTANT: on a mismatch the tax office does not say WHICH field is wrong — only that it cannot confirm. This tool narrows it by also checking the number itself and returns the remaining candidates. The representative's name is used for the check only: never stored, logged, or cached, so this call is never served from cache.
输入模式
{'type': 'object', 'required': ['business_number', 'representative_name', 'opening_date'], 'properties': {'opening_date': {'type': 'string', 'pattern': '^\\d{8}$', 'description': 'YYYYMMDD, the 개업연월일 on the certificate — not the incorporation date and not the certificate issue date. Those differ, and that is the most common cause of a mismatch.'}, 'business_number': {'type': 'string'}, 'representative_name': {'type': 'string', 'description': 'Exactly as registered, in Korean.'}}, 'additionalProperties': False}
已添加
order_quantity
2026年9月17日 07:57
已添加
reorder_point
2026年9月17日 07:57
已添加
analyze_product_page
2026年9月17日 07:57
已添加
check_certifications
2026年9月17日 07:57
已添加
lookup_hs_code
2026年9月17日 07:57
已添加
calculate_export_price
2026年9月17日 07:57
已添加
check_businesses_batch
2026年9月17日 07:57
已添加
check_counterparty
2026年9月17日 07:57
已添加
get_ecommerce_registration
2026年9月17日 07:57
已添加
verify_business_identity
2026年9月17日 07:57
已添加
get_business_status
2026年9月17日 07:57
已添加
check_business_number
2026年9月17日 07:57