#STDF MCP服务器
一种模型上下文协议(MCP)服务器,使LLM能够有效地访问、分析和提取半导体测试中使用的STDF-V4(标准测试数据格式)文件中的信息。
 
特性
17专用工具
元数据提取(6个工具):
extract_file_overview-快速文件评估和关键标识符extract_test_configuration-硬件设置和测试环境extract_yield_summary-试验结果分析和产量计算extract_facility_details-制造背景和设施信息extract_program_metadata-测试程序和软件版本详细信息extract_test_parameters-带限制的综合参数列表
记录提取(7个工具):
extract_pir_prr_records-零件信息/结果记录extract_ptr_records-带过滤的参数测试记录extract_ftr_records-功能测试记录extract_hbr_records-硬件箱记录extract_sbr_records-软件箱记录extract_sdr_records-现场描述记录extract_mrr_record-主结果记录
测试分析(3个工具):
extract_test_parameter_summary-带有测试套件过滤的统计摘要extract_filtered_data-支持多站点的Excel提取extract_test_time-使用站点过滤进行测试执行时间分析
产量分析(1个工具):
extract_per_unit_yield-将每单位仓位数据提取为CSV(零件ID、硬件仓位、软件仓位)
关键能力
- STDF-V4格式支持:全面支持STDF-V4规范
- 高性能:通过流解析器处理内存小于512MB、最大2GB的文件
- 多站点支持:并行测试现场数据提取和分析
- 测试套件筛选:使用正则表达式支持按测试名称、编号或套件进行筛选
- CSV/Excel导出:生成分析就绪的数据集
- 自动验证:内置文件完整性验证
- TDD开发:具有真实STDF文件的全面测试覆盖率
快速开始
安装
# Clone the repository
git clone https://github.com/your-org/stdf-mcp.git
cd stdf-mcp
# Install the package
pip install -e .运行MCP服务器
# Start the MCP server
python -m stdf_mcp.simple_server服务器将启动并监听stdin/stdout上的MCP协议连接。
Claude桌面配置
添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"stdf": {
"command": "python",
"args": ["-m", "stdf_mcp.simple_server"],
"cwd": "/path/to/stdf-mcp"
}
}
}替换 /path/to/stdf-mcp 安装的实际路径。
使用示例
提取文件概述
# In Claude with MCP server connected
"Please extract the file overview from TestCases/example.stdf"返回:批次ID、晶圆计数、设备信息、测试日期和文件统计。
提取产量数据
"Extract per-unit yield data from TestCases/production_test.stdf"生成包含以下列的CSV:PART_ID、HW Bin、SW Bin
- 输出位置:
TestCases/Output/production_test_YieldAnalysis_20251108_123045.csv
过滤参数数据
"Extract PTR records for test 'VDD_CURRENT' from TestCases/wafer_test.stdf"返回经过筛选的参数测试结果及其统计信息。
测试时间分析
"Extract test time analysis for site 1 from TestCases/multi_site.stdf"生成CSV,其中包含每个单元的测试执行时间和摘要统计信息。
工具参考
元数据工具
| 工具 | 描述 | 输出 |
|---|---|---|
extract_file_overview | 文件摘要和标识符 | JSON |
extract_test_configuration | 测试设置和硬件配置 | JSON |
extract_yield_summary | 通过/失败计数和良率% | JSON |
extract_facility_details | 制造设施信息 | JSON |
extract_program_metadata | 测试程序版本/配置 | JSON |
extract_test_parameters | 所有有限制的测试参数 | JSON |
记录提取工具
| 工具 | 描述 | 过滤器 | 输出 |
|---|---|---|---|
extract_pir_prr_records | 部件信息和结果 | 站点 | JSON |
extract_ptr_records | 参数测试 | 测试名称/编号/套件,站点 | JSON |
extract_ftr_records | 功能测试 | 测试名称/编号/套件,站点 | JSON |
extract_hbr_records | 硬件箱 | 站点 | JSON |
extract_sbr_records | 软件箱 | 站点 | JSON |
extract_sdr_records | 网站描述 | 网站 | JSON |
extract_mrr_record | 主结果 | - | JSON |
分析工具
| 工具 | 描述 | 主要功能 | 输出 |
|---|---|---|---|
extract_test_parameter_summary | 统计摘要 | 测试套件过滤,最小/最大/平均/标准开发 | JSON |
extract_filtered_data | 筛选数据导出 | 测试套件筛选,多站点 | Excel(.xlsx) |
extract_test_time | 测试执行时间 | 站点筛选、统计 | CSV |
extract_per_unit_yield | 每单位仓位数据 | 3列格式(无PorF) | CSV |
需求
- python:3.11或更高
- 依赖项:
- mcp>=1.0.0 -模型上下文协议SDK - numpy>=1.24.0 -统计计算 - matplotlib>=3.6.0 -可视化(未来) - openpyxl>=3.1.0 -Excel文件生成
发展
设置开发环境
# Install with development dependencies
pip install -e ".[dev]"
# Install pre-commit hooks (optional)
pip install pre-commit
pre-commit install运行测试
# Run all tests
pytest
# Run with coverage report
pytest --cov=src/stdf_mcp --cov-report=html
# Run specific test categories
pytest -m unit # Unit tests only
pytest -m integration # Integration tests only
pytest -m contract # Contract tests only代码质量
# Format code
black src/ tests/
# Type checking
mypy src/
# Linting
flake8 src/ tests/
# Run all quality checks
black src/ tests/ && flake8 src/ tests/ && mypy src/ && pytest项目结构
stdf-mcp/
├── src/stdf_mcp/ # Main package
│ ├── stdf/ # STDF parser and record definitions
│ ├── tools/ # MCP tool implementations
│ │ ├── metadata/ # Metadata extraction tools
│ │ ├── records/ # Record extraction tools
│ │ ├── test_summary/ # Test parameter summary
│ │ ├── filtered_data/ # Filtered data extraction
│ │ ├── test_time/ # Test time analysis
│ │ └── yield_analysis/# Yield data extraction
│ └── simple_server.py # MCP server implementation
├── tests/ # Test suite
│ ├── unit/ # Unit tests
│ ├── integration/ # Integration tests
│ └── contract/ # Contract tests
├── TestCases/ # Sample STDF files
│ └── Output/ # Generated outputs (gitignored)
├── specs/ # Feature specifications
├── pyproject.toml # Package configuration
└── README.md # This file绩效目标
| 操作 | 目标 | 备注 |
|---|---|---|
| 元数据提取 | \<5秒 | 所有6个元数据工具 |
| 记录提取 | \<10秒 | 适用于1GB文件 |
| 筛选数据 | \<30秒 | 使用Excel生成 |
| 测试时间分析 | \<10秒 | 多站点支持 |
| 产量提取 | \<5秒 | 10000单位 |
| 内存使用量 | \<512MB | 适用于2GB文件 |
范围
支持
- ✅ STDF-V4格式专用
- ✅ 包装/最终测试数据
- ✅ 文件大小可达2GB
- ✅ 流媒体/分块处理
- ✅ 多站点测试配置
- ✅ 使用正则表达式进行测试套件过滤
- ✅ CSV和Excel输出格式
不支持
- ❌ STDF-V3文件(因明显错误而被拒绝)
- ❌ 晶圆测试数据(仅限于封装测试)
- ❌ 会话之间的数据保留
- ❌ 身份验证/授权
- ❌ 直接数据库访问
测试
该项目采用全面的TDD方法:
- 单元测试:核心STDF-V4解析和数据模型(覆盖率超过80%)
- 集成测试:具有真实STDF文件的端到端工作流
- 合同测试:MCP工具API合规性验证
- 测试用例集成:来自的真实STDF-V4文件
TestCases/目录 - 输出标准:结果存储在
TestCases/Output/带有时间戳的命名
故障排除
常见问题
问题: ModuleNotFoundError: No module named 'stdf_mcp'
- 解决方案:安装软件包
pip install -e .
问题:MCP服务器未出现在Claude Desktop中
- 解决方案:检查配置文件路径并确保
cwd指向正确的目录
问题: INVALID_STDF_FORMAT 错误
- 解决方案:验证文件是否为STDF-V4格式。STDF-V3不受支持。
问题: NO_PRR_RECORDS 产量提取误差
- 解决方案:文件不包含零件结果记录。验证它是一个包测试文件。
贡献
欢迎投稿!拜托:
- 复刻仓库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 遵循PEP8并运行代码质量检查
- 为新功能编写测试
- 确保所有测试通过(
pytest) - 提交您的更改(
git commit -m '[NewFeature] Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
提交消息格式
使用以下前缀之一:
[NewFeature]-新功能[Enhancement]-对现有功能的改进[BugFix]-Bug修复[Document]-文档更新[WIP]-工作正在进行中
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
致谢
- STDF-V4规范: 泰瑞达标准测试数据格式
- 模型上下文协议: 人类MCP
支持
对于问题、疑问或贡献:
- 问题:
- 讨论:
______________________________________________________________________
版本: 0.1.0 状态:阿尔法 最后更新: 2025-11-08
