Native, local-first MCP bridge for safe, editable procedural materials in Material Maker 1.7 and Godot 4.7.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http counts 33 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
app_get_capabilities
-
app_get_status
-
app_ping
-
catalog_get_compatible_nodes
-
catalog_get_node_type
-
catalog_get_version
-
catalog_list_categories
-
catalog_search_nodes
-
connection_create
-
connection_delete
-
graph_apply_patch
-
graph_create_named_snapshot
-
graph_find_nodes
-
graph_get_snapshot
-
graph_get_summary
-
graph_list_named_snapshots
-
graph_list_transactions
-
graph_plan_patch
-
graph_redo
-
graph_trace_dependencies
-
graph_undo
-
material_export_blender
-
node_create
-
node_delete
-
node_set_parameter
-
preview_render_material_3d
-
preview_render_node_output
-
project_create_material
-
project_get_active
-
project_list
-
project_save
-
project_validate
-
workflow_create_material
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit e3721ea · analyzer v33 · 2w ago
skills & prompt files 5
- agent-rules SS-360-materialpilot-e3721ea/AGENTS.md
- agent-rules SS-360-materialpilot-e3721ea/apps/material-maker-bridge/AGENTS.md
- agent-rules SS-360-materialpilot-e3721ea/apps/mcp-server/AGENTS.md
- agent-rules SS-360-materialpilot-e3721ea/packages/domain/AGENTS.md
- agent-rules SS-360-materialpilot-e3721ea/packages/security/AGENTS.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 56
filesystem 20
- fs (weak) SS-360-materialpilot-e3721ea/apps/material-maker-bridge/scripts/validate-addon.mjs :1
import { access, readFile } from "node:fs/promises"; - fs (weak) SS-360-materialpilot-e3721ea/apps/material-maker-bridge/scripts/validate-godot.mjs :1
import { access, cp, mkdir, readFile, rm, writeFile } from "node:fs/promises"; - fs (weak) SS-360-materialpilot-e3721ea/apps/material-maker-bridge/scripts/validate-material-maker.mjs :1
import { access, mkdir, readFile, rm } from "node:fs/promises"; - fs SS-360-materialpilot-e3721ea/apps/mcp-server/src/main.ts :3
import { existsSync } from "node:fs"; - fs (weak) SS-360-materialpilot-e3721ea/apps/mcp-server/tests/native-backend.test.ts :1
import { readFileSync } from "node:fs"; - fs (weak) SS-360-materialpilot-e3721ea/apps/mcp-server/tests/server.test.ts :4
import { mkdtempSync } from "node:fs"; - fs SS-360-materialpilot-e3721ea/packages/bridge-protocol/src/client.ts :3
import { readFile } from "node:fs/promises"; - fs SS-360-materialpilot-e3721ea/packages/cli/src/main.ts :2
import { access, readFile, writeFile } from "node:fs/promises"; - fs (weak) SS-360-materialpilot-e3721ea/packages/cli/tests/cli.test.ts :1
import { readFileSync } from "node:fs"; - fs (weak) SS-360-materialpilot-e3721ea/packages/mmpp/tests/mmpp.test.ts :1
import { readFileSync } from "node:fs"; - fs SS-360-materialpilot-e3721ea/packages/node-catalog/src/extractor.ts :1
import { readFile, readdir } from "node:fs/promises"; - fs (weak) SS-360-materialpilot-e3721ea/packages/node-catalog/tests/catalog.test.ts :2
import { mkdtempSync, rmSync, writeFileSync } from "node:fs"; - fs (weak) SS-360-materialpilot-e3721ea/packages/ptex/tests/ptex.test.ts :1
import { readFileSync } from "node:fs"; - fs SS-360-materialpilot-e3721ea/packages/security/src/audit.ts :1
import { appendFile, mkdir } from "node:fs/promises"; - fs SS-360-materialpilot-e3721ea/packages/security/src/policy.ts :1
import { existsSync, realpathSync } from "node:fs"; - fs (weak) SS-360-materialpilot-e3721ea/packages/security/tests/policy.test.ts :1
import { mkdtempSync, mkdirSync, writeFileSync } from "node:fs"; - fs (weak) SS-360-materialpilot-e3721ea/scripts/create-abandoned-industrial-floor.mjs :2
import { mkdir, readFile, readdir, stat, writeFile } from "node:fs/promises"; - fs (weak) SS-360-materialpilot-e3721ea/scripts/generate-sbom.mjs :1
import { readFile, readdir, mkdir, writeFile } from "node:fs/promises"; - fs (weak) SS-360-materialpilot-e3721ea/scripts/package-release.mjs :2
import { cp, mkdir, readFile, rm, writeFile } from "node:fs/promises"; - fs (weak) SS-360-materialpilot-e3721ea/scripts/run-compatibility-suite.mjs :1
import { access, readFile } from "node:fs/promises";
shell / exec 4
- shell (weak) SS-360-materialpilot-e3721ea/apps/material-maker-bridge/scripts/validate-godot.mjs :5
import { spawn, spawnSync } from "node:child_process"; - shell (weak) SS-360-materialpilot-e3721ea/apps/material-maker-bridge/scripts/validate-material-maker.mjs :5
import { spawn } from "node:child_process"; - shell (weak) SS-360-materialpilot-e3721ea/scripts/package-release.mjs :4
import { spawnSync } from "node:child_process"; - shell (weak) SS-360-materialpilot-e3721ea/scripts/run-compatibility-suite.mjs :4
import { spawnSync } from "node:child_process";
secrets 1
- secrets SS-360-materialpilot-e3721ea/apps/mcp-server/src/main.ts :25
const token = process.env.MATERIALPILOT_HTTP_TOKEN;
tool registrations 33
- app_get_status SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :32
- app_get_capabilities SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :42
- app_ping SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :52
- project_list SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :62
- project_get_active SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :71
- project_create_material SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :80
- project_validate SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :103
- project_save SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :116
- graph_create_named_snapshot SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :148
- graph_list_named_snapshots SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :163
- preview_render_node_output SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :173
- preview_render_material_3d SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :215
- material_export_blender SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :256
- graph_get_summary SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :288
- graph_get_snapshot SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :298
- graph_find_nodes SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :308
- graph_trace_dependencies SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :337
- graph_plan_patch SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :355
- graph_apply_patch SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :366
- graph_undo SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :385
- graph_redo SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :403
- graph_list_transactions SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :420
- catalog_list_categories SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :431
- catalog_search_nodes SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :440
- catalog_get_node_type SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :495
- catalog_get_compatible_nodes SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :505
- catalog_get_version SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :530
- node_create SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :559
- node_delete SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :585
- node_set_parameter SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :609
- connection_create SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :639
- connection_delete SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :665
- workflow_create_material SS-360-materialpilot-e3721ea/apps/mcp-server/src/tools.ts :692
declared dependencies 10
- @eslint/js@^10.0.1
- @types/node@^26.1.1
- @vitest/coverage-v8@^4.1.0
- eslint@^10.7.0
- prettier@^3.6.2
- tsx@^4.20.3
- turbo@^2.5.5
- typescript@^6.0.3
- typescript-eslint@^8.38.0
- vitest@^4.1.0