Skip to content

Sell to State

by selltostate.com · remote · no sign-in to list tools · v0.4.1 · published by com.selltostate

Government tenders, contract awards, buyers and suppliers from official sources in 60+ countries.

Deletes · 3Changes · 6

26 tools: 3 can delete or cancel things, 6 change things and 17 only read.

Scanned Oct 21, 2026

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

claude mcp add --transport http selltostate https://app.selltostate.com/api/mcp

Tools

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

26 tools

Deletes or cancels 3Claude Code: deny
  • delete_listDelete a saved list (and its items).No findings

    Why it is in this group

    • The name "delete_list" says "delete": a word for removing or ending something.
    Description, as the server wrote it
    Delete a saved list (and its items). Body: id. Requires a user API key (creator or workspace owner).
  • remove_from_listRemove a tender from a saved list.No findings

    Why it is in this group

    • The name "remove_from_list" says "remove": a word for removing or ending something.
    Description, as the server wrote it
    Remove a tender from a saved list. Body: id (list id) + tender_no. Requires a user API key.
Changes things 6Claude Code: ask
  • add_to_listAdd a tender to a saved list.No findings

    Why it is in this group

    • The name "add_to_list" says "add": a word for a change.
    Description, as the server wrote it
    Add a tender to a saved list. Body: id (list id) + tender_no OR award_id. Idempotent. Requires a user API key.
  • create_listCreate a new saved award list (personal).No findings

    Why it is in this group

    • The name "create_list" says "create": a word for a change.
    Description, as the server wrote it
    Create a new saved award list (personal). Body: name. Requires a user API key.
  • exportExport a filtered award set as CSV.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.
    Description, as the server wrote it
    Export a filtered award set as CSV. country omitted means singapore. A bad country is an error, not a Singapore file.
  • rename_listRename a saved list.No findings

    Why it is in this group

    • The name "rename_list" says "rename": a word for a change.
    Description, as the server wrote it
    Rename a saved list. Body: id, name. Requires a user API key (creator or workspace owner).
Only reads 17Claude Code: allow
  • get_agencyAll awards for one agency (by slug or display-name match).No findings

    Why it is in this group

    • The name "get_agency" says "get": a word for reading.
    Description, as the server wrote it
    All awards for one agency (by slug or display-name match).
  • get_buyerBuyer (agency) detail by slug: summary stats, yearly spend trend, sector breakdown, and top suppliers.No findings

    Why it is in this group

    • The name "get_buyer" says "get": a word for reading.
    Description, as the server wrote it
    Buyer (agency) detail by slug: summary stats, yearly spend trend, sector breakdown, and top suppliers.
  • get_buyer_detailAlias of get_buyer (back-compat).No findings

    Why it is in this group

    • The name "get_buyer_detail" says "get": a word for reading.
    Description, as the server wrote it
    Alias of get_buyer (back-compat). Buyer (agency) detail by slug: summary stats, yearly spend trend, sector breakdown, and top suppliers.
  • get_listOne saved list with paginated items joined to award data (description/buyer/supplier/amount/date).No findings

    Why it is in this group

    • The name "get_list" says "get": a word for reading.
    Description, as the server wrote it
    One saved list with paginated items joined to award data (description/buyer/supplier/amount/date). Requires a user API key.
  • get_listsList every saved award list the caller (x-api-key owner) can see.No findings

    Why it is in this group

    • The name "get_lists" says "get": a word for reading.
    Description, as the server wrote it
    List every saved award list the caller (x-api-key owner) can see. Each list has itemCount (tender items only), buyerCount, supplierCount and totalCount (all items). Requires a user API key.
  • get_saved_searchesList every saved search the caller (x-api-key owner) can see (personal + shared workspace).No findings

    Why it is in this group

    • The name "get_saved_searches" says "get": a word for reading.
    Description, as the server wrote it
    List every saved search the caller (x-api-key owner) can see (personal + shared workspace). Requires a user API key.
  • get_sectorSector detail by slug: summary stats, yearly trend, and active partners (kind=buyers|suppliers).No findings

    Why it is in this group

    • The name "get_sector" says "get": a word for reading.
    Description, as the server wrote it
    Sector detail by slug: summary stats, yearly trend, and active partners (kind=buyers|suppliers).
  • get_supplierAll awards for one supplier (by display-name match).No findings

    Why it is in this group

    • The name "get_supplier" says "get": a word for reading.
    Description, as the server wrote it
    All awards for one supplier (by display-name match).
  • get_supplier_detailSupplier detail by slug: summary stats, yearly awarded trend, sector breakdown, and top buyers.No findings

    Why it is in this group

    • The name "get_supplier_detail" says "get": a word for reading.
    Description, as the server wrote it
    Supplier detail by slug: summary stats, yearly awarded trend, sector breakdown, and top buyers.
  • get_tenderSingle tender (award) detail by numeric award_id OR public tender page id, with related awards (same tender / same buyer).No findings

    Why it is in this group

    • The name "get_tender" says "get": a word for reading.
    Description, as the server wrote it
    Single tender (award) detail by numeric award_id OR public tender page id, with related awards (same tender / same buyer).
  • list_buyersTop buyers (agencies) by total spend.No findings

    Why it is in this group

    • The name "list_buyers" says "list": a word for reading.
    Description, as the server wrote it
    Top buyers (agencies) by total spend.
  • list_sectorsThe curated sector taxonomy (slug + name).No findings

    Why it is in this group

    • The name "list_sectors" says "list": a word for reading.
    Description, as the server wrote it
    The curated sector taxonomy (slug + name).
  • list_suppliersTop suppliers by total awarded.No findings

    Why it is in this group

    • The name "list_suppliers" says "list": a word for reading.
    Description, as the server wrote it
    Top suppliers by total awarded.
  • search_awardsSearch awarded tenders in one country (Postgres), largest amount first, stable paging.No findings

    Why it is in this group

    • The name "search_awards" says "search": a word for reading.
    Description, as the server wrote it
    Search awarded tenders in one country (Postgres), largest amount first, stable paging. Every filter is a property of this schema; country omitted means singapore. A bad value or an unknown argument is an invalid-params error whose data lists every problem (errors[]). Returns {rows, total, page, pageSize}.
  • whoamiSelf-introspection: resolve the caller's identity + entitlement + granted scopes.No findings

    Why it is in this group

    • The name "whoami" says "whoami": a word for reading.
    Description, as the server wrote it
    Self-introspection: resolve the caller's identity + entitlement + granted scopes. Returns {subject, type, active, plan, scopes, export_cap}. Works even when inactive (active:false) so an agent can verify auth and decide whether to pay before doing work.

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

claude mcp add --transport http selltostate https://app.selltostate.com/api/mcp

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__selltostate__whoami",
      "mcp__selltostate__search_awards",
      "mcp__selltostate__get_supplier",
      "mcp__selltostate__get_agency",
      "mcp__selltostate__get_buyer",
      "mcp__selltostate__get_buyer_detail",
      "mcp__selltostate__get_supplier_detail",
      "mcp__selltostate__get_tender",
      "mcp__selltostate__get_sector",
      "mcp__selltostate__search",
      "mcp__selltostate__list_buyers",
      "mcp__selltostate__list_suppliers",
      "mcp__selltostate__list_sectors",
      "mcp__selltostate__get_lists",
      "mcp__selltostate__get_list",
      "mcp__selltostate__get_saved_searches",
      "mcp__selltostate__get_saved_search"
    ],
    "ask": [
      "mcp__selltostate__export",
      "mcp__selltostate__create_list",
      "mcp__selltostate__rename_list",
      "mcp__selltostate__add_to_list",
      "mcp__selltostate__save_search",
      "mcp__selltostate__rename_saved_search"
    ],
    "deny": [
      "mcp__selltostate__delete_list",
      "mcp__selltostate__remove_from_list",
      "mcp__selltostate__delete_saved_search"
    ]
  }
}

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 selltostate. Review it before you use it.