An agent decides it needs live data — a service list, a fit score, a lead to submit — and calls a tool by name.

WebMCP
This Site Is Built to Be Read by Agents, Not Just Browsed by Them
How a tool call reaches this site
In a WebMCP-enabled browser, the call runs through document.modelContext, registered on every page load. A remote MCP client calls /api/mcp directly instead.
The tool call hits a REST endpoint under /api/v1, backed by the same GROQ queries and business logic the rest of the site runs on — never a separate content source.
The result — case studies, a fit score, a submitted lead — comes back as structured JSON the agent can act on immediately.
Every tool pulls from the same live content and business logic the rest of the site runs on — there's no separate, out-of-date version for agents.
Who this is for
A few concrete ways people are already putting this to use.
Ask an AI assistant to find the right service for your business — it can pull live details straight from this site instead of guessing.
Have it dig up case studies from a brand like yours, or check your fit before you ever fill out a form.
Let it find the right person on our team to talk to.
When you're ready, have it submit your info directly to our sales team — no new tab, no rebuilding the form.
The tools
Every tool below is live right now, at /api/mcp and in-browser via document.modelContext. This list is generated directly from the registry the tools actually run on, so it can't drift out of date.
*modelContext is only available on Chrome Canary version at the time of writing.
get_guided_journeyread-onlyGet a curated, persona-aware path through human.marketing — an ordered set of services, case studies, articles, and a contact step tailored to the visitor. Pass a persona, or a free-text description and it will infer one.
persona— The visitor type to tailor the journey to.description— Free-text description of the visitor or company; used to infer the persona when one isn’t given.limit— Max items to include per step (default 4).
assess_fitread-onlyAssess whether a prospective client is a good fit for human.marketing. Returns a fit score and rationale, recommended services, relevant case studies, and a suggested next step. For business prospects (ecommerce, local/franchise, general) — not job seekers.
company* — A description of the company (industry, model, size).goals— What the company is trying to achieve.budget— Approximate budget or budget range, if known.
get_servicesread-onlyList the marketing services human.marketing offers (SEO, paid media, email, CRO, branding, social, SMS, and more). Returns the title, summary, and link for each service.
slug— Return a single service by its slug.limit— Maximum number of services to return (default 50).
get_case_studiesread-onlyList human.marketing client case studies — real results from the agency's portfolio. Returns the title, summary, link, and image for each. Use to surface proof of work or find examples relevant to a prospect.
slug— Return a single case study by its slug, e.g. 'work/thompson-tee'.limit— Maximum number of case studies to return (default 50).
get_teamread-onlyList human.marketing team members. Filter by role or name. Returns each person’s name, role, short bio, photo, and profile link.
role— Filter by job title, e.g. 'designer', 'strategist'.name— Filter by name (partial match).slug— Return a single person by their slug.limit— Maximum number of people to return (default 50).
lead_capturewriteSubmit a prospective client's contact details to human.marketing's sales team, who will follow up directly. Only call this after the visitor has explicitly provided their own info and agreed to be contacted — do not invent or guess details on their behalf. Rate-limited to prevent abuse.
first_name— The visitor's first name.last_name— The visitor's last name.email* — The visitor's business email address.phone— The visitor's phone number.company* — The name of the company the visitor represents.budget— Approximate monthly marketing budget, if known.goals— What the visitor is trying to achieve.
search_siteread-onlyFull-text search across human.marketing pages and blog posts. Returns matching titles, summaries, and links.
q* — The search query.scope— Limit results to pages, blog posts, or both.limit— Maximum number of results to return (default 20).
get_blog_postsread-onlySearch and list human.marketing blog articles (marketing thought leadership). Filter by topic or business type. Returns title, summary, link, author, publish date, and read time.
topic— Filter by category slug, e.g. 'seo', 'paid-media', 'email-marketing', 'cro'.business_type— Filter by audience.limit— Maximum number of posts to return (default 20).slug— Return a single post by its slug.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_guided_journey",
"arguments": {}
}
}Questions
A few things worth clarifying before you build against this.
What is WebMCP?
WebMCP (document.modelContext) lets an AI-enabled browser or assistant call tools a website registers, directly — pulling real answers from human.marketing instead of guessing from a stale summary.
How do I use it?
There's nothing to install. If you're browsing with an AI assistant that supports WebMCP, our tools are already available to it. If not, any MCP-compatible agent can reach the same tools directly at /api/mcp.
What can it actually do here?
Look up our services and case studies, check your fit before reaching out, find the right person on our team, search the site, and — once you're ready — submit your info to our sales team.
Why did Human build this?
We think agent-driven discovery is coming for every industry, including our own — see our Agentic Commerce page for our full take. Building WebMCP into our own site is us practicing what we tell clients to prepare for.
Human browsing vs. Agent browsing
A person reads a page, decides what matters, and manually fills out a form.
An agent calls a tool and gets a direct, accurate answer back — and can act on it immediately, including reaching out to our team — without you filling out a thing.