Azure OpenAI
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.
El servidor MCP está construido con
FastMCP.Playwrightes un marco de trabajo de código abierto de Microsoft para pruebas de extremo a extremo de sus aplicaciones web modernas.La respuesta de MCP sobre las herramientas se convertirá al formato de llamada de funciones de OpenAI.
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.Para garantizar una conexión estable, el objeto del servidor se pasa directamente al puente.
El
client_bridgeadmite 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.
Cambie el nombre de
.env.templatea.env, luego complete los valores en.envpara Azure OpenAI:AZURE_OPEN_AI_ENDPOINT= AZURE_OPEN_AI_API_KEY= AZURE_OPEN_AI_DEPLOYMENT_MODEL= AZURE_OPEN_AI_API_VERSION=Instale
uvpara la gestión de bibliotecas de Pythonpip install uv uv syncEjecute
python chatgui.pyLa 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 /FVisual Code: Depurador de Python: La depuración con launch.json iniciará el depurador utilizando la configuración de .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