↑↓ 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 government tenders and contract awards from official sources, drill into buyers and suppliers, keep lists, and even self-register and pay for access with no human in the loop.

Ask your AI agent

Claude ChatGPT Perplexity Grok
Set up Sell to State for me: government tenders and contract awards from official sources in 73 countries, as MCP tools. Agent docs: https://docs.selltostate.com/llms.txt
1. Sign me in yourself. Try this first: you need me only for one approval click.
- If you can send HTTP requests: POST https://app.selltostate.com/api/v1/agent/signup with JSON {"client_name": "<your app name>"}. Show me verification_uri_complete from the reply as a link. I open it, sign up free with Google or email, and approve the code. Every "interval" seconds, POST token_endpoint with {"device_code": "<device_code>"} until the reply has access_token. Send access_token in the x-api-key header to the MCP server https://app.selltostate.com/api/mcp.
- If you cannot send HTTP requests: tell me to add the MCP server https://app.selltostate.com/api/mcp in this app. Its sign-in page also creates the free account. Claude: Customize > Connectors > Add custom connector. ChatGPT: chatgpt.com/plugins > + > Add custom MCP server, choose OAuth. Claude Code: claude mcp add --transport http selltostate https://app.selltostate.com/api/mcp, then /mcp > Authenticate.
2. The tools are free to connect. A free account gets plan_search 3 times a day and search for 2 different searches a day: titles, buyers, status and dates. Amounts, winners and notice links need a plan. Call whoami to see my plan.
3. Ask me what my company sells and in which countries. Call plan_search with my answer, then search with its scope, q and filters. Show me the 10 best open tenders with the title, the buyer and the dates. Then give me app_url: it shows every row, and I can save the search there for email alerts.

Enterprise

# 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. A free account can call plan_search and search each day; other tools/call requests answer 402 without a plan.

Add it to your client.

Clients with a browser sign you in with OAuth. Other clients send an API key from your account. The server is in the official MCP Registry as com.selltostate/mcp.

Claude

Customize, then Connectors. Select + Add, then Add custom connector. Paste the URL and select Connect.

https://app.selltostate.com/api/mcp
Step by step →

ChatGPT

On chatgpt.com/plugins, select + and Add custom MCP server. Paste the URL and choose OAuth.

https://app.selltostate.com/api/mcp
Step by step →

Claude Code

Add the server, then run /mcp and choose Authenticate.

claude mcp add --transport http selltostate https://app.selltostate.com/api/mcp
Step by step →

Gemini CLI

Install the extension. Gemini CLI opens your browser to sign in.

gemini extensions install https://github.com/getbeton/selltostate-skills
Step by step →

Cursor and other clients

Add the server to mcp.json with your API key in the x-api-key header.

{
  "mcpServers": {
    "selltostate": {
      "url": "https://app.selltostate.com/api/mcp",
      "headers": { "x-api-key": "sts_..." }
    }
  }
}

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

    Clients with a browser (Claude, ChatGPT, Cursor) run the OAuth 2.1 authorization-code flow with PKCE, and you sign in with your Sell to State account. An agent without a browser presents the issued client as Authorization: Bearer client:<client_id> on every tools/call.

  4. 4

    Subscribe

    A signed-in free account can call plan_search (3 a day), search (2 different searches a day, rows without amounts, winners or notice links) and the saved-search tools. Every other tools/call, and every call of an unpaid client without a user, 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?"

Pricing

One price for the whole team.

Search and daily email alerts are free. A plan shows the winner and the value of each award, and adds CSV export, the API and MCP.

3-day pass

US$19€19one payment

For one research job. Full access for 72 hours, then it stops. Nothing renews.

Get the 3-day pass

Sign up, then pay by card.

  • Full access for 3 days
  • 10,000 export rows in total
  • Search, lists, API and MCP
  • Saved searches and daily email alerts
  • One pass per account

Subscription

US$49€45/mo

US$499€449/yr

Cancel at any time.

One payment a year. 15%17% less than 12 monthly payments.

Subscribe monthlySubscribe annually

Sign up, then pay by card.

  • Access until you cancel12 months of access
  • 5,000 rows per export
  • Search, lists, API and MCP
  • Saved searches and daily email alerts
  • One price for the whole team. No seat fees.

Enterprise

Custom

For teams that need bulk data or their own contract terms.

Book a call

A 30-minute call with our team.

  • Everything in Subscription
  • Bulk delivery to Snowflake, Amazon S3 or a CRM webhook
  • Custom contract terms
Secure payments via Stripe Stripe Visa Mastercard American Express
See full pricing →

Connect your agent.

Save a search, and we email you the new matches each day. Or ask your AI agent, or book a demo for your team.

Ask your AI agent

Claude ChatGPT Perplexity Grok
Set up Sell to State for me: government tenders and contract awards from official sources in 73 countries, as MCP tools. Agent docs: https://docs.selltostate.com/llms.txt
1. Sign me in yourself. Try this first: you need me only for one approval click.
- If you can send HTTP requests: POST https://app.selltostate.com/api/v1/agent/signup with JSON {"client_name": "<your app name>"}. Show me verification_uri_complete from the reply as a link. I open it, sign up free with Google or email, and approve the code. Every "interval" seconds, POST token_endpoint with {"device_code": "<device_code>"} until the reply has access_token. Send access_token in the x-api-key header to the MCP server https://app.selltostate.com/api/mcp.
- If you cannot send HTTP requests: tell me to add the MCP server https://app.selltostate.com/api/mcp in this app. Its sign-in page also creates the free account. Claude: Customize > Connectors > Add custom connector. ChatGPT: chatgpt.com/plugins > + > Add custom MCP server, choose OAuth. Claude Code: claude mcp add --transport http selltostate https://app.selltostate.com/api/mcp, then /mcp > Authenticate.
2. The tools are free to connect. A free account gets plan_search 3 times a day and search for 2 different searches a day: titles, buyers, status and dates. Amounts, winners and notice links need a plan. Call whoami to see my plan.
3. Ask me what my company sells and in which countries. Call plan_search with my answer, then search with its scope, q and filters. Show me the 10 best open tenders with the title, the buyer and the dates. Then give me app_url: it shows every row, and I can save the search there for email alerts.

Enterprise

Sign Up