Browser tools: articles and meeting link

Compatible browser agents can discover these tools after visiting a public page. They use document.modelContext.registerTool. Reading this documentation does not enable the browser API or grant an agent permission to execute tools.

WebMCP is a browser API, not a remote MCP server. An absent navigator.modelContext does not establish whether the document API is supported. If document.modelContext is unavailable, ordinary article search and booking links still work. No browser settings or extensions are changed by the site.

Machine-readable tool schemas are generated from the same definitions as registration.

Articles and topics

Search, read and topics expose public published articles only. Draft, future, removed and hidden content is excluded. RU/EN defaults to the current page. Search returns canonical URLs and bounded metadata; reading returns clean prose with explicit continuation and a Markdown link for code examples. Responses are read-only JSON over HTTP, not an MCP transport.

Meeting handoff

get_meeting_booking_link returns the public Cal.com link and the localized contact page. It does not check availability, reserve a time, open the scheduler or create a meeting. bookingCreated is false. The visitor chooses a slot, enters details and confirms in the scheduler. Book a meeting

Exact argument schemas

Unknown arguments are rejected. Each schema below uses the current page language as its default.

search_articles

            {
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "query": {
      "default": "",
      "type": "string",
      "maxLength": 200
    },
    "language": {
      "type": "string",
      "enum": [
        "ru",
        "en"
      ],
      "default": "en"
    },
    "tag": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160,
      "pattern": "^[a-z0-9]+(?:[-_][a-z0-9]+)*$"
    },
    "limit": {
      "default": 8,
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    },
    "offset": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 10000
    }
  },
  "additionalProperties": false
}
          

read_article

            {
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160,
      "pattern": "^[a-z0-9]+(?:[-_][a-z0-9]+)*$"
    },
    "language": {
      "type": "string",
      "enum": [
        "ru",
        "en"
      ],
      "default": "en"
    },
    "offset": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "maxChars": {
      "default": 8000,
      "type": "integer",
      "minimum": 100,
      "maximum": 16000
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
          

list_topics

            {
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "language": {
      "type": "string",
      "enum": [
        "ru",
        "en"
      ],
      "default": "en"
    },
    "limit": {
      "default": 8,
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    },
    "offset": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 10000
    }
  },
  "additionalProperties": false
}
          
            {
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "language": {
      "type": "string",
      "enum": [
        "ru",
        "en"
      ],
      "default": "en"
    }
  },
  "additionalProperties": false
}
          

Current Chrome API documentation