Portal Community

Available Browser Tools

ToolDescriptionKey Parameters
browser_navigateNavigate to a URL and wait for the page to loadurl, waitUntil (load/networkidle)
browser_extractExtract text or structured data using a CSS or XPath selectorselector, format (text/html/json)
browser_fillFill an input field with a valueselector, value
browser_clickClick an elementselector, button (left/right/middle)
browser_screenshotTake a screenshot of the current page or a specific elementselector (optional, defaults to full page)
browser_waitWait for a selector to appear or disappearselector, state (visible/hidden/attached)

Architecture

Playwright Foundation

All browser automation uses Microsoft Playwright — the same engine used by modern end-to-end testing. Chromium is the default browser; Firefox is supported with additional config.

MCP Tool Exposure

Each browser action is registered as an MCP tool in OnStartAsync. Agents call them using the standard tool call loop — no special browser-aware code needed in the agent.

Session-Scoped Browser

Each conversation session gets its own browser context. Cookies, localStorage, and authentication state persist within a session but not across sessions.

Network Allowlist

Only domains on the configured allowlist can be navigated. This prevents agents from being tricked into accessing internal services or malicious external sites.

Typical Agent Conversation

User: "Check the stock price of AAPL on finance.yahoo.com and tell me today's change."

Agent → browser_navigate: { "url": "https://finance.yahoo.com/quote/AAPL" }
  ✓ Page loaded

Agent → browser_extract: { "selector": "[data-field='regularMarketChange']", "format": "text" }
  ✓ "+2.34 (1.23%)"

Agent: "Apple (AAPL) is up $2.34 today, a gain of 1.23%."

Plugin Registration

builder.Services.AddOctopus(config =>
{
    config.AddPlugin<SqlServerPlugin>();
    config.AddPlugin<ChatbotUIPlugin>();
    config.AddPlugin<WebDriverPlugin>();  // Optional — add when browser automation is needed
});