Quality control plans from drawing PDFs: auto-extracted tolerances, balloons, Excel + PDF reports.
Generate quality control plans and inspection reports from technical-drawing PDFs — from any MCP-enabled assistant.
This Model Context Protocol server exposes the engine behind quality-check-protocol.imnoo.com (by Imnoo). Need a quality control plan for a technical drawing? Hand the PDF to your assistant and get a numbered inspection plan in about a minute: every dimensional tolerance, ISO fit, thread, geometric tolerance (GD&T) and surface finish is extracted automatically by Imnoo's drawing analysis, ballooned on the drawing and listed with its acceptance limits — ⌀50 ±0.05 becomes 49.95–50.05 — and a measuring instrument. Ask for an inspection class (100 % full inspection, Q1 reduced, Q2 spot check), keep the balloon numbers printed on the drawing or renumber them (1, 001 or D001 style, in reading or measurement order), then let it write the ballooned drawing, the complete inspection package or the Excel measurement and inspection report — the same documents the Imnoo calculator produces. It covers first-article inspection, PPAP-style dimensional reports and shop-floor quality check protocols, on vector and scanned PDFs alike. Built by Imnoo, the planning, scheduling and quoting platform for CNC manufacturers — where the same quality check protocols come out of every quote, next to cost estimation, manufacturing plans and G-code generation.
"Create a Q1 quality plan for flange.pdf with type-prefixed balloon numbers"
│
▼ (your assistant calls the tools)
analyze_drawing ──► build_quality_plan ──► export_inspection_pdf + export_quality_plan_excel
│
▼
QP-1001-A_inspection-package.pdf D001 ⌀50 (±0.05) 49.95–50.05 Caliper
QP-1001-A_Q1.xlsx H001 ⌀10 H7 — Inside micrometer
G001 ⏥ 0.05 — CMM
| Tool | What it does |
|---|---|
analyze_drawing | Uploads a drawing PDF (vector or scanned, ≤ 30 MB) to Imnoo's drawing analysis — the service behind the web app — and returns every detected characteristic with type, value, PDF page, position, confidence and the balloon number printed on the drawing, plus the title block (drawing / article number, material, general tolerance). save_analysis_to keeps the analysis JSON for offline reuse. |
load_analysis | Opens a saved analysis JSON. Fully offline — no upload, no daily credit. |
build_quality_plan | Turns the analysis into the plan: balloon numbers (numeric, 001 padded, or type-prefixed D001 / H001 / G001…; printed numbers kept, or renumbered by list, reading direction or measurement sequence), acceptance limits from nominal ± tolerance, a default measuring instrument per type, inspection-class presets, selection presets (first-article = everything, production = measurable characteristics only) and per-row edits. Deterministic — iterate freely. |
export_quality_plan_excel | Writes the Measurement and inspection report workbook: header block (article, ET-No., batch, inspection rate), visual-inspection checklist a–e, dimensional-conformity table (Insp. dim. no. · nominal dimension or thread size · tolerance range · measuring instrument · actual dimension · deviation · date · inspector), change-tracking footnotes and the special-release / signature block. Cell for cell the report the Imnoo calculator produces. |
export_inspection_pdf | Writes the ballooned drawing (ballooned), the drawing plus the printed plan (package, default) or the plan document alone (plan): translucent boxes on every selected characteristic, numbered balloons with optional VDA-style leader arrows, the two-column general-information form, the feature table with colored number chips, instrument / sample fill-in lines, acceptance criteria and result checkboxes, and the final-approval block. The source PDF is never modified. |
Plus a create-quality-plan prompt that walks the assistant through analyze → review → export.
Where the analysis runs. analyze_drawing is the only tool that leaves your machine: it uploads the PDF to Imnoo's drawing analysis exactly like the web app does — 1 free analysis per day per IP address (more when signed in), uploaded files are deleted automatically after a short retention period, nothing else is stored. Everything after that — plan building, numbering, acceptance limits, Excel and PDF generation — runs locally and offline.
Requires Node.js ≥ 18.
claude mcp add quality-control-plan -- npx -y quality-control-plan-mcp
Add to claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"quality-control-plan": {
"command": "npx",
"args": ["-y", "quality-control-plan-mcp"]
}
}
}
Add to Cursor — or add to ~/.cursor/mcp.json:
{
"mcpServers": {
"quality-control-plan": {
"command": "npx",
"args": ["-y", "quality-control-plan-mcp"]
}
}
}
code --add-mcp '{"name":"quality-control-plan","command":"npx","args":["-y","quality-control-plan-mcp"]}'
Any client that launches stdio servers works with:
npx -y quality-control-plan-mcp
| Variable | Purpose |
|---|---|
IMNOO_ACCESS_TOKEN | Your Imnoo account token (the id token of your quality-check-protocol.imnoo.com login) — raises the daily analysis limit to your plan's quota. |
QCP_APP_URL | Point the analysis at another deployment of the web app (default https://quality-check-protocol.imnoo.com). |
You: Build a Q1 quality plan for
C:\drawings\flange.pdfwith type-prefixed numbers and write everything next to the drawing.Assistant: calls
analyze_drawing— 17 characteristics on 2 pages: 5 dimensional tolerances, 2 drill fits (⌀10 H7 carries the printed balloon 1), 1 shaft fit, 2 threads, 1 fine thread, 2 geometric tolerances, 4 surface finishes; drawing QP-1001-A, article 4711-050, AlMg3, ISO 2768-mK. callsbuild_quality_planwithinspection_class: "Q1"andnumbering: { style: "typePrefixed" }— D001 ⌀50 (±0.05) → 49.95–50.05 (Caliper), H001 ⌀10 H7 (Inside micrometer), G001 ⏥ 0.05 (CMM), R001 Ra 3.2 (Surface roughness gauge)… callsexport_inspection_pdfandexport_quality_plan_excelwith the same plan — wroteQP-1001-A_inspection-package.pdf(both drawing pages ballooned + the printed plan) andQP-1001-A_Q1.xlsx. Two values on page 2 were read with low confidence — worth a glance before the plan goes to the shop floor.
Those numbers are the bundled sample drawing the smoke test runs against; real drawings vary.
plan argument)One object, accepted by build_quality_plan and both export tools — pass the same one everywhere so the documents match the reviewed plan. Everything is optional; the defaults reproduce the web app's initial plan.
| Option | Values |
|---|---|
numbering.style | numeric (default), padded (001), typePrefixed (D001 dimensional, H drill fit, S shaft fit, T thread, F fine thread, G geometric, R surface roughness, L length) |
numbering.order | custom (default — balloon numbers printed on the drawing are kept, the rest fill up), list (plan-table order), reading (top-left → bottom-right, page by page), measurement (CMM-measured geometric tolerances first, surface finishes last) |
numbering.restart_per_type | restart the counter for every characteristic type |
section_order | e.g. ["dimensional", "geometric"] — listed types first, the rest in the default measurement sequence |
selection · include · exclude | all (default), production (dimensional, fits, geometric — no threads or surface finishes), none; or explicit feature ids |
inspection_class | 100% (rate 100 %, checklist on), Q1 (10 %, checklist on), Q2 (5 %, checklist off), or any custom class name |
header | batch_number, inspection_rate, inspection_class, inspector_name, signature, date |
drawing · article_name · drawing_index | title-block values to print when the analysis missed them (article / drawing number, material, general tolerance, article name, revision) |
default_tools | measuring instrument per type — defaults: CMM, thread plug gauge, caliper, inside / outside micrometer, depth caliper, surface roughness gauge |
rows[] | per characteristic (by feature_id): inspection_tool, samples (judged against the limits), passed, balloon, value (corrected value; the original is kept as a footnote) |
include_checklist · show_arrows · annotation | Excel checklist toggle, leader arrows on the drawing, an "INSPECTION DRAWING" stamp block (revision, note) |
custom order.samples value is judged pass / fail against the limits; results and dates appear in both documents.rows[].value corrects a value, exclude drops a row).save_analysis_to → load_analysis) are unlimited and offline.variant: "plan" here (the web app rasterises them instead).This package is built from the Quality Check Protocol monorepo at Imnoo, where it imports the web app's domain layer directly (drawing mapper, plan math, numbering engine, Excel and PDF builders) — so the web app and this server produce identical plans and documents by construction. Every release is gated on 61 end-to-end checks that drive all five tools over stdio against the bundled sample drawing.
Issues and feature requests are welcome in this repository.
Imnoo — The System for Manufacturers | AI Planning, Scheduling & Quoting · Complete Assemblies · DFM · Tool & Material Libraries · Quoted-Parts Database · Toolpath & G-Code · Machine Connection · Webshop · ERP · Shop Analytics & Optimization · Drawing Masking & IP Security
Plan It. Schedule It. Quote It. Win It. — trusted by over 3,000 manufacturers.
Imnoo is the AI-powered planning, scheduling, and quoting platform for CNC manufacturers — your automatic production platform. One system that covers it all: automatic manufacturing planning with raw-material, catalog and purchase-part, and subcontracting sourcing; scheduling with smart reminders and AI-driven customer workflows; and AI cost and cycle-time estimation for milling, turning, and EDM — even from a 2D PDF alone. Quote complete assemblies: drop in one file and Imnoo explodes it into single parts automatically — with DFM checks, quality protocols, tolerance extraction and 2D-to-3D matching, toolpath and G-code generation, tool and machine recommendations, and connected machines feeding real production data back into every quote. Built on your own tool and material libraries and a growing database of every part you've ever quoted — powering statistics, benchmarks, and shop optimization. Extends to deep hole drilling, sheet metal, casting, and profile parts — with a 24/7 webshop, built-in ERP, hourly-rate calculation, market-price benchmarking, and imperial ⇄ metric conversion. Your data lives in its own physically separated environment — automatic drawing masking, Swiss hosting, end-to-end encryption. From messy RFQ to production-ready order, on one platform.
Quote the complete job — not just the spindle time.
MIT © Imnoo AG
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y quality-control-plan-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"com-imnoo-quality-control-plan": {
"command": "npx",
"args": [
"-y",
"quality-control-plan-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceQuality Control Plan Generator works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.