Skip to main content
Glama

MCP Selenium 服务器

铁匠徽章

Selenium WebDriver 的模型上下文协议 (MCP) 服务器实现,通过标准化 MCP 客户端实现浏览器自动化。

特征

  • 使用可自定义的选项启动浏览器会话

  • 导航至 URL

  • 使用各种定位器策略查找元素

  • 单击、键入并与元素交互

  • 执行鼠标操作(悬停、拖放)

  • 处理键盘输入

  • 截取屏幕截图

  • 上传文件

  • 支持无头模式

Related MCP server: MCP Servers with Pyppeteer

支持的浏览器

  • 铬合金

  • 火狐

与 Goose 一起使用

选项 1:一键安装

将以下链接复制并粘贴到浏览器地址栏中,以将此扩展程序添加到 goose 桌面:

goose://extension?cmd=npx&arg=-y&arg=%40angiejones%2Fmcp-selenium&id=selenium-mcp&name=Selenium%20MCP&description=automates%20browser%20interactions

选项 2:手动添加到桌面或 CLI

  • 名称: Selenium MCP

  • 描述: automates browser interactions

  • 命令: npx -y @angiejones/mcp-selenium

与其他 MCP 客户端一起使用(例如 Claude Desktop 等)

{
  "mcpServers": {
    "selenium": {
      "command": "npx",
      "args": ["-y", "@angiejones/mcp-selenium"]
    }
  }
}

发展

从事此项目:

  1. 克隆存储库

  2. 安装依赖项: npm install

  3. 运行服务器: npm start

安装

通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装 MCP Selenium:

npx -y @smithery/cli install @angiejones/mcp-selenium --client claude

手动安装

npm install -g @angiejones/mcp-selenium

用法

通过运行以下命令启动服务器:

mcp-selenium

或者在您的 MCP 配置中与 NPX 一起使用:

{
  "mcpServers": {
    "selenium": {
      "command": "npx",
      "args": [
        "-y",
        "@angiejones/mcp-selenium"
      ]
    }
  }
}

工具

启动浏览器

启动浏览器会话。

参数:

  • browser (必需):要启动的浏览器

    • 类型:字符串

    • 枚举:[“chrome”,“firefox”]

  • options :浏览器配置选项

    • 类型:对象

    • 特性:

      • headless :以无头模式运行浏览器

        • 类型:布尔值

      • arguments :附加浏览器参数

        • 类型:字符串数组

例子:

{
  "tool": "start_browser",
  "parameters": {
    "browser": "chrome",
    "options": {
      "headless": true,
      "arguments": ["--no-sandbox"]
    }
  }
}

导航

导航至某个 URL。

参数:

  • url (必填):导航到的 URL

    • 类型:字符串

例子:

{
  "tool": "navigate",
  "parameters": {
    "url": "https://www.example.com"
  }
}

查找元素

在页面上查找元素。

参数:

  • by (必需):定位器策略

    • 类型:字符串

    • 枚举:[“id”,“css”,“xpath”,“name”,“tag”,“class”]

  • value (必需):定位器策略的值

    • 类型:字符串

  • timeout :等待元素的最长时间(以毫秒为单位)

    • 类型:数字

    • 默认值:10000

例子:

{
  "tool": "find_element",
  "parameters": {
    "by": "id",
    "value": "search-input",
    "timeout": 5000
  }
}

click_element

单击一个元素。

参数:

  • by (必需):定位器策略

    • 类型:字符串

    • 枚举:[“id”,“css”,“xpath”,“name”,“tag”,“class”]

  • value (必需):定位器策略的值

    • 类型:字符串

  • timeout :等待元素的最长时间(以毫秒为单位)

    • 类型:数字

    • 默认值:10000

例子:

{
  "tool": "click_element",
  "parameters": {
    "by": "css",
    "value": ".submit-button"
  }
}

发送密钥

将键发送到元素(键入)。

参数:

  • by (必需):定位器策略

    • 类型:字符串

    • 枚举:[“id”,“css”,“xpath”,“name”,“tag”,“class”]

  • value (必需):定位器策略的值

    • 类型:字符串

  • text (必需):输入到元素中的文本

    • 类型:字符串

  • timeout :等待元素的最长时间(以毫秒为单位)

    • 类型:数字

    • 默认值:10000

例子:

{
  "tool": "send_keys",
  "parameters": {
    "by": "name",
    "value": "username",
    "text": "testuser"
  }
}

获取元素文本

获取元素的文本()。

参数:

  • by (必需):定位器策略

    • 类型:字符串

    • 枚举:[“id”,“css”,“xpath”,“name”,“tag”,“class”]

  • value (必需):定位器策略的值

    • 类型:字符串

  • timeout :等待元素的最长时间(以毫秒为单位)

    • 类型:数字

    • 默认值:10000

例子:

{
  "tool": "get_element_text",
  "parameters": {
    "by": "css",
    "value": ".message"
  }
}

徘徊

移动鼠标悬停在元素上。

参数:

  • by (必需):定位器策略

    • 类型:字符串

    • 枚举:[“id”,“css”,“xpath”,“name”,“tag”,“class”]

  • value (必需):定位器策略的值

    • 类型:字符串

  • timeout :等待元素的最长时间(以毫秒为单位)

    • 类型:数字

    • 默认值:10000

例子:

{
  "tool": "hover",
  "parameters": {
    "by": "css",
    "value": ".dropdown-menu"
  }
}

拖放

将一个元素拖放到另一个元素上。

参数:

  • by (必需):源元素的定位器策略

    • 类型:字符串

    • 枚举:[“id”,“css”,“xpath”,“name”,“tag”,“class”]

  • value (必需):源定位器策略的值

    • 类型:字符串

  • targetBy (必需):目标元素的定位器策略

    • 类型:字符串

    • 枚举:[“id”,“css”,“xpath”,“name”,“tag”,“class”]

  • targetValue (必需):目标定位器策略的值

    • 类型:字符串

  • timeout :等待元素的最长时间(以毫秒为单位)

    • 类型:数字

    • 默认值:10000

例子:

{
  "tool": "drag_and_drop",
  "parameters": {
    "by": "id",
    "value": "draggable",
    "targetBy": "id",
    "targetValue": "droppable"
  }
}

双击

对元素执行双击。

参数:

  • by (必需):定位器策略

    • 类型:字符串

    • 枚举:[“id”,“css”,“xpath”,“name”,“tag”,“class”]

  • value (必需):定位器策略的值

    • 类型:字符串

  • timeout :等待元素的最长时间(以毫秒为单位)

    • 类型:数字

    • 默认值:10000

例子:

{
  "tool": "double_click",
  "parameters": {
    "by": "css",
    "value": ".editable-text"
  }
}

右键单击

对元素执行右键单击(上下文单击)。

参数:

  • by (必需):定位器策略

    • 类型:字符串

    • 枚举:[“id”,“css”,“xpath”,“name”,“tag”,“class”]

  • value (必需):定位器策略的值

    • 类型:字符串

  • timeout :等待元素的最长时间(以毫秒为单位)

    • 类型:数字

    • 默认值:10000

例子:

{
  "tool": "right_click",
  "parameters": {
    "by": "css",
    "value": ".context-menu-trigger"
  }
}

按键

模拟按下键盘键。

参数:

  • key (必需):要按下的键(例如,“Enter”,“Tab”,“a”等)

    • 类型:字符串

例子:

{
  "tool": "press_key",
  "parameters": {
    "key": "Enter"
  }
}

upload_file

使用文件输入元素上传文件。

参数:

  • by (必需):定位器策略

    • 类型:字符串

    • 枚举:[“id”,“css”,“xpath”,“name”,“tag”,“class”]

  • value (必需):定位器策略的值

    • 类型:字符串

  • filePath (必需):要上传的文件的绝对路径

    • 类型:字符串

  • timeout :等待元素的最长时间(以毫秒为单位)

    • 类型:数字

    • 默认值:10000

例子:

{
  "tool": "upload_file",
  "parameters": {
    "by": "id",
    "value": "file-input",
    "filePath": "/path/to/file.pdf"
  }
}

截屏

捕获当前页面的屏幕截图。

参数:

  • outputPath (可选):屏幕截图的保存路径。若未提供,则返回 base64 数据。

    • 类型:字符串

例子:

{
  "tool": "take_screenshot",
  "parameters": {
    "outputPath": "/path/to/screenshot.png"
  }
}

关闭会话

关闭当前浏览器会话并清理资源。

**参数:**无必填

例子:

{
  "tool": "close_session",
  "parameters": {}
}

执照

麻省理工学院

-
security - not tested
A
license - permissive license
-
quality - not tested

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/angiejones/mcp-selenium'

If you have feedback or need assistance with the MCP directory API, please join our Discord server