ManulCpServer
 ](https://pepy.tech/projects/manul-engine)   
状态:阿尔法。 与ManulEngine一起积极开发。API和文件格式可能会演变。
______________________________________________________________________
为什么选择ManulCpServer
- Copilot Chat内的确定性自动化。 Copilot在ManulEngine的启发式元素解析器的支持下获得了浏览器控制权——元素定位不需要LLM。
- 自然语言到可执行DSL。 说 *“登录SauceDemo并验证库存页面”* --服务器将其标准化为
.hunt执行步骤,运行它们,并返回一个可回放的脚本。 - 编辑优先创作。 语法高亮显示、IntelliSense、悬停文档、内联诊断和一键运行
.hunt文件夹。 - CI/CD就绪。 相同
.hunt在Copilot Chat中运行的脚本可以在您的管道中无头运行 `manul
`.
- 可解释且可审计。 每个动作都是一条可读的DSL线,每个元素的分辨率得分为0.0-1.0,并带有解释模式——没有黑框点击。
______________________________________________________________________
快速演示
1.写一个 .hunt 文件
@context: Login flow smoke test
@title: SauceDemo Login
STEP 1: Login
NAVIGATE to 'https://www.saucedemo.com/'
VERIFY that 'Username' is present
Fill 'Username' field with 'standard_user'
Fill 'Password' field with 'secret_sauce'
Click the 'Login' button
VERIFY that 'Sauce Labs Backpack' is present
DONE.2.从编辑器中运行
点击 ▷ 编辑器标题栏中的按钮,或按 Ctrl+Shift+R (Cmd+Shift+R 在Mac上)。
3.从Copilot聊天运行
打开Copilot聊天,直接使用MCP工具:
# Run a single step
@manul Run step: NAVIGATE to 'https://www.saucedemo.com/'
# Run a full goal — Copilot calls manul_run_goal under the hood
@manul Log in to SauceDemo with standard_user / secret_sauce
and verify the inventory page loads
# Scan the page after navigation
@manul Scan the current page for interactive elements副驾驶用途 manul_run_step 对于个人行为, manul_run_goal 对于多步流,以及 manul_scan_page 以发现页面元素。进球后,让Copilot保存生成的 .hunt 文件——它调用 manul_save_hunt 写信给 tests/.
______________________________________________________________________
集成模式
副驾驶聊天(主要工作流程)
ManulMcpServer自动注册为MCP服务器。Copilot Chat发现Manul工具,可以:
- 运行单个DSL步骤或自然语言操作(
manul_run_step) - 执行多步骤目标并生成可回放的目标
.hunt文件(manul_run_goal) - 阅读页面内容并发现互动元素(
manul_scan_page,manul_read_page_text) - 无需执行即可验证和规范DSL(
manul_validate_hunt,manul_normalize_step)
CI/CD管道
.hunt 通过Copilot生成的脚本是纯文本的——将它们提交到您的仓库中,并在CI中无头运行:
pip install manul-engine==0.0.9.28
playwright install chromium
manul tests/ --headless --html-reportCLI在通过时生成退出代码0,在失败时生成1,并可选择生成自包含的HTML报告。
其他MCP客户端
任何兼容MCP的代理或客户端都可以连接到ManulMcpServer的stdio网桥。该服务器宣传了11个具有完整JSON模式输入定义的工具,使自定义代理工具、产品仪表板或内部工具的集成变得简单。
______________________________________________________________________
安装
1.安装扩展
code --install-extension manul-mcp-server-0.0.7.vsix或从安装 VS代码市场.
2.安装运行时依赖项
pip install manul-engine==0.0.9.28
playwright install3.重新加载VS代码
Ctrl+Shift+P → 开发者:重新加载窗口
在重新加载之后, ManulMcpServer 出现在MCP服务器面板中,Copilot Chat会自动获得手动工具。
先决条件
- VS代码 1.107+
- Node.js 上
PATH(管理MCP入口启动网桥node -e) - python 3.10+
manul-engine安装 - 剧作家浏览器 (
playwright install)
工作区.venv检测: 首先打开目标工作区文件夹,或设置manul.pythonPath精确的解释器路径。
______________________________________________________________________
配置
打开设置(Ctrl+,)并搜索 manul:
| 设置 | 默认值 | 说明 |
|---|---|---|
manul.pythonPath | python3 | Python解释器。自动发现工作区 .venv 当设置为默认值时。 |
manul.executablePath | '' | 自定义浏览器或Electron应用程序的路径。配合使用 OPEN APP 用于桌面自动化。 |
manul.headless | false | 在没有可见窗口的情况下运行浏览器。 |
manul.apiBaseUrl | http://127.0.0.1:8000 | 编辑器运行命令的ManulEngine HTTP API URL。 |
manul.requestTimeoutMs | 60000 | 发动机调用超时(ms)。 |
manul.logNormalizedDsl | true | 在输出面板中记录自动校正的DSL。 |
manul.mcpServerLabel | ManulMcpServer | MCP服务器视图中的标签。 |
示例 settings.json:
{
"manul.pythonPath": "/home/user/project/.venv/bin/python",
"manul.headless": true,
"manul.executablePath": "/opt/my-electron-app/app"
}两条执行路径: MCP工具(manul_run_step,manul_run_goal等)使用 捆绑Python运行器 直接——不需要服务器。编辑器标题栏 跑 命令使用手动引擎 HTTP API 在manul.apiBaseUrl(开始吧manul serve).
______________________________________________________________________
MCP工具参考
| 工具 | 说明 |
|---|---|
manul_run_step | 在实时浏览器中运行单个DSL步骤或自然语言操作 |
manul_run_goal | 将目标转换为DSL步骤,执行它们,返回 .hunt 提案 |
manul_run_hunt | 验证并执行 .hunt 以文本形式传递的文档 |
manul_run_hunt_file | 跑a .hunt 文件从磁盘 |
manul_validate_hunt | 验证 .hunt 语法和返回诊断--不执行 |
manul_normalize_step | 预览自然语言如何映射到规范DSL |
manul_preview_goal | 预览目标到DSL的转换,无需执行 |
manul_scan_page | 列出当前页面上的所有交互元素 |
manul_read_page_text | 读取当前页面的所有可见文本内容 |
manul_get_state | 查询浏览器状态、引擎版本和会话状态 |
manul_save_hunt | 保存a .hunt 文件到磁盘(工作区被监禁) |
所有工具都使用同步请求/响应。浏览器会话是持久的——它在首次使用时打开,并在工具调用期间保持活动状态以进行检查/重试。
______________________________________________________________________
故障排除
| 问题 | 修复 |
|---|---|
No module named 'manul_engine' | 安装 manul-engine 进入由以下人员选择的口译员 manul.pythonPath,或打开工作区 .venv 被发现。 |
node: command not found | MCP桥需要Node.js PATH.安装Node.js并重新加载VS代码。 |
MCP服务器忽略工作区 .venv | 在VS Code中打开项目文件夹,或设置 manul.pythonPath 明确地。 |
| 编辑 跑 命令失败,但MCP工具工作 | 编辑器命令需要 manul serve 跑步。MCP工具直接使用捆绑的流道。 |
| 浏览器未打开 | 检查 manul.headless 是 false.确保 playwright install 已运行。 |
______________________________________________________________________
生态系统
ManulMcpServer是Manul自动化堆栈的一层:
| 组件 | 角色 | 链接 |
|---|---|---|
| 手动发动机 | 确定性自动化运行时(Python)。启发式元素解析器, .hunt DSL、CLI运行器。 | PyPI · |
| 手动发动机扩展 | ManulEngine的VS代码扩展,带有调试面板、解释模式和测试资源管理器集成。 | 市场 · 打开VSX · |
| ManulCpServer *(这个)* | MCP桥,使Copilot Chat和其他代理能够访问ManulEngine。 | 市场 · 打开VSX · |
| ManulAI本地代理商 | 用于浏览器自动化的自主AI代理,由ManulEngine提供支持。 | 市场 · 打开VSX · |
______________________________________________________________________
键盘快捷键
| 快捷键 | Mac | 命令 |
|---|---|---|
Ctrl+Shift+R | Cmd+Shift+R | 运行Hunt文件 |
Ctrl+Shift+Enter | Cmd+Shift+Enter | 运行步骤 |
活动时a .hunt 文件在编辑器中被聚焦。
______________________________________________________________________
新增功能
0.0.8
- 兼容性: 将嵌入式DSL合约元数据同步到ManulEngine
0.0.9.29. - DSL: 添加
REPEAT N TIMES:,FOR EACH {var} IN {collection}:,以及WHILE condition:循环命令——验证、语法高亮、完成、代码片段和代理契约。 - 文件: 更新
contracts/MANUL_MCP_AGENT_CONTRACT.md和.github/copilot-instructions.md带有循环引用。 - 发布: 已将扩展/包版本更新为
0.0.8.
0.0.7
- 兼容性: 将嵌入式DSL合约元数据同步到ManulEngine
0.0.9.28. - DSL: 添加
IF/ELIF/ELSE条件分支——验证、语法突出显示、完成、片段和代理契约。 - DSL: 将每个引擎的规范命令标签更新为全部大写
casePolicy(CLICK,FILL,TYPE,SELECT,CHECK,UNCHECK,DRAG). - 文件: 更新
contracts/MANUL_MCP_AGENT_CONTRACT.md和.github/copilot-instructions.md具有条件分支引用。 - 发布: 已将扩展/包版本更新为
0.0.7.
0.0.6
- 兼容性: 将嵌入式DSL合约元数据同步到ManulEngine
0.0.9.27. - 文件: 添加
contracts/MANUL_MCP_AGENT_CONTRACT.md--人工智能代理通过MCP使用ManulEngine的机器可读合同(工具模式、DSL参考、工作流指南、响应形状、安全约束)。 - 文件: 更新
.github/copilot-instructions.md完整的v0.0.9.27 DSL参考,包括OPEN APP,UPLOAD,MOCK,VERIFY VISUAL、严格的占位符/值断言,CALL PYTHON,SCAN PAGE,DEBUG VARS,元数据标头(@import:,@export:,@data:,@schedule:),以及钩块([SETUP]/[TEARDOWN]). - 发布: 已将扩展/包版本更新为
0.0.6.
0.0.5
- 兼容性: 将嵌入式DSL合约元数据同步到ManulEngine
0.0.9.26. - DSL: 增加了对以下内容的支持
@import:,@export:,以及USE在验证、完成、悬停文档、代码片段和语法突出显示中。 - 桌面自动化: 添加
manul.executablePath并传播MANUL_EXECUTABLE_PATH通过MCP桥进入捆绑的Python运行器OPEN APP流动。 - 发布: 已将扩展/包版本更新为
0.0.5.
0.0.4
- 稳定性: 固定PythonRunner
ensureProcess()竞争条件——并发调用者不再生成重复的进程。 - 稳定性: 浏览器现在在步骤失败时保持活动状态以进行检查/重试,而不是关闭会话。
- 安全: Python中添加了工作区监狱路径验证
save_hunt处理程序并提取到共享pathValidator.ts. - 演出 页面扫描现在只在最后一步或失败时运行,而不是在每一步之后运行。
- 演出 影子根遍历使用目标选择器,而不是
querySelectorAll('*'). - 可维护性: 集中式配置默认为
src/config/defaults.ts--不再有重复的归一化器。 - 可维护性: 共享DSL线路迭代器(
src/dsl/parser.ts)消除了重复的钩块状态机。 - DX: 悬停提供者被重写为来自契约的数据驱动循环——如果分支,则不再进行硬编码。
- DX: 从合约派生的限定词建议正则表达式
interactionMode而不是硬编码列表。 - DX: Run Hunt文件的键盘快捷键(
Ctrl+Shift+R)并运行步骤(Ctrl+Shift+Enter). - DX: 添加
manul_read_page_text用于读取可见页面文本的MCP工具。 - 测试: 添加了vitest,其中包含67个单元测试,涵盖验证器、构建器、解析器和配置默认值。
- 将DSL合同更新到v0.0.9.21。
0.0.3
- 管理用户范围
mcp.json安装、激活、设置更改和卸载时同步。 - 用户范围MCP引导现在通过以下方式解析最新安装的扩展目录
node -e而不是过时的版本化脚本路径。 - 更新文档以反映外部运行时要求和工作区
.venv行为。
许可证
阿帕奇-2.0
