{"id":23173305,"url":"https://github.com/kimtth/mcp-aoai-web-browsing","last_synced_at":"2025-10-13T20:43:05.621Z","repository":{"id":268322632,"uuid":"902856894","full_name":"kimtth/mcp-aoai-web-browsing","owner":"kimtth","description":"A minimal Model Context Protocol 🖥️ server/client🧑‍💻with Azure OpenAI and 🌐 web browser control via Playwright.","archived":false,"fork":false,"pushed_at":"2025-04-07T08:27:05.000Z","size":439,"stargazers_count":27,"open_issues_count":2,"forks_count":10,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-18T08:45:37.725Z","etag":null,"topics":["azure-openai","mcp","mcp-client","mcp-server","model-context-protocol","playwright","web-automation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kimtth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-13T12:12:08.000Z","updated_at":"2025-08-06T14:55:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"13b84495-f0d4-4914-910f-3cb17e983438","html_url":"https://github.com/kimtth/mcp-aoai-web-browsing","commit_stats":null,"previous_names":["kimtth/mcp-aoai-web-browsing"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kimtth/mcp-aoai-web-browsing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimtth%2Fmcp-aoai-web-browsing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimtth%2Fmcp-aoai-web-browsing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimtth%2Fmcp-aoai-web-browsing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimtth%2Fmcp-aoai-web-browsing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kimtth","download_url":"https://codeload.github.com/kimtth/mcp-aoai-web-browsing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimtth%2Fmcp-aoai-web-browsing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279016929,"owners_count":26085911,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure-openai","mcp","mcp-client","mcp-server","model-context-protocol","playwright","web-automation"],"created_at":"2024-12-18T05:11:42.170Z","updated_at":"2025-10-13T20:43:05.616Z","avatar_url":"https://github.com/kimtth.png","language":"Python","funding_links":[],"categories":["CI/CD \u0026 DevOps Pipelines","Browser Automation","Code Execution \u0026 Automation MCP Servers","スター履歴","📚 Projects (1974 total)","MCP 服务器精选列表","🤖 AI/ML","Legend","MCP Servers","Table of Contents","Cloud Services","Uncategorized","📂 카테고리","Server Implementations"],"sub_categories":["📂 Browser Automation","Playwright","📂 \u003ca name=\"browser-automation\"\u003e\u003c/a\u003eブラウザ自動化","MCP Servers","🌐 浏览器自动化与网页交互","📂 \u003ca name=\"browser-automation\"\u003e\u003c/a\u003eBrowser Automation","AI Services","Uncategorized","🌐 Browser Automation"],"readme":"## MCP Server \u0026 Client implementation for using Azure OpenAI\n\n\u003c!-- [![smithery badge](https://smithery.ai/badge/mcp-web-auto)](https://smithery.ai/server/mcp-web-auto) --\u003e\n\n- A minimal server/client application implementation utilizing the Model Context Protocol (MCP) and Azure OpenAI.\n\n    1. The MCP server is built with `FastMCP`.  \n    2. `Playwright` is an an open source, end to end testing framework by Microsoft for testing your modern web applications. \n    3. The MCP response about tools will be converted to the OpenAI function calling format.  \n    4. The bridge that converts the MCP server response to the OpenAI function calling format customises the `MCP-LLM Bridge` implementation.\n    5. To ensure a stable connection, the server object is passed directly into the bridge. \n\n## Model Context Protocol (MCP)\n\n**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. \n\n### Official Repositories\n\n- [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk)  \n- [Create Python Server](https://github.com/modelcontextprotocol/create-python-server)  \n- [MCP Servers](https://github.com/modelcontextprotocol/servers)  \n\n### Community Resources\n\n- [Awesome MCP Servers](https://github.com/punkpeye/awesome-mcp-servers)  \n- [MCP on Reddit](https://www.reddit.com/r/mcp/)  \n\n### Related Projects\n\n- [FastMCP](https://github.com/jlowin/fastmcp): The fast, Pythonic way to build MCP servers.\n- [Chat MCP](https://github.com/daodao97/chatmcp): MCP client\n- [MCP-LLM Bridge](https://github.com/bartolli/mcp-llm-bridge): MCP implementation that enables communication between MCP servers and OpenAI-compatible LLMs\n\n### MCP Playwright\n\n- [MCP Playwright server](https://github.com/executeautomation/mcp-playwright)  \n- [Microsoft Playwright for Python](https://github.com/microsoft/playwright-python)  \n\n### Configuration\n\nDuring 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.\n\n1. Rename `.env.template` to `.env`, then fill in the values in `.env` for Azure OpenAI:\n\n    ```bash\n    AZURE_OPEN_AI_ENDPOINT=\n    AZURE_OPEN_AI_API_KEY=\n    AZURE_OPEN_AI_DEPLOYMENT_MODEL=\n    AZURE_OPEN_AI_API_VERSION=\n    ```\n\n1. Install `uv` for python library management\n\n    ```bash\n    pip install uv\n    uv sync\n    ```\n\n1. Execute `python chatgui.py`\n\n    - The sample screen shows the client launching a browser to navigate to the URL.\n\n    \u003cimg alt=\"chatgui\" src=\"doc/chatgui_gpt_generate.png\" width=\"300\"/\u003e\n\n### w.r.t. 'stdio'\n\n`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.\n\n### Tool description\n\n```cmd\n@self.mcp.tool()\nasync def playwright_navigate(url: str, timeout=30000, wait_until=\"load\"):\n    \"\"\"Navigate to a URL.\"\"\" -\u003e This comment provides a description, which may be used in a mechanism similar to function calling in LLMs.\n\n# Output\nTool(name='playwright_navigate', description='Navigate to a URL.', inputSchema={'properties': {'url': {'title': 'Url', 'type': 'string'}, 'timeout': {'default': 30000, 'title': 'timeout', 'type': 'string'}\n```\n\n### Tip: uv\n\n- [features](https://docs.astral.sh/uv/getting-started/features)\n\n```\nuv run: Run a script.\nuv venv: Create a new virtual environment. By default, '.venv'.\nuv add: Add a dependency to a script\nuv remove: Remove a dependency from a script\nuv sync: Sync (Install) the project's dependencies with the environment.\n```\n\n### Tip\n\n- taskkill command for python.exe\n\n```cmd\ntaskkill /IM python.exe /F\n```\n- Visual Code: Python Debugger: Debugging with launch.json will start the debugger using the configuration from .vscode/launch.json.\n\n\u003c!-- ### Sample query\n\nNavigate to website http://eaapp.somee.com and click the login link. In the login page, enter the username and password as \"admin\" and \"password\" respectively and perform login. Then click the Employee List page and click \"Create New\" button and enter realistic employee details to create for Name, Salary, DurationWorked, Select dropdown for Grade as CLevel and Email. --\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkimtth%2Fmcp-aoai-web-browsing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkimtth%2Fmcp-aoai-web-browsing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkimtth%2Fmcp-aoai-web-browsing/lists"}