Skip to main content
Glama

Wafer Map MCP Server

An MCP (Model Context Protocol) server that exposes semiconductor wafer analysis tools to AI assistants such as Claude Desktop.

Given a wafer test data file (CSV or ZIP), it renders:

  • Yield summary statistics

  • Binary pass/fail wafer map

  • Continuous-value PIN property heatmaps

  • Normal probability plots (P-charts) per wafer

All tools are accessible via a single HTTP endpoint, so any MCP-compatible client can use them.


Preview

Binary Map

Property Map

P-Chart

Binary Map

Property Map

P-Chart


Related MCP server: ML Research MCP

Tools

Tool

Description

run_wafer_analysis

Full analysis in one call: summary + binary map + all PIN maps + P-charts

get_wafer_info

Basic wafer summary (yield, pass/fail counts, PIN columns)

plot_wafer_bin

Binary pass/fail wafer map (BIN=0 → teal, else → black)

plot_wafer_property

Continuous-value heatmap for a single PIN column (blue → red)

plot_pchart

Normal 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

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.

Location

Path

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

Param

Type

Default

Description

file_path

str

required

Path to .csv or .zip file

pin_columns

list[str] | None

None

Subset of PIN columns to plot; None = all

target_size

int

300

Output image pixel size

get_wafer_info

Param

Type

Default

Description

file_path

str

required

Path to .csv or .zip file

plot_wafer_bin

Param

Type

Default

Description

file_path

str

required

Path to .csv or .zip file

target_size

int

300

Output image pixel size

plot_wafer_property

Param

Type

Default

Description

file_path

str

required

Path to .csv or .zip file

pin_column

str

"PIN_1"

PIN column to visualise

target_size

int

450

Output image pixel size

data_l

float | None

None

Override lower bound of colour scale

data_h

float | None

None

Override upper bound of colour scale

plot_pchart

Param

Type

Default

Description

file_path

str

required

Path to .csv or .zip file

pin_column

str

"PIN_1"

PIN column to plot

target_size

int

300

Output 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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to access, analyze, and extract information from STDF-V4 semiconductor test data files, supporting metadata extraction, parametric analysis, yield calculations, and multi-site test data filtering with CSV/Excel export capabilities.
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides machine learning researchers with tools for creating publication-quality scientific visualizations, statistical plots, and 2D data representations. It streamlines the research workflow by enabling AI assistants to generate complex figures from CSV, JSON, or direct data inputs.
    8
    9
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to perform statistical process control calculations using validated, deterministic tools such as control charts, capability analysis, and tolerance intervals.
    3
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to create data visualizations like bar charts, line charts, pie charts, scatter plots, and histograms, returning inline SVG or PNG files.
    5
    MIT