WebMCP Best Practices: How to Design and Test Tools AI Agents Use Well
An AI agent only knows what your tools tell it. Google's guidance, turned into a practical checklist for naming, inputs, errors, safety and testing WebMCP tools.
In this article
- Start with the user’s goal, not the page
- WebMCP best practices for tool design
- WebMCP best practices for naming and descriptions
- WebMCP best practices for inputs
- WebMCP best practices for results and errors
- WebMCP best practices for safety
- How to test WebMCP tools
- A launch checklist
- After launch: keep improving
- WebMCP best practices: FAQs
- Sources
WebMCP best practices: the short answer
The core WebMCP best practices are simple: give each tool one clear job, name it with a precise verb, describe it positively in plain words, accept raw input, return short and useful results, and fail with helpful messages. Mark read-only and consequential tools honestly, keep descriptions short, and test with Google’s Model Context Tool Inspector and evaluations before launch. Then keep monitoring, because the standard is still changing.
WebMCP best practices matter because an AI agent only knows what your tools tell it. If a tool’s name is vague or its inputs are confusing, the agent may pick the wrong tool, send the wrong details or give up. Good tool design is the difference between a helpful agent and a frustrating one. That is why WebMCP best practices deserve attention before you write any code.
This guide therefore gathers the advice Google has published for WebMCP developers and turns it into a practical checklist. It covers tool design, wording, inputs, errors, safety and testing, with simple examples. It is based on Chrome’s WebMCP best practices page and related guides, checked in September 2026. If you’re new to WebMCP, start with what is WebMCP, then read our imperative API guide.
Start with the user’s goal, not the page
Chrome’s “Build tools” guide suggests a four-step process. First, define the user goal and what success looks like. Second, map the page’s starting state. Third, role-play the conversation between the person, the agent and your site. Fourth, evaluate and deploy.
Among early WebMCP best practices, the role-play step is especially useful. For instance, write out a realistic request, such as “Book a table for four on Friday at 7pm.” Then walk through each turn slowly. What does the agent need to know first? Which tool should it call? What should the site reply? As a result, you will often discover tools you need and tools you don’t.
WebMCP best practices for tool design
One job per tool
Chrome’s guidance says “each tool should consist of a single function.” In other words, WebMCP best practices say not to build a giant tool that does everything. Instead, build search_hotels and filter_results as separate tools. Also, merge tools that overlap, so the agent isn’t unsure which to use.
Register tools that match the page
Tools should reflect what the page can do right now. For example, a checkout tool makes sense when a basket has items, not before. Chrome notes that you can register and unregister tools as the page changes. However, it also says static registration is the default approach for most sites. So only add dynamic tools where they clearly help.
Don’t overload the agent
Admittedly, there is no hard limit on the number of tools. Still, Chrome says each tool takes up space in the model’s context, and more tools can mean slower, harder decisions. Therefore, a sensible reading of WebMCP best practices is to start small and add tools only when testing shows a need.
WebMCP best practices for naming and descriptions
Names and descriptions are what the AI reads. So these WebMCP best practices have the biggest effect on whether agents use your tools well.
| Do | Don’t |
|---|---|
Use a precise verb: create-event | Describe a process: start-event-creation-process |
| Say what the tool can do: “Creates a calendar event for a date and time” | Say what it can’t: “Don’t use this tool for weather” |
| Use plain words for options: “Express” | Use codes: shipping_id=1 |
| Keep it short and specific | Pack in rules and exceptions |
Chrome’s security guidance also suggests limits: names under 30 characters, descriptions under 500 characters and parameter descriptions under 150 characters. In addition, Chrome advises you to “trust the agent” and avoid rigid negative instructions. Describe the goal clearly, then let the model work out the steps.
WebMCP best practices for inputs
Chrome’s WebMCP best practices for inputs are about reducing the AI’s “cognitive load”:
- Accept raw input. If a person says “next Friday evening”, let your tool handle the date conversion. Don’t make the AI do maths.
- Declare clear types. Use string, number or a fixed list of options (an enum) in your JSON Schema.
- Explain choices in words. Natural-language options are easier for models than internal IDs.
- Make awkward fields optional. For example, Chrome suggests making an honorific field optional and asking the user, rather than adding model-specific rules.
A useful pattern from Chrome’s guidance is “strict code validation and loose schema validation.” In practice, let the schema accept slightly messy input. Then check it carefully in your code and return a clear message if something is wrong.
WebMCP best practices for results and errors
Meanwhile, a tool’s reply is how the agent learns what happened. Chrome’s documentation shows tools returning text, and its security guidance suggests keeping outputs under about 1,500 characters. So return what the agent needs, not a full page dump.
Errors deserve special care in WebMCP best practices. Chrome’s advice is to “fail gracefully and enable recovery.” Compare these two replies:
| Weak reply | Helpful reply |
|---|---|
| “Error 400” | “Please give a check-in date in YYYY-MM-DD format.” |
| “Failed” | “No tables are free at 7pm. The nearest free times are 6pm and 8.30pm.” |
| “Rate limited” | “Too many requests right now. Please try again in a minute, or finish the booking on the page.” |
Also, confirm completion only after the page has actually updated. Chrome’s guidance mentions confirming function completion after interface updates, so the agent and the person see the same state.
WebMCP best practices for safety
Safety is part of good design, not an add-on, and WebMCP best practices treat it that way. Chrome’s security guidance recommends these steps:
- Use
readOnlyHintfor tools that only read data. - Use
consequentialHintfor tools with real-world effects, such as bookings or payments, so the agent or browser can ask the person first. - Use
untrustedContentHintwhen output includes reviews, comments or other outside content. - Limit exposure with
exposedTo, and “only expose your tools to origins that you trust.”
Research published on arXiv in June 2026 also showed that compromised third-party scripts could tamper with a page’s tools in lab tests. So keep a close eye on what scripts run alongside your tools. Our WebMCP security guide covers this in depth.
How to test WebMCP tools
Testing is where WebMCP best practices meet reality, because AI models are probabilistic. The same request can produce different tool calls. Chrome’s evaluation guide lists five failure types to watch for:
- The agent picks the wrong tool or skips a step.
- Tools run in the wrong order.
- The right tool gets the wrong inputs.
- The tool returns wrong or incomplete information.
- JavaScript or outside services fail.
To catch these, Chrome suggests three layers of testing. First, test tools in isolation by calling document.modelContext.executeTool(...) directly. Second, write ordinary deterministic tests for your tool logic and page changes. Third, run probabilistic evaluations with real prompts, both clear ones such as “Add pepperoni” and vague ones such as “all meat toppings.”
For full journeys, Chrome describes defining expected tool calls, in order or not, and checking the agent against them. Chrome’s evaluation guide also links to an experimental evaluation command-line tool in Google’s GoogleChromeLabs webmcp-tools repository.
The Model Context Tool Inspector
Additionally, for hands-on testing, Google offers a Chrome extension called Model Context Tool Inspector. According to its Chrome Web Store page, version 1.9.16 was updated on September 22, 2026, and it has about 20,000 users. It lets you inspect, monitor and run WebMCP tools manually or with Gemini.
However, it needs Chrome 150.0.7861.0 or later with the “WebMCP for testing” flag switched on. Its listing also warns that it lacks production-level security, so don’t use it on untrusted websites.
A launch checklist
Before you switch tools on for real visitors, run through these WebMCP best practices:
- Each tool does one thing, with a precise verb in its name.
- Descriptions are positive, plain and under 500 characters.
- Inputs accept raw, natural input, with clear types.
- Errors explain what went wrong and how to fix it.
- Read-only, consequential and untrusted-output tools are labelled correctly.
- Tools are only exposed to origins you trust.
- Third-party scripts on the page have been reviewed.
- Tools pass isolated tests, deterministic tests and prompt-based evaluations.
- You have tested in each agent your audience uses, such as ChatGPT’s desktop browser, which only supports JavaScript-registered tools.
- You have a plan to update code as the standard changes.
After launch: keep improving
Importantly, Chrome’s guidance doesn’t end at launch. It recommends monitoring real-world use and refining tools over time. It also warns against narrow patches for specific models. Instead, fix the tool’s design so it works well for any agent.
That advice fits the moment, because everything is still moving. WebMCP is still a draft, browser support is experimental, and agents are changing monthly. So the most durable of all WebMCP best practices is simple: design clear tools, test them properly and keep them up to date.
Key takeaways
- Give each tool one job, name it with a precise verb and describe what it can do in plain, positive words.
- Accept raw input, use clear types and return short results with helpful error messages.
- Label tools honestly with readOnlyHint, consequentialHint and untrustedContentHint, and limit exposure with exposedTo.
- Test tools in isolation, with deterministic tests and with prompt-based evaluations, using Google’s inspector and evals tools.
- Monitor after launch and fix tool design rather than adding model-specific patches.
WebMCP best practices: FAQs
There is no fixed limit. Chrome says each tool uses context space and more tools can slow decisions, so start with a few focused tools and add more only when testing shows a need.
Chrome’s security guidance suggests under 500 characters for descriptions, under 150 for parameter descriptions and under 30 for names.
Use Google’s Model Context Tool Inspector extension with the testing flag, call executeTool() directly for isolated tests, and run prompt-based evaluations for full user journeys.
For actions with real-world effects, mark the tool with consequentialHint so the agent or browser can ask the person before running it.
Sources
- Chrome for Developers, “Best practices” (updated May 18, 2026)
- Chrome for Developers, “Build tools” (updated August 26, 2026)
- Chrome for Developers, “Evaluate your tools” (updated May 28, 2026)
- Chrome for Developers, “Secure your tools” (updated September 1, 2026)
- Chrome for Developers, “Imperative API” (updated September 21, 2026)
- Chrome Web Store, “Model Context Tool Inspector” (updated September 22, 2026)
- Lee et al., “WebMCP Tool Surface Poisoning”, arXiv (June 4, 2026)
- ChatGPT Learn, “Site tools” developer guide (accessed September 2026)



