
How to add MCP AOAI Web Browsing (browser-navigator) to Claude Desktop
Minimal MCP server that drives a web browser via Playwright, with an Azure OpenAI / OpenAI client bridge. Paste the config into ~/Library/Application Support/Claude/claude_desktop_config.json and restart Claude Desktop.
Last updated June 14, 2026 ยท 33โ ยท stdio ยท apikey
Claude Desktop config for MCP AOAI Web Browsing (browser-navigator)
pip install uv && uv sync{
"mcpServers": {
"mcp-aoai-web-browsing-browser-navigator": {
"command": "uv",
"args": [
"run",
"fastmcp",
"run",
"./server/browser_navigator_server.py:app"
],
"env": {
"AZURE_OPEN_AI_ENDPOINT": "...",
"AZURE_OPEN_AI_API_KEY": "...",
"AZURE_OPEN_AI_DEPLOYMENT_MODEL": "...",
"AZURE_OPEN_AI_API_VERSION": "..."
}
}
}
}Setup steps
- 1Open Claude Desktop โ Settings โ Developer โ Edit Config (this opens ~/Library/Application Support/Claude/claude_desktop_config.json).
- 2Paste the MCP AOAI Web Browsing (browser-navigator) config below under the top-level "mcpServers" key.
- 3Fill in any placeholder secrets (API keys, paths) in the snippet.
- 4Save the file, then fully quit and reopen Claude Desktop.
- 5Open a chat and confirm MCP AOAI Web Browsing (browser-navigator)'s tools appear under the ๐ tools menu.
Before you start
- Python with uv (pip install uv, then uv sync)
- Playwright browser(s) installed
- Azure OpenAI credentials (AZURE_OPEN_AI_ENDPOINT, AZURE_OPEN_AI_API_KEY, AZURE_OPEN_AI_DEPLOYMENT_MODEL, AZURE_OPEN_AI_API_VERSION) โ or standard OpenAI (OPENAI_API_KEY, OPENAI_MODEL)
What MCP AOAI Web Browsing (browser-navigator) can do in Claude Desktop
playwright_navigateNavigate to a URL (supports timeout and wait_until options).
playwright_screenshotTake a screenshot of the current page or a specific element.
playwright_clickClick an element on the page by CSS selector.
playwright_fillFill out an input field identified by a CSS selector.
playwright_selectSelect an option in a <select> element by CSS selector and value.
playwright_hoverHover over an element on the page by CSS selector.
playwright_evaluateExecute arbitrary JavaScript in the browser console.
extract_selector_by_page_contentUse the LLM to infer a CSS selector that best matches a user request from the current page's HTML content.
Security
Requires Azure OpenAI (or OpenAI) credentials supplied via environment variables (e.g. AZURE_OPEN_AI_API_KEY / OPENAI_API_KEY). Keep these out of source control โ rename .env.template to .env or inject them via the client's env block. The playwright_evaluate tool executes arbitrary JavaScript in the controlled browser, so only point it at trusted pages.
MCP AOAI Web Browsing (browser-navigator) + Claude Desktop FAQ
Where is the Claude Desktop config file?
Claude Desktop reads MCP servers from ~/Library/Application Support/Claude/claude_desktop_config.json. Paste the MCP AOAI Web Browsing (browser-navigator) config there under the "mcpServers" key and restart the client.
Is MCP AOAI Web Browsing (browser-navigator) safe to use with Claude Desktop?
Requires Azure OpenAI (or OpenAI) credentials supplied via environment variables (e.g. AZURE_OPEN_AI_API_KEY / OPENAI_API_KEY). Keep these out of source control โ rename .env.template to .env or inject them via the client's env block. The playwright_evaluate tool executes arbitrary JavaScript in the controlled browser, so only point it at trusted pages.
Does it work with standard OpenAI, or only Azure OpenAI?
Both. The default config targets Azure OpenAI, but the client bridge also supports standard OpenAI via get_openai_llm_config() and OPENAI_API_KEY / OPENAI_MODEL environment variables.
Can I use it with Claude Desktop or Claude Code instead of the bundled client?
Yes. The README provides mcpServers config for Claude Desktop (claude_desktop_config.json) and Claude Code (.claude/mcp.json), plus a VS Code (.vscode/mcp.json) variant, all launching the server over stdio with uv run fastmcp.
Why does it require uv specifically?
The author notes that during the December 2024 development phase the MCP CLI did not yet fully support pip or poetry, so the project is initialized and run with uv.