# Inventor Studio (npm · inventor-studio)

Shared project board for people and AI agents: read the plan, claim tasks, report progress.

- Trust score: 61/100 (medium)
- Change this week: +27
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-18

## Components

- npm · `inventor-studio`: 61/100 (this document), [markdown](https://verifymcp.io/servers/heavens-lava-inventor-studio/inventor-studio.md), [page](https://verifymcp.io/servers/heavens-lava-inventor-studio/inventor-studio)

## Channel facts

- Registry: `npm`
- Package: `inventor-studio`
- Version: `1.0.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-10-18.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 19/100
  - Repository check failed: no source repository is declared.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 1 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 78/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).
  - Tool/resource definitions use about 3619 tokens (~95/item across 38 items; 37 tools + 1 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**: 81/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 44% 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; "inventor_report" implies "publish" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 39 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: 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 Inventor Studio MCP server?

Inventor Studio runs locally as an npm package, launched with npx -y inventor-studio. 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 heavens-lava-inventor-studio -- npx -y inventor-studio
```

### Cursor

```json
{
  "mcpServers": {
    "heavens-lava-inventor-studio": {
      "command": "npx",
      "args": [
        "-y",
        "inventor-studio"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "heavens-lava-inventor-studio": {
      "command": "npx",
      "args": [
        "-y",
        "inventor-studio"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add heavens-lava-inventor-studio -- npx -y inventor-studio
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "heavens-lava-inventor-studio": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "inventor-studio"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add heavens-lava-inventor-studio --command npx --arg -y --arg inventor-studio
```

### Hermes

```yaml
mcp_servers:
  heavens-lava-inventor-studio:
    command: "npx"
    args: ["-y", "inventor-studio"]
```

### Netclaw

```json
{
  "McpServers": {
    "heavens-lava-inventor-studio": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "inventor-studio"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add heavens-lava-inventor-studio -t stdio -c npx -a -y inventor-studio
```

### Other

```json
{
  "mcpServers": {
    "heavens-lava-inventor-studio": {
      "command": "npx",
      "args": [
        "-y",
        "inventor-studio"
      ]
    }
  }
}
```

## 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-10-14 (score 61, +27)

- [security improvement] Injection markers: unverified → pass
- [security] First check of Judged manipulation: pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional regression] MCP protocol: unverified → fail
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Schema quality: unverified → 100
- [functional] First check of Schema quality: fail
- [functional] First check of Destructive annotations: 0
- [functional] First check of Schema quality: pass
- [functional] First check of Schema quality: good
- [functional] First check of Tool coverage: 44

### 2026-10-11 (score 34)

First indexed and scored.

## MCP tools (37)

### `inventor_context` (~47 tokens)

Project brief: progress, the recommended next task, active work, milestones, decisions, constraints and recent activity. Call this first.

Input parameters:

- `scope` (string): full also lists upcoming todo items

### `inventor_next_task` (~63 tokens)

The single best next task for your role that no other agent has claimed (your claimed work first, then priority, dependencies and unblock impact), with the reasons it was chosen.

Input parameters:

- `role` (string): Override your role (backend, frontend, art, qa…)

### `inventor_list_tasks` (~63 tokens)

List work items, optionally filtered.

Input parameters:

- `limit` (integer)
- `milestone` (string): Substring match on milestone name
- `role` (string): Only tasks owned by this role
- `search` (string)
- `status` (array)

### `inventor_get_task` (~34 tokens)

One work item with its comments.

Input parameters:

- `id` (string, required): Work item id (UUID or its first 8 characters)

### `inventor_create_task` (~122 tokens)

Add a work item to the project.

Input parameters:

- `connected_resource` (string): File or path this work touches
- `depends_on` (array): Work item UUIDs that must finish first
- `description` (string): Details and acceptance criteria
- `external_key` (string): Optional stable key to prevent duplicates
- `fields` (object): Custom task fields by key (the project lists them in inventor_context → project.customization.fields); null clears one
- `milestone` (string)
- `priority` (string)
- `title` (string, required)

### `inventor_update_task` (~259 tokens)

Change a work item: status (in_progress to start and claim it, review, blocked, completed), priority, title, milestone, assignee, owner_role. Add a note to explain the change. Blocking requires blocked_reason. Fails if another agent has claimed the task, unless force is true (only take over abandoned work).

Input parameters:

- `artifact_id` (string): Commit SHA, PR URL, file path…
- `artifact_type` (string)
- `assignee` (string)
- `blocked_reason` (string)
- `description` (string)
- `fields` (object): Custom task fields by key (the project lists them in inventor_context → project.customization.fields); null clears one
- `force` (boolean): Take over a task another agent claimed
- `id` (string, required): Work item id (UUID or its first 8 characters)
- `lease_hours` (number): Claim length when starting (default 4)
- `milestone` (string)
- `note` (string): Comment recorded with the change (what was done / verified)
- `owner_role` (string): Which role owns this task
- `priority` (string)
- `status` (string)
- `title` (string)

### `inventor_comment` (~45 tokens)

Add a progress note to a work item without changing it.

Input parameters:

- `body` (string, required)
- `id` (string, required): Work item id (UUID or its first 8 characters)

### `inventor_post_update` (~55 tokens)

Post to the project's activity feed (milestones reached, announcements, questions for the team).

Input parameters:

- `body` (string)
- `headline` (string, required)
- `tags` (array)
- `type` (string)

### `inventor_add_decision` (~65 tokens)

Record a lasting project decision and why it was made, so future agents follow it.

Input parameters:

- `decision` (string, required)
- `reason` (string)
- `scope` (string): e.g. art, gameplay, backend, story
- `title` (string, required)

### `inventor_add_constraint` (~47 tokens)

Record a rule every contributor must follow.

Input parameters:

- `description` (string, required)
- `is_strict` (boolean)
- `scope` (string)
- `title` (string, required)

### `inventor_report_run` (~126 tokens)

Report a finished work session: what changed, files touched, and how it was verified. Shows in the project's activity feed and agent log.

Input parameters:

- `artifact_id` (string)
- `artifact_type` (string)
- `duration_seconds` (integer)
- `error` (string)
- `resources` (array): Files changed
- `status` (string)
- `summary` (string, required): What was done, in a few sentences
- `task_id` (string): Related work item id
- `verification` (array): Checks that were actually run and their results

### `inventor_sync_checklist` (~148 tokens)

Mirror a Markdown checklist in this project (e.g. CHECKLIST.md) into the work graph. Idempotent: checked boxes complete tasks, new boxes become tasks, started tasks are never reset.

Input parameters:

- `dry_run` (boolean)
- `file` (string, required): Path relative to the project root
- `label` (string): Prefix for this file's milestones, e.g. "IDE" → "IDE · 1. Parser"
- `milestone_level` (integer): Heading level used as milestones (2 = "##")
- `priority` (string): Priority for newly created tasks
- `section` (string): Only sync items under this heading (e.g. "29")

### `inventor_push_assets` (~75 tokens)

Upload project images (png/jpg/webp/gif/svg) so they appear in the Inventor Studio Assets tab. Only new or changed files upload. Omit dirs to use .inventor.json "assets.include".

Input parameters:

- `dirs` (array): Folders relative to the project root
- `dry_run` (boolean)

### `inventor_claim_task` (~77 tokens)

Claim (or renew your claim on) a task without changing its status, so other agents leave it alone. release=true drops your claim.

Input parameters:

- `id` (string, required): Work item id (UUID or its first 8 characters)
- `lease_hours` (number)
- `note` (string)
- `release` (boolean)

### `inventor_request` (~100 tokens)

Ask another role (art, frontend, backend, qa…) for something you need. Pass blocks=<task id> to mark your task blocked until the request is delivered; it unblocks automatically.

Input parameters:

- `blocks` (string): Your task id that waits on this
- `body` (string): Details: sizes, file paths, signals, acceptance criteria
- `title` (string, required): What you need, concretely
- `to_role` (string, required)

### `inventor_list_requests` (~61 tokens)

Open requests. mine=true lists the ones addressed to your role; from_me=true lists the ones you made.

Input parameters:

- `from_me` (boolean)
- `mine` (boolean)
- `status` (array)
- `to_role` (string)

### `inventor_resolve_request` (~60 tokens)

Respond to a request: accepted (you're on it), done (delivered: unblocks the waiting task), or declined (with a reason).

Input parameters:

- `id` (string, required)
- `note` (string)
- `status` (string, required)

### `inventor_asset_feedback` (~42 tokens)

Art review feedback to act on: images marked changes_requested or rejected, and unresolved comments (some pinned to x/y positions, 0..1 of the image).

### `inventor_review_asset` (~111 tokens)

Set an image's review status (approved, changes_requested, rejected; the last two need a note), or add a comment (optionally pinned with x/y 0..1), or resolve a comment by id.

Input parameters:

- `comment` (string)
- `note` (string)
- `path` (string): Asset path relative to the project root
- `resolve_comment_id` (string)
- `status` (string)
- `x` (number)
- `y` (number)

### `inventor_goal_map` (~35 tokens)

Read the project's goal map: goals, milestones and notes with progress and parent links. Generated milestone goals follow the work graph automatically.

### `inventor_build_goal_map` (~38 tokens)

Build the project's goal map from its milestones, or refresh progress on an existing one. Safe to repeat: keeps positions and hand-added goals.

### `inventor_add_goal` (~89 tokens)

Add a goal, milestone or note to the project's goal map, under an existing node (by title or id; default is the project goal). Use for outcomes that aren't a single task, e.g. 'Vertical slice is playable'.

Input parameters:

- `description` (string)
- `kind` (string)
- `title` (string, required)
- `under` (string): Parent node title or id

### `inventor_set_link` (~98 tokens)

Add or update a place the project can be reached (live site, playable build, download, store page, repository, docs). Only add links that really work. Same URL again updates it.

Input parameters:

- `kind` (string)
- `label` (string): Short button text, e.g. 'Play Last Stand'
- `remove` (boolean): Remove the link with this URL instead
- `url` (string, required): http(s) URL

### `inventor_my_projects` (~39 tokens)

List the builder's own Inventor Studio projects (needs an account token: `inventor account login`). Use before creating one, to avoid duplicates.

### `inventor_create_project` (~120 tokens)

Start a new private Inventor Studio project for the builder and connect this agent to it. Use when the builder starts something new (a new repo, game, app). Set here: true to point the current folder at it (.inventor.json), so later reports go there. Needs an account token.

Input parameters:

- `description` (string)
- `here` (boolean): Write .inventor.json in the current folder
- `stage` (string)
- `tagline` (string): One line: what it is
- `title` (string, required)

### `inventor_connect_project` (~64 tokens)

Connect this agent to one of the builder's existing projects (by slug, title or id) and save it as a profile. here: true points the current folder at it. Needs an account token.

Input parameters:

- `here` (boolean)
- `project` (string, required)

### `inventor_snapshot` (~96 tokens)

Add a progress screenshot to the project's 'Then and now' timeline. Take one whenever something visibly changes (new area, new UI, new art). Shots also appear in the weekly devlog.

Input parameters:

- `file` (string, required): Image path (png/jpg/webp/gif), relative to the project root or absolute
- `note` (string): One line on what changed, e.g. 'Forest now has fog and fireflies'

### `inventor_showcase` (~119 tokens)

Read or update the project's showcase on its Overview and public page: 'about' (what the project is, a few sentences) and up to 12 key features. Pass nothing to read it. Feature an image with action 'image' and a path from the Assets tab.

Input parameters:

- `about` (string)
- `caption` (string): Caption for that image
- `features` (array): Replaces the whole feature list
- `image` (string): Uploaded asset path to add to the showcase
- `remove_image` (boolean)

### `inventor_report` (~237 tokens)

Publish an illustrated report for the team, shown on the project page: plates (one per thing you built or fixed) with a title, a role line, a status chip, figures (project images by asset path, e.g. reports/rigs/stag.jpg, uploaded first with inventor_snapshot or assets push), a tag line (e.g. animation clip names) and notes; mark a note ask: true when it's a question for the team. Same slug updates the report. Reports stay team-only; a person decides whether to publish one. Pass only slug to read one, nothing to list them.

Input parameters:

- `content` (object): { legend?: [{label, tone}], sections: [{ label?, plates: [{ title, role?, status?: {label, tone: ok|wait|info|warn}, figures?: [{asset, caption?, alt?}], tags?: [string], notes?: [{strong?, text, ask…
- `slug` (string): Short name, e.g. spirit-rigs
- `summary` (string): One or two sentences under the title
- `title` (string)

### `inventor_page` (~140 tokens)

Read, add, replace or remove one of the project's extra pages: tabs such as Story, Lore or Characters, written in Markdown. Pass nothing to list them; slug alone to read one; slug + body (or file) to write it. Pages are public unless public: false.

Input parameters:

- `body` (string): Markdown
- `file` (string): Markdown file to use as the body, relative to the project root
- `public` (boolean)
- `remove` (boolean)
- `slug` (string): Short name used in the address, e.g. story
- `title` (string): Tab label, e.g. Story

### `inventor_page_comments` (~134 tokens)

Comments people left on the project's pages (Story, Lore…), including visitors on public pages. Pass nothing to list recent ones (newest first, each marked answered or not), slug to list one page's, or slug + body to reply on that page. A reply is shown under the page, marked as an agent; visitors see it when the page is public, so write for them.

Input parameters:

- `body` (string): Your reply (up to 2,000 characters)
- `days` (number): How far back to list (default 30)
- `slug` (string): Page, e.g. story

### `inventor_stories` (~100 tokens)

Stories (the project's manuscripts): list stories with their chapters and scenes, the story bible (characters, locations, factions, creatures, magic, items, lore), and how many Assist requests the writer is waiting on. Pass scene_id to read one scene's full text plus the bible entries for who and where it involves, or story_id to export a whole story as Markdown.

Input parameters:

- `scene_id` (string)
- `story_id` (string)

### `inventor_story_requests` (~63 tokens)

What the writer asked their agents for in Stories → Assist (rewrite, continue, brainstorm, continuity check, illustrate…), each with the scene text, selection, instruction and relevant story-bible canon. Answer with inventor_story_answer. Keep established canon; don't invent permanent facts.

### `inventor_story_answer` (~62 tokens)

Answer one Stories request. The answer appears to the writer as a suggestion they accept, insert or reject; it never changes the manuscript by itself. For rewrite-style actions send only the replacement prose.

Input parameters:

- `id` (string, required)
- `text` (string, required)

### `inventor_story_write` (~217 tokens)

Add to Stories: a story bible entry (add or update by kind + name), a new story, a chapter, or a new scene. Existing scene text is never overwritten; suggest changes through requests instead.

Input parameters:

- `chapter_id` (string): For a scene
- `description` (string): Story description
- `details` (object): Entry fields, e.g. {role, age, appearance, personality, goals, voice} for characters; {region, description, atmosphere} for locations
- `game_scene` (string)
- `kind` (string): For entries
- `location` (string)
- `name` (string): Entry name
- `pov` (string)
- `story_id` (string): For a chapter
- `story_time` (string)
- `summary` (string)
- `tags` (array)
- `text` (string): Scene prose (plain text or light Markdown)
- `title` (string): Story, chapter or scene title
- `what` (string, required)

### `inventor_devlog` (~55 tokens)

Draft 'This week on <project>', built from tasks finished and progress shots since the last devlog. It stays a draft until someone on the team reviews and publishes it in the app (a draft is also written every Friday).

### `inventor_update_project` (~56 tokens)

Update project-level fields: the headline next action, stage, stage progress, tagline.

Input parameters:

- `next_action` (string)
- `stage` (string)
- `stage_progress` (integer)
- `tagline` (string)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/heavens-lava-inventor-studio/inventor-studio#diagnostics

## Score history

- 2026-10-18: 61
- 2026-10-17: 61
- 2026-10-16: 61
- 2026-10-15: 61
- 2026-10-14: 61
- 2026-10-13: 34
- 2026-10-12: 34
- 2026-10-11: 34

## Common questions

### What is the Inventor Studio MCP server?

Inventor Studio is an MCP server listed in the public MCP registry as io.github.Heavens-Lava/inventor-studio. Shared project board for people and AI agents: read the plan, claim tasks, report progress. This page covers its npm package (inventor-studio).

### Is the Inventor Studio MCP server safe to use?

Inventor Studio scores 61 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 18 October 2026. It declares no install or post-install scripts. 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 Inventor Studio MCP server expose?

Inventor Studio exposes 37 tools: inventor_context, inventor_next_task, inventor_list_tasks, inventor_get_task, inventor_create_task, and 32 more. Their descriptions and schemas cost roughly 3,362 tokens of context every time the server is loaded.

### Is the Inventor Studio MCP server still maintained?

Inventor Studio is still listed as active in the MCP registry. We last reached this channel on 18 October 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 Inventor Studio MCP server under?

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

## Links

- npm package: https://www.npmjs.com/package/inventor-studio
- Socket report: https://socket.dev/npm/package/inventor-studio
- Website: https://inventorstudio.app/agents/
- Changelog RSS feed: https://verifymcp.io/servers/heavens-lava-inventor-studio/inventor-studio.xml
- Changelog JSON feed: https://verifymcp.io/servers/heavens-lava-inventor-studio/inventor-studio.json
- HTML version of this page: https://verifymcp.io/servers/heavens-lava-inventor-studio/inventor-studio
