Token导航 LogoToken导航TokenDH.com
Playwright Dockerless MCP logo
浏览器工具未说明官方级别未说明来源级核验

Playwright Dockerless MCP

MCP Server

一个基于.NET 8和Playwright的轻量级浏览器自动化服务器,支持MCP协议和HTTP REST API,适用于AI代理与本地浏览器的交互。

工具数

21

提示词数

0

GitHub Stars

0

资源数

0
浏览器自动化.NET开发C#ClaudeAI代理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

kolatts

提供方

kolatts

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Playwright MCP服务器。网

使用Microsoft Playwright构建的用于浏览器自动化的轻量级模型上下文协议(MCP)服务器。NET 8c#。该服务器允许AI代理在本地与web浏览器交互,而不需要npm、Docker或其他外部依赖。

特性

  • 纯净。NET 8实现:不需要npm或Docker
  • 完全支持Playwright浏览器:Chromium、Firefox和WebKit
  • 双模式操作:作为MCP服务器(stdin/stdout)或HTTP REST API服务器运行
  • 全面的浏览器工具:21个浏览器自动化工具,用于完成网络交互
  • 命令行配置:使用命令行参数轻松启动
  • 代理友好型HTTP API:简单的REST端点,便于与AI代理集成

需求

  • .NET 8.0 SDK或运行时
  • 支持的浏览器之一(可以通过安装 browser_install 工具)

安装

从源代码构建

# Clone the repository
git clone https://github.com/kolatts/playwright-dockerless-mcp.git
cd playwright-dockerless-mcp

# Build the project
dotnet build

# Run the server
dotnet run

安装浏览器

在使用浏览器工具之前,您需要安装浏览器二进制文件。您可以通过以下方式做到这一点:

  1. 使用 browser_install 工具通过MCP或HTTP API
  2. 或者运行Playwright CLI:
   pwsh bin/Debug/net8.0/playwright.ps1 install

用法

命令行选项

PlaywrightMcpServer [options]

Options:
  --browser, -b    Browser type: chromium, firefox, webkit (default: chromium)
  --headed               Run browser in headed mode (default: headless)
  --http                 Run as HTTP server instead of MCP stdin/stdout mode
  --port, -p 
      HTTP server port (default: 5000, only used with --http)
  --help, -h             Show this help message
  --version, -v          Show version information

运行模式

MCP模式(默认)

默认模式使用MCP协议通过stdin/stdout进行通信,适用于与MCP兼容的客户端集成。

# Run in MCP mode
dotnet run

# With specific browser
dotnet run -- --browser firefox

HTTP服务器模式

HTTP服务器模式提供REST API,AI代理或任何HTTP客户端都可以轻松调用该API。

# Start HTTP server on default port 5000
dotnet run -- --http

# Start on custom port with headed browser
dotnet run -- --http --port 8080 --headed

MCP客户端配置

将服务器添加到MCP客户端配置中。例如,在Claude Desktop的 claude_desktop_config.json:

{
  "mcpServers": {
    "playwright": {
      "command": "dotnet",
      "args": ["run", "--project", "/path/to/playwright-dockerless-mcp"]
    }
  }
}

或者,如果您已经发布了可执行文件:

{
  "mcpServers": {
    "playwright": {
      "command": "/path/to/PlaywrightMcpServer",
      "args": ["--browser", "chromium"]
    }
  }
}

HTTP API参考

在HTTP模式下运行时(--http),以下端点可用:

健康检查

GET /health

返回服务器运行状况。

答复:

{
  "status": "healthy",
  "version": "1.0.0"
}

列出工具

GET /tools

返回所有可用的浏览器自动化工具及其模式。

答复:

{
  "tools": [
    {
      "name": "browser_navigate",
      "description": "Navigate to a URL",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": { "type": "string", "description": "The URL to navigate to" }
        },
        "required": ["url"]
      }
    },
    ...
  ]
}

执行工具

POST /tools/{toolName}
Content-Type: application/json

使用提供的参数执行特定工具。

示例-导航到URL:

curl -X POST http://localhost:5000/tools/browser_navigate \
     -H "Content-Type: application/json" \
     -d '{"url": "https://example.com"}'

答复:

{
  "success": true,
  "url": "https://example.com/",
  "title": "Example Domain",
  "status": 200
}

示例-截图:

curl -X POST http://localhost:5000/tools/browser_take_screenshot \
     -H "Content-Type: application/json" \
     -d '{"fullPage": true}'

示例-单击元素:

curl -X POST http://localhost:5000/tools/browser_click \
     -H "Content-Type: application/json" \
     -d '{"element": "Submit button", "ref": "button[type=\"submit\"]"}'

示例-获取辅助功能快照:

curl -X POST http://localhost:5000/tools/browser_snapshot \
     -H "Content-Type: application/json" \
     -d '{}'

可用工具

服务器提供以下浏览器自动化工具:

导航

  • 浏览器导航 -导航到URL
  • 浏览器导航返回 -返回上一页

页面交互

  • 浏览器点击 -点击网页元素
  • 浏览器类型 -在可编辑元素中键入文本
  • browser_fill_form -一次填写多个表单字段
  • 浏览器选择选项 -在下拉列表中选择一个选项
  • 浏览器切换 -将鼠标悬停在元素上
  • browser_drag -在元素之间执行拖放操作
  • browser_press_key -按键盘键
  • 浏览器文件上传 -上传文件
  • 浏览器处理对话框 -处理浏览器对话框(警告、确认、提示)

页面信息

  • 浏览器快照 -捕获页面的可访问性快照(首选AI交互)
  • browser_take_screenshot -对页面进行截图
  • browser_console_消息 -获取所有控制台消息
  • 浏览器网络请求 -获取所有网络请求
  • 浏览器_评估 -评估页面上的JavaScript

选项卡管理

  • 浏览器标签 -列出、创建、关闭或选择浏览器选项卡

公用事业

  • 浏览器等待 -等待文本、元素或时间
  • 浏览器大小 -调整浏览器视口大小
  • 浏览器_关闭 -关闭当前页面
  • 浏览器安装 -安装浏览器二进制文件

示例工作流

使用HTTP API进行Web抓取

# 1. Navigate to the page
curl -X POST http://localhost:5000/tools/browser_navigate \
     -H "Content-Type: application/json" \
     -d '{"url": "https://example.com"}'

# 2. Get accessibility snapshot
curl -X POST http://localhost:5000/tools/browser_snapshot \
     -H "Content-Type: application/json" \
     -d '{}'

# 3. Click a link
curl -X POST http://localhost:5000/tools/browser_click \
     -H "Content-Type: application/json" \
     -d '{"element": "More information link", "ref": "a[href]"}'

# 4. Take a screenshot
curl -X POST http://localhost:5000/tools/browser_take_screenshot \
     -H "Content-Type: application/json" \
     -d '{"filename": "/tmp/screenshot.png"}'

表格填写

# Fill a login form
curl -X POST http://localhost:5000/tools/browser_fill_form \
     -H "Content-Type: application/json" \
     -d '{
       "fields": [
         {"name": "username", "type": "textbox", "ref": "#username", "value": "user@example.com"},
         {"name": "password", "type": "textbox", "ref": "#password", "value": "secretpass"},
         {"name": "remember", "type": "checkbox", "ref": "#remember-me", "value": "true"}
       ]
     }'

MCP交互示例

初始化服务器

{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}

列出可用工具

{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}

导航至网址

{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"browser_navigate","arguments":{"url":"https://example.com"}}}

快照

{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"browser_snapshot","arguments":{}}}

单击元素

{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"browser_click","arguments":{"element":"Submit button","ref":"button[type='submit']"}}}

发展

建筑

dotnet build

运行测试

dotnet test

出版

要创建自包含的可执行文件,请执行以下操作:

dotnet publish -c Release -r linux-x64 --self-contained
dotnet publish -c Release -r win-x64 --self-contained
dotnet publish -c Release -r osx-x64 --self-contained

建筑

服务器的实现采用了清晰的关注点分离:

  1. 浏览器自动化 -使用Playwright的核心浏览器自动化逻辑
  2. McpServer -用于stdin/stdout通信的MCP协议处理程序
  3. Http服务器 -使用ASP。NET核心最低API

两台服务器共享相同的 BrowserAutomation 类,确保无论通信方式如何,行为都是一致的。

许可证

MIT许可证

目录标签

目录标签

浏览器自动化.NET开发C#ClaudeAI代理本地部署Web交互RESTAPI

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

21

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP