返回市场
麦克佩-高级人工智能网络浏览

麦克佩-高级人工智能网络浏览

作者:kimtth31 星标更新:2025-04-07

项目介绍

使用Azure OpenAI的MCP服务器与客户端实现

  • 利用模型上下文协议(MCP)和Azure OpenAI实现的一个最小化服务器/客户端应用程序。

    1. MCP服务器使用FastMCP构建。
    2. Playwright是微软开发的一款开源端到端测试框架,用于测试现代Web应用。
    3. MCP关于工具的响应将转换为OpenAI函数调用格式。
    4. 将MCP服务器响应转换为OpenAI函数调用格式的桥梁自定义了MCP-LLM Bridge实现。
    5. 为了确保稳定连接,直接将服务器对象传递给桥梁。

模型上下文协议(MCP)

模型上下文协议(MCP) MCP(模型上下文协议)是一种开放协议,它使AI应用程序能够安全、可控地与本地或远程资源进行交互。

官方仓库

社区资源

相关项目

  • FastMCP: 快速、Python化的MCP服务器构建方式。
  • Chat MCP: MCP客户端
  • MCP-LLM Bridge: 允许MCP服务器与兼容OpenAI的LLMs进行通信的MCP实现

MCP Playwright

配置

在2024年12月的开发阶段,Python项目应使用'uv'启动。其他依赖管理库,如'pip'和'poetry',尚未完全支持MCP CLI。

  1. .env.template重命名为.env,然后在.env中填写Azure OpenAI的相关值:

    AZURE_OPEN_AI_ENDPOINT=
    AZURE_OPEN_AI_API_KEY=
    AZURE_OPEN_AI_DEPLOYMENT_MODEL=
    AZURE_OPEN_AI_API_VERSION=
    
  2. 安装uv用于Python库管理

    pip install uv
    uv sync
    
  3. 执行python chatgui.py

    • 样例屏幕显示客户端启动浏览器并导航至URL。
    <img alt="chatgui" src="doc/chatgui_gpt_generate.png" width="300"/>

关于'stdio'

stdio是一个传输层(原始数据流),而JSON-RPC是一个应用层协议(结构化通信)。它们是不同的,但经常被互换使用,例如在协议中提到的“JSON-RPC over stdio”。

工具描述

@self.mcp.tool()
async def playwright_navigate(url: str, timeout=30000, wait_until="load"):
    """导航到一个URL。""" -> 这个注释提供了一个描述,可能会在类似于LLMs中的函数调用机制中使用。

# 输出
Tool(name='playwright_navigate', description='导航到一个URL。', inputSchema={'properties': {'url': {'title': 'Url', 'type': 'string'}, 'timeout': {'default': 30000, 'title': 'timeout', 'type': 'string'}

提示:uv

uv run: 运行脚本。
uv venv: 创建一个新的虚拟环境,默认为'.venv'。
uv add: 向脚本添加依赖项
uv remove: 从脚本移除依赖项
uv sync: 同步(安装)项目的依赖项到环境中。

提示

  • 终止python.exe命令
taskkill /IM python.exe /F
  • Visual Code: Python调试器:使用launch.json进行调试会根据.vscode/launch.json中的配置启动调试器。