Skip to main content
Glama
kimtth

Azure OpenAI

by kimtth

Servidor y cliente MCP con Azure OpenAI y OpenAI

  • Una implementación mínima de aplicación cliente/servidor que utiliza el Protocolo de Contexto de Modelo (MCP) y Azure OpenAI.

    1. El servidor MCP está construido con FastMCP.

    2. Playwright es un marco de trabajo de código abierto de Microsoft para pruebas de extremo a extremo de sus aplicaciones web modernas.

    3. La respuesta de MCP sobre las herramientas se convertirá al formato de llamada de funciones de OpenAI.

    4. El puente que convierte la respuesta del servidor MCP al formato de llamada de funciones de OpenAI personaliza la implementación de MCP-LLM Bridge.

    5. Para garantizar una conexión estable, el objeto del servidor se pasa directamente al puente.

    6. El client_bridge admite conexiones de servidor MCP tanto en proceso como externas (stdio), lo que permite su reutilización por diferentes clientes (por ejemplo, Claude Code, VS Code, scripts personalizados).

Related MCP server: MCP Simple OpenAI Assistant

Protocolo de Contexto de Modelo (MCP)

Protocolo de Contexto de Modelo (MCP) MCP (Model Context Protocol) es un protocolo abierto que permite interacciones seguras y controladas entre aplicaciones de IA y recursos locales o remotos.

Repositorios oficiales

Recursos de la comunidad

Proyectos relacionados

  • FastMCP: La forma rápida y pitónica de construir servidores MCP.

  • Chat MCP: Cliente MCP

  • MCP-LLM Bridge: Implementación de MCP que permite la comunicación entre servidores MCP y LLM compatibles con OpenAI

MCP Playwright

Configuración

Durante la fase de desarrollo en diciembre de 2024, el proyecto de Python debe iniciarse con 'uv'. Otras bibliotecas de gestión de dependencias, como 'pip' y 'poetry', aún no son totalmente compatibles con la CLI de MCP.

  1. Cambie el nombre de .env.template a .env, luego complete los valores en .env para Azure OpenAI:

    AZURE_OPEN_AI_ENDPOINT=
    AZURE_OPEN_AI_API_KEY=
    AZURE_OPEN_AI_DEPLOYMENT_MODEL=
    AZURE_OPEN_AI_API_VERSION=
  2. Instale uv para la gestión de bibliotecas de Python

    pip install uv
    uv sync
  3. Ejecute python chatgui.py

    • La pantalla de muestra muestra al cliente iniciando un navegador para navegar a la URL.

Uso con clientes externos

El servidor MCP puede ser utilizado por clientes externos (Claude Desktop, VS Code, Claude Code, etc.) a través de la configuración mcp.json.

Claude Desktop / Claude Code

Agréguelo a su claude_desktop_config.json (Claude Desktop) o .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

Agréguelo a .vscode/mcp.json en su espacio de trabajo:

{
  "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": "..."
      }
    }
  }
}

Uso del puente mediante programación (stdio)

El client_bridge también admite la conexión a servidores MCP externos a través de stdio desde 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")

Uso de OpenAI estándar (no Azure)

from client_bridge.llm_config import get_openai_llm_config

config = BridgeConfig(
    mcp=server,
    llm_config=get_openai_llm_config(),
)

Establezca las variables de entorno:

OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-...

Ejecución directa de herramientas

Para los clientes que gestionan su propio bucle LLM, el puente expone metadatos de herramientas y ejecución directa:

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"})

Con respecto a 'stdio'

stdio es una capa de transporte (flujo de datos sin procesar), mientras que JSON-RPC es un protocolo de aplicación (comunicación estructurada). Son distintos pero a menudo se usan indistintamente, por ejemplo, "JSON-RPC sobre stdio" en protocolos.

Descripción de la herramienta

@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'}

Consejo: 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.

Consejo

  • comando taskkill para python.exe

taskkill /IM python.exe /F
  • Visual Code: Depurador de Python: La depuración con launch.json iniciará el depurador utilizando la configuración de .vscode/launch.json.

A
license - permissive license
-
quality - not tested
D
maintenance

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