MCP Server & Client implementation for using Azure OpenAI
A minimal server/client application implementation utilizing the Model Context Protocol (MCP) and Azure OpenAI.
- The MCP server is built with
FastMCP
. Playwright
is 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 Bridge
implementation. - To ensure a stable connection, the server object is passed directly into the bridge.
- 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
- MCP Python SDK
- Create Python Server
- MCP Servers
Community Resources
- Awesome MCP Servers
- MCP on Reddit
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
- MCP Playwright server
- Microsoft Playwright for Python
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.template
to.env
, then fill in the values in.env
for Azure OpenAI:AZURE_OPEN_AI_ENDPOINT= AZURE_OPEN_AI_API_KEY= AZURE_OPEN_AI_DEPLOYMENT_MODEL= AZURE_OPEN_AI_API_VERSION=
Install
uv
for python library managementpip install uv uv sync
Execute
python chatgui.py
- The sample screen shows the client launching a browser to navigate to the URL.
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
- features
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.
AOAI Web Browsing
Project Details
- kimtth/mcp-aoai-web-browsing
- MIT License
- Last Updated: 4/9/2025
Recomended MCP Servers
MCP server implementation that enables AI assistants to search and reference Kibela content
Airtable integration for AI-powered applications via Anthropic's Model Context Protocol (MCP). Connect your AI tools directly to Airtable...
Supabase MCP Server enabling Cursor & Windsurf to use any method from Management API and query your database
MCP Server for Ghidra
Command line interface for MCP clients with secure execution and customizable security policies
MCP tools for Roaming RAG
Repository for MCP screenshot functionality