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
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
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
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
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.