Sell to State
com.selltostate/mcpVersion 0.4.1Government tenders, contract awards, buyers and suppliers from official sources in 60+ countries.
Status
Responds172 msAnswered our handshake without sign-in.- 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 msNo sign-in
Claude Code
claude mcp add --transport http selltostate https://app.selltostate.com/api/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: selltostate
Remote MCP server URL: https://app.selltostate.com/api/mcpCursor
{
"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.
Tools
30 tools
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. | No | No | Not declared | No |
create_listCreate a new saved award list (personal). Body: name. Requires a user API key. | No | No | Not declared | No |
delete_listDelete a saved list (and its items). Body: id. Requires a user API key (creator or workspace owner). | Yes | No | Not declared | No |
delete_saved_searchDelete a saved search. Body: id. Requires a user API key (creator or workspace owner). | Yes | No | Not declared | No |
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. | No | Yes | Not declared | No |
get_agencyAll awards for one agency (by slug or display-name match). | No | Yes | Not declared | No |
get_buyerBuyer (agency) detail by slug: summary stats, yearly spend trend, sector breakdown, and top suppliers. | No | Yes | Not declared | No |
get_buyer_detailAlias of get_buyer (back-compat). Buyer (agency) detail by slug: summary stats, yearly spend trend, sector breakdown, and top suppliers. | No | Yes | Not declared | No |
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. | No | Yes | Not declared | No |
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. | No | Yes | Not declared | No |
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). | No | Yes | Not declared | No |
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. | No | Yes | Not declared | No |
get_saved_searchOne saved search by id (visible to the caller, else not_found). Requires a user API key. | No | Yes | Not declared | No |
get_saved_searchesList every saved search the caller (x-api-key owner) can see (personal + shared workspace). Requires a user API key. | No | Yes | Not declared | No |
get_sectorSector detail by slug: summary stats, yearly trend, and active partners (kind=buyers|suppliers). | No | Yes | Not declared | No |
get_supplierAll awards for one supplier (by display-name match). | No | Yes | Not declared | No |
get_supplier_detailSupplier detail by slug: summary stats, yearly awarded trend, sector breakdown, and top buyers. | No | Yes | Not declared | No |
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. | No | Yes | Not declared | No |
list_buyersTop buyers (agencies) by total spend. | No | Yes | Not declared | No |
list_sectorsThe curated sector taxonomy (slug + name). | No | Yes | Not declared | No |
list_suppliersTop suppliers by total awarded. | No | Yes | Not declared | No |
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). | No | Yes | Not declared | No |
remove_from_listRemove a tender from a saved list. Body: id (list id) + tender_no OR award_id. Requires a user API key. | Yes | No | Not declared | No |
rename_listRename a saved list. Body: id, name. Requires a user API key (creator or workspace owner). | No | No | Not declared | No |
rename_saved_searchRename a saved search. Body: id, name. Requires a user API key (creator or workspace owner). | No | No | Not declared | No |
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. | No | No | Not declared | No |
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}. | No | Yes | Not declared | No |
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}. | No | Yes | Not declared | No |
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. | No | No | Not declared | Yes |
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. | No | Yes | Not declared | No |
Details
- Registry status
- Active
- Published
- Oct 21, 2026
- Updated
- Oct 21, 2026
- Categories
- Uncategorized
- GDPR
- Not declared