Azure OpenAI
MCP Server & Client mit Azure OpenAI & OpenAI
Eine minimale Server/Client-Anwendung, die das Model Context Protocol (MCP) und Azure OpenAI nutzt.
Der MCP-Server wurde mit
FastMCPerstellt.Playwrightist ein Open-Source-Framework von Microsoft für End-to-End-Tests Ihrer modernen Webanwendungen.Die MCP-Antwort zu den Tools wird in das OpenAI-Funktionsaufruf-Format konvertiert.
Die Brücke, die die MCP-Server-Antwort in das OpenAI-Funktionsaufruf-Format umwandelt, passt die
MCP-LLM Bridge-Implementierung an.Um eine stabile Verbindung zu gewährleisten, wird das Server-Objekt direkt an die Brücke übergeben.
Die
client_bridgeunterstützt sowohl In-Process- als auch externe (stdio) MCP-Server-Verbindungen, was die Wiederverwendung durch verschiedene Clients ermöglicht (z. B. Claude Code, VS Code, benutzerdefinierte Skripte).
Related MCP server: MCP Simple OpenAI Assistant
Model Context Protocol (MCP)
Model Context Protocol (MCP) MCP (Model Context Protocol) ist ein offenes Protokoll, das sichere, kontrollierte Interaktionen zwischen KI-Anwendungen und lokalen oder entfernten Ressourcen ermöglicht.
Offizielle Repositories
Community-Ressourcen
Verwandte Projekte
FastMCP: Der schnelle, Python-orientierte Weg, um MCP-Server zu erstellen.
Chat MCP: MCP-Client
MCP-LLM Bridge: MCP-Implementierung, die die Kommunikation zwischen MCP-Servern und OpenAI-kompatiblen LLMs ermöglicht
MCP Playwright
Konfiguration
Während der Entwicklungsphase im Dezember 2024 sollte das Python-Projekt mit 'uv' initiiert werden. Andere Abhängigkeitsmanagement-Bibliotheken wie 'pip' und 'poetry' werden vom MCP CLI noch nicht vollständig unterstützt.
Benennen Sie
.env.templatein.envum und füllen Sie dann die Werte in.envfür Azure OpenAI aus:AZURE_OPEN_AI_ENDPOINT= AZURE_OPEN_AI_API_KEY= AZURE_OPEN_AI_DEPLOYMENT_MODEL= AZURE_OPEN_AI_API_VERSION=Installieren Sie
uvfür das Python-Bibliotheksmanagementpip install uv uv syncFühren Sie
python chatgui.pyausDer Beispielbildschirm zeigt, wie der Client einen Browser startet, um zur URL zu navigieren.
Verwendung mit externen Clients
Der MCP-Server kann von externen Clients (Claude Desktop, VS Code, Claude Code usw.) über die mcp.json-Konfiguration verwendet werden.
Claude Desktop / Claude Code
Fügen Sie dies zu Ihrer claude_desktop_config.json (Claude Desktop) oder .claude/mcp.json (Claude Code) hinzu:
{
"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
Fügen Sie dies zu .vscode/mcp.json in Ihrem Arbeitsbereich hinzu:
{
"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": "..."
}
}
}
}Programmgesteuerte Verwendung der Brücke (stdio)
Die client_bridge unterstützt auch die Verbindung zu externen MCP-Servern über stdio von Python aus:
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")Verwendung von Standard-OpenAI (nicht Azure)
from client_bridge.llm_config import get_openai_llm_config
config = BridgeConfig(
mcp=server,
llm_config=get_openai_llm_config(),
)Setzen Sie die Umgebungsvariablen:
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-...Direkte Tool-Ausführung
Für Clients, die ihre eigene LLM-Schleife verwalten, stellt die Brücke Tool-Metadaten und direkte Ausführung bereit:
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"})Bezüglich 'stdio'
stdio ist eine Transportschicht (Rohdatenfluss), während JSON-RPC ein Anwendungsprotokoll (strukturierte Kommunikation) ist. Sie sind unterschiedlich, werden aber oft synonym verwendet, z. B. "JSON-RPC über stdio" in Protokollen.
Tool-Beschreibung
@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'}Tipp: 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.Tipp
taskkill-Befehl für python.exe
taskkill /IM python.exe /FVisual Code: Python Debugger: Das Debuggen mit launch.json startet den Debugger unter Verwendung der Konfiguration aus .vscode/launch.json.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kimtth/mcp-aoai-web-browsing'
If you have feedback or need assistance with the MCP directory API, please join our Discord server