# com.imnoo/drawing-converter (npm · drawing-converter-mcp)

Metric ⇄ imperial for technical drawings: dimensions, tolerances, ISO fits, threads, roughness.

- Trust score: 69/100 (medium)
- Change this week: +45
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `drawing-converter-mcp`: 69/100 (this document), [markdown](https://verifymcp.io/servers/com-imnoo-drawing-converter/drawing-converter-mcp.md), [page](https://verifymcp.io/servers/com-imnoo-drawing-converter/drawing-converter-mcp)

## Channel facts

- Registry: `npm`
- Package: `drawing-converter-mcp`
- Version: `0.1.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (113 of 117), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (113 of 117), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 13 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 75/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1213 tokens (~242/item across 5 items; 5 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 96/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 89% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add com-imnoo-drawing-converter -- npx -y drawing-converter-mcp
```

### Codex

```bash
codex mcp add com-imnoo-drawing-converter -- npx -y drawing-converter-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-imnoo-drawing-converter": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "drawing-converter-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-imnoo-drawing-converter --command npx --arg -y --arg drawing-converter-mcp
```

### Hermes

```yaml
mcp_servers:
  com-imnoo-drawing-converter:
    command: "npx"
    args: ["-y", "drawing-converter-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "com-imnoo-drawing-converter": {
      "command": "npx",
      "args": [
        "-y",
        "drawing-converter-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 69, −2)

No change was recorded against any check on this day. Supply Chain Security went from 97 to 87. Other categories moved too: Stability & Change Management rose 4.

### 2026-08-02 (score 71, +66)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Schema quality: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] Licence: MIT

### 2026-08-01 (score 5, −30)

- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified

### 2026-07-31 (score 35, −26)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 61, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-29 (score 79, +53)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Schema quality: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: good
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 89
- [functional] First check of Schema quality: fail
- [functional] Licence: MIT

### 2026-07-28 (score 26, +2)

- [functional improvement] Dependency health: unverified → partial

### 2026-07-27 (score 24)

First indexed and scored.

## MCP tools (5)

### `convert_value` (~200 tokens)

Convert a single engineering value

Convert one engineering value between metric and imperial with shop-floor precision rules. Kinds: length (mm⇄in), tolerance_deviation (a ± deviation, keeps an extra significant digit), geometric_tolerance (GD&T value), surface_roughness (Ra µm⇄µin), weight (kg⇄lb), thread (designation lookup, e.g. "M8" ⇄ "5/16-18 UNC"). Returns the exact value, the display-rounded value, and how it was derived (exact/rounded/table/nearest) with a confidence score.

Input parameters:

- `designation` (string): thread designation, e.g. "M8", "M8x1.25", "1/4-20 UNC" — required for kind=thread
- `from` (string, required): unit system the value is currently in
- `kind` (string, required)
- `value` (number): numeric value — required for every kind except thread

### `convert_text` (~215 tokens)

Convert an engineering callout string

Convert a printed drawing callout (or short text with several callouts) between metric and imperial, preserving notation: "Ø30 H7" → "Ø1.1811 H7", "84±0.1" → "3.3071±0.0039", "R13" → "R0.5118", "M8" → "5/16-18 UNC", "1/4-20 UNC" → "M6". Angles (°) are left unchanged. Set category=surface to read bare numbers as Ra roughness instead of lengths. assume_lengths=true additionally converts every remaining number as a length (for tolerance-table rows like "bis 30").

Input parameters:

- `assume_lengths` (boolean): fallback: convert every number as a length when nothing else matched
- `category` (string): how to read bare numbers (default dimension = length; surface = Ra roughness)
- `from` (string, required): unit system the text is currently in
- `text` (string, required)

### `lookup_thread` (~103 tokens)

Cross-reference metric ⇄ inch threads

Look up the closest standard counterpart of a thread designation (ISO metric coarse ⇄ Unified UNC), with major diameters, pitch/TPI and how close the match is. Omit `designation` to get the whole cross-reference chart (M2–M30).

Input parameters:

- `designation` (string): e.g. "M8", "M12x1.75", "5/16-18 UNC", "#8-32 UNC" — omit for the full chart

### `extract_drawing_text` (~144 tokens)

Extract a drawing PDF’s text layer

Read the printed text tokens of one page of a technical-drawing PDF: each token with its index, text and position (page points, top-left origin, rotation in degrees), plus page geometry and a heuristic guess of the drawing’s unit system. Use the token indices to build `classifications` for convert_drawing_pdf when you want to decide yourself which tokens are convertible values (e.g. mark a bare "3.2" next to a surface symbol as category=surface, or a title-block number as skip).

Input parameters:

- `page` (integer): 1-based page number (default 1)
- `path` (string, required): path to the drawing PDF

### `convert_drawing_pdf` (~339 tokens)

Convert a drawing PDF between metric and imperial

Produce a converted copy of a technical-drawing PDF with every recognised value stamped in place (white cover over the original callout, converted text in matching size/rotation) — dimensions, ± tolerances, fit classes, Ø/R callouts, threads. The input file is never modified. Without `classifications`, a heuristic converts unambiguous callouts plus (by default) bare numbers as lengths; for full control call extract_drawing_text first and pass per-token classifications. Requires a PDF with a text layer — scanned drawings need the web app (https://metric-to-imperial-converter.imnoo.com). Converted values are stamped over the original callouts. Verify safety-critical dimensions before manufacturing use.

Input parameters:

- `bare_numbers` (string): heuristic mode only — 'convert' (default) treats bare numbers as lengths (year-like and id-like integers excluded); 'skip' converts only unambiguous callouts
- `classifications` (array): authoritative per-token classification: when provided, ONLY listed tokens (minus skips) are converted
- `input_path` (string, required): path to the source drawing PDF (read-only)
- `output_path` (string): where to write the converted PDF (default: next to the input as <name>.<target>.pdf)
- `overwrite` (boolean): allow replacing an existing output file
- `page` (integer): 1-based page to convert (default 1); other pages pass through unchanged
- `source_system` (string): unit system of the source drawing (default auto-detect from its text)
- `target_system` (string): default: the opposite of the source system

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/com-imnoo-drawing-converter/drawing-converter-mcp#diagnostics

## Score history

- 2026-08-03: 69
- 2026-08-02: 71
- 2026-08-01: 5
- 2026-07-31: 35
- 2026-07-30: 61
- 2026-07-29: 79
- 2026-07-28: 26
- 2026-07-27: 24

## Links

- npm package: https://www.npmjs.com/package/drawing-converter-mcp
- Socket report: https://socket.dev/npm/package/drawing-converter-mcp
- Repository: https://github.com/imnoo-team/drawing-converter-mcp
- Website: https://metric-to-imperial-converter.imnoo.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-imnoo-drawing-converter/drawing-converter-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-imnoo-drawing-converter/drawing-converter-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-imnoo-drawing-converter/drawing-converter-mcp
