Search / com.selltostate/mcp
Sell to State
R0· no sign-inGovernment tenders, contract awards, buyers and suppliers from official sources in 60+ countries.
v0.4.1 · active · repository · website · descriptor JSON · versions
Search / com.selltostate/mcp
R0· no sign-inGovernment tenders, contract awards, buyers and suppliers from official sources in 60+ countries.
v0.4.1 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"selltostate": {
"type": "http",
"url": "https://app.selltostate.com/api/mcp"
}
}
}claude mcp add --transport http selltostate https://app.selltostate.com/api/mcp[mcp_servers.selltostate]
url = "https://app.selltostate.com/api/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"selltostate": {
"type": "remote",
"url": "https://app.selltostate.com/api/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"selltostate": {
"type": "http",
"url": "https://app.selltostate.com/api/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=selltostate&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBwLnNlbGx0b3N0YXRlLmNvbS9hcGkvbWNwIn0%3D"
}{
"servers": {
"selltostate": {
"type": "http",
"url": "https://app.selltostate.com/api/mcp"
}
}
}{
"mcpServers": {
"selltostate": {
"httpUrl": "https://app.selltostate.com/api/mcp"
}
}
}extensions:
"selltostate":
enabled: true
name: "selltostate"
type: streamable_http
uri: "https://app.selltostate.com/api/mcp"
timeout: 300
protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations27 of 27 tools declare readOnlyHint or destructiveHinttools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_sectors (idempotentHint); get_supplier_detail (idempotentHint); get_tender (idempotentHint); …tools.token_costabout 3,642 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes30 tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageplan_searchaddedTurn 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).
searchchangedinput schemasearchchangedinput schemasearch_awardschangedinput schemadelete_saved_searchchangedtitle, annotationsrename_saved_searchchangedtitle, annotationsget_saved_searchchangedtitle, annotationssave_searchchangedtitle, annotationsget_saved_searcheschangedtitle, annotationsremove_from_listchangedtitle, annotationsShowing the latest 10. Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +dns-namespace +website +reachable +uptime-94% +updated-17d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://app.selltostate.com/api/mcp streamable-http | none | yes | 94% | 329 ms | 2025-11-25 | 2026-11-07 |
add_to_list | Add a tender to a saved list. Body: id (list id) + tender_no OR award_id. Idempotent. Requires a user API key. |
create_list | Create a new saved award list (personal). Body: name. Requires a user API key. |
delete_listdestructive | Delete a saved list (and its items). Body: id. Requires a user API key (creator or workspace owner). |
delete_saved_searchdestructive | Delete a saved search. Body: id. Requires a user API key (creator or workspace owner). |
exportread-only | Export 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. |
get_agencyread-only | All awards for one agency (by slug or display-name match). |
get_buyerread-only | Buyer (agency) detail by slug: summary stats, yearly spend trend, sector breakdown, and top suppliers. |
get_buyer_detailread-only | Alias of get_buyer (back-compat). Buyer (agency) detail by slug: summary stats, yearly spend trend, sector breakdown, and top suppliers. |
get_listread-only | One saved list with paginated items joined to award data (description/buyer/supplier/amount/date). Requires a user API key. |
get_listsread-only | 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_searchread-only | One saved search by id (visible to the caller, else not_found). Requires a user API key. |
get_saved_searchesread-only | List every saved search the caller (x-api-key owner) can see (personal + shared workspace). Requires a user API key. |
get_sectorread-only | Sector detail by slug: summary stats, yearly trend, and active partners (kind=buyers|suppliers). |
get_supplierread-only | All awards for one supplier (by display-name match). |
get_supplier_detailread-only | Supplier detail by slug: summary stats, yearly awarded trend, sector breakdown, and top buyers. |
get_tenderread-only | Single tender (award) detail by numeric award_id OR public tender page id, with related awards (same tender / same buyer). |
list_buyersread-only | Top buyers (agencies) by total spend. |
list_sectorsread-only | The curated sector taxonomy (slug + name). |
list_suppliersread-only | Top suppliers by total awarded. |
plan_searchread-only | Turn 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). |
remove_from_listdestructive | Remove a tender from a saved list. Body: id (list id) + tender_no. Requires a user API key. |
rename_list | Rename a saved list. Body: id, name. Requires a user API key (creator or workspace owner). |
rename_saved_search | Rename a saved search. Body: id, name. Requires a user API key (creator or workspace owner). |
save_search | Save a search under a name. Body: name, query (filter set), kind? ('atlas' → unified-search shape, else legacy Explorer filters). Requires a user API key. |
searchread-only | Faceted 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}. |
search_awardsread-only | 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}. |
whoamiread-only | Self-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. |
Schemas: list_tools.
{
"name": "com.selltostate/mcp",
"icons": [
{
"src": "https://raw.githubusercontent.com/getbeton/selltostate-skills/main/assets/icon.png",
"sizes": [
"512x512"
],
"mimeType": "image/png"
}
],
"title": "Sell to State",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://app.selltostate.com/api/mcp",
"type": "streamable-http"
}
],
"version": "0.4.1",
"repository": {
"url": "https://github.com/getbeton/selltostate-mcp",
"source": "github"
},
"websiteUrl": "https://www.selltostate.com/mcp/",
"description": "Government tenders, contract awards, buyers and suppliers from official sources in 60+ countries."
}