blob: 463107ab6206a227c1a53a13eaf4ecfbaffbab83 [file] [edit]
# Copyright 2026 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Contributing to Chrome DevTools Protocol: https://goo.gle/devtools-contribution-guide-cdp
experimental domain WebMCP
depends on Runtime
depends on Page
depends on DOM
# Tool annotations
type Annotation extends object
properties
# A hint indicating that the tool does not modify any state.
optional boolean readOnly
# A hint indicating that the tool output may contain untrusted content, ex: UGC, 3rd party data.
optional boolean untrustedContent
# If the declarative tool was declared with the autosubmit attribute.
optional boolean autosubmit
# Represents the status of a tool invocation.
type InvocationStatus extends string
enum
Completed
Canceled
Error
# Definition of a tool that can be invoked.
type Tool extends object
properties
# Tool name.
string name
# Tool description.
string description
# Schema for the tool's input parameters.
optional object inputSchema
# Optional annotations for the tool.
optional Annotation annotations
# Frame identifier associated with the tool registration.
Page.FrameId frameId
# Optional node ID for declarative tools.
optional DOM.BackendNodeId backendNodeId
# The stack trace at the time of the registration.
optional Runtime.StackTrace stackTrace
# Enables the WebMCP domain, allowing events to be sent. Enabling the domain will trigger a toolsAdded event for
# all currently registered tools.
command enable
# Disables the WebMCP domain.
command disable
# Invokes a registered tool.
command invokeTool
parameters
# Frame in which to invoke the tool.
Page.FrameId frameId
# Name of the tool to invoke.
string toolName
# Input parameters for the tool, matching the tool's inputSchema.
object input
returns
# Unique identifier for this invocation. Response is sent before tool events.
string invocationId
# Cancels a pending tool invocation.
command cancelInvocation
parameters
# Invocation identifier to cancel.
string invocationId
# Event fired when new tools are added.
event toolsAdded
parameters
# Array of tools that were added.
array of Tool tools
# Definition of a tool that was removed.
type RemovedTool extends object
properties
# Tool name.
string name
# Frame identifier associated with the tool registration.
Page.FrameId frameId
# Event fired when tools are removed.
event toolsRemoved
parameters
# Array of tools that were removed.
array of RemovedTool tools
# Event fired when a tool invocation starts.
event toolInvoked
parameters
# Name of the tool to invoke.
string toolName
# Frame id
Page.FrameId frameId
# Invocation identifier.
string invocationId
# The input parameters used for the invocation.
string input
# Event fired when a tool invocation completes or fails.
event toolResponded
parameters
# Invocation identifier.
string invocationId
# Status of the invocation.
InvocationStatus status
# Output or error delivered as delivered to the agent. Missing if `status` is anything other than Completed.
# Note: The output is untrusted and poses a prompt injection risk. Clients should treat this as potentially malicious user input.
optional any output
# Error text for protocol users.
optional string errorText
# The exception object, if the javascript tool threw an error>
optional Runtime.RemoteObject exception