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.
18 tools: 13 change things and 5 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things13Claude Code: ask: see these tools
- Only reads5Claude 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 trade-procurement https://fourzerotwo.si/mcp/v/trade-procurementFindings
Matches of fixed checks, with the text they matched.
The server marks "uk-trade-stats__commodity" 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":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
The server marks "uk-trade-tariff__commodity" 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":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
The server marks "uk-trade-tariff__heading" 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":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
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".
What this check looks forMatched 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.
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".
What this check looks forMatched 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.
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".
What this check looks forMatched 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.
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
eu-tenders__searchTED notices by keywords, buyer country (ISO alpha-3), CPV code, publication date and type (competition or award), newest first.No findings
Why it is in this group
- The name "eu-tenders__search" says "search": a word for reading.
Description, as the server wrote it TED notices by keywords, buyer country (ISO alpha-3), CPV code, publication date and type (competition or award), newest first. Free within the daily allowance, then $0.003 USDC per call via x402.
Annotations the server declares
- title: EU Public Tenders (TED): Search EU tenders
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
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
uk-tenders__searchContracts Finder notices by keyword, status (open, closed, awarded, withdrawn), type and publication date, optionally above a minimum value.No findings
Why it is in this group
- The name "uk-tenders__search" says "search": a word for reading.
Description, as the server wrote it Contracts Finder notices by keyword, status (open, closed, awarded, withdrawn), type and publication date, optionally above a minimum value. Free within the daily allowance, then $0.003 USDC per call via x402.
Annotations the server declares
- title: UK Public Tenders: Search tenders
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
uk-trade-tariff__searchCandidate commodity codes, headings and chapters for a product description ("roasted coffee", "lithium battery"), best match first.No findings
Why it is in this group
- The name "uk-trade-tariff__search" says "search": a word for reading.
Description, as the server wrote it Candidate commodity codes, headings and chapters for a product description ("roasted coffee", "lithium battery"), best match first. Free within the daily allowance, then $0.003 USDC per call via x402.
Annotations the server declares
- title: UK Trade Tariff: Find a commodity code
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
us-spending__searchFederal awards by keyword, recipient, awarding agency and date range, largest first.No findings
Why it is in this group
- The name "us-spending__search" says "search": a word for reading.
Description, as the server wrote it Federal awards by keyword, recipient, awarding agency and date range, largest first. kind: contracts (default), idvs, grants or loans. Free within the daily allowance, then $0.003 USDC per call via x402.
Annotations the server declares
- title: US Federal Spending: Search awards
- 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-procurementRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .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.