Skip to main content
Glama
kimtth

Azure OpenAI

by kimtth

MCP Server & Client mit Azure OpenAI & OpenAI

  • Eine minimale Server/Client-Anwendung, die das Model Context Protocol (MCP) und Azure OpenAI nutzt.

    1. Der MCP-Server wurde mit FastMCP erstellt.

    2. Playwright ist ein Open-Source-Framework von Microsoft für End-to-End-Tests Ihrer modernen Webanwendungen.

    3. Die MCP-Antwort zu den Tools wird in das OpenAI-Funktionsaufruf-Format konvertiert.

    4. Die Brücke, die die MCP-Server-Antwort in das OpenAI-Funktionsaufruf-Format umwandelt, passt die MCP-LLM Bridge-Implementierung an.

    5. Um eine stabile Verbindung zu gewährleisten, wird das Server-Objekt direkt an die Brücke übergeben.

    6. Die client_bridge unterstü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.

  1. Benennen Sie .env.template in .env um und füllen Sie dann die Werte in .env für Azure OpenAI aus:

    AZURE_OPEN_AI_ENDPOINT=
    AZURE_OPEN_AI_API_KEY=
    AZURE_OPEN_AI_DEPLOYMENT_MODEL=
    AZURE_OPEN_AI_API_VERSION=
  2. Installieren Sie uv für das Python-Bibliotheksmanagement

    pip install uv
    uv sync
  3. Führen Sie python chatgui.py aus

    • Der 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 /F
  • Visual Code: Python Debugger: Das Debuggen mit launch.json startet den Debugger unter Verwendung der Konfiguration aus .vscode/launch.json.

-
security - not tested
A
license - permissive license
-
quality - not tested

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