Skip to main content
Glama
imnoo-team

quality-control-plan-mcp

Quality Control Plan MCP Server

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

Tools

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.

Related MCP server: Visual Document Forensics MCP Server

Installation

Requires Node.js ≥ 18.

Claude Code

claude mcp add quality-control-plan -- npx -y quality-control-plan-mcp

Claude Desktop

Add to claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "quality-control-plan": {
      "command": "npx",
      "args": ["-y", "quality-control-plan-mcp"]
    }
  }
}

Cursor

Add to Cursor — or add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "quality-control-plan": {
      "command": "npx",
      "args": ["-y", "quality-control-plan-mcp"]
    }
  }
}

VS Code (GitHub Copilot)

code --add-mcp '{"name":"quality-control-plan","command":"npx","args":["-y","quality-control-plan-mcp"]}'

Windsurf / other stdio clients

Any client that launches stdio servers works with:

npx -y quality-control-plan-mcp

Configuration (optional)

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).

Example session

You: Build a Q1 quality plan for C:\drawings\flange.pdf with 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. calls build_quality_plan with inspection_class: "Q1" and numbering: { 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)… calls export_inspection_pdf and export_quality_plan_excel with the same plan — wrote QP-1001-A_inspection-package.pdf (both drawing pages ballooned + the printed plan) and QP-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 options (the 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)

How the plan is derived

  • Acceptance limits exist for plain dimensional tolerances with a numeric nominal (nominal + lower / upper deviation, rounded to 2 decimals). Fits, threads, geometric tolerances and surface finishes are gauged rather than measured against limits — the same rule as the Imnoo calculator.

  • Balloon numbers are derived from the selection and the numbering settings, so dropping a characteristic renumbers the rest automatically; a number printed on the drawing is kept in custom order.

  • A measured samples value is judged pass / fail against the limits; results and dates appear in both documents.

  • The default section order is the measurement workflow: geometric tolerances (CMM) first, surface finishes (roughness gauge) last.

Limitations

  • The drawing analysis is automated: it can miss or misread characteristics, especially on low-quality scans — verify the plan against the drawing (rows[].value corrects a value, exclude drops a row).

  • Free tier: 1 analysis per day per IP address; PDFs up to 30 MB. Saved analyses (save_analysis_toload_analysis) are unlimited and offline.

  • Hand-drawn characteristics, dragging balloons and saving the plan into the Imnoo calculator are features of the web app only.

  • Encrypted or unusual PDFs that cannot be copied fall back to variant: "plan" here (the web app rasterises them instead).

Development

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.

About Imnoo

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.

Planning

  • Automatic manufacturing planning — production plans generated straight from the quote.

  • Machine recommendation — every job routed to the machine that runs it best.

  • Catalog & purchase part management — norm parts, screws, and bought-in components recognized straight from the BOM, managed and priced alongside your machined parts.

  • Raw material sourcing — price, source, and order material without leaving the workflow.

  • Purchase part & external step sourcing — bought-in components, coating, heat treatment, and subcontracting sourced and ordered in the same flow.

  • Beyond milling & turning — deep hole drilling, sheet metal, casting, and profile parts.

Scheduling & Workflow

  • Scheduling & smart reminders — via email, Telegram, or WhatsApp. Nothing slips.

  • Email-to-quote automation — a messy inbox in, structured quotes out.

  • AI customer agents — RFQ answers, clarifications, and follow-ups handled automatically.

  • Built-in lightweight ERP — orders, companies, payment terms, and margins without the bulky software.

Quoting & Estimation

  • Complete assemblies, exploded automatically — upload one assembly file and Imnoo blows it out into single parts: every component recognized, drawings matched to the right parts, sub-assemblies nested, purchase parts pulled from the BOM. Quote the whole machine as easily as one part.

  • CNC quoting in one place — milling, turning, and EDM jobs quoted from a single AI-powered platform.

  • AI cost & cycle-time estimation — know price, time, and effort before engineering ever looks at it.

  • Drawing-only estimation — quote from the PDF alone. No 3D model needed.

  • Feature-by-feature costing — see exactly which holes, pockets, and tolerances drive the price.

  • Instant quotes — respond in minutes while competitors are still opening the STEP file.

  • 24/7 instant-quoting webshop — customers upload parts and buy while you sleep.

  • Instant market-price benchmarking — know where your bid stands before you send it.

  • Hourly-rate calculation — your true machine and labor rates, always current.

  • Imperial ⇄ metric conversion — international RFQs without manual cleanup.

Libraries & Insights

  • Tool library — your cutting tools, holders, and parameters in one managed catalog.

  • Material library — standard and custom materials with live supplier pricing.

  • Quoted-parts database — every part you've ever quoted, searchable by geometry: similar part found, price found.

  • Statistics & analytics — win rates, margins, throughput, and quoting performance at a glance.

  • Shop optimization — learn from already-quoted parts to sharpen prices, spot profitable niches, and load the right machines.

Drawing Intelligence

  • DFM — Design for Manufacturing — manufacturability checked before you quote: undercuts, thin walls, unreachable features, and impossible tolerances flagged with the part still on the screen.

  • Quality check protocols — inspection plans generated automatically: stamped and numbered drawing features, inspection classes and rates, ready-to-use measurement reports.

  • Axis & orientation detection — AI finds the best part orientation and machining axes.

  • Automatic tolerance extraction — critical tolerances pulled straight off the drawing.

  • 2D-to-3D tolerance matching — drawing requirements linked to the right model features.

CAM & Shop Intelligence

  • AI tool recommendation — stop searching catalogs: Imnoo suggests the exact cutting tools for every feature.

  • Automatic toolpath generation — from quote to machining strategy in one step.

  • G-code generation & estimation — generate and evaluate programs before work hits the floor.

  • Machine connection — your machines feed real production data back into the AI. Every quote gets smarter.

IP Protection & Data Security — Engineered Like a Swiss Vault

  • Physically separated data — every manufacturer runs in its own isolated environment. Your drawings, prices — never pooled with anyone else's: not for storage, not for AI training.

  • Automatic drawing masking & redaction — customer names, logos, and confidential data hidden before a drawing ever leaves your workflow. Share with suppliers and subcontractors without exposing whose part it is.

  • Your customers' IP, treated like your own — end customers' designs stay within your tenant, full stop.

  • Swiss hosting & end-to-end encryption — data sovereignty and security engineered to Swiss standards.

  • Trusted at scale — over 3,000 manufacturers run their quoting on Imnoo.

Quote the complete job — not just the spindle time.

👉 Book a demo at imnoo.com

License

MIT © Imnoo AG

Available Tools

5 tools
analyze_drawingAnalyse a drawing PDF (Imnoo drawing analysis)A

Upload a technical-drawing PDF to Imnoo's drawing analysis and return every inspection characteristic it detects — dimensional tolerances (⌀50 ±0.05, 12 +0.2/-0.1), ISO fit classes (H7 drills, g6 shafts), threads and fine threads, geometric tolerances (GD&T frames) and surface finishes (Ra/Rz) — each with a feature id, value, PDF page, position and the balloon number printed on the drawing when there is one, plus the title block (drawing/article number, material, general tolerance). Analysis takes roughly 20–120 s; the call waits up to timeout_seconds and otherwise returns status "processing" with the drawing_id to resume with. analyze_drawing uploads the PDF to Imnoo's drawing analysis (the service behind the web app): 1 free analysis per day per IP address, more when signed in; uploaded files are deleted automatically after a short retention period and nothing else is stored. Use save_analysis_to to keep the analysis JSON for offline reuse with load_analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
pdf_pathNopath to the drawing PDF to analyse (vector or scanned, ≤ 30 MB)
drawing_idNoinstead of pdf_path: the drawing_id of an earlier upload that returned status "processing" — keeps waiting for it without a new upload
timeout_secondsNohow long to wait for the analysis before returning "processing" (default 180)
save_analysis_toNowrite the analysis JSON to this path (re-open it later with load_analysis, no upload needed)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (openWorldHint, non-idempotent), the description discloses latency (20–120 s), timeout semantics (waits up to timeout_seconds, else returns "processing" with a drawing_id), rate limits, and the privacy/retention behaviour of uploaded files. These are exactly the traits an agent needs before committing to a slow, non-idempotent upload.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the extraction payload and then the operational constraints, and every clause carries information. Minor waste: the second sentence opens by restating 'analyze_drawing uploads the PDF to Imnoo's drawing analysis' before pivoting to the new rate-limit and retention facts, and the long characteristic enumeration is dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the full return-value burden — and it does: per-characteristic feature id, value, PDF page, position and balloon number, plus the title block fields, and the "processing" fallback state. Combined with the timeout and resume mechanics, nothing needed to call or interpret this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description goes further by explaining the consequence of timeout_seconds (returning "processing" rather than failing), the resume semantics of drawing_id, and the offline-reuse purpose of save_analysis_to. It adds genuine meaning beyond the field descriptions, though it does not restate size/type limits.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource (analyse a technical-drawing PDF) and enumerates exactly what is extracted: dimensional tolerances, ISO fit classes, threads, GD&T frames, surface finishes, plus title-block fields. This is far more specific than any sibling (load_analysis, build_quality_plan, export_*), so an agent can select it unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the two entry paths explicitly: upload via pdf_path, or resume an in-flight analysis via drawing_id when a prior call returned status "processing". It also routes to alternatives by name — save_analysis_to/load_analysis for offline reuse — and flags the rate-limit condition (1 free analysis/day per IP, more when signed in).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

build_quality_planBuild the quality control planA
Read-only

Turn an analysed drawing into the quality control plan the documents will print: one row per characteristic with its balloon number (numeric, padded or type-prefixed; printed drawing numbers kept by default), acceptance limits computed from nominal ± tolerance (dimensional tolerances only — fits, threads, GD&T and surface finishes are judged with gauges), the default measuring instrument per type, the inspection class/rate, and the section order. Deterministic and offline: adjust the plan options and call again until the plan is right, then pass the same options to the export tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
planNoPlan settings — shared by build_quality_plan and both export tools; pass the same object to every call so the documents match the reviewed plan. Everything is optional; defaults reproduce the web app's initial plan.
drawing_idYesfrom analyze_drawing or load_analysis

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=false, and the description corroborates with 'deterministic and offline' plus the iterate-then-export workflow, making clear the call is a non-persisting preview that is safe to repeat. It does not add auth, rate, or side-effect detail beyond that, but the annotation-consistent framing is genuinely useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the output and its distinguishing scope, with the workflow constraint second. The first sentence is dense with enumerated plan contents but each clause maps to real behavior rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a large nested options object and no output schema, the description explains what the plan contains and that it is deterministic/reproducible, and points to drawing_id's provenance via analyze_drawing/load_analysis. It never sketches the returned plan shape, which is the only real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every field; the description adds value by framing the plan object as 'shared by build_quality_plan and both export tools' and summarizing what the options drive (balloon numbering, computed acceptance limits, default instruments, class/rate, section order). It stops short of adding syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('turn an analysed drawing into the quality control plan') and immediately scopes it as the plan 'the documents will print', which separates it from the sibling export tools that render that plan. An agent can tell what it produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit workflow: 'adjust the plan options and call again until the plan is right, then pass the same options to the export tools', which positions it as the step before the export siblings. It does not name the export tools explicitly or state when not to use it, so it falls short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_inspection_pdfExport the ballooned drawing / inspection package PDFA
Idempotent

Write the inspection PDF. variant "package" (default): the original drawing pages with translucent boxes on every selected characteristic, numbered balloons and optional leader arrows, followed by the printed plan (general-information form, feature table with colored number chips, instrument and sample fill-in lines, acceptance criteria and result checkboxes, final approval). "ballooned": the marked-up drawing pages only. "plan": the plan document only (no drawing pages, no PDF needed). The source PDF is never modified. Default location: next to the drawing PDF as _inspection-package.pdf / _ballooned.pdf / _quality-plan.pdf.

ParametersJSON Schema
NameRequiredDescriptionDefault
planNoPlan settings — shared by build_quality_plan and both export tools; pass the same object to every call so the documents match the reviewed plan. Everything is optional; defaults reproduce the web app's initial plan.
variantNodefault package
pdf_pathNothe original drawing PDF when the server does not know it yet (load_analysis without pdf_path)
overwriteNoallow replacing an existing file
drawing_idYesfrom analyze_drawing or load_analysis
output_pathNotarget .pdf path, or a directory (default: next to the drawing PDF, else the working directory)

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false with destructiveHint=false and idempotentHint=true, and the description usefully reinforces this with "The source PDF is never modified" plus the default write location and derived filenames. It adds real behavioral context beyond the annotation flags, though it does not mention what happens on a filename collision or what it returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action is front-loaded in the first clause and the remaining sentences each carry distinct information about the variants and the untouched source file. It is dense rather than bloated, though the run-on variant sentence with quoted labels is harder to scan than a short list would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a write tool with a large nested plan object, the description covers the highest-risk ambiguity (which PDF you get) and the source-file safety guarantee. With no output schema, the one remaining gap is that it never says what the call returns or how to reference the written file, which an agent would need for a follow-up step.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine value by spelling out what each variant actually renders and by giving the output filename convention per variant (<drawing number>_inspection-package.pdf / _ballooned.pdf / _quality-plan.pdf), which the schema only alludes to via 'default package'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening "Write the inspection PDF" gives a specific verb+resource, and the three variant descriptions pin down exactly what artifacts are produced (marked-up drawing pages, plan document, or both). It does not, however, distinguish this tool from its sibling export_quality_plan_excel, leaving the agent to infer the PDF-vs-Excel split from names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what each variant outputs but never states when to choose this tool over build_quality_plan or export_quality_plan_excel, nor any prerequisites beyond the optional pdf_path note. Variant selection guidance is present, but tool-selection guidance is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_quality_plan_excelExport the Excel measurement and inspection reportA
Idempotent

Write the quality plan as the "Measurement and inspection report" workbook (.xlsx): headline with the inspection class, header block (article name, ET-No., batch number, inspection rate), the visual-inspection checklist (a–e), the 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. Default location: next to the drawing PDF as _.xlsx.

ParametersJSON Schema
NameRequiredDescriptionDefault
planNoPlan settings — shared by build_quality_plan and both export tools; pass the same object to every call so the documents match the reviewed plan. Everything is optional; defaults reproduce the web app's initial plan.
overwriteNoallow replacing an existing file
drawing_idYesfrom analyze_drawing or load_analysis
output_pathNotarget .xlsx path, or a directory (default: next to the drawing PDF, else the working directory)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as a non-read-only, idempotent, non-destructive, closed-world write, so the safety profile is covered. The description adds genuine behavioral value by detailing what ends up cell-for-cell in the workbook, but says nothing about whether the drawing/PDF files are touched, what happens if the target file already exists (that is schema-only), or what the call returns (e.g. the written path).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence opens with the verb and artifact, then spends the rest on a concrete manifest of report contents; a short second sentence covers the default location. The column enumeration is long but defensible since it defines the deliverable, and there is no boilerplate filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, nested-schema export tool with no output schema, the description conveys what the generated artifact contains, its naming convention, and its default location, which is what an agent needs before invoking. It is slightly short on cross-tool sequencing (analyze/load → build_quality_plan → export) and on the return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including the deeply nested plan object is already documented at source; the description does not need to compensate. It adds only the path-convention detail (<drawing number>_<inspection class>.xlsx) which partially overlaps the output_path description, so it does not meaningfully exceed the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and artifact — write the quality plan as the "Measurement and inspection report" workbook (.xlsx) — and enumerates the exact sections produced. The Excel-vs-PDF distinction from export_inspection_pdf is implied by the format and content but the sibling is never named, so an agent must infer the routing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: you call this when you want the report as a spreadsheet. There is no explicit statement of when to prefer this over export_inspection_pdf, no prerequisite about having a plan built first, and no note on when overwriting is appropriate (that lives only in the schema). The default-location sentence is the only concrete operational guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_analysisOpen a saved drawing analysis (offline)A
Read-only

Open a drawing analysis JSON saved earlier (analyze_drawing with save_analysis_to, or the Imnoo FileStore analysis document) and register it as a drawing for the plan and export tools. Fully offline — no upload, no daily credit. Pass pdf_path as well so the drawing exports can draw on the original PDF and write next to it.

ParametersJSON Schema
NameRequiredDescriptionDefault
pdf_pathNopath to the matching drawing PDF (needed for the ballooned/package PDF exports)
drawing_idNoid to register the drawing under (default: the analysis id, else the file name)
analysis_pathYespath to the analysis JSON

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false; the description reinforces this with 'Fully offline — no upload, no daily credit,' which is genuine cost/side-effect context beyond the annotations. It notes the registration side effect on plan/export tools, though it doesn't detail what happens on a duplicate or invalid analysis.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action, then the offline/cost note, then the pdf_path tip. No padding, though the middle sentence interrupts the primary how-to flow slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read/register tool with no output schema and full schema coverage, the description covers source formats, prerequisites, cost profile, and the optional-but-advised pdf_path. It lacks detail on error behavior (missing/invalid analysis file) and the exact return, but annotations carry the safety profile and nothing essential to invoking it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented in the schema. The description adds the rationale for pdf_path (needed for ballooned/package PDF exports and writing next to the original), which slightly exceeds the schema, but the baseline for full schema coverage is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (open/register) with the resource (a previously saved analysis JSON), and explicitly distinguishes the two source formats (analyze_drawing save output vs. Imnoo FileStore analysis document). It also names the downstream effect — registering as a drawing usable by plan and export tools — which separates it from the analyze_* sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear precondition (an analysis saved earlier via analyze_drawing with save_analysis_to) and the alternative source. It also advises passing pdf_path so exports work. However, it does not state when NOT to use this tool versus re-running analyze_drawing, so exclusions are implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.1.0
    • First observedanalyze_drawing
    • First observedbuild_quality_plan
    • First observedexport_inspection_pdf
    • First observedexport_quality_plan_excel
    • First observedload_analysis

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct stage of one pipeline: extract characteristics (analyze_drawing), register an offline copy (load_analysis), assemble the plan (build_quality_plan), and emit documents (export_quality_plan_excel, export_inspection_pdf). The two export tools are cleanly separated by output format, and analyze_drawing vs load_analysis are distinguished as online upload vs fully offline registration.

Naming Consistency5/5

All five names follow a consistent verb_noun snake_case pattern (analyze_drawing, load_analysis, build_quality_plan, export_quality_plan_excel, export_inspection_pdf). The two export tools share the export_ prefix, making the set predictable.

Tool Count5/5

Five tools map exactly onto the natural workflow (ingest → register → build → export in two formats), each earning its place with no redundancy. This is a well-scoped, right-sized surface for the domain.

Completeness4/5

The surface covers the full lifecycle from drawing analysis through plan construction to Excel/PDF output, and build_quality_plan is re-callable to iterate on options. Minor gaps exist — no tool to list, manage, or delete previously registered drawings/analyses, and no direct way to edit individual characteristics without rebuilding.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables AI-powered extraction and analysis of PDF documents with 40+ specialized tools for text, tables, images, layout analysis, security assessment, and document intelligence. Supports both text-based and scanned PDFs with OCR capabilities.
    10
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables deterministic visual and structural analysis of PDF and DOCX documents, extracting measurable evidence such as blur, OCR confidence, and image anomalies for auditable forensic workflows.
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Converts architectural PDF plans into dimension-verified millimetre geometry, IFC models, and CPU-rendered views, with built-in validation for boundaries, areas, and overlaps.
    MIT