Skip to main content

Sell to State

com.selltostate/mcpVersion 0.4.1

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

Status

Responds172 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 14:14 UTC
Latency
172 ms
Remotes responding
1 of 1
Sign-in
No sign-in
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 22:14 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://app.selltostate.com/api/mcpResponds172 ms
No sign-in

Claude Code

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

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: selltostate
Remote MCP server URL: https://app.selltostate.com/api/mcp

Cursor

{
  "mcpServers": {
    "selltostate": {
      "url": "https://app.selltostate.com/api/mcp"
    }
  }
}

VS Code

code --add-mcp '{"name":"selltostate","type":"http","url":"https://app.selltostate.com/api/mcp"}'

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

30 tools

Tools of Sell to State
Read-only
Idempotent
Open world
add_to_listAdd a tender to a saved list. Body: id (list id) + tender_no OR award_id. Idempotent. Requires a user API key.NoNoNot declaredNo
create_listCreate a new saved award list (personal). Body: name. Requires a user API key.NoNoNot declaredNo
delete_listDelete a saved list (and its items). Body: id. Requires a user API key (creator or workspace owner).YesNoNot declaredNo
delete_saved_searchDelete a saved search. Body: id. Requires a user API key (creator or workspace owner).YesNoNot declaredNo
exportExport a filtered award set as CSV, at most 500 rows per call (use the REST /api/v1/awards.csv for larger files). country omitted means singapore. A bad country is an error, not a Singapore file.NoYesNot declaredNo
get_agencyAll awards for one agency (by slug or display-name match).NoYesNot declaredNo
get_buyerBuyer (agency) detail by slug: summary stats, yearly spend trend, sector breakdown, and top suppliers.NoYesNot declaredNo
get_buyer_detailAlias of get_buyer (back-compat). Buyer (agency) detail by slug: summary stats, yearly spend trend, sector breakdown, and top suppliers.NoYesNot declaredNo
get_listOne saved list with paginated items joined to award data (description/buyer/supplier/amount/date). Without a plan, each item's award_id and title only. Requires a user API key.NoYesNot declaredNo
get_listsList 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.NoYesNot declaredNo
get_new_tendersTender alerts for an agent: the tenders of one saved tender search that arrived after `cursor`. Returns {events: [] or [one digest: counts by status and country, top 20 tenders, search_url], cursor, truncated, next_check_after}. Keep the returned cursor and pass it on the next call; without a cursor the call covers the last 24 hours. New data arrives once a day (check after next_check_after, about 06:30 UTC). Requires a user API key. Without a plan: the window is at most the last 24 hours, and 10 different saved searches a day (error free_limit after that).NoYesNot declaredNo
get_onboarding_searchThe state of the first search that submit_onboarding started. Returns the same body as submit_onboarding; status generating: call again in 15 seconds.NoYesNot declaredNo
get_saved_searchOne saved search by id (visible to the caller, else not_found). Requires a user API key.NoYesNot declaredNo
get_saved_searchesList every saved search the caller (x-api-key owner) can see (personal + shared workspace). Requires a user API key.NoYesNot declaredNo
get_sectorSector detail by slug: summary stats, yearly trend, and active partners (kind=buyers|suppliers).NoYesNot declaredNo
get_supplierAll awards for one supplier (by display-name match).NoYesNot declaredNo
get_supplier_detailSupplier detail by slug: summary stats, yearly awarded trend, sector breakdown, and top buyers.NoYesNot declaredNo
get_tenderSingle tender (award) detail by numeric award_id OR public tender page id, with related awards (same tender / same buyer) and requirements: what a company needs to bid in the tender's country (registration, foreign companies, documents, bid and performance security, law, portal, language, e-signature, complaints, sources, guide_url; null if none). The tender documents take priority over this summary.NoYesNot declaredNo
list_buyersTop buyers (agencies) by total spend.NoYesNot declaredNo
list_sectorsThe curated sector taxonomy (slug + name).NoYesNot declaredNo
list_suppliersTop suppliers by total awarded.NoYesNot declaredNo
plan_searchTurn a request in words into a Sell to State search: terms in the languages of the countries, and filters (scope, country, lifecycle, date window, amounts). Example text: 'body-worn cameras for police in Kenya and South Africa, open tenders'. Returns {summary, scope, q, filters, url, count, notes}; call `search` with scope, q and the filters to get the rows. When the text names nothing to search, returns {answer} only. Uses the daily AI search limit (3 a day for free accounts, 100 with a plan).NoYesNot declaredNo
remove_from_listRemove a tender from a saved list. Body: id (list id) + tender_no OR award_id. Requires a user API key.YesNoNot declaredNo
rename_listRename a saved list. Body: id, name. Requires a user API key (creator or workspace owner).NoNoNot declaredNo
rename_saved_searchRename a saved search. Body: id, name. Requires a user API key (creator or workspace owner).NoNoNot declaredNo
save_searchSave a search under a name. Body: name, query (filter set), kind? ('atlas' → unified-search shape, else legacy Explorer filters). Requires a user API key. To watch new tenders of a saved tender search: subscribe to the MCP event saved_search.new_tenders when the client supports MCP events, else call get_new_tenders once a day.NoNoNot declaredNo
searchFaceted full-text search over one collection (scope). Every filter is a property of this schema, the same params as REST GET /api/v1/search; values of a fixed list are matched in any case. A bad value or an unknown argument is an invalid-params error whose data lists every problem (errors[]). Tender hits carry lifecycle, deadline_at, accepts_bids and source_url when the source gives them. Returns {hits, found, page, per_page, facets}.NoYesNot declaredNo
search_awardsSearch 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}.NoYesNot declaredNo
submit_onboardingSend the answers of a new account's onboarding form (whoami gives onboarding_required and the questions). Ask the user the questions and use the answers that the user gives. Show the user all answers and get a yes. Product files are optional: send the text only of files that the user gives you for this form. Sell to State saves the profile, reads the website and the files, and builds the user's first search with a weekly email alert. Returns {status, summary, counts, rows (each with url), app_url, saved_search, next_options}; status generating: call get_onboarding_search with build_id.NoNoNot declaredYes
whoamiSelf-introspection: resolve the caller's identity + entitlement + granted scopes. Returns {subject, type, active, plan, scopes, export_cap}. Works when the account has no active plan (active:false), so an agent can check access before it calls a data tool.NoYesNot declaredNo

Details

Registry status
Active
Published
Oct 21, 2026
Updated
Oct 21, 2026
Categories
Uncategorized
GDPR
Not declared

Are you the operator? Claim this listing