One key. Three ways to use it.
Plug Renavon into Claude Desktop, Cursor, ChatGPT, or any HTTP client. Same datasets, same warehouse, sub-second queries.
Connection details updated — MotherDuck retired 2026-05-04
Your API key is unchanged. If you previously connected via mcp-server-clickhouse with a MotherDuck token, you now use the REST API below (or any HTTP client). See the three ways to access Hong Kong data guide for the migration path.
Your API key
Authenticate with an API key. Free account, no credit card.
POST https://renavon.com/api/v1/query
Plug it in
Paste this into ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, or the equivalent on Windows. Restart Claude Desktop.
{
"mcpServers": {
"renavon": {
"command": "npx",
"args": ["-y", "@renavon/mcp-server"],
"env": {
"RENAVON_API_KEY": "YOUR_API_KEY"
}
}
}
}
Once connected, ask Claude things like "What were last weekend's Sha Tin winners?" — it'll write the SQL itself.
Cursor reads MCP servers from .cursor/mcp.json in your project. Add this and reload the window.
{
"mcpServers": {
"renavon": {
"command": "npx",
"args": ["-y", "@renavon/mcp-server"],
"env": { "RENAVON_API_KEY": "YOUR_API_KEY" }
}
}
}
Cursor's chat then has direct access to the same datasets. Works in agent mode too.
ChatGPT and other autonomous agents (Manus, Devin) can query Renavon over plain HTTP. Give the agent these four facts:
- Endpoint
POST https://renavon.com/api/v1/query - Header
X-API-KEY: YOUR_API_KEY - Body
{"query": "SELECT ..."} - Database
renavon_exports(e.g.hkjc_races,crhk_companies)
Try prompts like "Using my Renavon data, show the top 10 jockeys by win rate this season" or "Chart the odds movement for the favourite in the most recent race".
import requests
API_KEY = "YOUR_API_KEY"
API_BASE = "https://renavon.com"
response = requests.post(
f"{API_BASE}/api/v1/query",
headers={"X-API-KEY": API_KEY, "Content-Type": "application/json"},
json={"query": "SELECT * FROM hkjc_races LIMIT 10"}
)
data = response.json()
# data["columns"], data["data"], data["row_count"], data["truncated"]
for row in data["data"]:
print(row)
Use pandas.DataFrame(data["data"], columns=[c["name"] for c in data["columns"]]) for a DataFrame.
data["truncated"] on every response. For larger pulls, paginate with a keyset on your sort key. For the entire dataset as a flat file, use the CSV download instead.
curl -X POST https://renavon.com/api/v1/query \
-H "X-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "SELECT * FROM hkjc_races LIMIT 10"}'
Works from any HTTP client — Postman, Insomnia, Bun, fetch in Node 18+, etc.
Your tables
Query tables in the renavon_exports database. Example tables:
hkjc_races
SELECT * FROM hkjc_races LIMIT 10
hkjc_horses
SELECT * FROM hkjc_horses LIMIT 10
crhk_companies
SELECT * FROM crhk_companies LIMIT 10
Create a free account to see your tables.