MCP Hub
Back to servers

wafer-map-mcp

Exposes semiconductor wafer analysis tools including wafer maps, P-charts, and statistical plots, enabling AI assistants to visualize and analyze wafer test data.

glama
Updated
Apr 23, 2026

Wafer Map MCP Server

An MCP (Model Context Protocol) server that exposes semiconductor wafer analysis tools to AI assistants. These tools are designed for semiconductor test data analysis, enabling AI agents to correctly generate key engineering visualization charts such as wafer maps, P-charts, trend plots, and statistical analysis figures from raw test data.

Preview

Binary MapProperty MapP-Chart
Binary MapProperty MapP-Chart

Tools

ToolDescription
run_wafer_analysisFull analysis in one call: summary + binary map + all PIN maps + P-charts
get_wafer_infoBasic wafer summary (yield, pass/fail counts, PIN columns)
plot_wafer_binBinary pass/fail wafer map (BIN=0 → teal, else → black)
plot_wafer_propertyContinuous-value heatmap for a single PIN column (blue → red)
plot_pchartNormal probability plot per wafer for a PIN column

Data Format

CSV or ZIP (containing exactly one CSV) with columns:

BIN, X, Y, WAFER_ID, PIN_1, PIN_2, ..., PIN_N
  • BIN = 0 → pass, otherwise fail
  • X, Y → die coordinates on the wafer grid
  • PIN_* → continuous measurement values

Colour Scale (IQR Robust Sigma)

Property maps and P-chart boundaries use IQR-based bounds to make subtle variations visible:

sigma  = (P75 - P25) / 1.35
IQR_L  = P50 - 6 × sigma
IQR_H  = P50 + 6 × sigma

Quick Start

Option A: Docker (recommended)

docker build -t wafer-mcp .
docker run -p 8001:8001 wafer-mcp

The server is now available at http://localhost:8001/mcp.

To analyze your own data files, mount a volume:

docker run -p 8001:8001 -v /absolute/path/to/data:/data wafer-mcp
# then pass file_path="/data/your_wafer.zip" when calling tools

Option B: Local Python

Requirements: Python 3.10+

pip install -r requirements.txt
python server.py

Sample Data

A sample dataset is bundled with the project at sample_data/sample_1.zip.

LocationPath
Local./sample_data/sample_1.zip
Docker/app/sample_data/sample_1.zip

Quick smoke test (Docker):

# inside the container the sample lives at /app/sample_data/sample_1.zip
# call any tool with this file_path to verify everything works

Claude Desktop Configuration

The server uses Streamable HTTP transport, so use the url form in claude_desktop_config.json:

{
  "mcpServers": {
    "wafer-map": {
      "url": "http://localhost:8001/mcp"
    }
  }
}

Steps:

  1. Start the MCP server (local or Docker)
  2. Add the config above to Claude Desktop
  3. Restart Claude Desktop
  4. Ask Claude to analyze a wafer data file — it will automatically pick the right tool

Tool Parameters

run_wafer_analysis

ParamTypeDefaultDescription
file_pathstrrequiredPath to .csv or .zip file
pin_columnslist[str] | NoneNoneSubset of PIN columns to plot; None = all
target_sizeint300Output image pixel size

get_wafer_info

ParamTypeDefaultDescription
file_pathstrrequiredPath to .csv or .zip file

plot_wafer_bin

ParamTypeDefaultDescription
file_pathstrrequiredPath to .csv or .zip file
target_sizeint300Output image pixel size

plot_wafer_property

ParamTypeDefaultDescription
file_pathstrrequiredPath to .csv or .zip file
pin_columnstr"PIN_1"PIN column to visualise
target_sizeint450Output image pixel size
data_lfloat | NoneNoneOverride lower bound of colour scale
data_hfloat | NoneNoneOverride upper bound of colour scale

plot_pchart

ParamTypeDefaultDescription
file_pathstrrequiredPath to .csv or .zip file
pin_columnstr"PIN_1"PIN column to plot
target_sizeint300Output image pixel size

Project Structure

.
├── server.py                    # MCP server entry point
├── requirements.txt             # Python dependencies
├── Dockerfile                   # Container definition
├── sample_data/
│   └── sample_1.zip             # Bundled sample wafer dataset
├── tools/
│   ├── workflow/
│   │   └── analyze_wafer.py     # Orchestrates full analysis
│   ├── information_read/
│   │   └── read_wafer_info.py   # Parse CSV/ZIP and compute yield
│   ├── wafer_map/
│   │   ├── wafer_bin_binary_plot.py    # Binary map renderer (PySide6)
│   │   └── wafer_item_property_plot.py # Property heatmap renderer (PySide6)
│   └── statistic_plot/
│       └── pchart_plot.py       # P-chart renderer (matplotlib)
└── pchart/
    └── PchartReportWidget.py    # Legacy Qt widget (reference only)

Tech Stack

  • MCP: FastMCP — Streamable HTTP transport
  • Wafer map rendering: PySide6 offscreen QPainter
  • P-chart rendering: matplotlib + scipy + statsmodels

License

MIT

Reviews

No reviews yet

Sign in to write a review