The short answer
Our MCP servers saw 46,270 connections in one day. 34,042 of them, 74%, came from bots: scanners, crawlers and registry checkers. Across the same day there were 841 tool calls. Bots made 343 and our own probes made 343, so only 155 came from outside users: 106 from outside scripts, 47 from ChatGPT and 2 from Claude.
The fix is simple: tag each request as ours, bot or outside before you count anything. A raw connection count would have told us we had 46,270 users that day.
| 2026-10-20, UTC | Connections | Tool calls |
|---|---|---|
| Bots | 34,042 | 343 |
| Outside users | 9,124 | 155 |
| Us (our probes) | 3,104 | 343 |
| Total | 46,270 | 841 |
ChatGPT sent 47 tool calls without a connection of its own in the log, so in the film its dots fly in from outside the frame.
How the film is made
One Python script draws every frame with Skia and pipes the raw pixels to ffmpeg, which encodes H.264. No video framework sits in between. Each dot stands for 10 connections in the first half and for 1 tool call in the second. The script also writes the frame of every beat, and the sound cues are placed on those frames, never by ear. The music is "minimal electronic grove" by frankum, CC BY 4.0, and the sound effects are CC0 recordings.
The rules came from X's own advice for video, as Social Media Today reported it: say the point in the first seconds, work with the sound off, keep the brand in view, and keep text large and short. Our own gate was stricter: the hook number is on screen in the first 2 seconds.
Six rounds, one reviewer each time
Each draft went to a fresh reviewer with no memory of the earlier rounds. It scored the draft out of 10 against Reuters Graphics and Visual Capitalist data clips and listed its top 5 fixes. We then changed the film and drew it again.
Round 1: a dial and a swarm

The first draft opened on 46,270 and spun the day on a clock dial. We checked the stills ourselves: the subhead hit the number, a callout ran off the edge, and "handshake" was jargon. We moved the line, said "connections" and rendered the first full film.
Round 2: score 5 of 10

The reviewer found the real point, "3 in 4 are bots", first on screen at 26 seconds of 31. The dial was 10 seconds of decoration, and the "so far" counter read 0 while hundreds of dots were already on screen. We moved the finding to frame 1 and turned the dial into a ring where each dot drops into the hour it arrived.
Round 3: score 5 of 10

The hook now landed at half a second, but the ring was all white, so the picture did not show "3 in 4". ChatGPT also appeared at the tool-call stage with no origin. We let the bots fill each hour first, so each wedge shows its bot share, and ended the film on the 155 instead of repeating the hook.
Round 4: score 6 of 10

The story held, but the key said "1 dot = 1 tool call" while the labels still showed connection counts, and the bot block was the brightest thing on screen. We added a legend to the ring, timed each label to land with its dots, and made ChatGPT's dots fly in from off frame.
Round 5: score 5 of 10

This round taught us the most. The colors changed meaning halfway: white meant bots at the start and outside scripts at the end. The film also showed about 15 numbers in 22 seconds. We cut the classes to 3 groups with 3 colors for the whole film, kept one number per beat, and let the 155 vermilion dots be the closing image.
Round 6: score 7 of 10, the cut above

One color key, 4 numbers (3 in 4, 34,042, 841 and 155), and 19 seconds instead of 31. The sound moved to CC0 effects placed on the picture's beats, with an automatic check for sync and loudness. The reviewer gave it 7, our bar to publish. Its top note was that the closing 155 has no base: it is 155 of 841 tool calls, 18%. We kept that note for the next film instead of drawing a seventh round.
What we would tell someone making their first data film
- Lead with the finding, not the setup. Our first draft opened on the total, which is the least interesting number.
- Give each color one meaning and keep it to the last frame. Viewers learn the key once.
- Show one number per beat. Labels can name a group without a count.
- Let a fresh reviewer score every draft against a named reference. Our own eyes missed the color flip for 4 rounds.
Sources
- Our own request log for the Agent Tools MCP servers, 2026-10-20 00:00 to 24:00 UTC, connections and tool calls by traffic class.
- Social Media Today, Twitter shares key video best practices to maximize engagement, 2020.
- Music: "minimal electronic grove _Techno loop track" by frankum, CC BY 4.0.
- Sound effects: CC0 recordings from Kenney and Freesound.
- Other video work on this site: Video Edit.