Skip to content

Trade & public tenders

by fourzerotwo.si · remote · no sign-in to list tools · v1.0.1 · published by si.fourzerotwo

UK commodity codes and duties, UK trade statistics, UK/EU public tenders and US federal spending.

Changes · 13

18 tools: 13 change things and 5 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http trade-procurement https://fourzerotwo.si/mcp/v/trade-procurement

Findings

Matches of fixed checks, with the text they matched.

3 warn
  • The server marks "uk-trade-stats__commodity" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

    What this check looks for
  • The server marks "uk-trade-tariff__commodity" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

    What this check looks for
  • The server marks "uk-trade-tariff__heading" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

18 tools

Changes things 13Claude Code: ask
  • eu-tenders__noticeOne TED notice by publication number: title, buyer, value, deadline, CPV, place of performance, description and winners.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
    One TED notice by publication number: title, buyer, value, deadline, CPV, place of performance, description and winners. Free within the daily allowance, then $0.002 USDC per call via x402.

    Annotations the server declares

    • title: EU Public Tenders (TED): EU notice
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • uk-tenders__noticeOne notice in full: description, CPV codes, contract dates, procedure and awards (supplier, value, dates).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
    One notice in full: description, CPV codes, contract dates, procedure and awards (supplier, value, dates). Accepts a Contracts Finder id (GUID) or a Find a Tender notice number (e.g. 095302-2026). Free within the daily allowance, then $0.002 USDC per call via x402.

    Annotations the server declares

    • title: UK Public Tenders: Notice
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • uk-tenders__supplier-awardsContracts Finder awards won by a supplier (name match), newest first, with total value.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
    Contracts Finder awards won by a supplier (name match), newest first, with total value. Free within the daily allowance, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: UK Public Tenders: Awards to a supplier
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • uk-trade-stats__commodityUK imports and exports of one product (HS2, HS4, HS6 or CN8 code) for a month or year: totals and top partner countries with share.1 finding

    Why it is in this group

    • 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 "uk-trade-stats__commodity" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    UK imports and exports of one product (HS2, HS4, HS6 or CN8 code) for a month or year: totals and top partner countries with share. A few free samples a day, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: UK Trade Statistics: Trade in a product
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • uk-trade-stats__countryUK imports from and exports to one country for a month or year: totals and top HS2 product chapters.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
    UK imports from and exports to one country for a month or year: totals and top HS2 product chapters. A few free samples a day, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: UK Trade Statistics: Trade with a country
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • uk-trade-stats__latestThe most recent month HMRC has published trade statistics for.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
    The most recent month HMRC has published trade statistics for. A few free samples a day, then $0.0005 USDC per call via x402.

    Annotations the server declares

    • title: UK Trade Statistics: Latest month
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • uk-trade-tariff__areasTariff geographical areas: countries and the groups used in measures (e.g.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
    Tariff geographical areas: countries and the groups used in measures (e.g. 1011 ERGA OMNES, 1013 European Union, trade agreements), with group members. Free within the daily allowance, then $0.002 USDC per call via x402.

    Annotations the server declares

    • title: UK Trade Tariff: Countries & groups
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • uk-trade-tariff__commodityOne commodity code: description, section/chapter/heading, third-country duty and every import/export measure (preferential rates, VAT, additional duties, controls with document cod…1 finding

    Why it is in this group

    • 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 "uk-trade-tariff__commodity" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    One commodity code: description, section/chapter/heading, third-country duty and every import/export measure (preferential rates, VAT, additional duties, controls with document codes). Give country to keep only what applies to that origin. Free within the daily allowance, then $0.002 USDC per call via x402.

    Annotations the server declares

    • title: UK Trade Tariff: Commodity duties & measures
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • uk-trade-tariff__exchange-ratesHMRC's monthly exchange rates used to convert invoice values for customs and import VAT, units per £1.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
    HMRC's monthly exchange rates used to convert invoice values for customs and import VAT, units per £1. Free within the daily allowance, then $0.002 USDC per call via x402.

    Annotations the server declares

    • title: UK Trade Tariff: HMRC customs exchange rates
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • uk-trade-tariff__headingA 4-digit heading and every commodity code under it, with indents and whether each is declarable.1 finding

    Why it is in this group

    • 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 "uk-trade-tariff__heading" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    A 4-digit heading and every commodity code under it, with indents and whether each is declarable. Free within the daily allowance, then $0.002 USDC per call via x402.

    Annotations the server declares

    • title: UK Trade Tariff: Heading
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • uk-trade-tariff__quotasQuota definitions with status (open, exhausted, critical), initial volume, remaining balance and validity, by order number or country of origin.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
    Quota definitions with status (open, exhausted, critical), initial volume, remaining balance and validity, by order number or country of origin. Free within the daily allowance, then $0.002 USDC per call via x402.

    Annotations the server declares

    • title: UK Trade Tariff: Tariff-rate quotas
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • us-spending__awardOne federal award in full: agency, recipient and parent, obligated/outlayed/potential value, dates, place of performance, NAICS and PSC.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
    One federal award in full: agency, recipient and parent, obligated/outlayed/potential value, dates, place of performance, NAICS and PSC. Free within the daily allowance, then $0.002 USDC per call via x402.

    Annotations the server declares

    • title: US Federal Spending: Award
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • us-spending__recipientA federal recipient: name, UEI, parent, alternate names, business types, location and total amounts.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
    A federal recipient: name, UEI, parent, alternate names, business types, location and total amounts. Give id, or name to use the best match. A few free samples a day, then $0.02 USDC per call via x402.

    Annotations the server declares

    • title: US Federal Spending: Recipient profile
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 5Claude Code: allow
  • uk-tenders__find-a-tender-latestAbove-threshold UK notices published or updated on Find a Tender in the last 1–7 days, by stage (planning, tender, award), optionally filtered by keyword.No findings

    Why it is in this group

    • The name "uk-tenders__find-a-tender-latest" says "find": a word for reading.
    Description, as the server wrote it
    Above-threshold UK notices published or updated on Find a Tender in the last 1–7 days, by stage (planning, tender, award), optionally filtered by keyword. Free within the daily allowance, then $0.003 USDC per call via x402.

    Annotations the server declares

    • title: UK Public Tenders: Latest Find a Tender notices
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true

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 1.0.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http trade-procurement https://fourzerotwo.si/mcp/v/trade-procurement

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__trade-procurement__eu-tenders__search",
      "mcp__trade-procurement__uk-tenders__search",
      "mcp__trade-procurement__uk-tenders__find-a-tender-latest",
      "mcp__trade-procurement__uk-trade-tariff__search",
      "mcp__trade-procurement__us-spending__search"
    ],
    "ask": [
      "mcp__trade-procurement__eu-tenders__notice",
      "mcp__trade-procurement__uk-tenders__notice",
      "mcp__trade-procurement__uk-tenders__supplier-awards",
      "mcp__trade-procurement__uk-trade-stats__commodity",
      "mcp__trade-procurement__uk-trade-stats__country",
      "mcp__trade-procurement__uk-trade-stats__latest",
      "mcp__trade-procurement__uk-trade-tariff__commodity",
      "mcp__trade-procurement__uk-trade-tariff__heading",
      "mcp__trade-procurement__uk-trade-tariff__quotas",
      "mcp__trade-procurement__uk-trade-tariff__areas",
      "mcp__trade-procurement__uk-trade-tariff__exchange-rates",
      "mcp__trade-procurement__us-spending__award",
      "mcp__trade-procurement__us-spending__recipient"
    ],
    "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 trade-procurement. Review it before you use it.