一个极简的模型上下文协议 🖥️ 服务器/客户端🧑💻,使用 Azure OpenAI 和 🌐 通过 Playwright 实现的浏览器控制。
概述
使用 Azure OpenAI 的 MCP 服务器和客户端实现
-
一个使用模型上下文协议 (MCP) 和 Azure OpenAI 的最小化服务器/客户端应用程序实现。
- MCP 服务器是基于
FastMCP
构建的。 Playwright
是微软开发的一个开源端到端测试框架,用于测试现代 Web 应用程序。- 关于工具的 MCP 响应将被转换为 OpenAI 函数调用格式。
- 将 MCP 服务器响应转换为 OpenAI 函数调用格式的桥梁定制了
MCP-LLM Bridge
实现。 - 为了确保稳定的连接,服务器对象直接传递到桥梁中。
- MCP 服务器是基于
模型上下文协议 (MCP)
模型上下文协议 (MCP) MCP(模型上下文协议)是一种开放协议,可实现 AI 应用程序与本地或远程资源之间的安全、受控交互。
官方存储库
社区资源
相关项目
- FastMCP: 快速、Pythonic 的方式来构建 MCP 服务器。
- Chat MCP: MCP 客户端
- MCP-LLM Bridge: 允许 MCP 服务器与兼容 OpenAI 的 LLM 之间通信的 MCP 实现
MCP Playwright
配置
在 2024 年 12 月的开发阶段,Python 项目应使用 'uv' 初始化。其他依赖管理库,例如 'pip' 和 'poetry',尚未完全被 MCP CLI 支持。
-
将
.env.template
重命名为.env
,然后在.env
中填写 Azure OpenAI 的值:bashAZURE_OPEN_AI_ENDPOINT= AZURE_OPEN_AI_API_KEY= AZURE_OPEN_AI_DEPLOYMENT_MODEL= AZURE_OPEN_AI_API_VERSION=
-
安装
uv
以进行 Python 库管理bashpip install uv uv sync
-
执行
python chatgui.py
- 示例屏幕显示客户端启动浏览器并导航到 URL。
关于 'stdio'
stdio
是一个 传输层(原始数据流),而 JSON-RPC 是一个 应用协议(结构化通信)。它们是不同的概念,但经常互换使用,例如,在协议中提到 "通过 stdio 的 JSON-RPC"。
工具描述
cmd
@self.mcp.tool()
async def playwright_navigate(url: str, timeout=30000, wait_until="load"):
"""导航到 URL。""" -> 此注释提供了一个描述,可能在类似于 LLM 中函数调用的机制中使用。
# 输出
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 命令
cmd
taskkill /IM python.exe /F
- Visual Code: Python 调试器:使用 launch.json 进行调试时,调试器将根据 .vscode/launch.json 中的配置启动。

302 file parser mcp
302 文件解析器 Mcp
Abap Adt
一个服务器,它将模型上下文协议(MCP)与SAP ABAP系统连接起来,使像Cline这样的工具能够检索ABAP源代码、表结构和其他开发工件。
Ableton Mcp
通过支持双向通信系统来控制Ableton Live音乐制作软件,该系统支持音轨创建、MIDI编辑、播放控制、乐器加载和库浏览,适用于音乐创作和声音设计工作流程。
Accessibility Scanner
将Axe Core与Playwright集成,以执行自动化的Web可访问性测试,实现持续集成、合规性审核以及识别可访问性障碍。