Runnable TypeScript examples for the Browserless MCP server, using @mastra/mcp.
The hosted endpoint at https://mcp.browserless.io/mcp exposes 10 tools auto-importable through Mastra's MCPClient — no partner package needed. Browser sessions are pinned by Mcp-Session-Id, so multi-turn browserless_agent flows preserve browser state across calls without any extra configuration on the Mastra side.
| Stateless tools (8) | Stateful tools (2) | |
|---|---|---|
smartscraper, search, map, crawl, export, performance, function, download |
agent, skill |
|
| Use case | Single-shot scraping, research, data extraction | Multi-turn browser automation, multi-step browser flows with persistent browser state |
npm install
export BROWSERLESS_TOKEN=<your-token>
export ANTHROPIC_API_KEY=<your-key>Get a Browserless token at account.browserless.io.
| Script | What it shows | Tier |
|---|---|---|
quickstart.ts |
Connect, list tools, call browserless_smartscraper directly, run a Mastra Agent with stateless tools |
1 (stateless) |
research_agent.ts |
Multi-step search → scrape → summarize using stateless tools | 1 (stateless) |
browser_agent.ts |
Multi-turn browserless_agent: navigate → snapshot → click → re-snapshot → extract |
2 (stateful) |
npm run quickstart
npm run research
npm run browserimport { MCPClient } from "@mastra/mcp";
const mcp = new MCPClient({
servers: {
browserless: {
url: new URL("https://mcp.browserless.io/mcp"),
requestInit: {
headers: { Authorization: `Bearer ${process.env.BROWSERLESS_TOKEN}` },
},
},
},
});
const tools = await mcp.listTools();
console.log(Object.keys(tools)); // 10 tools, namespaced as "browserless_browserless_*"Unlike Python's langchain-mcp-adapters and llama-index-tools-mcp (which open a fresh MCP ClientSession per tool.invoke() call), Mastra's @mastra/mcp reuses one MCP session across tool calls by default. State is preserved automatically. See sister cookbooks for those frameworks: browserless/browserless-langchain, browserless/browserless-llamaindex.
- Hosted MCP server: mcp.browserless.io
- Mastra MCP package:
@mastra/mcp - Mastra docs: mastra.ai/docs