GuidesMar 4, 2026Yash Khare

From Idea to AI App in 10 Minutes

A timed speed-run tutorial — build and deploy a weather dashboard tool from zero to live in ChatGPT in under 10 minutes using drio.

You can go from zero to a deployed AI app in ChatGPT in under 10 minutes. This is a timed walkthrough — we will build a real weather dashboard tool that shows current conditions and a 7-day forecast with interactive widgets. Start a timer if you want to follow along.

This tutorial assumes you have a drio account and know the basics of What Is MCP?. If you want the in-depth API guide, see Connecting Your First API. This is the express version.

What we are building

A weather tool that:

  • Accepts a city name
  • Returns current conditions as a card widget
  • Shows a 7-day forecast as a chart widget
  • Works in ChatGPT, Claude, and Cursor

We will use the Open-Meteo API — free, no API key required.

Mermaid diagram source:
flowchart LR
  prompt["User asks for weather"]
  tool["get_weather tool"]
  api["Open-Meteo API"]
  card["Current conditions card"]
  chart["7-day forecast chart"]
  clients["ChatGPT, Claude, Cursor"]

  prompt --> tool --> api
  api --> card
  api --> chart
  card --> clients
  chart --> clients

0:00 — Sign in and create a new app

Open drio and sign in. Click New App. Give it a name: "Weather Dashboard."

Select Start from scratch (or use the Weather template if available — it will save you 3 minutes, but where is the fun in that).

1:00 — Create the tool

Click Add Tool. Configure:

  • Name: get_weather
  • Description: "Get current weather conditions and a 7-day forecast for any city worldwide"
  • Parameters:
    • city — Text, required. Description: "City name (e.g., Berlin, Tokyo, New York)"

That is one parameter. Keep it simple for the first build.

2:00 — Add the API connection

Drag an API Request node onto the canvas. Configure:

  • Method: GET
  • URL: https://api.open-meteo.com/v1/forecast
  • Query params:
    • latitude: 52.52 (we will hardcode Berlin for now — geocoding can come later)
    • longitude: 13.41
    • current: temperature_2m,weather_code,wind_speed_10m,relative_humidity_2m
    • daily: temperature_2m_max,temperature_2m_min,weather_code
    • timezone: auto

Click Test Request. You should see the JSON response in under a second.

3:30 — Map to a card widget

Drag a Card widget onto the canvas. Connect it to the API response node.

Map the fields:

  • Title: "Weather in Berlin" (hardcoded for now — you can use {{city}} for dynamic titles)
  • Primary value: {{current.temperature_2m}}°C
  • Subtitle: "Current conditions"
  • Metadata: Wind speed from current.wind_speed_10m, Humidity from current.relative_humidity_2m

5:00 — Add a chart widget

Drag a Chart widget onto the canvas. Configure:

  • Type: Line chart
  • X-axis: Days (from daily.time)
  • Series 1: daily.temperature_2m_max — label "High"
  • Series 2: daily.temperature_2m_min — label "Low"

Connect it to the same API response node.

You should now see two widgets on the canvas, both wired to the API response.

6:30 — Customize the brand

Open the Brand panel. Choose:

  • A primary color (blue works well for weather)
  • Corner style: Medium
  • Font: Leave the default or pick one

This takes 30 seconds and makes the tool look intentional rather than generic.

7:00 — Preview

Click Preview. Type "Berlin" as the city input and hit invoke.

You should see:

  • A card with the current temperature, wind speed, and humidity
  • A line chart with the 7-day high/low forecast

If something looks off, fix the field mapping. Most issues are wrong response paths — use the Response Inspector to check.

drio preview panel showing the weather tool with card and chart widgets

8:00 — Deploy

Click Deploy. Wait for the green checkmark (usually 10-15 seconds).

Copy the MCP endpoint URL:

https://app.getdrio.com/weather-dashboard/mcp

9:00 — Add to ChatGPT

  1. Open ChatGPT
  2. Go to tools/settings
  3. Click Add MCP Tool
  4. Paste the URL
  5. Click Connect

Wait a few seconds for ChatGPT to discover the tool.

10:00 — Test it live

Type: "What is the weather in Berlin?"

ChatGPT invokes your tool and renders the card and chart inline in the conversation. You built that. In 10 minutes.

ChatGPT conversation showing the weather tool response with card and chart

What we skipped (and how to add it later)

This was a speed-run, so we cut some corners:

Dynamic geocoding

We hardcoded Berlin's coordinates. To support any city, add a geocoding step — either chain a geocoding API call before the weather API, or use drio's built-in geocoder if available.

Error handling

What happens when the user types a city that does not exist? Add a conditional branch in the flow that checks the API response and returns a friendly error message.

More widgets

A table with hourly breakdowns. A stat dashboard with UV index, precipitation chance, and sunrise/sunset times. A form for selecting between celsius and fahrenheit. You can layer these on incrementally.

Multiple tools

Add a get_weather_alerts tool for severe weather warnings. Add a compare_weather tool that shows two cities side by side. Multiple tools in one app create a richer experience.

For the complete, unhurried version of this tutorial, see Connecting Your First API. For more on widget design, see Building MCP Tools with Rich UIs.

The point

Ten minutes from nothing to a working AI app in ChatGPT. Not a mockup. Not a prototype. A real, deployed tool that real users can invoke.

This is what visual builders make possible. The protocol complexity — JSON-RPC, capability negotiation, transport configuration, widget rendering contracts — is all handled by the compiler. You focus on what your tool does. drio handles how.

For the full vision of what this enables, see Build AI Apps Without Code.

The gap between "I have an idea" and "it is live in ChatGPT" should be measured in minutes, not months. That is what drio is for.