[{"data":1,"prerenderedAt":231},["ShallowReactive",2],{"learn-lesson-ai-agent-web-data-mcp-what-is-mcp":3},{"course":4,"lesson":67,"index":197,"outline":198,"prev":229,"next":230},{"slug":5,"order":6,"level":7,"time":8,"card_text":9,"seo":10,"hero":16,"outcomes":26,"who":35,"syllabus":46,"faq":49,"lessonCount":66},"ai-agent-web-data-mcp",2,"Comfortable editing a config file","6 lessons, about 60 minutes","Your agent is confidently wrong about prices because it has never seen one. What MCP is, how to connect a server, how to design tools a model can actually use, and the guardrails you need before you let it loose.",{"title":11,"description":12,"keywords":13,"og_title":14,"og_description":15},"MCP for AI Agents: A Free 6-Lesson Course on Live Web Data","What MCP is, how to connect a server to Claude, how to design tools an agent can use, and how to give an agent live web data without it inventing prices. Free, ungated.","mcp tutorial, model context protocol, ai agent web data, mcp server claude, give agent live data, mcp tools design, agent web scraping","A free course on giving AI agents live web data via MCP","Six written lessons: the protocol, the failure modes, connecting a server, designing usable tools, and the guardrails.",{"badge":17,"title":18,"subtitle":19,"cta_primary":20,"cta_secondary":23},"Course two","Give your AI agent live web data via MCP","Ask an assistant what a product costs today and you will usually get a number. It is often wrong, and it is always wrong in the same way: the model is reconstructing a plausible price from training data rather than looking at a page. This course is about closing that gap properly — what the Model Context Protocol actually is, how to wire a server into a client, how to design tools a model can use without hand-holding, and what to put in place before an agent spends your money.",{"label":21,"url":22},"Start with lesson one","/learn/ai-agent-web-data-mcp/what-is-mcp",{"label":24,"url":25},"See our MCP skill","/skills",{"title":27,"items":28},"What you will be able to do",[29,30,31,32,33,34],"Explain MCP to a colleague in two sentences without using the word \"ecosystem\"","Tell the difference between a model that does not know something and a model that has been given a tool badly","Connect an MCP server to a client and verify that the tools are actually registered","Write a tool description a model picks correctly on the first attempt","Give an agent the ability to fetch a real price from a real page","Put a spend cap, a rate limit and an injection boundary in place before any of this touches production",{"title":36,"for_title":37,"for":38,"not_title":42,"not_for":43},"Who this is for","Written for",[39,40,41],"Developers building on Claude, ChatGPT or an agent framework who need the agent to see the live web","Technical founders evaluating whether MCP is worth adopting","Data teams who already have an API and are deciding whether to expose it to agents","Not written for",[44,45],"Anyone looking for a no-code agent builder — this assumes a config file and a terminal","Readers who want the full specification; this is the working subset, and the spec is linked where it matters",{"title":47,"intro":48},"The six lessons","Lessons one and two are concepts and cost nothing to read. From three onwards you will want a client installed.",{"badge":50,"title":51,"description":52,"items":53},"FAQ","Before you start","The questions that come up in the first ten minutes.",[54,57,60,63],{"title":55,"description":56},"Do I need to know what MCP is already?","No. Lesson one assumes nothing beyond having used an AI assistant. If you already know what a tool call is, skim it and start at lesson two.",{"title":58,"description":59},"Is this Claude-specific?","MCP is an open protocol and the concepts transfer to any client that implements it. The concrete configuration examples use Claude because that is the client most readers will have in front of them, and the differences elsewhere are mostly about where the config file lives.",{"title":61,"description":62},"Do I need a Scrapewise account?","Only for lesson five, which walks through pointing an agent at a real scraper. Everything else works against any MCP server, including ones you write yourself in an afternoon.",{"title":64,"description":65},"Can I just use a web search tool instead?","Sometimes, and lesson two is explicit about when. Search gives an agent a summary of a page; a scraper gives it the specific field from a specific page. For \"what is the general sentiment on X\" search is better. For \"what does this exact URL charge today\" it is not.",6,{"slug":68,"nav_title":69,"title":70,"summary":71,"time":72,"needs_account":73,"seo":74,"blocks":78,"takeaways":188,"next_step":193},"what-is-mcp","What MCP is","What MCP actually is, in plain terms","The Model Context Protocol described without jargon: what problem it solves, its three primitives, and when it is the wrong tool.","9 min",false,{"title":75,"description":76,"keywords":77},"What Is MCP (Model Context Protocol)? A Plain Explanation","MCP is a standard way for AI apps to connect to tools and data. What it replaces, its three primitives, how transports work, and when you do not need it.","what is mcp, model context protocol, mcp explained, mcp primitives, mcp server client, anthropic mcp",[79,85,118,125,132,137,146,174,183],{"type":80,"paragraphs":81},"prose",[82,83,84],"The Model Context Protocol is a standard way for an AI application to talk to the tools and data outside it. That is the whole idea. The reason it exists is less obvious and more interesting.","Before a standard, every integration was a pair. If you wanted an assistant to read your database, somebody wrote a database integration for that specific assistant. If you then wanted a second assistant to read the same database, somebody wrote it again. With a handful of assistants and a handful of data sources, you are writing one integration per combination, and the number of combinations grows by multiplication rather than addition.","MCP turns that multiplication into addition. A data source is wrapped once, as a server. A client implements the protocol once. Any client can then talk to any server. It is the same shape of idea as a device driver or a database connection standard, and it is unglamorous in exactly the same way.",{"type":86,"title":87,"intro":88,"headers":89,"rows":93},"table","The pieces and their names","The vocabulary is small. Getting it straight early saves a lot of confusion later.",[90,91,92],"Term","What it is","Example",[94,98,102,106,110,114],[95,96,97],"Host","The application the user is actually using","Claude Desktop, an IDE, your own agent app",[99,100,101],"Client","The part inside the host that speaks the protocol","One client connection per server",[103,104,105],"Server","The thing that exposes capabilities to the model","A wrapper around a database, a filesystem, or a scraping API",[107,108,109],"Tool","An action the model can choose to take","run_scraper, search_products, send_email",[111,112,113],"Resource","Data the client can read and put into context","A file, a record, a document",[115,116,117],"Prompt","A reusable, parameterised instruction the user can invoke","A \"review this PR\" template the server supplies",{"type":80,"title":119,"paragraphs":120},"The distinction that matters: tools versus resources",[121,122,123,124],"Of the three primitives, tools get almost all the attention, and the difference between a tool and a resource is worth understanding because getting it wrong produces servers that feel awkward to use.","A tool is model-controlled. The model decides to call it, chooses the arguments, and the call has an effect — it runs something, it costs something, it may change the world. Tools are verbs.","A resource is application-controlled. It is data the host can pull in and show to the model, usually because the user picked it. Reading a resource should be safe, repeatable and free of side effects. Resources are nouns.","The practical test: if calling it twice in a row would be surprising or expensive, it is a tool. If calling it twice is simply the same answer again, it is probably a resource.",{"type":80,"title":126,"paragraphs":127},"How a server is actually reached",[128,129,130,131],"Two transports cover nearly everything you will meet.","The first runs the server as a local subprocess on the same machine as the host, with messages passed over standard input and output. This is how most developer tooling works: the server has access to your filesystem and your local credentials, there is no network hop, and configuring it means telling the host what command to run.","The second runs the server as an HTTP service somewhere else, which the host connects to over the network. This is how a hosted product exposes itself to many users, and it is the transport you meet when a vendor gives you a URL and a key rather than a command to run.","The protocol itself is the same either way. From the model's point of view a tool is a tool; the transport only determines where the code runs and what it can reach.",{"type":133,"variant":134,"title":135,"text":136},"callout","note","What a tool call looks like from the model's side","The host sends the model a list of available tools, each with a name, a description and a JSON Schema for its arguments. The model, mid-conversation, emits a request to call one with specific arguments. The host runs it, and feeds the result back as another message. That is the whole loop. MCP standardises where the tool list comes from and how the call is transported — it does not change how the model reasons about it, which is why lesson four is about writing descriptions rather than about the protocol.",{"type":138,"title":139,"intro":140,"items":141},"list","When you do not need MCP","It is a connection standard, not a requirement. Skip it when:",[142,143,144,145],"You are building one application against one API and nothing else will ever consume it — a direct SDK call is simpler and you should just do that","The data fits in the prompt. A thousand-row price list pasted into context needs no protocol.","You need deterministic behaviour. If the action must happen every time, put it in your code, not behind a decision the model makes.","The integration is read-only, static and small, in which case a resource-shaped file in the repository is often enough",{"type":86,"title":147,"intro":148,"headers":149,"rows":154},"Worked example: why N × M becomes N + M","The claim that MCP turns a multiplication into an addition is worth doing with actual numbers, because the crossover arrives sooner than people expect. At one client and one source the protocol is pure overhead — two pieces where one function would do. The lines cross at two clients and three sources. By four and six you are maintaining ten things instead of twenty-four. The last row is the one that settles the argument.",[150,151,152,153],"Clients","Sources","Bespoke integrations (N × M)","MCP pieces (N + M)",[155,158,162,166,169],[156,156,156,157],"1","2",[157,159,160,161],"3","6","5",[163,160,164,165],"4","24","10",[160,165,167,168],"60","16",[170,171,172,173],"adding one more source to that last row","","+6 integrations","+1 server",{"type":138,"title":175,"intro":176,"items":177},"What usually goes wrong","Most of the confusion around MCP is about which problem it solves, not about how it works.",[178,179,180,181,182],"Reaching for it at one client and one source. The first row of the table is honest: at that size you have introduced a protocol, a process and a config file in order to avoid writing one function.","Exposing an entire API as tools. Forty thin wrappers around forty endpoints gives the model forty ways to be wrong, and lesson four is about why that is worse than it sounds.","Making something a tool when it should be a resource. If it is safe to read twice and has no effect, the application can fetch it without spending a model turn deciding to.","Assuming the transport matters to the model. It does not — which means a local stdio server and a remote HTTP one fail identically from the model's point of view while having completely different causes.","Expecting the protocol to supply the judgement. MCP standardises how a tool is described. Whether the description is any good remains a writing problem.",{"type":80,"title":184,"paragraphs":185},"Why it caught on",[186,187],"Two reasons, and neither is technical elegance. First, the integration a developer writes keeps working when they switch model or client, which removes a real source of lock-in anxiety. Second, it made it reasonable for a vendor to ship one server rather than one plugin per assistant — which is why a lot of infrastructure, including ours, now has an MCP interface sitting next to its REST API.","The honest caveat is that a protocol does not make a bad integration good. A server with twelve vaguely named tools and no descriptions is just as hard for a model to use over MCP as it was over anything else. That is lesson four, and it is the lesson that actually determines whether your agent works.",[189,190,191,192],"MCP turns an integration problem that grows by multiplication into one that grows by addition.","Tools are model-controlled verbs with effects. Resources are application-controlled nouns that are safe to read twice.","Two transports: a local subprocess over stdio, or a remote HTTP service. The model cannot tell the difference.","The protocol does not make a badly described tool usable. That part is still writing.",{"text":194,"label":195,"url":196},"Next: the specific way agents fail at live data, and why adding a tool does not automatically fix it.","Lesson 2: why agents get live data wrong","/learn/ai-agent-web-data-mcp/why-agents-get-live-data-wrong",0,[199,200,206,211,217,224],{"slug":68,"navTitle":69,"title":70,"summary":71,"time":72,"needsAccount":73},{"slug":201,"navTitle":202,"title":203,"summary":204,"time":205,"needsAccount":73},"why-agents-get-live-data-wrong","Why agents get it wrong","Why your agent's answer about a price is wrong","Four distinct failure modes that all look identical from the outside, and how to tell which one you have before you try to fix it.","10 min",{"slug":207,"navTitle":208,"title":209,"summary":210,"time":205,"needsAccount":73},"connect-an-mcp-server","Connecting a server","Connecting an MCP server and proving it works","The config for local and remote servers, the four things that go wrong, and how to verify the tools registered rather than assuming.",{"slug":212,"navTitle":213,"title":214,"summary":215,"time":216,"needsAccount":73},"design-tools-an-agent-can-use","Designing usable tools","Designing tools an agent can actually use","A connected server is not a useful server. The model only sees your tool names, descriptions and parameter schemas, so those three things are the entire user interface. Here is what makes a tool get called correctly and what makes it get ignored.","11 min",{"slug":218,"navTitle":219,"title":220,"summary":221,"time":222,"needsAccount":223},"give-an-agent-a-scraper","Giving an agent a scraper","Giving an agent a real price feed","A worked example. Connect the ScrapeWise MCP server to a client, let the agent read a live scraper's output, and watch where the hand-off between \"the data is right\" and \"the answer is right\" actually breaks.","12 min",true,{"slug":225,"navTitle":226,"title":227,"summary":228,"time":216,"needsAccount":73},"guardrails-cost-and-untrusted-content","Guardrails and cost","Guardrails, cost control and untrusted content","Live web access turns an agent into something that can spend money and read text written by strangers. Neither is a reason not to do it. Both are reasons to put limits in before you need them.",null,{"slug":201,"navTitle":202,"title":203,"summary":204,"time":205,"needsAccount":73},1791047866893]