# text-to-reality (pypi · text-to-reality)

Turn an idea into a device anyone can build: parts, printed parts, wiring, code and a picture guide.

- Trust score: 79/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- pypi · `text-to-reality`: 79/100 (this document), [markdown](https://verifymcp.io/servers/ai-wes-text-to-reality/text-to-reality.md), [page](https://verifymcp.io/servers/ai-wes-text-to-reality/text-to-reality)

## Channel facts

- Registry: `pypi`
- Package: `text-to-reality`
- Version: `0.1.1`
- 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-11-05.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs hatchling.build at install time, a recognised build step with no custom scripting around it.
  - 1 of 28 dependencies flagged as unhealthy.
- **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 29 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 76/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 985 tokens (~61/item across 16 items; 13 tools + 3 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 73/100
  - Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 13 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the text-to-reality MCP server?

text-to-reality runs locally as a PyPI package, launched with uvx text-to-reality mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add ai-wes-text-to-reality -- uvx text-to-reality mcp
```

### Cursor

```json
{
  "mcpServers": {
    "ai-wes-text-to-reality": {
      "command": "uvx",
      "args": [
        "text-to-reality",
        "mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "ai-wes-text-to-reality": {
      "command": "uvx",
      "args": [
        "text-to-reality",
        "mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add ai-wes-text-to-reality -- uvx text-to-reality mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-wes-text-to-reality": {
      "type": "local",
      "command": [
        "uvx",
        "text-to-reality",
        "mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ai-wes-text-to-reality --command uvx --arg text-to-reality --arg mcp
```

### Hermes

```yaml
mcp_servers:
  ai-wes-text-to-reality:
    command: "uvx"
    args: ["text-to-reality", "mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "ai-wes-text-to-reality": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "text-to-reality",
        "mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add ai-wes-text-to-reality -t stdio -c uvx -a text-to-reality mcp
```

### Other

```json
{
  "mcpServers": {
    "ai-wes-text-to-reality": {
      "command": "uvx",
      "args": [
        "text-to-reality",
        "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-11-05 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 77, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-10-31 (score 61, −15)

- [security regression] Malware scan: pass → unverified

### 2026-10-30 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 75, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-10-27 (score 59, −15)

- [security regression] Malware scan: pass → unverified

### 2026-10-26 (score 74, +15)

- [security improvement] Malware scan: unverified → pass

## MCP tools (13)

### `connector_guidance` (~68 tokens)

Read this before planning header wiring. Returns what JIG_ connectors are (a base that
holds each wire's plug in order plus a snap-on cover), which headers they fit, how many to
use, how to list them, and the steps to load them and plug them on.

### `create_project` (~65 tokens)

Start a build. `brief` is the idea in plain words plus anything known: size, power, budget,
parts the person already owns, and how they'll know it works. Creates a folder with brief.md.

Input parameters:

- `brief` (string, required)
- `name` (string, required)

### `list_projects` (~15 tokens)

List builds in the projects folder.

Output parameters:

- `result` (array)

### `project_status` (~35 tokens)

Show each stage, its files, what to do next, and files edited since they were recorded.

Input parameters:

- `project` (string, required)

### `record_files` (~69 tokens)

Record files you've written (paths relative to the project folder) under a stage:
requirements, parts, mechanical, electronics, firmware, assembly or testing.
Recording fingerprints each file so later edits are caught.

Input parameters:

- `paths` (array, required)
- `project` (string, required)
- `stage` (string, required)

### `set_stage` (~64 tokens)

Set a stage to todo, done or not_applicable. not_applicable needs a reason
(for example, a printed-only object has no electronics).

Input parameters:

- `project` (string, required)
- `reason`
- `stage` (string, required)
- `status` (string, required)

### `check_package` (~73 tokens)

Check the build is complete and consistent: every stage finished, files unchanged since
recorded, bom.json and wiring.json valid, JIG_ connectors in the parts list, an assembly guide
present. Returns problems to fix and links to get the JIG_ parts the build uses.

Input parameters:

- `project` (string, required)

### `new_revision` (~39 tokens)

Start a new revision after a design change. Re-record files you change in it.

Input parameters:

- `note` (string, required)
- `project` (string, required)

### `log_outcome` (~65 tokens)

Record what happened when the build was tried: worked, partly_worked or failed, with what
was learned. Read it back with build_history before designing the next one.

Input parameters:

- `note` (string, required)
- `project` (string, required)
- `result` (string, required)

### `build_history` (~29 tokens)

Everything that happened to a build: files recorded, revisions, outcomes.

Input parameters:

- `project` (string, required)

Output parameters:

- `result`

### `find_jig_parts` (~54 tokens)

Look up JIG_ parts that remove soldering, crimping and breadboards: wire connectors,
a XIAO battery adapter, and complete kits. Empty query lists everything.

Input parameters:

- `query` (string)

Output parameters:

- `result` (array)

### `board_headers` (~49 tokens)

Header rows (pins per row) for common boards and modules: XIAO, Pico, ESP32 DevKit,
Arduino Nano, SSD1306 OLED and more.

Input parameters:

- `query` (string, required)

Output parameters:

- `result` (array)

### `connectors_for_boards` (~139 tokens)

Which JIG_ wire connectors a build needs: one per header row, sized to the whole row.
\`boards` is a list of {"board": name, "quantity": n}, or {"board": label, "rows": [pins, ...],
"quantity": n} for a board that isn't in the catalog. `size` is small or large, matching the
jumper wire plugs. row_checks lists what to confirm on the real board. Custom `headers` take
the catalog row fields plus gender, rows, shrouded and preinstalled.

Input parameters:

- `boards` (array, required)
- `size` (string)

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/ai-wes-text-to-reality/text-to-reality#diagnostics

## Score history

- 2026-11-05: 79
- 2026-11-04: 78
- 2026-11-03: 78
- 2026-11-02: 77
- 2026-11-01: 77
- 2026-10-31: 61
- 2026-10-30: 76
- 2026-10-29: 75
- 2026-10-28: 75
- 2026-10-27: 59
- 2026-10-26: 74
- 2026-10-25: 59
- 2026-10-24: 73
- 2026-10-23: 73
- 2026-10-22: 72
- 2026-10-21: 72
- 2026-10-20: 68
- 2026-10-19: 68
- 2026-10-18: 68
- 2026-10-17: 68
- 2026-10-16: 68
- 2026-10-15: 68
- 2026-10-14: 68
- 2026-10-13: 39
- 2026-10-12: 24
- 2026-10-07: 24

## Common questions

### What is the text-to-reality MCP server?

text-to-reality is an MCP server listed in the public MCP registry as io.github.ai-wes/text-to-reality. Turn an idea into a device anyone can build: parts, printed parts, wiring, code and a picture guide. This page covers its PyPI package (text-to-reality).

### Is the text-to-reality MCP server safe to use?

text-to-reality scores 79 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the text-to-reality MCP server expose?

text-to-reality exposes 13 tools: connector_guidance, create_project, list_projects, project_status, record_files, and 8 more. Their descriptions and schemas cost roughly 764 tokens of context every time the server is loaded.

### Is the text-to-reality MCP server still maintained?

text-to-reality is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the text-to-reality MCP server under?

text-to-reality declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

### What did VerifyMCP test on the text-to-reality MCP server?

VerifyMCP ran 16 checks on text-to-reality, covering Malware scan, Known CVEs, Install scripts, Dependency health and 12 more. Endpoint Security and Transport & Reachability do not apply to a PyPI package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- PyPI project: https://pypi.org/project/text-to-reality/
- Socket report: https://socket.dev/pypi/package/text-to-reality
- Repository: https://github.com/ai-wes/text-to-reality
- Changelog RSS feed: https://verifymcp.io/servers/ai-wes-text-to-reality/text-to-reality.xml
- Changelog JSON feed: https://verifymcp.io/servers/ai-wes-text-to-reality/text-to-reality/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/ai-wes-text-to-reality/text-to-reality.json
- HTML version of this page: https://verifymcp.io/servers/ai-wes-text-to-reality/text-to-reality
