Azure容器应用程序上的剧作家MCP
建筑
MCP Client mcp-proxy (:8080) @playwright/mcp Chromium (headless)这 mcp-proxy 暴露两个端点:
/sse--服务器发送事件传输/mcp--可流式HTTP传输
先决条件
- Docker(或WSL上的Docker桌面/Docker)
- 对于ACA部署:Azure CLI
containerapp扩展
快速开始
构建
docker build -t playwright-mcp .跑
docker run -d -p 8080:8080 --name playwright-mcp playwright-mcpMCP服务器现在可以在以下位置访问:
- 上海证券交易所
http://localhost:8080/sse - 流式HTTP:
http://localhost:8080/mcp
使用Docker Compose
docker compose up -d --build配置
所有配置都是通过环境变量完成的。
| 变量 | 默认值 | 描述 |
|---|---|---|
MCP_PORT | 8080 | MCP代理监听的端口 |
MCP_HOST | 0.0.0.0 | MCP代理绑定到的主机地址 |
复制 .env.example 到 .env 在使用Docker Compose时自定义这些值。
连接MCP客户端
VS代码/GitHub副本
添加到您的 .vscode/mcp.json:
{
"servers": {
"playwright-remote": {
"type": "sse",
"url": "http://localhost:8080/sse"
}
}
}克劳德桌面版
添加到您的Claude Desktop MCP配置中:
{
"mcpServers": {
"playwright": {
"command": "mcp-proxy",
"args": ["http://localhost:8080/sse"]
}
}
}注意:Claude Desktop需要 mcp-proxy 本地安装(pip install mcp-proxy)从stdio桥接到远程SSE服务器。
任何与SSE兼容的客户端
向您的客户指出 http://:8080/sse 对于SSE运输或 http://:8080/mcp 用于流式HTTP。
部署到Azure容器应用程序
1.设置变量
RESOURCE_GROUP="rg-playwright-mcp"
LOCATION="eastus"
ENVIRONMENT="playwright-mcp-env"
APP_NAME="playwright-mcp"
REGISTRY=".azurecr.io"
IMAGE_TAG="$REGISTRY/playwright-mcp:latest"2.建立和推广形象
az acr build --registry --image playwright-mcp:latest .或者在本地构建并推送:
docker build -t $IMAGE_TAG .
docker push $IMAGE_TAG3.创建容器应用程序
az containerapp env create \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location $LOCATION
az containerapp create \
--name $APP_NAME \
--resource-group $RESOURCE_GROUP \
--environment $ENVIRONMENT \
--image $IMAGE_TAG \
--target-port 8080 \
--ingress external \
--cpu 1.0 \
--memory 2.0Gi \
--min-replicas 0 \
--max-replicas 3 \
--registry-server $REGISTRY4.获取应用程序URL
az containerapp show \
--name $APP_NAME \
--resource-group $RESOURCE_GROUP \
--query properties.configuration.ingress.fqdn \
--output tsvMCP服务器将在 https:///sse.
图像细节
- 基础图像:
node:22-bookworm-slim - 浏览器: 仅限Chromium(通过Playwright安装)
- 运行时间: Node.js 22+Python 3(用于mcp代理)
- 用户: 以非root身份运行(
mcpuser,UID 1001) - 默认端口: 8080
发展
更改后重建
docker compose up -d --build查看日志
docker compose logs -f测试服务器
使用 MCP检查员 验证服务器是否正常工作:
npx @modelcontextprotocol/inspector然后连接到 http://localhost:8080/sse 从检查器UI。
故障排除
集装箱立即出口 检查日志 docker logs playwright-mcp。常见原因包括端口冲突或缺少依赖关系。
端口8080上的连接被拒绝 验证容器是否正在运行以及端口映射是否正确。在容器内部,服务器绑定到 0.0.0.0:8080 默认情况下。
浏览器启动失败 该映像会自动安装Chromium系统依赖项。如果在最小主机上运行,请确保容器有足够的内存(建议至少512 MB,ACA为2 GB)。
