↑↓ navigate open esc close
MCP-over-HTTP · 26 tools

Procurement data your agent can use itself.

Point any MCP-capable client — Claude Desktop, Claude Code, Cursor, or your own agent — at our streamable-HTTP endpoint. It can search Singapore government contracts, drill into buyers and suppliers, keep lists, and even self-register and pay for access with no human in the loop.

# Endpoint

https://app.selltostate.com/api/mcp

# List the tools (open, no auth)

curl -s https://app.selltostate.com/api/mcp \
  -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,
       "method":"tools/list"}'

tools/list is open; tools/call resolves your credential and 402s if un-entitled.

The connect flow.

  1. 1

    Discover

    Spec-compliant clients read /.well-known/oauth-protected-resource (RFC 9728) and /.well-known/oauth-authorization-server (RFC 8414) to learn the resource, issuer, and scopes.

  2. 2

    Register

    With no pre-shared credential, the client self-registers via RFC 7591 DCR (POST /api/oidc/register) and gets a client_id with zero data scopes plus a payment_link.

  3. 3

    Authenticate

    Present the issued client as Authorization: Bearer client:<client_id> on every tools/call. (The full OAuth 2.1 code flow is on the roadmap; the Bearer shim works today.)

  4. 4

    Subscribe

    Until the client's subject is entitled, every tools/call returns the same 402 body as REST — a human payment_link and the agent-native machine_payment affordance. The agent calls pay, is charged off-session, and its next call returns data.

26 tools, at REST parity.

Every tool mirrors a REST endpoint 1:1. Owner-scoped list / saved-search tools require a user API key; an OIDC client token gets a requires_user_key result. Full schemas in the reference.

whoami data:read Identity + entitlement + scopes (ungated — verify before you spend).
search data:read Faceted search over one scope: tenders | buyers | suppliers | sectors.
search_awards data:read Award explorer (q, agency, supplier, category, year, amount range).
get_buyer data:read Buyer detail (get_buyer_detail is a kept alias).
get_supplier_detail data:read Supplier detail with top buyers + sector split.
get_sector / get_tender data:read Sector profile · single award + related awards.
list_buyers / list_suppliers / list_sectors data:read Top-N agencies, suppliers, and the sector taxonomy.
get_lists / create_list / add_to_list … data:read Saved award lists CRUD — requires a user API key.
get_saved_searches / save_search … data:read Saved searches CRUD — requires a user API key.
export data:export Export a filtered award set as CSV.
pay billing:pay Pay autonomously with a Stripe token to unlock access — no checkout page.

Call a tool.

curl -s https://app.selltostate.com/api/mcp \
  -H "Authorization: Bearer client:c_abc123" \
  -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
       "params":{"name":"search",
                 "arguments":{"scope":"tenders","q":"cloud","year_min":2024}}}'

Once connected, just ask

  • → "Search Sell to State for cybersecurity awards in 2024 and summarise the top 5 suppliers."
  • → "Pull every award the Ministry of Education made this year and export them as CSV."
  • → "Use get_buyer on the relevant agency — who does Singapore buy construction services from?"

Connect your agent.

Create an account, generate an API key, and point your MCP client at https://app.selltostate.com/api/mcp. Agents can also self-register and pay without a dashboard. Full tool docs at docs.selltostate.com.

Start for free →
Sign Up