TDE
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Prices a trade deal month by month: what an order does to your cash, and what to ask for instead.
| Author | io.github.danha2048 |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 264 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"TDE": {
"url": "https://app.tdehq.com/mcp/",
"transport": "streamable-http"
}
}
}
Measured tools (17)
test_orderread-onlyWhether the next order can be placed this month, and how large, checked month by month against the caller's cash, budget and stock limits. `profile` is `{"business": {...}, "navigator": {...}}`. Needs `navigator.monthly_demand_units` (a monthly rate, not one order), `business.monthly_spend_gbp` (GBP/month), `business.cash_on_hand_gbp` and `business.monthly_revenue_gbp`; optional `navigator` keys include `navigator.unit_sell_price_gbp`, `supplier_deposit_pct`, `shipping_time_months` and `cash_floor_gbp`. `corridor_id` is the lane (default: live); `regime_state` overrides the lane's state. Returns `first_order`, `status` (`feasible`, `best_achievable` with `compromises`, or `below_zero_no_floor`) and `minimum_relaxation`. `deal_terms` (where enabled) judges payment terms. Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Parameters:
profile(required) — objectdeal_termscorridor_idregime_state
Hints: read-only yes · destructive no · idempotent yes · open-world no
margin_cushionread-onlyHow much of a gross margin survives the cost move TDE has MEASURED for the goods. A v1 heuristic. Pass either `profile` (`{"business": {...}}`, with `margin_pct` and the goods' code or category) or `margin_pct` (percent) and `hs6` (six-digit commodity code) together; both reach the same calculation. `covered: false` means the goods sit outside the ten HS chapters measured, and no figure is given. Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Parameters:
hs6profilemargin_pct
Hints: read-only yes · destructive no · idempotent yes · open-world no
landed_costread-onlyCIF value, duty and import VAT, in GBP. Send the goods value as `goods_gbp`, or as `goods` with `currency`; amounts in another currency are converted at the Bank of England rate TDE holds, stated under `fx_rate` with its date. Give `duty_rate_pct`, or a `commodity_code` and `origin` for goods entering the UK: the rate is then read from the UK tariff and stated under `duty_lookup`. When more than one code fits, `choose_code` lists them and no total is given. A rate that cannot be found is asked for, never set to 0. For goods entering another country, `duty_rate_pct` and `vat_rate_pct` are required. Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Parameters:
goods— Goods value in `currency`.units— Units, for per-unit figures.origin— Country the goods come from, e.g. China.freight— Freight in `currency`.currency— ISO code of goods, freight and insurance: USD, GBP, CNY, INR, EUR, THB or MYR.goods_gbp— Goods value in GBP.insurance— Insurance amount in `currency`.destination— Country the goods enter. Default UK.freight_gbp— Freight in GBP.vat_rate_pct— Import VAT rate, percent. 20 for the UK when unset.duty_rate_pct— Duty rate, percent of CIF. Overrides any looked-up rate.insurance_pct— Insurance, percent of goods value.commodity_code— 10-digit UK commodity code, 6-digit HS code, or a product description.claim_preference— True if the goods qualify for the origin's tariff preference.
Hints: read-only yes · destructive no · idempotent yes · open-world no
lane_stateread-onlyA trade lane's current state (how freely ships are passing the chokepoints on its route) and the date the data covers. `corridor_id` names the lane (for example `uk_india`; `capabilities` lists them); default is the deployment's live lane. READ from the daily pipeline: `as_of` is the data date, not today. `excluded_passages` names chokepoints left out because their feed stopped reporting. `transits_to` is the date of the newest ship count behind the state; `stale` is true when it is more than 14 days old. A lane with nothing built returns `state: null` with its absences named. Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Parameters:
corridor_id
Hints: read-only yes · destructive no · idempotent yes · open-world no
plan_ledgerread-onlyEvery pound the `test_order` plan moves, month by month. Takes the same `profile`, `regime_state` and `corridor_id` as `test_order` and builds the same plan without re-solving it, so cash lines and cost lines agree with that plan. `months` is monthly, the grain the plan is solved at. `ledgered: false` with `missing` means no plan exists for this profile. Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Parameters:
profile(required) — objectcorridor_idregime_state
Hints: read-only yes · destructive no · idempotent yes · open-world no
plan_productsread-onlyA joint plan for up to 30 products sharing one cash floor, monthly budget, credit facility and supplier capacity. `profile["navigator"]["products"]` is the list of product rows (each with `id`, `label`, `monthly_demand_units`, `monthly_spend_gbp` and optional `unit_sell_price_gbp`, `starting_inventory_units`). Products are planned together, not separately and summed. `which_product_lost` names which product gave up units to hold a shared limit, and why; `would_have_been_feasible_separately` names products that pass alone but not together. `regime_state` and `corridor_id` as in `test_order`. Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Parameters:
profile(required) — objectcorridor_idregime_state
Hints: read-only yes · destructive no · idempotent yes · open-world no
risk_registerread-onlyWhat could go wrong on the caller's own figures, priced by stage: Source, Terms, Order, Pay, Ship, Clear, Cash. Takes the same inputs as `test_order` and prices against the same plan. Each row has an `exposure` (the cost if it happens), `covers` (what would cover it) and a `lever` (that cover's cost) where one is priced; otherwise an `absence` naming the one figure that would unlock it. `not_priced` lists exposures this register does not price (for example LC fees, demurrage and quality claims). Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Parameters:
profile(required) — objectcorridor_idregime_state
Hints: read-only yes · destructive no · idempotent yes · open-world no
cost_scenarioread-onlyWhat the goods could cost over the coming months: a `low`/`mid`/`high` band ESTIMATED from what this lane's past disruption episodes did to goods prices. A band from measured history, not a forecast. Freight is held at the caller's own figure. `horizon_months` is optional. `events_behind_it` counts the past episodes behind the band. `projected: false` when the goods sit outside the ten measured categories or no price series exists for them on this lane. Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Parameters:
profile(required) — objecthorizon_months
Hints: read-only yes · destructive no · idempotent yes · open-world no
cash_runwayread-onlyHow long the caller's cash lasts if costs move as the lane's price scenario says. Needs cash on hand, revenue, margin and fixed costs in `profile.business`; each one absent is named in `missing` (`projected: false`). Returns `runway_months_low`/`mid`/`high` and `worst_drawdown_gbp` over `horizon_months` (default 12); a runway longer than the horizon is `null`. When the profile also plans an order, the plan's cash answer is added (`source: "plan"`): `plan_first_break_month` and `plan_first_break_amount_gbp` (first month below the cash floor), `plan_first_below_zero_month`, `plan_lowest_cash_gbp`, `plan_horizon_months`. Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Parameters:
profile(required) — objecthorizon_months
Hints: read-only yes · destructive no · idempotent yes · open-world no
duty_at_stakeread-onlyDuty on a year of the caller's goods at their stated rate, and what a preference claim under the UK-India trade agreement could be worth. COMPUTED from `profile` alone (spend, duty rate, preference status), with no network call. Whether goods qualify depends on their code and the rules of origin; the response names where to check. Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Parameters:
profile(required) — object
Hints: read-only yes · destructive no · idempotent yes · open-world no
quote_checkread-onlyWhere a supplier's quote sits in the MEASURED customs-value band (HMRC unit values, last twelve months) for one six-digit code and origin. `hs6` and `origin` (country) are required. `quote` is GBP per unit; `unit_mass_kg` converts it to GBP per kilogram, the band's unit. Only GBP quotes are placed (`currency` unset or `"GBP"`). A customs unit value averages many shipments, so `placement` says where the quote sits in the band, not whether it is overpriced. `band.available: false` with `band.reason` when no band is measured for that code and origin. Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Parameters:
hs6(required) — stringorigin(required) — stringquotecurrencyunit_mass_kg
Hints: read-only yes · destructive no · idempotent yes · open-world no
compare_lanesread-onlyOne of the caller's saved products on the deployment's live lane and on a second lane, against one cash position. `second_origin` names the second lane's origin; `product_id` picks the product (default: the first in `navigator.products`). `second_quote_gbp_per_unit` and `second_lead_time_months` describe the second lane; a measured sea transit replaces a typed lead time where the lane is live. Each lane carries `unit_cost_provenance`, `lead_time_provenance` and `duty_provenance` (READ or PROXY; duty is empty when no rate was found). `available: false` with `missing` when the comparison cannot be built. Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Parameters:
profile(required) — objectsecond_origin(required) — stringproduct_idcorridor_idsecond_lead_time_monthssecond_quote_gbp_per_unit
Hints: read-only yes · destructive no · idempotent yes · open-world no
compare_quotesread-onlyOne to five supplier quotes, each run as a whole-order plan against the caller's `profile` through the same engine as `test_order`, and ranked: feasible first, then total cost, then lead time. Each quote: `label` and `unit_price` required; `currency` one of GBP, USD, INR, CNY, EUR, THB, MYR (default GBP); optional `moq_units`, `lead_time_months`, `payment_terms_months`, `capacity_units_month` and `unit_mass_kg` replace the profile's figure for that quote only (`inputs_used` says which). Quotes in one call are ranked against the same plan. A currency with no Bank of England rate is named in `missing` and not ranked. `verdict` is one sentence. Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Parameters:
profile(required) — objectquotes(required) — arraycorridor_idregime_state
Hints: read-only yes · destructive no · idempotent yes · open-world no
forecaster_backtestread-onlyThe forecaster's backtest for one past disruption event, DERIVED: how many tracked series moved after the event's detected start, out of how many could be tested. `event_id` is optional (default: the first event; an unknown id is refused by name). `measurable: false` means the event sits too close to the edge of its series' history to test; `available: false` means no backtest is built on this deployment. Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Parameters:
event_id
Hints: read-only yes · destructive no · idempotent yes · open-world no
learned_inputsread-onlyWhat the record has taught the engine: each model, its standing, its published backtest, and whether it may change a figure a reader sees (false for every model today). `proposals` is empty, with a `reason`, until a learned proposal is published with its backtest. `profile` is optional and does not change the answer today (`reader_specific` says so). Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Parameters:
profile
Hints: read-only yes · destructive no · idempotent yes · open-world no
veteran_notesread-onlyWhat usually goes wrong for these goods on this lane, and what to check before committing: sourced practitioner notes. `hs6_codes` (six-digit codes) and `corridor_id` are optional; without them only the notes that apply to any goods or any lane are returned. `lane_covered` and `chapter_specific` say whether anything more specific than the general notes matched. `proposed` and `rejected` count the lines a model proposed and the lines refused for promising a fixed timeframe. Each line carries its citation: `source_url`, `source_title`, `reviewed` (the date a person checked it against that source), `synthesis` (a reading of several sources rather than one source's words) and `pdf`. A line with no source is not served, so `every_line_sourced` is true. Information, not advice.
Parameters:
hs6_codescorridor_id
Hints: read-only yes · destructive no · idempotent yes · open-world no
capabilitiesread-onlyWhat this server answers: its endpoints, the lanes and whether each is live, the provenance labels, and the payment presets and splits a profile can use. Takes no input. Figures carry a `provenance` stamp (READ, MEASURED, DERIVED, COMPUTED, PROXY or ESTIMATED; defined in the server instructions) and a `basis`; `missing` names any figure only the caller holds. Information, not advice.
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.