Token导航 LogoToken导航

MCP Server · 运维云端

failure analysis MCP

一个通过Ollama使用本地LLM分析WebdriverIO测试失败的MCP服务器,专为JavaScript/TypeScript测试自动化框架集成而设计。

stdio官方级别未说明来源级核验工具 2
测试自动化本地LLMPythonClaude

快速开始

作者 / 组织
d-ang356
提供方
d-ang356
运行时
Python

工具数量

2

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

failure analysis MCP 属于运维云端类 MCP Server,公开资料标注 2 个工具,通过stdio 本地进程接入,适配 Claude,有可以直接复制的安装命令;接入前要先准备 会话凭据。

分类

运维云端

传输方式

stdio

认证方式

会话凭据

部署方式

公开资料未说明

安装与配置

安装命令

uv run python mcp_server.py

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 2 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

MCP故障分析服务器

MCP(模型上下文协议)服务器,通过Ollama使用本地LLM分析WebdriverIO测试失败。专为与JavaScript/TypeScript测试自动化框架集成而设计。

概述

该服务器通过以下方式为WebdriverIO E2E测试提供智能故障分析:

  • 从规范文件及其导入中提取相关代码上下文
  • 解析错误消息和堆栈跟踪
  • 使用本地LLM(通过Ollama)提供详细的根本原因分析
  • 在多个故障分析中维护会话上下文

特性

  • 智能代码分析:自动遍历导入依赖关系(最多3级深度)以收集相关上下文
  • 会话管理:通过基于TTL的过期维护多个分析的上下文
  • 树保姆解析:高效的JavaScript/TypeScript导入提取
  • 本地LLM集成:与Ollama合作进行隐私保护分析
  • MCP协议:与任何MCP客户端兼容的标准MCP服务器
  • WebdriverIO优化:WebdriverIO测试失败的定制提示

安装

先决条件

  • Python 3.11+
  • 紫外线 用于包管理
  • 奥拉玛 使用具有视觉能力的模型(例如。, gemma4:e4b)

设置

  1. 克隆存储库并导航到项目:
cd failure_analysis_server
  1. 与UV同步依赖关系:
uv sync
  1. 创建您的 .env 文件:
cp .env.example .env
# Edit .env with your configuration
  1. 确保Ollama使用您选择的型号运行:
ollama pull gemma4:e4b
ollama serve

配置

所有配置都是通过中的环境变量完成的 .env:

WebdriverIO MCP客户端

变量默认值描述
MCP_CLIENT_URLhttp://localhost:3000WebdriverIO MCP客户端的URL
MCP_CLIENT_PORT3000WebdriverIO MCP客户端端口

奥拉马LLM

变量默认值描述
MCP_OLLAMA_HOSThttp://localhost:11434Ollama服务器主机
MCP_OLLAMA_MODELgemma4:e4b用于分析的模型(建议具有视觉能力)
MCP_OLLAMA_TEMPERATURE0.1温度(0.0-1.0)
MCP_OLLAMA_NUM_CTX131072上下文窗口大小
MCP_OLLAMA_TIMEOUT300请求超时(秒)

分析设置

变量默认值描述
MCP_MAX_IMPORT_DEPTH3要穿越多少个级别的导入
MCP_MAX_FILE_SIZE_KB500要分析的最大文件大小
MCP_MAX_DOM_SIZE_KB100清理后DOM快照的最大大小
MCP_SESSION_TTL_MINUTES60会话过期时间
MCP_MAX_SESSION_HISTORY10未能保留每个会话

日志记录

变量默认值描述
MCP_LOG_LEVELINFO日志级别(调试、信息、警告、错误)

用法

运行服务器

开发模式(带检查员)
mcp dev mcp_server.py
生产模式
uv run python mcp_server.py

或者安装入口点:

uv pip install -e .
uv run mcp-server

MCP工具

服务器公开了这些MCP工具:

analyze_failure

使用可选的可视化和DOM上下文分析WebdriverIO测试失败。

参数:

  • console_output (string):测试运行的原始控制台输出(支持ndjson)
  • spec_file_path (string):失败规范文件的绝对路径
  • session_id (字符串,可选):用于维护上下文的会话ID
  • screenshot_base64 (字符串,可选):失败时页面的Base64编码截图
  • dom_snapshot (string,可选):页面的完整DOM快照或可访问性树
  • screenshot_mime_type (字符串,可选):屏幕截图的MIME类型(默认 image/png)

退货: JSON格式 success, analysis, session_id, model, files_analyzed

clear_session

清除会话及其历史记录。

参数:

  • session_id (string):要清除的会话ID

MCP资源

config://current

返回当前服务器配置。

session://{session_id}/status

返回会话状态和失败历史记录。

建筑

WebdriverIO Test Failure
    │
    ▼
┌─────────────────────┐
│  MCP Client (JS)    │
│  (WebdriverIO side) │
└──────────┬──────────┘
           │ stdio/MCP protocol
           ▼
┌─────────────────────┐
│  MCP Server (Python)│
│  - Parse stack trace│
│  - Extract imports  │
│  - Gather code      │
└──────────┬──────────┘
           │ HTTP
           ▼
┌─────────────────────┐
│  Ollama (LLM)       │
│  - Analyze failure  │
│  - Suggest fixes    │
└─────────────────────┘

代码分析

服务器使用树形图来解析JavaScript/TypeScript:

  1. 导入提取:解析ES6导入和CommonJS所需
  2. 导入分辨率:使用扩展推理解决相对导入问题
  3. 代码收集:BFS遍历到配置的深度
  4. 文件筛选:大小限制和防止重复

会话管理

会话在多个分析中维护上下文:

  • 基于TTL的过期:会话在不活动后过期
  • 故障历史:以前的失败通知上下文
  • 对话历史:LLM会话保持不变
  • 自动清理:过期的会话将自动删除

错误模式

服务器识别常见的WebdriverIO错误模式:

错误模式描述
找不到元素选择器与任何元素都不匹配
元素不可交互元素存在但无法交互
超时操作超过超时阈值
过时元素引用元素定位后DOM更改
断言失败测试断言与预期值不匹配
选择器错误选择器语法无效

发展

项目结构

failure_analysis_server/
├── mcp_server.py          # Main MCP server
├── pyproject.toml         # Project dependencies
├── .env                   # Configuration
├── .env.example           # Configuration template
├── README.md              # This file
└── CLAUDE.md              # Claude context

运行测试

uv run pytest

添加新工具

  1. 定义工具功能 @mcp.tool() 装饰器
  2. 使用Pydantic Field 用于参数描述
  3. 返回结构化响应的JSON字符串
  4. 添加带有信息性消息的错误处理

修改系统提示

这 SYSTEM_PROMPT 常数in mcp_server.py 定义LLM如何分析故障。修改此设置以更改分析行为。

故障排除

Ollama连接问题

Cannot connect to Ollama at http://localhost:11434

解决方案: 确保Olama正在运行: ollama serve

未找到型号

Model gemma4:e4b not found

解决方案: 拉动模型: ollama pull gemma4:e4b

未分析截图

如果LLM在分析中没有引用屏幕截图:

  • 验证模型是否支持视觉(ollama show gemma4:e4b 应列出 vision 能力)
  • 纯文本模型(qwen2.5-coder:7b)无法处理图像
  • 确保 screenshot_base64 是有效的base64字符串

导入解析失败

如果进口问题未得到解决:

  1. 检查 MCP_MAX_IMPORT_DEPTH 设置
  2. 验证文件路径是相对的(不是绝对的)
  3. 确保导入的文件存在并与预期的扩展名匹配

会话到期

会话过期时间 MCP_SESSION_TTL_MINUTES 不活动。对于长时间运行的分析会话,增加此值。

大型DOM快照

如果DOM快照导致上下文窗口溢出:

  • 减少 MCP_MAX_DOM_SIZE_KB (默认100KB)
  • 发送前在客户端删除脚本/样式
  • 发送辅助功能树而不是完整的HTML

与WebdriverIO集成

该服务器旨在与WebdriverIO MCP客户端配合使用。客户应当:

  1. 将MCP服务器作为子进程启动
  2. 使用MCP协议通过stdio进行通信
  3. 发送 analyze_failure 工具调用:

- 控制台输出(原始文本或ndjson行) - 屏幕截图(browser.takeScreenshot() 返回base64 PNG) - DOM快照(document.documentElement.outerHTML) - 规范文件路径

  1. 处理JSON响应和显示分析

客户端使用示例(JavaScript):

// Connect to MCP server
const client = new MCPClient({
  command: 'uv',
  args: ['run', 'python', 'mcp_server.py']
});

// Analyze a failure
const result = await client.callTool('analyze_failure', {
  console_output: testOutput,
  spec_file_path: '/path/to/spec.ts',
  screenshot_base64: await browser.takeScreenshot(),
  dom_snapshot: await browser.execute(() => document.documentElement.outerHTML)
});

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 运行测试
  5. 提交拉取请求

支持

对于问题和功能请求,请使用GitHub问题跟踪器。

工具与能力

工具数量

2

资源数量

0

提示词数量

0

能力标签

测试自动化Python本地部署失败分析WebdriverIO本地LLM代码解析

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 只提供 2 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备会话凭据,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到会话凭据的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
failure analysis MCP

MCP World · 本页

2stdio有1 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

failure analysis MCP 怎么安装?

公开资料给出的安装命令是 uv run python mcp_server.py,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

failure analysis MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

failure analysis MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

failure analysis MCP 需要 API Key 吗?

公开资料标注的认证方式是会话凭据,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

failure analysis MCP 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP