kimtth/mcp-aoai-web-browsing
БесплатноНе проверенA minimal server/client MCP implementation using Azure OpenAI and Playwright.
Описание
A minimal server/client MCP implementation using Azure OpenAI and Playwright.
README
MCP Server & Client w/ Azure OpenAI & OpenAI
A minimal server/client application implementation utilizing the Model Context Protocol (MCP) and Azure OpenAI.
- The MCP server is built with
FastMCP. Playwrightis an an open source, end to end testing framework by Microsoft for testing your modern web applications.- The MCP response about tools will be converted to the OpenAI function calling format.
- The bridge that converts the MCP server response to the OpenAI function calling format customises the
MCP-LLM Bridgeimplementation. - To ensure a stable connection, the server object is passed directly into the bridge.
- The
client_bridgesupports both in-process and external (stdio) MCP server connections, enabling reuse by different clients (e.g., Claude Code, VS Code, custom scripts).
- The MCP server is built with
Model Context Protocol (MCP)
Model Context Protocol (MCP) MCP (Model Context Protocol) is an open protocol that enables secure, controlled interactions between AI applications and local or remote resources.
Official Repositories
Community Resources
Related Projects
- FastMCP: The fast, Pythonic way to build MCP servers.
- Chat MCP: MCP client
- MCP-LLM Bridge: MCP implementation that enables communication between MCP servers and OpenAI-compatible LLMs
MCP Playwright
Configuration
During the development phase in December 2024, the Python project should be initiated with 'uv'. Other dependency management libraries, such as 'pip' and 'poetry', are not yet fully supported by the MCP CLI.
Rename
.env.templateto.env, then fill in the values in.envfor Azure OpenAI:AZURE_OPEN_AI_ENDPOINT= AZURE_OPEN_AI_API_KEY= AZURE_OPEN_AI_DEPLOYMENT_MODEL= AZURE_OPEN_AI_API_VERSION=Install
uvfor python library managementpip install uv uv syncExecute
python chatgui.py- The sample screen shows the client launching a browser to navigate to the URL.

Using with External Clients
The MCP server can be used by external clients (Claude Desktop, VS Code, Claude Code, etc.) via mcp.json configuration.
Claude Desktop / Claude Code
Add to your claude_desktop_config.json (Claude Desktop) or .claude/mcp.json (Claude Code):
{
"mcpServers": {
"browser-navigator": {
"command": "uv",
"args": ["run", "fastmcp", "run", "./server/browser_navigator_server.py:app"],
"cwd": "/path/to/mcp-aoai-web-browsing",
"env": {
"AZURE_OPEN_AI_ENDPOINT": "...",
"AZURE_OPEN_AI_API_KEY": "...",
"AZURE_OPEN_AI_DEPLOYMENT_MODEL": "...",
"AZURE_OPEN_AI_API_VERSION": "..."
}
}
}
}
VS Code
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"browser-navigator": {
"command": "uv",
"args": ["run", "fastmcp", "run", "./server/browser_navigator_server.py:app"],
"cwd": "${workspaceFolder}",
"env": {
"AZURE_OPEN_AI_ENDPOINT": "...",
"AZURE_OPEN_AI_API_KEY": "...",
"AZURE_OPEN_AI_DEPLOYMENT_MODEL": "...",
"AZURE_OPEN_AI_API_VERSION": "..."
}
}
}
}
Using the Bridge Programmatically (stdio)
The client_bridge also supports connecting to external MCP servers via stdio from Python:
from client_bridge import BridgeConfig, MCPServerConfig, BridgeManager
from client_bridge.llm_config import get_default_llm_config
config = BridgeConfig(
server_config=MCPServerConfig(
command="uv",
args=["run", "fastmcp", "run", "./server/browser_navigator_server.py:app"],
),
llm_config=get_default_llm_config(),
system_prompt="You are a helpful assistant.",
)
async with BridgeManager(config) as bridge:
response = await bridge.process_message("Navigate to https://example.com")
Using Standard OpenAI (non-Azure)
from client_bridge.llm_config import get_openai_llm_config
config = BridgeConfig(
mcp=server,
llm_config=get_openai_llm_config(),
)
Set environment variables:
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-...
Direct Tool Execution
For clients that manage their own LLM loop, the bridge exposes tool metadata and direct execution:
async with BridgeManager(config) as bridge:
tools = bridge.get_tools() # OpenAI function calling format
result = await bridge.execute_tool("playwright_navigate", {"url": "https://example.com"})
w.r.t. 'stdio'
stdio is a transport layer (raw data flow), while JSON-RPC is an application protocol (structured communication). They are distinct but often used interchangeably, e.g., "JSON-RPC over stdio" in protocols.
Tool description
@self.mcp.tool()
async def playwright_navigate(url: str, timeout=30000, wait_until="load"):
"""Navigate to a URL.""" -> This comment provides a description, which may be used in a mechanism similar to function calling in LLMs.
# Output
Tool(name='playwright_navigate', description='Navigate to a URL.', inputSchema={'properties': {'url': {'title': 'Url', 'type': 'string'}, 'timeout': {'default': 30000, 'title': 'timeout', 'type': 'string'}
Tip: uv
uv run: Run a script.
uv venv: Create a new virtual environment. By default, '.venv'.
uv add: Add a dependency to a script
uv remove: Remove a dependency from a script
uv sync: Sync (Install) the project's dependencies with the environment.
Tip
- taskkill command for python.exe
taskkill /IM python.exe /F
- Visual Code: Python Debugger: Debugging with launch.json will start the debugger using the configuration from .vscode/launch.json.
Установка kimtth/mcp-aoai-web-browsing
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/kimtth/mcp-aoai-web-browsingFAQ
kimtth/mcp-aoai-web-browsing MCP бесплатный?
Да, kimtth/mcp-aoai-web-browsing MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для kimtth/mcp-aoai-web-browsing?
Нет, kimtth/mcp-aoai-web-browsing работает без API-ключей и переменных окружения.
kimtth/mcp-aoai-web-browsing — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить kimtth/mcp-aoai-web-browsing в Claude Desktop, Claude Code или Cursor?
Открой kimtth/mcp-aoai-web-browsing на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Playwright
Browser automation, scraping, screenshots
автор: MicrosoftPuppeteer
Browser automation and web scraping.
автор: modelcontextprotocolopentabs-dev/opentabs
Plugin-based MCP server + Chrome extension that gives AI agents access to web applications through the user's authenticated browser session. 100+ plugins with a
автор: opentabs-devrobhunter/agentdeals
1,500+ developer infrastructure deals, free tiers, and startup programs across 54 categories. Search deals, compare vendors, plan stacks, and track pricing chan
автор: robhunterCompare kimtth/mcp-aoai-web-browsing with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории browse
