TDE

io.github.danha2048Published by GitHub account danha2048v1.0.1Updated Nov 4, 2026

Before you sign a trade deal: what it does to your cash month by month, and what to ask for instead.

VerifiedStreamable HTTPWeb executableFinanceData & AnalyticsBusiness & Commerce

Overview

AI-generated overview

TDE plans an import trade deal month by month, showing what an order does to cash and what to ask a supplier for instead.

What you can do
  • Test whether an order can be placed this month and at what size, against cash, budget and stock limits
  • Build a joint plan for up to 30 products and a month-by-month ledger of every pound the plan moves
  • Price landed cost, duty and import VAT, and check a supplier quote against measured customs-value bands
  • Compare lanes and up to five supplier quotes, and estimate cash runway and duty at stake
  • Read practitioner notes on what goes wrong for given goods and lanes, and list the server's endpoints and provenance labels
  • Read and update the deal saved in a connected TDE account, keeping each change as a new version
When to use it
Useful before committing to an import order or signing a trade deal, when you want to see the cash effect month by month, compare supplier quotes or lanes, or check whether a quote and duty figure look plausible. It suits UK-India, UK-Malaysia, UK-China and China-Malaysia lanes.
Requirements
A remote streamable HTTP endpoint; no package or local runtime. Most tools need no sign-in, but test_saved_order and update_saved_deal require connecting a TDE account. Callers supply a profile with business and navigator figures such as monthly demand, spend, cash, duty rate and payment timing. Rate limits apply per hour.
Before you install
Two tools read and change the deal saved in your TDE account; update_saved_deal writes new versions, though old values are returned so they can be restored. Other tools only read and compute, and the server states it keeps no figures after the call. Results are information, not advice, and several tools are retired and will be removed. Rate limits apply per session and per address.

Installation

In SourceWeft

  1. Open TDE in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.danha2048%2Ftde/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "tde": {
      "type": "http",
      "url": "https://app.tdehq.com/mcp/"
    }
  }
}

Tools

19

test_order

Test an order

Whether 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` (READ, MEASURED, DERIVED, COMPUTED, PROXY, ESTIMATED or GIVEN; defined in the server instructions) and a `basis`; `missing` names figures only the caller holds. Information, not advice.

Parametersprofilerequireddeal_termscorridor_idregime_state

landed_cost

Landed cost

CIF 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` (READ, MEASURED, DERIVED, COMPUTED, PROXY, ESTIMATED or GIVEN; defined in the server instructions) and a `basis`; `missing` names figures only the caller holds. Information, not advice.

Parametersgoodsunitsoriginfreightcurrencygoods_gbpinsurancedestinationfreight_gbpvat_rate_pctduty_rate_pctinsurance_pct+2 more

lane_state

Lane state (retired)

Retired. This tool was retired on 20 Oct 2026, use test_order. TDE no longer reads a lane's chokepoint transits or calls a route calm or strained. It answers that line until 19 Nov 2026 and is then removed. `corridor_id` is accepted and ignored. Retired: it serves no figure, so there is no provenance stamp to read. Information, not advice.

Parameterscorridor_id

plan_ledger

Plan ledger, month by month

Every 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` (READ, MEASURED, DERIVED, COMPUTED, PROXY, ESTIMATED or GIVEN; defined in the server instructions) and a `basis`; `missing` names figures only the caller holds. Information, not advice.

Parametersprofilerequiredcorridor_idregime_state

plan_products

Plan several products together

A 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` (READ, MEASURED, DERIVED, COMPUTED, PROXY, ESTIMATED or GIVEN; defined in the server instructions) and a `basis`; `missing` names figures only the caller holds. Information, not advice.

Parametersprofilerequiredcorridor_idregime_state

risk_register

Risk register

What 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` (READ, MEASURED, DERIVED, COMPUTED, PROXY, ESTIMATED or GIVEN; defined in the server instructions) and a `basis`; `missing` names figures only the caller holds. Information, not advice.

Parametersprofilerequiredcorridor_idregime_state

cost_scenario

Cost scenario (retired)

Retired. This tool was retired on 20 Oct 2026, use test_order. TDE no longer projects your costs from past episodes or price indices. It answers that line until 19 Nov 2026 and is then removed. `profile` and `horizon_months` are accepted and ignored. Retired: it serves no figure, so there is no provenance stamp to read. Information, not advice.

Parametersprofilehorizon_months

cash_runway

Cash runway

How 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` (READ, MEASURED, DERIVED, COMPUTED, PROXY, ESTIMATED or GIVEN; defined in the server instructions) and a `basis`; `missing` names figures only the caller holds. Information, not advice.

Parametersprofilerequiredhorizon_months

duty_at_stake

Duty at stake

Duty 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` (READ, MEASURED, DERIVED, COMPUTED, PROXY, ESTIMATED or GIVEN; defined in the server instructions) and a `basis`; `missing` names figures only the caller holds. Information, not advice.

Parametersprofilerequired

quote_check

Check a quote

Where 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` (READ, MEASURED, DERIVED, COMPUTED, PROXY, ESTIMATED or GIVEN; defined in the server instructions) and a `basis`; `missing` names figures only the caller holds. Information, not advice.

Parametershs6requiredquoteoriginrequiredcurrencyunit_mass_kg

compare_lanes

Compare lanes

One of the caller's saved products bought from its own lane or from a second lane, side by side: the first lane is the caller's own plan, the second is that plan with only this product's quote, duty and lead time changed. The plans are alternatives, never added up. `second_origin` names the second lane's origin; `product_id` picks the product (default: the first in `navigator.products`). `second_quote_gbp_per_unit`, `second_lead_time_months` and `second_duty_rate_pct` (0 is a stated rate) describe the second lane. A lane whose duty is neither stated nor in the UK tariff is never planned at 0%: `available: false`, and `missing` names the duty rate. Each lane carries its own `status`, `compromises`, `orders_units`, `cash_gbp`, `total_cost_gbp` and `duty_source`. Figures carry a `provenance` (READ, MEASURED, DERIVED, COMPUTED, PROXY, ESTIMATED or GIVEN; defined in the server instructions) and a `basis`; `missing` names figures only the caller holds. Information, not advice.

Parametersprofilerequiredproduct_idcorridor_idsecond_originrequiredsecond_duty_rate_pctsecond_lead_time_monthssecond_quote_gbp_per_unit

compare_quotes

Compare quotes

One to five supplier quotes, each run as a whole-order plan against the caller's `profile` (same engine as `test_order`) and ranked: feasible first, then each plan's total over its months (end stock not credited), then lead time. Each quote: `label`, `unit_price`; `currency` GBP, USD, INR, CNY, EUR, THB, MYR (default GBP); optional `moq_units`, `lead_time_months`, `payment_terms_months`, `capacity_units_month`, `unit_mass_kg` and `lead_time_swing_months` (delivery swing, months) replace the profile's figure for that quote (`inputs_used` says which). Rows add `holding_cost_gbp` and `stock_left_at_end_gbp`. A currency with no Bank of England rate is named in `missing`. `verdict`: up to three sentences. Figures carry a `provenance` (READ, MEASURED, DERIVED, COMPUTED, PROXY, ESTIMATED or GIVEN; defined in the server instructions) and a `basis`; `missing` names figures only the caller holds. Information, not advice.

Parametersquotesrequiredprofilerequiredcorridor_idregime_state

forecaster_backtest

Forecaster backtest (retired)

Retired. This tool was retired on 20 Oct 2026, use test_order. TDE no longer forecasts, so there is no forecaster backtest to read. This tool answers that line until 19 Nov 2026 and is then removed. `event_id` is accepted and ignored. Retired: it serves no figure, so there is no provenance stamp to read. Information, not advice.

Parametersevent_id

learned_inputs

Learned inputs (retired)

Retired. This tool was retired on 20 Oct 2026, use test_order. No learned model touches a figure, so there are no learned inputs to list. This tool answers that line until 19 Nov 2026 and is then removed. `profile` is accepted and ignored. Retired: it serves no figure, so there is no provenance stamp to read. Information, not advice.

Parametersprofile

margin_cushion

Margin cushion (retired)

Retired. This tool was retired on 20 Oct 2026, use test_order. It answers that line until 19 Nov 2026 and is then removed. `profile`, `margin_pct` and `hs6` are accepted and ignored. Retired: it serves no figure, so there is no provenance stamp to read. Information, not advice.

Parametershs6profilemargin_pct

veteran_notes

Veteran notes

What 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.

Parametershs6_codescorridor_id

capabilities

What TDE serves

What 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` (READ, MEASURED, DERIVED, COMPUTED, PROXY, ESTIMATED or GIVEN; defined in the server instructions) and a `basis`; `missing` names figures only the caller holds. Information, not advice.

Takes no parameters.

test_saved_order

Your saved order

Whether the order saved in the caller's TDE account can be placed this month, and how large, checked month by month against their own cash, budget and stock limits. Needs the caller to connect their TDE account; takes no figures. Figures carry a `provenance` (READ, MEASURED, DERIVED, COMPUTED, PROXY, ESTIMATED or GIVEN; defined in the server instructions) and a `basis`; `missing` names figures only the caller holds. Information, not advice.

Takes no parameters.

update_saved_deal

Change your saved order

Changes figures in the deal saved in the caller's TDE account, then answers whether the order can be placed. Each change is kept as a new version of the deal, the old values are returned under `changed` so they can be put back, and nothing is overwritten. Every figure is checked; one the plan needs and the deal lacks is refused by name, never filled in. Needs the caller to connect their TDE account and to allow changes. Figures carry a `provenance` (READ, MEASURED, DERIVED, COMPUTED, PROXY, ESTIMATED or GIVEN; defined in the server instructions) and a `basis`; `missing` names figures only the caller holds. Information, not advice.

Parameterschangesrequired

Version history

2
  1. v1.0.1LatestNov 4, 2026
  2. v1.0.0Oct 20, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.