出口单 chukoudan
by chukoudan.com · remote · no sign-in to list tools · v0.1.0 · published by com.chukoudan
外贸出口计算与数据 / China export tools: tax refund, quotes, container loading, CBM, FX rates.
13 tools: 2 do something that can't be undone, 8 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone2Claude Code: ask: see these tools
- Changes things8Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http chukoudan https://chukoudan.com/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnunit-convert
The server marks "unit-convert" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "unit-convert" says "convert": a word for a change.
- Warnfx-convert
The server marks "fx-convert" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "fx-convert" says "convert": a word for a change.
The server marks "lookup_refund_rate" 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,"idempotentHint":true,"openWorldHint":false}; The name "lookup_refund_rate" says "lookup": a word for reading.
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 2Claude Code: ask
fx-convert结算汇率(Settlement exchange rates):人民币汇率中间价,和按你的银行价估算的结汇金额。 RMB central parity, and what you receive at your own bank rate.1 finding
Why it is in this group
- The name "fx-convert" says "convert": a word for a change.
- The input carries an amount (input.amount) and a currency, so it moves money.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "fx-convert" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "fx-convert" says "convert": a word for a change.
Description, as the server wrote it 结算汇率(Settlement exchange rates):人民币汇率中间价,和按你的银行价估算的结汇金额。 RMB central parity, and what you receive at your own bank rate. 读取数据 / Reads: central-parity@current. 输入为精确的十进制字符串 / Inputs are exact decimal strings. 用户没有给的数字和日期不要自己编:必填的先问用户,选填的不填。 / Never make up a figure or a date the user did not give: ask for a required one, leave an optional one out. 回复时引用回答里的 provenance.source_line / Quote provenance.source_line in your reply.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- destructiveHint: false
- openWorldHint: false
- title: Settlement exchange rates
unit-convert单位换算(Unit converter):长度、重量、体积,按国际通用的定义系数换算。 Length, weight and volume, with the internationally defined factors.1 finding
Why it is in this group
- The name "unit-convert" says "convert": a word for a change.
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "unit-convert" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "unit-convert" says "convert": a word for a change.
Description, as the server wrote it 单位换算(Unit converter):长度、重量、体积,按国际通用的定义系数换算。 Length, weight and volume, with the internationally defined factors. 输入为精确的十进制字符串 / Inputs are exact decimal strings. 用户没有给的数字和日期不要自己编:必填的先问用户,选填的不填。 / Never make up a figure or a date the user did not give: ask for a required one, leave an optional one out. 回复时引用回答里的 provenance.source_line / Quote provenance.source_line in your reply.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- destructiveHint: false
- openWorldHint: false
- title: Unit converter
Changes things 8Claude Code: ask
baojiaFOB/CIF/CFR 报价(FOB/CIF/CFR quotes):由成本算三种术语报价和利润。 Quotes and profit on all three terms, from your cost.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 FOB/CIF/CFR 报价(FOB/CIF/CFR quotes):由成本算三种术语报价和利润。 Quotes and profit on all three terms, from your cost. 读取数据 / Reads: central-parity@current, ports@current, refund-rates@current. 输入为精确的十进制字符串 / Inputs are exact decimal strings. 用户没有给的数字和日期不要自己编:必填的先问用户,选填的不填。 / Never make up a figure or a date the user did not give: ask for a required one, leave an optional one out. 回复时引用回答里的 provenance.source_line / Quote provenance.source_line in your reply.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- destructiveHint: false
- openWorldHint: false
- title: FOB/CIF/CFR quotes
cbmCBM / 体积重(CBM & volumetric weight):算立方数、毛重和空运快递计费重。 CBM, gross weight and chargeable weight for air and express.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 CBM / 体积重(CBM & volumetric weight):算立方数、毛重和空运快递计费重。 CBM, gross weight and chargeable weight for air and express. 读取数据 / Reads: divisors@current, containers@current. 输入为精确的十进制字符串 / Inputs are exact decimal strings. 每箱毛重 grossWeight 可以不填:不填就只算体积,回答里没有总毛重和计费重,并有一句说明。用户只问“多少方”时不要填,绝不要编一个重量。 / grossWeight may be left out: the answer then has the volumes only, and says so. Leave it out when the user asked only for the volume; never invent a weight. 用户没有给的数字和日期不要自己编:必填的先问用户,选填的不填。 / Never make up a figure or a date the user did not give: ask for a required one, leave an optional one out. 回复时引用回答里的 provenance.source_line / Quote provenance.source_line in your reply.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- destructiveHint: false
- openWorldHint: false
- title: CBM & volumetric weight
container-load装柜计算器(Container loading calculator):每柜装多少箱、要几个柜、怎么摆。 Cartons per container, containers needed, and how to stack them.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 装柜计算器(Container loading calculator):每柜装多少箱、要几个柜、怎么摆。 Cartons per container, containers needed, and how to stack them. 读取数据 / Reads: containers@current. 输入为精确的十进制字符串 / Inputs are exact decimal strings. 每箱毛重 grossWeight 可以不填:用户没给重量就不要填,绝不要编一个。不填时只按尺寸算能装多少箱、要几个柜,没有核对载重上限;回答里第一条 warning 的 message 说明了这一点,回复用户时必须把这句话原样带上。 / grossWeight may be left out: when the user gave no weight, do not fill it and never invent one. The answer is then a count by size alone with the payload limit not checked; the first warning’s message says so, and your reply must pass that sentence on. 用户没有给的数字和日期不要自己编:必填的先问用户,选填的不填。 / Never make up a figure or a date the user did not give: ask for a required one, leave an optional one out. 回复时引用回答里的 provenance.source_line / Quote provenance.source_line in your reply.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- destructiveHint: false
- openWorldHint: false
- title: Container loading calculator
fx-cost结汇成本计算器(FX conversion cost calculator):比较银行和其他方式一年到手多少人民币。 Compare banks and other options: how much RMB you actually get in a year.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 结汇成本计算器(FX conversion cost calculator):比较银行和其他方式一年到手多少人民币。 Compare banks and other options: how much RMB you actually get in a year. 读取数据 / Reads: central-parity@current. 输入为精确的十进制字符串 / Inputs are exact decimal strings. 用户没有给的数字和日期不要自己编:必填的先问用户,选填的不填。 / Never make up a figure or a date the user did not give: ask for a required one, leave an optional one out. 回复时引用回答里的 provenance.source_line / Quote provenance.source_line in your reply.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- destructiveHint: false
- openWorldHint: false
- title: FX conversion cost calculator
lookup_refund_rate查询一个海关编码(HS 编码、商品编码,8 位或 10 位,可带点)在出口退税率文库中的出口退税率(退税率、征税率),用于“帮我查一下海关编码 … 的出口退税率”这类问题。返回该编码的各个时期,并标出适用的一期:给出 export_date(报关单出口日期,不是开票日期)就按那一天;没给就按今天(北京时间),回答里的 lookup.in_force_on 写…1 finding
Why it is in this group
- The name "lookup_refund_rate" says "lookup": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "lookup_refund_rate" 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,"idempotentHint":true,"openWorldHint":false}; The name "lookup_refund_rate" says "lookup": a word for reading.
Description, as the server wrote it 查询一个海关编码(HS 编码、商品编码,8 位或 10 位,可带点)在出口退税率文库中的出口退税率(退税率、征税率),用于“帮我查一下海关编码 … 的出口退税率”这类问题。返回该编码的各个时期,并标出适用的一期:给出 export_date(报关单出口日期,不是开票日期)就按那一天;没给就按今天(北京时间),回答里的 lookup.in_force_on 写明用的是哪一天。用户问“现在”“今天”时不要填 export_date,绝不要自己猜今天的日期;回答时说明是按哪一天标出的。编码不在文库中时返回 found: false 和相近编码,绝不编造税率。本站非官方渠道,仅供参考,以官方公布为准,请把答案里的 notes 一并转告用户。 Look up the export VAT refund rate (出口退税率, 退税率) of ONE customs / HS code (海关编码, 商品编码; 8 or 10 digits, dots allowed, e.g. 8506101110) in the 出口退税率文库. Use it for "帮我查一下海关编码 … 的出口退税率" / "what is the export refund rate of HS code …". Returns every period of the code (refund rate, levy rate 征税率, from, to) and the period in force on one day: export_date when given, otherwise today by the Beijing calendar (lookup.in_force_on names the day). The rate that counts is the one on the export date of the customs declaration (报关单出口日期), not the invoice date: for “now” or “today” leave export_date out and never guess today’s date; say in your reply which day the period was marked for. An unknown code answers found: false with nearby codes, never a rate. Reference data from this site, not the official channel; the official publication prevails. Pass on the notes in the answer.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- destructiveHint: false
- openWorldHint: false
- title: Export refund rate of a customs code
maitou唛头生成(Shipping mark generator):正唛和侧唛,A4 或 100×150 mm 标签直接打印。 Main and side marks, printed on A4 or 100×150 mm labels.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 唛头生成(Shipping mark generator):正唛和侧唛,A4 或 100×150 mm 标签直接打印。 Main and side marks, printed on A4 or 100×150 mm labels. 输入为精确的十进制字符串 / Inputs are exact decimal strings. 用户没有给的数字和日期不要自己编:必填的先问用户,选填的不填。 / Never make up a figure or a date the user did not give: ask for a required one, leave an optional one out. 回复时引用回答里的 provenance.source_line / Quote provenance.source_line in your reply.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- destructiveHint: false
- openWorldHint: false
- title: Shipping mark generator
make_quote按报价工具的输入和卖方的条款,生成一份发给买方的报价单:quote 是结构化数据(https://chukoudan.com/schemas/quote/v1.json,只有价格和条款,带 digest 和汇率依据,买方可核对),text 是可直接发出的纯文本(语言按 language),internal 是卖方自己的成本、退税和利润,只给卖方看,绝不发给买…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 按报价工具的输入和卖方的条款,生成一份发给买方的报价单:quote 是结构化数据(https://chukoudan.com/schemas/quote/v1.json,只有价格和条款,带 digest 和汇率依据,买方可核对),text 是可直接发出的纯文本(语言按 language),internal 是卖方自己的成本、退税和利润,只给卖方看,绝不发给买方。本站不保存任何内容。 Make a quote for a buyer from the quote calculator’s inputs (pricing) and the seller’s terms (quote): `quote` is the quote as data (schema https://chukoudan.com/schemas/quote/v1.json; prices and terms only, with a digest and the dated rate it rests on, so the buyer can check it), `text` is the same quote as plain text ready to send, and `internal` holds the seller’s own cost, refund and profit: for the seller only, NEVER send it to the buyer. Leave pricing.fxRate out to use the day’s RMB central parity. Nothing is stored.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- destructiveHint: false
- openWorldHint: false
- title: Make a quote for a buyer
tuishui出口退税计算器(Export tax refund calculator):填发票金额和退税率,立刻看到应退税额和每一步的出处。 Trading companies (exempt-and-refund) and manufacturers (exempt-credit-refund).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 出口退税计算器(Export tax refund calculator):填发票金额和退税率,立刻看到应退税额和每一步的出处。 Trading companies (exempt-and-refund) and manufacturers (exempt-credit-refund). 读取数据 / Reads: refund-rates@current, central-parity@current. 输入为精确的十进制字符串 / Inputs are exact decimal strings. 用户没有给的数字和日期不要自己编:必填的先问用户,选填的不填。 / Never make up a figure or a date the user did not give: ask for a required one, leave an optional one out. 回复时引用回答里的 provenance.source_line / Quote provenance.source_line in your reply.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- destructiveHint: false
- openWorldHint: false
- title: Export tax refund calculator
Only reads 3Claude Code: allow
get_dataset一个数据集:全部版本,新的在前,含日期、记录条数、列和内容校验。 One dataset: its versions, newest first, with date, row count, columns and content hash.No findings
Why it is in this group
- The name "get_dataset" says "get": a word for reading.
Description, as the server wrote it 一个数据集:全部版本,新的在前,含日期、记录条数、列和内容校验。 One dataset: its versions, newest first, with date, row count, columns and content hash.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- destructiveHint: false
- openWorldHint: false
- title: A dataset and its versions
get_dataset_rows一个数据集版本的一页数据行,与发布的一致(不指定版本时取当前版本)。 A page of the rows of one dataset version, as published (the current version when none is named).No findings
Why it is in this group
- The name "get_dataset_rows" says "get": a word for reading.
Description, as the server wrote it 一个数据集版本的一页数据行,与发布的一致(不指定版本时取当前版本)。 A page of the rows of one dataset version, as published (the current version when none is named).
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- destructiveHint: false
- openWorldHint: false
- title: Rows of a dataset version
list_datasets本站公开的数据集(人民币汇率中间价、出口退税率文库、集装箱规格…),每个附当前版本。 The datasets the site publishes (人民币汇率中间价, 出口退税率文库, 集装箱规格…), each with its current version.No findings
Why it is in this group
- The name "list_datasets" says "list": a word for reading.
Description, as the server wrote it 本站公开的数据集(人民币汇率中间价、出口退税率文库、集装箱规格…),每个附当前版本。 The datasets the site publishes (人民币汇率中间价, 出口退税率文库, 集装箱规格…), each with its current version.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- destructiveHint: false
- openWorldHint: false
- title: List the datasets
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.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http chukoudan https://chukoudan.com/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__chukoudan__list_datasets",
"mcp__chukoudan__get_dataset",
"mcp__chukoudan__get_dataset_rows"
],
"ask": [
"mcp__chukoudan__baojia",
"mcp__chukoudan__cbm",
"mcp__chukoudan__unit-convert",
"mcp__chukoudan__fx-convert",
"mcp__chukoudan__fx-cost",
"mcp__chukoudan__maitou",
"mcp__chukoudan__tuishui",
"mcp__chukoudan__container-load",
"mcp__chukoudan__lookup_refund_rate",
"mcp__chukoudan__make_quote"
],
"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 chukoudan. Review it before you use it.