← All AI Engineer talks

AI Engineer Europe 2026

From MCP to Scale: Pipelines That Build Themselves

About this talk

Rafael Levi demonstrates how Bright Data MCP, Claude Code, and the brightdata/skills repository enable agents to inspect websites, extract HTML and selectors, generate reusable scrapers, and maintain self-healing collection pipelines. The talk contrasts repeated LLM-based page parsing with token-efficient scripts, discusses anti-bot and remote-browser infrastructure, and describes scheduled monitoring and automated scraper maintenance.

Chapters

  1. 0:17Why agents should build reusable scraping pipelines
  2. 1:41Claude Code, Bright Data skills, and scraper generation
  3. 4:58Token savings and adapting the marketplace demonstration
  4. 11:19Remote browsers, scheduled checks, and anti-bot infrastructure
  5. 21:45Self-healing pipeline recap and closing

Talk transcript

  1. 0:00

    [upbeat music] All righty, let's dive into it.

  2. 0:17

    So, uh, in the previous session, I, I don't know how many of you were here, but I talked about how MCP gives access to LLMs to websites that are behind, uh, capture, bot detection systems, and so on.

  3. 0:30

    And in this session, I wanna talk about, um, how do you actually collect data on scales with LLM? Because a lot of times I'm seeing on Reddit and other social media is like, "Oh, I need to scan ten thousand products," but that's so many tokens if I need to parse everything with LLM.

  4. 0:44

    So obviously you don't do that, right? So

  5. 0:49

    the whole session is how do you build pipelines, right? With LLM. Instead of telling, "Hey, LLM, can you go and, uh, parse this for me?" Build a scraper that's gonna parse it for me, and I will demonstrate how easy it is, uh, with our skills, right?

  6. 1:03

    So Bright Data has skill sets that actually teaches your LLM on how to build a pipeline. With our MCP, it can actually extract HTML so that it knows what are the selectors that it needs to parse, and so on.

  7. 1:16

    So, um, the scrape tags, right? Write the scraper. Uh, I don't know, how many of you actually wrote scrapers before?

  8. 1:25

    Okay, so you know the headache when all of a sudden things are missing, data is missing, you gotta wake up. I don't know if you guys did it for clients, and clients are like, "Oh, my God, there's no..."

  9. 1:33

    So basically that's what used to be. You write a scraper, and you maintain it. As a matter of fact, sometimes you maintain it more than it, it takes, it takes you to write it, right?

  10. 1:41

    So everything, especially if the website is constantly changing or its selectors, or if it's a React website, it gets really complicated, right? So an agent, it, it, it solves all that headache, right?

  11. 1:54

    It can explore with our MCP. It understands what the data is needed. It writes the scraper, and actually runs it and executes it and maintains it. As a matter of fact, I do collections on a daily basis, and I have every thirty minutes, I have an LLM clients pool, uh, spools up.

  12. 2:09

    It checks what the data is collected, make sure that everything is fine. Everything's fine, it shuts down. If, for example, there's a, um, always set a validation for data, right?

  13. 2:18

    Let's say a data point is, uh, missing some-something, your agent fixes it, five minutes. You don't have to wake up in the middle of the night.

  14. 2:27

    Uh, so let me demonstrate. So for this demo, I wanna use Claude Code. I don't know how many of you use Claude, if you're using Codex or whatever it is.

  15. 2:37

    I prefer Claude Code. I like how it...

  16. 2:40

    I like it. It does a great job. So the way that you build scrapers now, and it's ridiculous because, you know, back in the day it took weeks to set it up.

  17. 2:49

    We created a Bright Data, like GitHub page, right? brightdata/skills. Here, basically, your agent has everything that it might need, okay? Um, scrape builders, best practices, how to... E-everything. Everything that it needs in order to build a scraper.

  18. 3:05

    And what I wanna show is, uh, first of all, uh, let's...

  19. 3:11

    I'm gonna start simple. Go to build me a scraper, and I wanted to record it because I thought it was gonna take a long time, but now it takes literally like three minutes.

  20. 3:21

    Build me a scraper, uh, two inputs, keyword search, max pages for walmart.com. Everybody's familiar with Walmart. Walmart has a very aggressive anti-bot systems. Anybody try to scrape it, um, it just doesn't work.

  21. 3:40

    But through Bright Data- The website name is wrong. I think the volume, it might be remote. It will figure it out, but you're, you're right. Let's just correct that.

  22. 3:54

    walmart.com. Um, run a search for headphones. Collect three pages.

  23. 4:08

    Uh, so what it's gonna do right now, it's gonna go to our GitHub. It's gonna get all the skill set that it needs, how to build scrapers. Then it's gonna go, uh, with the MCP that's already connected to the Claude.

  24. 4:18

    It's gonna extract the HTML from the page. Uh, it's gonna find all the selectors that it needs, and it's gonna build you a scraper. And, uh,

  25. 4:29

    so right now you can see a scrape_as_markdown is basically extracting the, the, the, the text, right? So for the skills, we don't need the HTML, we just need the text.

  26. 4:38

    Uh, scrape_as_markdown is a part of the MCP, of Bright Data MCP. Uh, Bri-- Uh, the MCP has five thousand requests for free, so if anybody wants to try it, you guys can try it for free.

  27. 4:48

    Um, you will need to just open an account with Bright Data, which it doesn't cost you anything. And

  28. 4:58

    let it do its thing. So why is this better than having an LLM parse every single page, every HTML? It's... I'm, I'm literally, afterwards I'm gonna ask it to tell you how many, how much tokens it saves.

  29. 5:12

    So for the three pages, I've done this before, it saves about a million tokens just to, from building the scraper, uh, and using a script to parse the HTML.

  30. 5:23

    And, um, even if you are not doing any scraping for production, but let's say that you wanna find the be-best headphones for the money, right? It used to be you go to Google, you go to some CNET where they, uh, compare everything.

  31. 5:38

    But here you can use the we- the marketplace reviews. So I can tell it, like, "Hey, hey, um, scan the five pages. Find me the best, uh, reviewed headphones."

  32. 5:48

    So it could be even useful for you as a personal, in, in a personal way, right? So instead of it getting blocked, it can actually find you things that you need on websites that are behind Cloudflare.

  33. 6:00

    Oh, I forgot to delete the old one.

  34. 6:05

    No, no. Stop, stop, stop. Hold on a second.

  35. 6:09

    Delete the old scraper. Scr- scraper. I totally... I was testing it, and I totally forgot to clean up.

  36. 6:20

    Uh, let's do a different website. Pick a website. What's a popular marketplace in, uh, that's aggressive in blocking in UK?

  37. 6:28

    Amazon.

  38. 6:29

    Amazon, it's, uh, not that aggressive. You'll be surprised. I can scrape it with data center IPs. What's a popular website that everybody uses here?

  39. 6:37

    Very. Very.

  40. 6:39

    Ve-

  41. 6:39

    V-E-R-Y.com [door squeaking]

  42. 6:43

    V- Very?

  43. 6:47

    Very.

  44. 6:47

    Like that?

  45. 6:49

    [REDACTED:url]

  46. 6:50

    Y.com?

  47. 6:50

    Yeah.

  48. 6:53

    Oh, that's UK?

  49. 6:55

    Yeah.

  50. 6:55

    Okay, perfect. So this way, I don't f- I don't wanna... Stop it. New session.

  51. 7:04

    Uh, uh, uh, that's that. Let's do that.

  52. 7:11

    Where's the new session? Oh, there it is.

  53. 7:20

    Really? What is wrong with my paste? Okay.

  54. 7:34

    Uh, it's clothing store?

  55. 7:36

    Uh, it's general. Headphones, you know, a bit.

  56. 7:38

    Okay, so let's do headphones again, the same thing, right? So I don't know, I've never used this website. I've...

  57. 7:46

    L- Clean test. No cheating. [laughs] Um, so, so what else does this give you? So again, market research.

  58. 8:01

    Um, for example, I was looking for a new apartment, right? I was wanting to move a house. So with a Claude code, with Bright Data, I set up a listener, literally just telling, "Hey, listen, build me a scraper that will run every half an hour.

  59. 8:15

    When in this area, there's a, a house, private house under this price, notify me." That's all I did. In a few days, I got a notification, and now I live there.

  60. 8:24

    So these things are not only useful on a scale where, you know, oh, I need to scrape millions of records, but even for your personal use. It's so easy these days.

  61. 8:35

    Claude Code does an amazing job, right? I know, uh, Codex does a great job as well, but I prefer Claude Code because, I don't know, it just, um, gives me less headache.

  62. 8:45

    Codex sometimes takes me on a wild goose chase.

  63. 8:49

    Um, how many of you have used Hypecode?

  64. 8:54

    It's, it's amazing. Why not, right? Anybody can build anything now. Um,

  65. 9:00

    so did you build it? I've got the structure, the search parameters, and with third version, let me build... Oh, okay, it's building a scraper. Um,

  66. 9:07

    this used to take, I don't know, if f- you're having a good day, maybe a full day, maybe a day and a half, right? You need to go check out the selectors, figure it out.

  67. 9:16

    It used to be interesting and fun, but you don't need to do that anymore. So what I'm sh- trying to show you guys is that

  68. 9:24

    with our MCP, with our infrastructure, we have over 150 million IPs. Uh, with our unlocking technology, where we-- if the- if it needs to run a remote browser, so if you wanna...

  69. 9:37

    It can actually write you a browser automation. Uh, the browsers are running on our system. So I can literally right now open a thousand browsers on this laptop that are running on our servers, and they can go do things, whatever you need it to.

  70. 9:50

    So it already got 90 products. Okay, it just needs to fix the Unicode because it's in pounds.

  71. 10:05

    Eh, uh-uh, uh-uh, almost done.

  72. 10:08

    Can you also, um, go into details about the MCP, or is that-

  73. 10:12

    Sure. I did it in a previous session, but while it's loading, let me tell you. So basically, the MCP gives you, uh, a agent 66 tools. Uh, some of them is basically, um, we have a system where it can send a cURL to any URL, and our system will literally get the HTML back.

  74. 10:28

    It will solve a CAPTCHA if needed and send it with a token. It will, uh, it, it knows exactly what headers and cookies the website needs. So basically, it will make sure that the server thinks it's a browser and serve the HTML back.

  75. 10:39

    So your agent can literally send cURLs, pull data without any questions. It can pull a full HTML. It can pull just a scrape as a Markdown. Markdown, it's, it's to save tokens, right?

  76. 10:49

    You just want the text of the page. You don't care about the HTML tags.

  77. 10:54

    It doesn't like the pound. Come on, you can do it.

  78. 11:00

    Um, so that's number one. Second, we have about 500 different APIs pre-built for different domains. So instead of actually getting a Markdown, you can actually get a JSON of the product.

  79. 11:11

    For example, for Amazon, we have pre-built API. You can listen... Uh, when you add your agent, it can be like, "Okay, go and check on Amazon something." It doesn't even need to build a scraper.

  80. 11:19

    It can literally just send the, uh, the request and get the data back. Um, on top of that, remote browser infrastructure and, uh, anything that needs, uh, anything that your agent needs to access the web, it has, right?

  81. 11:33

    So you don't get blocked. While this is running, I wanna show you, for example,

  82. 11:38

    uh, tell... Wait, do Walmart, do a search for headphones without

  83. 11:48

    MCP. What?... So I'm telling it, "Go to Walmart, do a search for headphones, and tell me what is the first result without the Bright Data MCP."

  84. 11:59

    Uh, it's gonna do a fetch, which is gonna get blocked.

  85. 12:07

    Product security verification screen. Robot or human, obviously, right? That's, that's the first thing.

  86. 12:13

    Now do the same with Bri-- Um, oh my God.

  87. 12:27

    So now it's using scrape as a markdown. It's doing a search. It's only pulling the text. It's not pulling the HTML, just the text itself.

  88. 12:45

    Always, when you do a live, it slows down. [laughs] The time is like [exhales]

  89. 12:51

    It's more people clicking the bots than you.

  90. 12:55

    Oh, actually it could be. It could be opening a browser and actually holding the button. You know, the Walmart has, like, one of those click and hold, and it needs to hold it for, like, thirty seconds, so it could be doing that right now.

  91. 13:05

    So, uh- People are capturing right now. We, we have built a CAPTCHA-solving solution. Like, we literally have in-house... We have a AI-solving CAPTCHA and

  92. 13:16

    moving, clicking things, and like, wow, it's perfect. So it already got

  93. 13:22

    first result, blue headphone. Uh, basically, there you go. It already has the results of the headphones without robot or human, with full product list and name. Uh, so we here already have output.

  94. 13:36

    Tell me, if you were to do this manually, how ma- how much more tokens have you used? How many did you save? Let's just give it a breakdown, and this is probably the biggest issue, right?

  95. 13:53

    Tokens is expensive. I'm going through millions and millions of tokens a day. I used to go more, but I, I optimized it. So, um, all of you are looking, how do we save money on LLM?

  96. 14:04

    How do we waste less tokens of web access? And, um, Bright Data has the solution. Instead of parsing the full HTML, create a scraper. Uh, instead of using, um, you know...

  97. 14:15

    Okay, it pulls the HTML and it extracts the data. It builds the scr-- uh, the parser.

  98. 14:22

    But it's working very slow right now. I feel like everybody's Vycoding. So basically, here's the breakdown, right? What do we have here?

  99. 14:31

    The big screens output [mumbling] parsing ninety products would...

  100. 14:37

    Input tokens, output tokens, total save. So it's about a sixty-two percent save of tokens. This is not a high number. This website, I guess, uh, it has, uh, maybe a structured, um, HTML, I'm not sure.

  101. 14:55

    But this is what I wanted to show you. And the best thing about it is that it will maintain it. If it breaks it, it will fix it. I can set up a loop, right?

  102. 15:03

    So for example, in Claude, I can set a schedule. Every thirty minutes, you do and run and check something, and this is what we are giving you guys, okay?

  103. 15:10

    With our MCP, your agent has access to all the web, uh, without getting blocked. No CAPTCHA will stop it. No robots, anti-bot systems will stop it, and, uh, you have no headaches of that.

  104. 15:23

    I don't know how many of you have... You guys probably dealt with blocking, right? When you build a scraper, it gets a little complicated. So this kinda removes all the headache for it.

  105. 15:33

    Um, any questions? Where is the code? Excuse me? The code, the code to generate the scraper, right? Uh, what is- Oh, I can... If you, you wanna see the code?

  106. 15:45

    I mean, it's here. We have the scraper. Let's check it out.

  107. 16:03

    So it's using API Web Unlocker. This is the same thing as a scrape as a markdown with an MCP. It sends a simple request and gets the data back.

  108. 16:12

    This is the parser that it built. I mean,

  109. 16:22

    it looks pretty good. This is the, the schema that it built for the output.

  110. 16:28

    It's doing a keyword search. It has the max page, right? So I als-- for two inputs, the keyword search and how many pages to scrape.

  111. 16:38

    And hold on. Let's see, let's see. We can run it through here as well. Where's the variables? API key, Zoom key. [humming]

  112. 16:52

    Let's run it. Do another run on laptops. What are the two pages results? [clears throat]

  113. 17:04

    And now you kinda control it. Like, you don't even need to run it, right? It will trigger it for you. It will maintain it for you. Um, you can create a script that will automatically do all of this.

  114. 17:14

    I prefer the visual interface for dem-demonstration. Sometimes, you know, like, looking at our code, it's a little more complicated. But right now, basically, I can ask it any questions.

  115. 17:23

    It will actually run the script, so it's not wasting tokens. To execute the script, maybe, like, sixty tokens, right, right now. So it's gonna literally get all this data for a hundred tokens, and then you can do whatever.

  116. 17:34

    You can ask it questions about it, but now we're working with a JSON. A JSON is much more token efficient than any markdown or any other file, right?

  117. 17:44

    Slow than usual. Can I ask, can you, can you do this on all-- with authorization site as well? Uh, no. We only talk, we only deal with public data.

  118. 17:58

    So behind login, it's, um, it's private data. And, and, uh, just, you know, just a heads-up. If you create an account, you accept terms and conditions of the website.

  119. 18:08

    Always check terms and conditions of the website. If they say, "Don't scrape," "Don't use robots," and you do, then that company can actually sue you, and this is happening, uh, you probably heard in the news all the time.

  120. 18:18

    LinkedIn is suing them. Everybody's suing each other because- They, the data right now is like the new gold, the oil, right? Everybody's trying, like, "Oh, this is my data."

  121. 18:27

    Elon Musk took over Twitter, locked it down. That's it. Literally, like, the, it used to be so open, and now it's all locked in. A few accounts that you can actually scrape.

  122. 18:36

    So we're seeing this on every single level.

  123. 18:41

    Very slow today. Um, so yes, also same thing. If you accept, uh, there's like a terms and ag- like, if you do a search and there's a checkpoint, I accept terms and conditions, always be careful with that.

  124. 18:52

    So we only deal with public data, so nothing behind login. We don't accept terms and conditions, and we actually won a few lawsuits. We were sued by Meta. We were s-sued by Elon Musk a month after he took over, and, uh, the judge said it's very simple.

  125. 19:07

    Public data is public data. It doesn't matter how you collect it, doesn't matter what you do with it, it's public. You know? It's like walking on the street, you write down the prices on the counter, and then you sell it to somebody.

  126. 19:18

    It's public data. It's available. You can do whatever you want with it. Okay? So,

  127. 19:24

    as usual, it gets stuck on a live demo, but

  128. 19:28

    we can, we can run this manually. Oh, my God.

  129. 20:00

    What the... I was setting a variable, it's doing this.

  130. 20:05

    It's not gonna work. It's from that batch.

  131. 20:16

    What am I missing? Still stuck? Oh, okay. It's done. Okay, so here we got, we got...

  132. 20:28

    Let's see. How many tokens, how many tokens did you spend on getting the- these?

  133. 20:43

    So even if you're not bui- building pipelines for any, um, you know, big companies, and you don't need to sc- for personal use, I always have the MCP connected.

  134. 20:51

    I don't ask the, you know, LLM to go do. I always ask, build a script that can later on be used by it. It's using its own script to save the tokens.

  135. 21:10

    Literally, like, we're talking about 1,000 tokens here. If, uh, you know, if, if it needs to s- go through the JSON, it's like 10,000 tokens. We're talking about, like, literally pennies compared to what it would be to actually scrape it.

  136. 21:22

    Any more questions? How about this? Anybody has problems with actually getting data?

  137. 21:30

    No, no question. Ev- everybody is like, "Oh, yeah, I'm not sharing my problems. I have no problems." And then they go home and like, "Oh, I do have a problem."

  138. 21:37

    But in any case, listen, we have a booth. If you don't, if you wanna talk in private and you have questions about data or access or LLM, feel free.

  139. 21:45

    I'm always willing to help. Um, we can connect on LinkedIn, by the way, guys, if you want. Let me just summarize a few things what we did here. So, um, self-healing pipeline.

  140. 21:56

    When you have, when your agent actually has access to a blocked website and you're working... I mean, the MCP is mostly useful in about 20% of the, of the domains, right?

  141. 22:06

    The ones that have Akamai, Datadome, Cloudflare, those heavy protected domains. They are the usually the most juiciest one, right? Like real estate or, uh, big e-commerce places. Uh, with our MCP, it has access to it.

  142. 22:19

    If it has access to it, it can build a scraper. If it can build a scraper, it can maintain the scraper. This is basically the whole thing that I wanted to show you.

  143. 22:25

    That in Bright Data, we have all the tools that your agent might need to explore, to build and maintain, uh, a pipeline, right? So if you wanna set up a listener for an apartment and you're looking to move into a cheaper place, or maybe you wanna book a table in a restaurant where it's always packed, and literally,

  144. 22:45

    I, I, I have a listener right now waiting for two months already. Everybody's, like, booking right away. So as soon as a spot opens, it will automatically book a spot for me.

  145. 22:52

    It can be very useful in just kinda like even, even the small things, personal things, right? I'm not talking about just enterprise scale, where I need to download a million records, okay?

  146. 23:01

    But having access to all the websites, it's, it's, it's important. So apart from scraping, can you also do actions on the website? Yes. Of course. Fill a form. Fill up a form, submit it as well, yes.

  147. 23:15

    The only thing you can't do is log in,

  148. 23:19

    right? So if you have, um, let's say you need to perform a search, right? You cannot generate the URL, you need to click button. Let's say flights. You wanna check flights availability, Skyscanner or something like that, right?

  149. 23:30

    The URL is usually a hash, and you can't, uh, do anything with it. So yes, LLM can spawn a browser, remote browser. Even if it's a geo-restricted site, it can be like, "Okay, I want IP from the United States."

  150. 23:41

    So it's open a browser with the United States IP, and then it goes and clicks things, fills it up, and so on. The beauty of it is that our browser will mimic real human behavior.

  151. 23:50

    So when your agent clicks, it's not a teleportation. There's a mouse pre-recorded, like a real human being moving it. When it types, it will type a little slower, speed up, like maybe even mistake, and so on.

  152. 24:00

    So we have pre-recorded typing, we have pre-recorded mouse movements. So if the website has a tracker that's constantly sending to the server what the user is doing, it will look like a real human being.

  153. 24:10

    Doesn't matter what your agent, even if it's a low, like, um, uh, for browsing agents, um, I'm never use the top models, right? For example, if with Claude, a Haiku model is more than enough for browsing.

  154. 24:20

    If it's being masked that it's a real human, it works just fine.

  155. 24:27

    Um, so that's pretty much it. If you guys wanna connect on LinkedIn, feel free. I'm always willing to help. If you have any questions regarding how to get data, if you have problems with accessing anything, feel free to message me.

  156. 24:40

    I feel like there's been so much more than 15 minutes. I love it. It's the second time I'm doing a speech and I got, like, half an hour instead of 15 minutes.

  157. 24:46

    It's amazing. Um, now's the time if you have any questions, discussions.

  158. 24:55

    No, nothing. Great. Okay, guys, I guess I will conclude this session on this. Uh, feel free to come to the booth on the third floor if you have more questions, and, um,

  159. 25:04

    let's keep the public data public. [laughs] Thank you. [clapping] [outro music]