WebMCP

This Site Is Built to Be Read by Agents, Not Just Browsed by Them

How a tool call reaches this site

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

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.

One source of truth

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-only

Get 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.

  • personaThe visitor type to tailor the journey to.
  • descriptionFree-text description of the visitor or company; used to infer the persona when one isn’t given.
  • limitMax items to include per step (default 4).
assess_fitread-only

Assess 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).
  • goalsWhat the company is trying to achieve.
  • budgetApproximate budget or budget range, if known.
get_servicesread-only

List 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.

  • slugReturn a single service by its slug.
  • limitMaximum number of services to return (default 50).
get_case_studiesread-only

List 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.

  • slugReturn a single case study by its slug, e.g. 'work/thompson-tee'.
  • limitMaximum number of case studies to return (default 50).
get_teamread-only

List human.marketing team members. Filter by role or name. Returns each person’s name, role, short bio, photo, and profile link.

  • roleFilter by job title, e.g. 'designer', 'strategist'.
  • nameFilter by name (partial match).
  • slugReturn a single person by their slug.
  • limitMaximum number of people to return (default 50).
lead_capturewrite

Submit 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_nameThe visitor's first name.
  • last_nameThe visitor's last name.
  • email *The visitor's business email address.
  • phoneThe visitor's phone number.
  • company *The name of the company the visitor represents.
  • budgetApproximate monthly marketing budget, if known.
  • goalsWhat the visitor is trying to achieve.
search_siteread-only

Full-text search across human.marketing pages and blog posts. Returns matching titles, summaries, and links.

  • q *The search query.
  • scopeLimit results to pages, blog posts, or both.
  • limitMaximum number of results to return (default 20).
get_blog_postsread-only

Search 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.

  • topicFilter by category slug, e.g. 'seo', 'paid-media', 'email-marketing', 'cro'.
  • business_typeFilter by audience.
  • limitMaximum number of posts to return (default 20).
  • slugReturn a single post by its slug.
POST /api/mcp
  • {
      "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.

    Curious What This Looks Like for Your Brand?