One instruction. A real warehouse, a real pipeline, a real chart. No email, no credit card.
Mehdi Ouazza · MotherDuck · mehdio.com
No email. No signup.
I gave an agent one instruction. It signed itself up to a cloud data warehouse and got to work.
The whole instruction
one prompt · nothing else
How have average temperatures changed across EU countries over the last 10 complete years? Use the NOAA GHCN-Daily dataset on S3 to create and run a Flight, show me the logs, then build a Dive where I can explore the trend by country and year.
Today
01
Free tiers go agent-first
02
Watch it work
03
Your turn
04
Read what it wrote
01
Agents can spawn real services now
The free tier always had a transaction attached
The old deal
email for sandbox
you give an email, you get a playground
the email was the point — that's the sales pipeline
verification link, onboarding modal, welcome drip
The agent doesn't play along
it's the interface now
it has no email and no inbox to click
it won't run your OAuth flow
it will never read your onboarding modal
So: drop the signup, hand out a token, let a human claim it later.
Postgres, in one call · no auth header
neon.new · a database for your agent
# Create a Postgres database for your agent
curl -X POST https://neon.new/api/v1/database \
-H 'Content-Type: application/json' \
-d '{"ref":"my-app"}'
✓You get a connection string back. It expires in 72 hours unless a human claims it.
✓Same machinery behind Replit, v0 and Netlify DB — a database just appears, nobody says “Postgres” out loud.
And if the agent wants an inbox of its own
agentmail.to · an email address for your agent
# Create an email inbox for your agent
curl -X POST https://api.agentmail.to/v0/agent/sign-up \
-H 'Content-Type: application/json' \
-d '{"human_email":"me@example.com","username":"my-agent"}'
✓Back comes an organization_id, an inbox_id (my-agent@agentmail.to) and an api_key — send, receive, thread, reply.
!A 6-digit code lands in your inbox. Until the agent posts it to /v0/agent/verify, the new inbox can only mail you.human in the loop
And analytics — no body, no auth header
new.motherduck.com · a warehouse for your agent
# Create a MotherDuck account for your agent
curl -X POST https://new.motherduck.com
motherduck_token
to connect, right now
claim_org_url
for the human, later
region
where the org lives
how_to_use_motherduck
a small guide, for the agent
An anonymous org on the Lite plan · owned by a service account until claimed
Ingest
straight from public S3 / https
Query
DuckDB in the cloud
Store
cloud storage, queried over the network
Flights
Python pipelines that actually run
Dives
React apps on live queries
✓Like what got built? Open claim_org_url, sign in, it's yours — with everything still in it.
!Caveat: a claimed org can't be merged into an existing one. Already a customer? Treat this as a scratch org.
Where this goes next
Your agent gets a wallet.
MPP · mpp.devHTTP 402co-developed by AnthropicSDKs: Stripe, Tempo
An open standard for machine-to-machine payments. You top up the wallet; the agent buys and tears down the services it needs without asking you for a card form. The SDKs are already shipping.
02
Fine. But what did it actually do?
Codex, Claude Code, the web chats — they all stream this at you
• Bash(curl -X POST https://new.moth…)
• mcp__motherduck__query(SELECT * FROM glob(…
• mcp__motherduck__create_flight(…) ← a pipeline was created here
• mcp__motherduck__run_flight(…) ← and it scanned 40 GB
• mcp__motherduck__query(… 214 more lines)
• mcp__motherduck__save_dive(…)
Good luck reading that back an hour later.
What this quietly breaks
?your ability to say what happened
×A database got created — somewhere in there
×A pipeline ran. Did it run twice? On which year?
×A query scanned 40 GB. Which filter did it use?
×You can't hand a chat transcript to a colleague and call it a review
motherduck.com/try · every service the agent touches becomes something you can click
you
one prompt
no signup
agent loop
ChatGPT or Claude + MotherDuck MCP
provisionsand builds
live panel
storage · compute Flights · Dives
replayshare
a colleague
steps through the same run
→Pick your model, start from an example prompt, point it at any public S3/https parquet or CSV — or upload your own file.
!/try is an experiment, not a supported product surface. Message cap per session. For your Tuesday work, point your own agent at the MotherDuck MCP server instead.
In the weather run — four things worth watching, all clickable
01
It figures out the schema
GHCN-Daily is narrow — one row per station, per element, per day, with the measurement type hidden in a column
02
It writes a Flight
decides this needs a real ingest, not a one-off query, and packages the Python
03
It runs it — with logs
144 yearly rows written, station counts per year. You can't get that out of a chat transcript
04
It builds a Dive
React on live queries — the chart hits the warehouse, not a CSV pasted into memory
The part I like most in the demo
It fails first, then fixes itself.
×First Flight run errors out on the glob patternred
✓Agent reads the failure, edits the Flight, reruns it — I typed nothinggreen
The bit I care about more
Hand the run to someone else.
✓They open a link and step through the same run: exploration queries, the Flight, the logs, the Dive
✓No screen recording, and nobody waits for the agent to redo the work
✓An agent run becomes something you can review
live demo · replay + share session
03 · hands on
Your turn. One prompt each.
Two ways to run everything that follows
A · motherduck.com/try
nothing to install
open the page, pick ChatGPT or Claude
paste the prompt, watch the panel fill up
capped messages — it's a sandbox
B · your own agent
Claude Code, Codex, Cursor…
give it the curl and the MCP server
no cap, your client, your keys
same tools, your Tuesday workflow
option B · bootstrap prompt for your own agent
Create a free MotherDuck account for yourself with curl -X POST https://new.motherduck.com, save the token, then add the MotherDuck MCP server (motherduck.com/docs → MCP setup) and confirm you can list databases before doing anything else.
Prompt 01 · the weather run — the same one, and why it's shaped that way
NOAA GHCN-Daily · one prompt, one Flight, one Dive
How have average temperatures changed across EU countries over the last 10 complete years?Use the NOAA GHCN-Daily dataset on S3to create and run a Flight, show me the logs, then build a Dive where I can explore the trend by country and year.
the question, in business terms the source ingestion logs visualization
Prompt 02 · a dataset everybody has an opinion about
NYC taxi · public parquet over https
Inspect https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_2024-01.parquet and tell me what's in it and what looks dirty. Then answer: when do New Yorkers tip best? Package the ingest as a Flight, run it and show me the logs, then build a Dive with tip % by hour of day and by payment type. Tell me which rows you dropped and why.
→Watch for: zero-distance trips, negative fares, cash tips recorded as 0 — a good agent tells you before you ask
Prompt 03 · bring your own mess (upload a CSV, or point at your bucket)
your data · csv or parquet
Here's my file. Profile it first: row count, column types, null rates, duplicate keys, anything suspicious — show me the queries you used. Then build a Flight that loads a cleaned version into a table, make it idempotent so a re-run is a no-op, run it, and build a Dive with the three charts you'd put in front of my boss. State every assumption you made.
✓“Show me the queries you used” and “state every assumption” are the two clauses that turn a demo into something reviewable
04 · the boring, important part
Read what it wrote
The agent will be confidently wrong about a join or a filter at some point
1Station coverage. 1920 has one station reporting, 1900 has two, 2020 has 424. Average naively and part of your warming curve is just Europe installing thermometers.filtered to ≥30
2The partial current year lands at 9.7 °C and reads as a sudden crash.dropped
3FIPS, not ISO country codes — correct for GHCN station IDs, and mildly alarming if you skim it: FIPS AU is Austria.correct
✓Its own summary says this is a station average, not an area-weighted climate index. I agree with every call. The point is that I could tell — in about a minute.
The Dive · EU station mean temperature · 1936 → 2025
annual station mean excluded: too few stations to mean anything
In short
01
Signup is optional now
one POST, a token, claim it later if you liked it
02
The agent owns the loop
it provisions, runs, fails, fixes — not just proposes code
03
Insist on seeing it
a Flight you can read and logs you can open beat a wall of tool calls
04
Replay beats retelling
share the session — an agent run you can review
Bonus: watching Flights and Dives get built is how you find out what the platform can do :)