# Ardor (mcpb · linux-x64)

NTRanch maker MCP: authoring, safety gates, playtest QA and release handoffs for adult games/apps.

- Trust score: 33/100 (low)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- mcpb · `linux-x64`: 33/100 (this document), [markdown](https://verifymcp.io/servers/ntranch-ardor/ardor-mcp-linux-x64.md), [page](https://verifymcp.io/servers/ntranch-ardor/ardor-mcp-linux-x64)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/NTRanch/ardor/releases/download/v0.1.0/ardor-mcp-0.1.0-linux-x64.mcpb`
- Transport: `stdio`
- SHA-256: `5e1f439677a3dffd292b39a036f2e88c6782b0732cfff45c7a5fe5fcc68abe02`

## 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**: 0/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
- **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 (Apache-2.0).
  - Actively maintained (last published 8 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 56/100
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 2513 tokens (~54/item across 46 items; 46 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 65/100
  - 98% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "publish_preflight" implies "publish" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 47 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).

**Unverified: 2 categories.** Categories scored 0 because we could not verify them: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Ardor MCP server?

Ardor ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, 5e1f439677a3dffd292b39a036f2e88c6782b0732cfff45c7a5fe5fcc68abe02; the commands to do that are on this page. If it does not match, do not open it.

- Download bundle: `https://github.com/NTRanch/ardor/releases/download/v0.1.0/ardor-mcp-0.1.0-linux-x64.mcpb`
- SHA-256: `5e1f439677a3dffd292b39a036f2e88c6782b0732cfff45c7a5fe5fcc68abe02`

### Verify on macOS / Linux

```bash
echo "5e1f439677a3dffd292b39a036f2e88c6782b0732cfff45c7a5fe5fcc68abe02  ardor-mcp-0.1.0-linux-x64.mcpb" | shasum -a 256 -c
```

### Verify on Windows (PowerShell)

```powershell
(Get-FileHash -Algorithm SHA256 .\ardor-mcp-0.1.0-linux-x64.mcpb).Hash -eq "5e1f439677a3dffd292b39a036f2e88c6782b0732cfff45c7a5fe5fcc68abe02"
```

## 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-01 (score 33, 0)

- [security regression] Provenance: unverified → fail

### 2026-10-31 (score 33, 0)

- [security regression] Provenance: fail → unverified

### 2026-10-27 (score 33)

First indexed and scored.

## MCP tools (46)

### `create_project` (~89 tokens)

Scaffold a new project (name, engine, rating, age gate) with its safety surfaces seeded enabled and ungated. Adult-rated projects require an age gate — the gate refuses otherwise.

Input parameters:

- `age_gate` (string)
- `content_tags` (array)
- `engine` (string)
- `name` (string, required)
- `rating` (string)
- `slug` (string)

### `get_project` (~31 tokens)

Project summary: metadata, per-document counts, and whether the safety audit passes.

Input parameters:

- `project` (string, required)

### `list_projects` (~22 tokens)

Every project in the server home, with name, engine and rating.

### `update_project_meta` (~99 tokens)

Patch project metadata (name, engine, rating, age_gate, content_tags, start_node) through the gate: an adult rating still requires an age gate, and start_node must exist.

Input parameters:

- `age_gate` (string)
- `content_tags` (array)
- `engine` (string)
- `name` (string)
- `project` (string, required)
- `rating` (string)
- `start_node` (string)

### `upsert_character` (~68 tokens)

Create or update a cast member through the canon gate: locked fields and stated facts refuse the write unless an amendment with a reason is attached (amendments are recorded in the cast history).

Input parameters:

- `amendment` (object)
- `character` (object, required)
- `project` (string, required)

### `get_character` (~35 tokens)

One cast member's full record, including version and reaction profile.

Input parameters:

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

### `list_characters` (~24 tokens)

The full cast plus the amendment history.

Input parameters:

- `project` (string, required)

### `add_canon_rule` (~55 tokens)

Add a canon rule: kind lock (fields frozen for a character), fact (a field's canonical value), or note. Rules must reference existing characters.

Input parameters:

- `project` (string, required)
- `rule` (object, required)

### `list_canon` (~23 tokens)

All canon rules for a project.

Input parameters:

- `project` (string, required)

### `check_canon` (~57 tokens)

Dry-run a proposed character/scene/dialogue/level write against the gate and report the verdict — allowed, or refused with the gate's code — without writing anything.

Input parameters:

- `project` (string, required)
- `proposal` (object, required)

### `declare_flag` (~46 tokens)

Declare a named flag (story, relationship, progression or system). Dialogue prerequisites and level gates may only reference declared flags.

Input parameters:

- `flag` (object, required)
- `project` (string, required)

### `upsert_scene` (~58 tokens)

Create or update a scene node (next, choices, triggers, cues). Referenced nodes and flags must exist or be declared; safety surfaces may never appear as progression gates.

Input parameters:

- `node` (object, required)
- `project` (string, required)

### `upsert_dialogue` (~74 tokens)

Create or update a dialogue node: participants, lines, kink-legitimate actions with affirmative consent state and coverage, intensity 0-10, choices, prerequisites, continuity effects, and animation/voice/sound/haptic cues — all gate-checked.

Input parameters:

- `node` (object, required)
- `project` (string, required)

### `get_node` (~29 tokens)

One graph node's full record.

Input parameters:

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

### `list_nodes` (~34 tokens)

Graph nodes, optionally filtered by kind (scene or dialogue).

Input parameters:

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

### `upsert_system` (~54 tokens)

Create or update a game system (schedule, economy, state_machine, minigame, progression). A system id may not collide with a safety surface.

Input parameters:

- `project` (string, required)
- `system` (object, required)

### `list_systems` (~20 tokens)

All declared systems.

Input parameters:

- `project` (string, required)

### `set_reaction_profile` (~71 tokens)

Set a character's reaction profile: base_receptivity, sensitivity, conditioning, stamina (each 0-100), optional per-action modifiers and notes. Previews and playtests key on this.

Input parameters:

- `character` (string, required)
- `profile` (object, required)
- `project` (string, required)

### `preview_reaction` (~76 tokens)

Deterministically preview a character's reaction under a context (relationship, arousal, fatigue, scene_history, prior_choices, action): score 0-100 and band (guarded/warming/engaged/ardent).

Input parameters:

- `character` (string, required)
- `context` (object, required)
- `project` (string, required)

### `upsert_arc` (~42 tokens)

Create or update a story arc with beats referencing graph nodes; mark ending arcs with ending=true.

Input parameters:

- `arc` (object, required)
- `project` (string, required)

### `validate_story` (~35 tokens)

Read-only story audit: beats referencing unknown nodes, nodes unreachable from the start node, declared endings.

Input parameters:

- `project` (string, required)

### `upsert_level` (~67 tokens)

Create or update a level: node placements, minigame placements (must reference declared minigame systems), and progression gates whose target node exists and whose condition flag is declared. Safety surfaces can never be gate targets.

Input parameters:

- `level` (object, required)
- `project` (string, required)

### `list_levels` (~18 tokens)

All levels.

Input parameters:

- `project` (string, required)

### `generate_playtest` (~61 tokens)

Generate a deterministic playthrough of the authored graph under a seed (default seed 1) without recording it. The run hash is the replay contract.

Input parameters:

- `max_steps` (integer)
- `project` (string, required)
- `seed` (integer)

### `get_safety` (~38 tokens)

The project's safety document: rating, age gate, content tags, all five surfaces, and the audit result.

Input parameters:

- `project` (string, required)

### `set_safety_surface` (~79 tokens)

Configure one safety surface (stop, safeword, accessibility, aftercare, purge): presentation, wording, behaviour. Enabled and ungated are managed invariants — the gate refuses any attempt to disable a surface or progression-gate it.

Input parameters:

- `config` (object, required)
- `project` (string, required)
- `surface` (string, required)

### `audit_safety` (~41 tokens)

Run the safety audit alone: every surface present, enabled and ungated, plus the age-gate check for adult ratings.

Input parameters:

- `project` (string, required)

### `register_asset` (~76 tokens)

Register an asset record: id, kind, SHA-256 content hash, provenance (source required), and route_to naming its specialist owner (lumen, torori, ache, neemu, local, unassigned). Records only — Ardor never processes the asset.

Input parameters:

- `asset` (object, required)
- `project` (string, required)

### `list_assets` (~23 tokens)

All asset records and asset handoffs.

Input parameters:

- `project` (string, required)

### `record_asset_handoff` (~67 tokens)

Record that an asset was handed to a specialist (lumen, torori, ache, neemu, slipway) or a registry channel. The asset must be registered first.

Input parameters:

- `asset` (string, required)
- `project` (string, required)
- `target` (string, required)

### `run_playtest` (~61 tokens)

Generate a playthrough under a seed AND record the run (hash, step count, stop reason) in the project's QA document for later replay verification.

Input parameters:

- `max_steps` (integer)
- `project` (string, required)
- `seed` (integer)

### `verify_replay` (~46 tokens)

Regenerate a recorded run from its seed and compare hashes: proof the authored graph still replays byte-identically.

Input parameters:

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

### `add_screenshot_spec` (~48 tokens)

Record a screenshot specification (id, node, viewport, notes) for store/listing capture. The node must exist.

Input parameters:

- `project` (string, required)
- `spec` (object, required)

### `record_defect` (~45 tokens)

Record a QA defect (id, title, severity low/medium/high/critical, optional node and detail).

Input parameters:

- `defect` (object, required)
- `project` (string, required)

### `list_defects` (~40 tokens)

Defect records, optionally filtered by status (open matches records with no status yet).

Input parameters:

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

### `list_channels` (~44 tokens)

The channel-target registry: every English-language adult distribution channel with platforms, content policy, automation class, artifact requirements, handoff executor, auth kind, and live-verification status.

### `get_channel` (~28 tokens)

One channel's full registry record, including its credential/auth record.

Input parameters:

- `channel` (string, required)

### `prepare_handoff` (~93 tokens)

Prepare a release handoff record for a channel. The gate refuses when: the channel is unknown or flagged, artifacts are missing or lack SHA-256 digests, no verified channel account exists (group 10), or the safety audit fails. Ardor prepares the record; the channel's executor performs the release.

Input parameters:

- `artifacts` (array, required)
- `channel` (string, required)
- `project` (string, required)

### `list_handoffs` (~26 tokens)

All prepared release handoffs for a project.

Input parameters:

- `project` (string, required)

### `register_channel_account` (~79 tokens)

Register a channel account as a credential REFERENCE: channel, account identity, the channel's real credential kind, and store_ref naming where the value lives (primo pass path or Secure Vault entry). Values are refused — anything shaped like a raw secret, or under a secret-named field, fails the gate.

Input parameters:

- `record` (object, required)

### `list_channel_accounts` (~48 tokens)

All channel account records (references and status only), optionally filtered by channel. Pass now (ISO timestamp) to evaluate expiry.

Input parameters:

- `channel` (string)
- `now` (string)

### `get_channel_account` (~38 tokens)

A channel's registry + auth record together with its account records and statuses.

Input parameters:

- `channel` (string, required)
- `now` (string)

### `record_auth_verification` (~94 tokens)

Record a verification attestation for an account: result (verified/failed), method, verified_at (ISO timestamp), optional detail. The probe itself runs on the value holder's side; Ardor records the outcome, never the value.

Input parameters:

- `account_id` (string, required)
- `detail` (string)
- `method` (string, required)
- `result` (string, required)
- `verified_at` (string, required)

### `credential_status` (~63 tokens)

Per-channel credential rollup over the whole registry: auth kind, best status (verified/unverified/expired/missing), and the account records. Pass now (ISO timestamp) to evaluate expiry and rotation.

Input parameters:

- `channel` (string)
- `now` (string)

### `probe_channel_auth` (~68 tokens)

Describe a channel's verification probe (e.g. itch.io key validation, Patreon token validation) and its current attested status. Ardor holds no value, so the probe executes on the estate-store side; this tool returns the specification, not a value.

Input parameters:

- `channel` (string, required)

### `publish_preflight` (~70 tokens)

The publish preflight for a project + channel: channel known and verified, safety audit green, auth registered, verified, and (when now is supplied) unexpired — each as a named check.

Input parameters:

- `channel` (string, required)
- `now` (string)
- `project` (string, required)

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/ntranch-ardor/ardor-mcp-linux-x64#diagnostics

## Score history

- 2026-11-05: 33
- 2026-11-04: 33
- 2026-11-03: 33
- 2026-11-02: 33
- 2026-11-01: 33
- 2026-10-31: 33
- 2026-10-30: 33
- 2026-10-29: 33
- 2026-10-28: 33
- 2026-10-27: 33

## Common questions

### What is the Ardor MCP server?

Ardor is an MCP server listed in the public MCP registry as io.github.NTRanch/ardor. NTRanch maker MCP: authoring, safety gates, playtest QA and release handoffs for adult games/apps. This page covers its MCPB bundle (https://github.com/NTRanch/ardor/releases/download/v0.1.0/ardor-mcp-0.1.0-linux-x64.mcpb).

### Is the Ardor MCP server safe to use?

Ardor scores 33 out of 100 on VerifyMCP. 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 Ardor MCP server expose?

Ardor exposes 46 tools: create_project, get_project, list_projects, update_project_meta, upsert_character, and 41 more. Their descriptions and schemas cost roughly 2,403 tokens of context every time the server is loaded.

### What licence is the Ardor MCP server under?

Ardor declares the Apache-2.0 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 Ardor MCP server?

VerifyMCP ran 11 checks on Ardor, covering Source repository, Provenance, License, Maintenance and 7 more. 5 items could not be completed, a gap on our side rather than a finding about Ardor: Malware scan, Known CVEs, Install scripts, Dependency health and 1 more. 2 categories score 0 for that reason, because we only credit what we can confirm. Endpoint Security and Transport & Reachability do not apply to an MCPB bundle, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Repository: https://github.com/NTRanch/ardor
- Changelog RSS feed: https://verifymcp.io/servers/ntranch-ardor/ardor-mcp-linux-x64.xml
- Changelog JSON feed: https://verifymcp.io/servers/ntranch-ardor/ardor-mcp-linux-x64/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/ntranch-ardor/ardor-mcp-linux-x64.json
- HTML version of this page: https://verifymcp.io/servers/ntranch-ardor/ardor-mcp-linux-x64
