# drawing-converter

Converts dimensions, tolerances, threads and roughness on technical drawing PDFs between metric and imperial, then writes a converted copy.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI
- Author: imnoo-team
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/imnoo-team/drawing-converter-mcp
- Updated: 2026-09-11
- HTML: https://affpapa.org/en/nevibecode/mcp/drawing-converter

## What it does

Five tools go to the assistant. `convert_value` handles a single number: a length, a tolerance deviation, an Ra roughness, a weight or a thread designation. `convert_text` takes a printed callout and keeps its notation, so `Ø30 H7` comes back as `Ø1.1811 H7` and `M8` as `5/16-18 UNC`. `lookup_thread` cross-references ISO metric against UNC from M2 to M30. `extract_drawing_text` reads the PDF text layer and returns every token with its position and rotation plus a guess at the drawing's unit system. `convert_drawing_pdf` then saves a new copy with converted values stamped over the original callouts, matching size and rotation. The source file stays untouched.

Deciding what each token means is left to the model. The server hands over the raw tokens, the assistant marks which are real values and whether a bare `3.2` is a length or a roughness, and passes that as `classifications`. Everything runs offline and deterministic, with no API keys and no cloud calls. Thread conversions always carry a warning that metric and inch threads are not interchangeable.

Node.js 18 or newer is required. The PDF needs a text layer, so scans and flattened CAD exports will fail. One page per call is converted, picked by the `page` parameter, and the rest pass through unchanged. Fractional-inch callouts such as `1 3/4` are not converted yet. Converted figures sit on top of the old ones, so safety-critical dimensions need a human check before anything goes to the shop floor.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add drawing-converter -- npx -y drawing-converter-mcp
```

### Codex

**Platform CLI**
```bash
codex mcp add drawing-converter -- npx -y drawing-converter-mcp
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "drawing-converter": {
            "command": "npx",
            "args": [
                "-y",
                "drawing-converter-mcp"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "drawing-converter": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "drawing-converter-mcp"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add drawing-converter npx -y drawing-converter-mcp
```

## When to use it
- turn a metric drawing into inches without redrawing it
- find the nearest inch thread for an M8 hole
- restate a ±0.1 mm tolerance in inches while keeping the notation
- compare an Ra roughness in µm against µin
- pull every callout value out of a PDF with its coordinates

## Example prompts
- What is 84±0.1 mm in inches?
- Show the ISO metric to UNC thread chart from M2 to M30

## Similar
- [engineering-drawing](https://affpapa.org/en/nevibecode/skills/engineering-drawing.md) — skill · 2200 installs
- [document-converter-suite](https://affpapa.org/en/nevibecode/skills/document-converter-suite.md) — skill · 483 installs
- [KeyFlight PNR Converter](https://affpapa.org/en/nevibecode/mcp/keyflight-pnr-converter.md) — MCP server
- [PDF Converter](https://affpapa.org/en/nevibecode/skills/pdf-converter.md) — skill · 5200 installs
- [markdown-converter](https://affpapa.org/en/nevibecode/skills/markdown-converter.md) — skill · 1700 installs
- [markit-markdown-converter](https://affpapa.org/en/nevibecode/skills/markit-markdown-converter.md) — skill · 855 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
