webmcp-tool

Industry

SaaS consoles: let them bring their own agent

Your users already have an assistant that holds their context. Exposing tools costs you nothing per call and beats building an in-app agent they did not ask for.

Last reviewed 27 August 2026

The sentiment among people who use agents daily is consistent and worth reading literally: I do not want to use your product's agent. I want my agent to be able to use your product.

It is not hostility toward your assistant. It is that theirs already knows what they are working on, remembers last week, and is connected to the six other tools involved. Yours starts from nothing every session.

The economics

In-app agentWebMCP tools
Token costYours, per user, foreverTheirs
Model choiceYours to make and re-makeTheirs
Context about the user's workOnly what is in your productEverything they have
Build costA product in its own rightDays, then upkeep
What breaks on a model releaseYour prompts and evalsNothing

There is a place for in-app agents — a constrained assistant inside a dashboard where the operations are dangerous and you want them narrowly scoped is a defensible design. But as the default answer to make the product agent-friendly, it is the expensive option and it is the one users are pushing back on.

What to expose first

Look at what your users do repeatedly through the UI that the UI is bad at: anything requiring six clicks to answer one question, anything they export to a spreadsheet, anything they ask support to run for them.

query_metrics(metric, range, breakdown)   // readOnlyHint
list_segments() / create_segment(definition)
export_report(format, range)              // readOnlyHint
list_campaigns()                          // readOnlyHint
pause_campaign(id)                        // confirm before running
search_docs(query)                        // readOnlyHint

Start with everything marked read-only. They deliver most of the value, they need no confirmation flow, and they are the ones a security review approves without a meeting.

The refactor you will hit

A tool handler cannot reach into React state or a store the way a click handler can. In a mature console, a surprising amount of business logic lives inside components — and that is where the real effort in this project sits.

The move is to extract each operation into a plain function that takes arguments and returns data, then have both the click handler and the tool call it. It is a good refactor to have done regardless. It is also worth scoping before you promise a date, because add some tools and disentangle four years of logic from the view layer are different projects.

Consoles are where errors matter most

Agents retry. A tool that fails with a bare 500 gets called again, identically. A tool that returns segment definition rejected: `date_range` must be an ISO 8601 interval, received `last week` gets called again correctly.

Write failure messages as instructions to a competent stranger. That is exactly the audience.

Internal first

The safest place to learn this is your own back office. No compliance surface, no public traffic, users who already work with agents, and a measurable result — the report three people click through for twenty minutes becomes one tool call. It also gives you a working proof inside the company before you point any of it at customers. See internal tools.

Sources

Primary documents, checked on 27 August 2026

  1. webmachinelearning.github.io/webmcp
  2. modelcontextprotocol.io
  3. developer.chrome.com/docs/ai/webmcp

Keep reading

Check your own site against this

The Agent Readiness Score measures exactly what this article describes, and shows the evidence behind every finding.

Run the check →