Notte — Browser Automation MCP for AI Agents
MCP server that turns web browsers into AI agent tools. Notte provides structured browser actions like click, type, navigate, and extract for LLM-driven automation.
What it is
Notte is an MCP server that gives AI agents the ability to control web browsers. It exposes structured browser actions -- click, type, navigate, scroll, extract content -- as MCP tools that Claude Code, Cursor, and other MCP-compatible clients can call. Instead of writing Playwright or Selenium scripts, your AI agent issues high-level browser commands through the MCP protocol.
Notte targets developers building AI agents that need web interaction: form filling, data extraction, web testing, and browser-based automation workflows.
How it saves time or tokens
Building browser automation for AI agents from scratch means integrating Playwright, handling page load timing, managing sessions, and parsing HTML. Notte packages all of this behind a clean MCP interface. The agent calls navigate, click, or extract and gets structured results back. No browser automation code to write or maintain.
How to use
- Install Notte:
pip install notte-mcp
- Configure in your MCP client (e.g., Claude Desktop):
{
"mcpServers": {
"notte": {
"command": "uvx",
"args": ["notte-mcp"],
"env": {
"NOTTE_API_KEY": "your-key"
}
}
}
}
- Use natural language in your AI client to trigger browser actions. The MCP server translates tool calls into browser operations.
Example
# Using Notte programmatically
from notte import NotteBrowser
async with NotteBrowser() as browser:
await browser.navigate('https://example.com')
await browser.click('Login button')
await browser.type('username field', 'user@example.com')
await browser.type('password field', 'secret')
await browser.click('Submit')
content = await browser.extract('main content area')
print(content)
The browser actions use natural language selectors, making them readable and maintainable.
Related on TokRepo
- Browser Automation MCP -- Chrome MCP integration for browser control
- AI Tools for Browser Automation -- Browser automation tools for AI workflows
Common pitfalls
- Browser automation is inherently fragile. Websites change layouts, which breaks selectors. Use semantic selectors (button text, aria labels) rather than CSS paths for resilience.
- Rate limiting and anti-bot measures can block automated browsers. Add delays between actions and respect robots.txt.
- The MCP server requires a running browser instance. Headless Chrome is typically used in production but some sites detect headless mode and block access.
Frequently Asked Questions
Notte works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and custom MCP client implementations. Any client that supports the MCP tool protocol can use Notte's browser actions.
Notte offers both a cloud-hosted version (requires API key) and a local mode. Check the documentation for the latest availability of each option.
Yes. Notte uses a real browser engine (Chromium) that executes JavaScript, renders dynamic content, and supports single-page applications. It waits for page loads and dynamic content before extracting.
Playwright is a browser automation library you code against directly. Notte wraps browser automation behind the MCP protocol, making it accessible to AI agents without writing Playwright code. Use Playwright for traditional test automation; use Notte for AI-driven browser tasks.
Yes. Notte's extract action returns structured content from specified page areas. It can pull text, tables, links, and other elements in a format suitable for AI agent consumption.
Citations (3)
- Notte GitHub— MCP server for browser automation
- MCP Specification— Model Context Protocol specification
- Anthropic MCP Docs— Browser automation patterns for AI agents
Related on TokRepo
Source & Thanks
Created by Notte AI. Licensed under Apache 2.0.
nottelabs/notte — Browser automation for AI agents