Grades are a hygiene check, not a security guarantee.

MCP, MCP server

Construct3 Mcp

An MCP server that lets Claude, Cursor and other AI assistants read, analyze and safely edit Construct 3 projects — editor-faithful writes with backups and validation.

Compatibility: Not stated.

Grade C

One Medium finding. Read the findings before installing.

Graded by PlugVetRubric v2

Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.

Rescanned at commit 1eb4973e0d03, unchanged since the check below.

INSTALL_LIFECYCLE_HOOK

Why this grade

  • INSTALL_LIFECYCLE_HOOK Medium

    A package install hook (preinstall, install, postinstall or prepare) runs a script.

    package.json, line 17 prepare

Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.

Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.

What was checked

Plain notes from the hygiene checks.

  • Permissions

    Pass

    No shell or command execution found, and no extra permission was declared.

  • Install and update

    Concern

    runs a script at install time.

    INSTALL_LIFECYCLE_HOOK

    package.json, line 17

    prepare

  • Network

    Concern

    can reach a host that is not written as a fixed address.

    NETWORK_NO_FIXED_HOST

    src/construct3/analyzers/asset-usage.ts, line 45

    * calls, fetch() and import() in scripts with a computed name; prefixes that

    src/construct3/analyzers/asset-usage.ts, line 345

    /** Whether the string at token i is the URL argument of fetch(), import() or XMLHttpRequest open() */

    src/construct3/analyzers/asset-usage.ts, line 397

    // Template literal text is not tokenized: `${...}tail`, and fetch(`head${...}`)

    Show more

    src/construct3/analyzers/asset-usage.ts, line 773

    + 'builds a URL other than in fetch(), import(), XMLHttpRequest open() or runtime.assets calls) are not seen.',

    src/runtime/cdp-client.ts, line 559

    const response = await fetch(url, { signal: controller.signal });

    src/runtime/preview-server.ts, line 455

    const response = await fetch(`http://127.0.0.1:${port}/json/list`);

    src/tools/runtime-tools.ts, line 1147

    'Generate a shell command (using curl or python) to execute a bridge command i

    docs/API.md, line 221

    - files a name built at runtime may produce: by-name Audio actions with an expression, `"prefix" & ...` or `... & ".ext"` concatenations, `ProjectFileNameAt()`, and in scripts `run

    docs/ARCHITECTURE.md, line 261

    | `runtime/cdp-client.ts` | Chrome DevTools Protocol client over Node's built-in WebSocket (Node.js 22+): connects to the game's page (trying the pages the browser lists, narrowed

  • Secrets

    Concern

    reads a credential or environment file.

    SECRETS_PATH_DOTENV

    .gitignore, line 23

    # Environment variables

    .gitignore, line 24

    .env

    .gitignore, line 25

    .env.local

  • Agent instructions

    Pass

    No instruction to ignore earlier instructions or to hide a step.

  • Obfuscation

    Pass

    No encoded or minified payload found.

  • Licence

    Pass

    A licence file is present (LICENSE).

  • Maintainer activity

    Pass

    The latest commit is within the last 365 days.

Note

Hygiene check of commit 1eb4973e0d03. runs a script at install time. can reach a host that is not written as a fixed address. reads a credential or environment file.

Date and source

Date checked:

View source

github.com

Commit graded: 1eb4973e0d032fba794c719b1e3971cf71e188a3

This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.

Read how this letter is chosen