Life Saver MCP
AI-powered MCP server for analyzing UI designs and bug reports from Lanhu and Zentao platforms.
README
Life Saver MCP
图片识别 & 网页内容分析 MCP Server。支持直接传图、蓝湖设计稿、禅道 Bug/需求/任务以及任意网页 URL 的智能分析。
功能
analyze_image — 图片识别
传入图片(本地路径 / base64 / 图片 URL),AI 自动识别场景并结构化输出。
- UI 原型/设计稿 → 组件结构、布局、交互说明、样式标注
- Bug 截图 → 异常描述、可能原因、影响范围、修复建议
- 需求文档 → 关键需求、验收标准、业务规则
- 通用图片 → 客观描述
支持格式:PNG / JPEG / GIF(自动提取关键帧)/ WebP / BMP,单文件限制 10MB。
analyze_url — 网页内容分析
传入 URL,自动识别来源并拉取内容后 AI 整理输出。
| 来源 | 认证方式 | 能力 |
|---|---|---|
蓝湖 (lanhuapp.com) |
Cookie | 设计稿图片、Axure 原型截图、设计标注、切图提取 |
禅道 (zentao) |
Cookie | Bug/需求/任务详情、图片、附件、历史记录 |
| 通用网页 | 无 | 抓取文字和图片 |
蓝湖能力
设计稿 URL(无 docId 参数):
https://lanhuapp.com/web/#/item/project/product?tid=xxx&pid=xxx
https://lanhuapp.com/web/#/item/project/stage?tid=xxx&pid=xxx
自动提取:
- 设计图列表 + 图片下载(转 base64 传 AI)
- 设计标注(Sketch JSON → 文字/形状/图层信息、颜色、字体、阴影、圆角等)
- 设计 Token(渐变、边框、非均匀圆角等高风险元素)
- 切图/素材(下载链接 + 多分辨率 URL:1x/2x/3x/iOS/Android)
PRD 文档 URL(带 docId 参数):
https://lanhuapp.com/web/#/item/project/product?tid=xxx&pid=xxx&docId=xxx
自动提取:
- Axure 原型页面截图(Playwright 渲染,支持缓存)
- 页面文字内容
- 文档版本信息
蓝湖需要 Cookie 认证,DDS API 需要单独的 DDS_COOKIE(默认复用 LANHU_COOKIE)。
禅道支持的 URL 格式
?m=bug&f=view&bugID=1081 # Bug
?m=story&f=view&id=572 # 研发需求
?m=requirement&f=view&storyID=495 # 用户需求
?m=projectstory&f=view&storyID=434&projectID=146 # 项目需求
?m=task&f=view&taskID=314 # 任务
禅道页面通过 ZIN 框架解析,自动提取:
- 基本信息字段(产品、模块、优先级、状态、指派等)
- 正文内容(重现步骤 / 需求描述 / 任务描述)
- 内嵌图片(自动下载转 base64 传给 AI)
- 附件文件(提取文件名、类型、大小、下载链接,供调用方判断是否需要下载解析)
- 历史记录 / 备注
快速开始
安装
pip install -e .
配置
life-saver-mcp.json:
{
"handlers": {
"lanhu": {
"enabled": true,
"auth": { "type": "cookie", "env": "LANHU_COOKIE" }
},
"zentao": {
"enabled": true,
"url": "http://zentao.example.com",
"auth": { "type": "cookie", "env": "ZENTAO_COOKIE" }
}
},
"providers": [
{
"type": "openai",
"api_key_env": "OPENAI_API_KEY",
"base_url": "https://api.openai.com/v1",
"models": ["gpt-4o"],
"default": true
}
]
}
配置文件查找顺序:--config 参数 > LIFE_SAVER_CONFIG 环境变量 > 当前目录 life-saver-mcp.json > ~/.config/life-saver-mcp/config.json > 内置默认配置。
环境变量
| 变量 | 说明 |
|---|---|
OPENAI_API_KEY |
OpenAI API Key(或兼容接口的 Key) |
GOOGLE_API_KEY |
Google Gemini API Key |
ANTHROPIC_API_KEY |
Anthropic Claude API Key |
LANHU_COOKIE |
蓝湖 Cookie(从浏览器 DevTools → Network → 任意请求的 Cookie header 复制) |
DDS_COOKIE |
蓝湖 DDS API Cookie(可选,默认复用 LANHU_COOKIE) |
ZENTAO_COOKIE |
禅道 Cookie(同上,需包含 zentaosid 和 zp) |
LIFE_SAVER_CONFIG |
自定义配置文件路径 |
获取禅道 Cookie
- 浏览器打开禅道并登录
- F12 → Network → 随便点一个请求
- 复制 Cookie header 中的完整内容(至少包含
zentaosid和zp)
启动
# stdio 模式(本地 MCP 客户端)
life-saver-mcp --transport stdio
# HTTP 模式(远程部署)
life-saver-mcp --transport streamable-http --port 8000
# SSE 模式(兼容旧客户端)
life-saver-mcp --transport sse --port 8000
MCP 客户端配置
Cursor / Claude Desktop(stdio):
{
"mcpServers": {
"life-saver": {
"command": "life-saver-mcp",
"args": ["--transport", "stdio"]
}
}
}
远程 HTTP:
{
"mcpServers": {
"life-saver": {
"url": "http://127.0.0.1:8000/mcp"
}
}
}
AI Provider
支持所有 OpenAI 兼容接口,通过 base_url 和 api_key_env 配置:
{
"type": "openai",
"api_key_env": "YOUR_API_KEY",
"base_url": "https://your-api-endpoint.com/v1",
"models": ["your-model-name"],
"default": true
}
内置 Provider 类型:openai(兼容所有 OpenAI 接口)、google、anthropic。
无 Provider 时,analyze_url 仍可工作,返回原始抓取内容(文字 + 图片数量 + 附件列表),不调用 AI 分析。
架构
用户输入
│
├─ 图片 ────────► analyze_image ──► AI 分析 ──► 结构化结果
│
└─ URL ─────────► analyze_url
│
▼
URL Router(域名匹配)
│
┌─────┼──────────┐
▼ ▼ ▼
Lanhu Zentao Generic
Handler Handler Handler
│ │ │
┌─────┤ │ │
▼ ▼ │ │
Axure Design │ │
Screenshot Info │ │
(Playwright) │ │
│ │ │ │
│ Annotations │
│ + Slices │ │
└─────┤ │ │
▼ ▼ ▼
PageContent
├─ text_sections
├─ images (base64)
└─ attachments (metadata)
│
▼
AI Analyzer
(多模态:文字 + 图片)
│
▼
结构化 JSON
项目结构
src/life_saver_mcp/
├── server.py # MCP Server 入口(FastMCP)
├── config.py # 配置加载
├── models.py # Pydantic 数据模型
├── providers/ # AI Provider 层
│ ├── base.py # BaseProvider 抽象类
│ ├── openai_provider.py # OpenAI(兼容 base_url)
│ ├── google_provider.py # Google Gemini
│ └── anthropic_provider.py # Anthropic Claude
├── handlers/ # URL Handler 层
│ ├── base.py # BaseHandler 抽象类
│ ├── router.py # URL 域名路由
│ ├── generic.py # 通用网页抓取(BeautifulSoup)
│ ├── lanhu.py # 蓝湖主逻辑(Cookie + API)
│ ├── lanhu_axure.py # 蓝湖 Axure 原型下载 + Playwright 截图
│ ├── lanhu_annotations.py # 蓝湖设计标注提取(Sketch JSON)
│ ├── lanhu_slices.py # 蓝湖切图/素材提取(多分辨率 URL)
│ └── zentao.py # 禅道(Cookie + ZIN JSON 解析)
└── analysis/ # 分析引擎
├── prompts.py # 场景识别 Prompt 模板
├── scenario.py # 结果解析
└── image_utils.py # GIF 多帧提取等图片工具
扩展
新增 AI Provider
- 在
providers/下新建文件,继承BaseProvider - 实现
analyze_image、analyze_text、analyze_multimodal三个方法 - 在
server.py的PROVIDER_REGISTRY中注册 - 在
life-saver-mcp.json的providers中添加配置
新增 URL Handler
- 在
handlers/下新建文件,继承BaseHandler - 实现
can_handle(url)和fetch_content(url)方法 - 在
handlers/__init__.py中导出 - 在
handlers/router.py的create_router中注册 - 在
life-saver-mcp.json的handlers中添加配置
参考项目
- 蓝湖功能参考:lanhu-mcp — 蓝湖 Axure 文档提取 MCP Server,本项目的蓝湖 Handler(Axure 截图、设计标注、切图提取、DDS Schema 等)基于该项目的实现思路和 API 调用方式进行适配。
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。