# chaoz23/inkcheck [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/chaoz23/inkcheck  
**GitHub Stars:** 2  
**npm Downloads (last month):** 208  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/chaoz23-inkcheck

## Description
CI for ink interactive-fiction stories. Compiles, exhaustively playtests every branch, and finds runtime errors (with a repro path), unreachable knots, and every distinct ending — so an agent can verify the story it wrote. Writes no prose. claude mcp add inkcheck -- npx -y inkcheck mcp

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "inkcheck": {
    "command": "npx",
    "args": ["-y","inkcheck"]
  }
}
```

## Documentation

## What chaoz23/inkcheck MCP server does

The chaoz23/inkcheck MCP server checks Ink interactive-fiction projects through deterministic analysis rather than AI-generated review. It compiles the supplied story, runs the Ink runtime, and explores reachable choice paths within explicit bounds. Reports can identify compile failures, runtime errors, unreachable knots, dead content, and distinct endings. Runtime findings include a path that can be replayed to reproduce the failure.

The project is intended for mechanical quality assurance. It does not write, rewrite, or send prose to an AI service, and it does not use machine learning or generative models to evaluate the story. Human authors, CI systems, and coding agents can use the same checks.

## How it works

Exploration is bounded rather than a proof that every possible story state is correct. Loops, variables, randomness, and host-game code can produce more states than the checker can visit. The result therefore distinguishes discovered evidence from partial coverage and reports when configured limits prevented complete exploration.

The checker follows real reachable choice states and preserves exact reproduction paths for failures it finds. Re-running the same configured check can look for a previously discovered broken path after a change. MCP campaigns can use named modes such as `quick`, `balanced`, `deep`, `overnight`, or `campaign`; `balanced` is the default for a fresh agent. The material also describes bounded overrides for resource, time, state, window, memory, disk, deadline, stopping, and search preferences.

## Setup and configuration

The standalone CLI requires Node.js 18 or newer. A local story can be checked with `npx -y inkcheck path/to/main.ink`. For MCP use, the documented registration command is `claude mcp add inkcheck -- npx -y inkcheck mcp`.

MCP agents can choose a campaign posture instead of manually setting explorer weights. Fixed mode preserves explicit legacy controls. Campaigns may select a preferred evidence goal such as broad QA, runtime assertions, outcomes, or approved goals, subject to the documented bounds and validation rules. The supplied material does not specify a configuration file format or individual MCP tool names.

## Tools and capabilities

- Compile Ink stories with the official Ink compiler.
- Explore reachable story branches within explicit limits.
- Report runtime errors with exact replay paths.
- Detect unreachable knots and other dead content.
- Enumerate distinct endings found during bounded exploration.
- Run checks through the CLI, CI workflows, or MCP integrations.
- Support durable campaign concepts, resumable checkpoints, and evidence reports as described for the 0.6 and 0.7 releases.

## Limitations and notes

The chaoz23/inkcheck MCP server does not establish that a large story is bug-free. Exhaustive exploration can be impractical because of combinatorial growth, loops, randomness, and dependencies on host-game code. Findings are actionable within the tested bounds, while unvisited states remain unverified.

The release notes describe some advanced capabilities as experimental, opt-in, or subject to evidence gates. In particular, dynamic search policies and assertion-directed specialist exploration should not be treated as universally better coverage. Declared numeric invariants are supported in the hosted checker and local configurations, but invalid variables, types, or grammar fail validation before exploration. A fresh bounded run remains necessary for broad verification after edits.

_Full upstream README: https://allmcps.com/mcp/chaoz23-inkcheck/readme_

