BlockWerk
by blockwerk.tech · remote · no sign-in to list tools · v1.1.2 · published by tech.blockwerk
Build, run and analyse block-diagram simulations: PID, Bode, FFT, optimisation and code export.
42 tools: 8 can delete or cancel things, 1 do something that can't be undone, 15 change things and 18 only read.
Scanned Oct 21, 2026
- Deletes or cancels8Claude Code: deny: see these tools
- Can't be undone1Claude Code: ask: see these tools
- Changes things15Claude Code: ask: see these tools
- Only reads18Claude Code: allow: see these tools
5 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http blockwerk https://blockwerk-mcp-worker.blockwerk.workers.dev/Findings
Matches of fixed checks, with the text they matched.
The server marks "evaluate_spec_mask" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "evaluate_spec_mask" says "evaluate": a word for a change.
The server marks "get_canvas_preview" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "get_canvas_preview" says "get": a word for reading.
The server marks "optimize_parameters" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The description's first verb is "find": a word for reading.
- Warncancel_job
The server marks "cancel_job" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "cancel_job" says "cancel": a word for removing or ending something.
- Warngenerate_code
The server marks "generate_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "generate_code" says "generate": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
42 tools
Deletes or cancels 8Claude Code: deny
batch_commandsExecutes multiple canvas manipulation and background job commands in a single round-trip.No findings
Why it is in this group
- The description's first verb is "execute": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Executes multiple canvas manipulation and background job commands in a single round-trip. Use "handle" strings to refer to blocks added earlier in the same batch. When adding TextNote annotations, set "anchors" to the handles/IDs of the described blocks so auto-layout keeps each note next to them.
Annotations the server declares
- title: Run command batch
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: false
cancel_jobCancel a running background job.1 finding
Why it is in this group
- The name "cancel_job" says "cancel": a word for removing or ending something.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
Findings
- Warn
The server marks "cancel_job" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The name "cancel_job" says "cancel": a word for removing or ending something.
Description, as the server wrote it Cancel a running background job.
Annotations the server declares
- title: Cancel job
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
clear_canvasRemove all blocks and connections from the canvas.No findings
Why it is in this group
- The description's first verb is "remove": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Remove all blocks and connections from the canvas. This is a destructive action that asks the user for approval in the BlockWerk tab.
Annotations the server declares
- title: Clear canvas
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: false
delete_blockDelete a block and all its connections from the canvas.No findings
Why it is in this group
- The name "delete_block" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a block and all its connections from the canvas. This is a destructive action that asks the user for approval in the BlockWerk tab.
Annotations the server declares
- title: Delete block
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: false
load_diagramAtomically replaces the entire canvas with a complete diagram defined as a BlockWerk project JSON string.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Atomically replaces the entire canvas with a complete diagram defined as a BlockWerk project JSON string. The JSON has a "blocks" array (each block needs a unique "id" and "type"; "x"/"y"/"params" are optional) and a "connections" array (each connection needs a unique "id" plus "fromBlockId", "fromPortId", "toBlockId", "toPortId"; a missing id fails validation of the whole load). Block types and port ids are listed by get_available_blocks. This is a destructive action that asks the user for approval in the BlockWerk tab.
Annotations the server declares
- title: Load diagram
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: false
load_templateReplaces the entire canvas with one of the built-in verified diagrams, by id from get_templates.No findings
Why it is in this group
- The description's first verb is "replace": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Replaces the entire canvas with one of the built-in verified diagrams, by id from get_templates. The template carries its topology, parameters and simulation settings. Returns the block and connection counts, the verified simulation settings, and the attribution when the model is based on third-party material. This is a destructive action that asks the user for approval in the BlockWerk tab.
Annotations the server declares
- title: Load diagram template
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: false
redo_last_ai_actionRedoes the last undone canvas modification.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Redoes the last undone canvas modification.
Annotations the server declares
- title: Redo last AI action
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: false
undo_last_ai_actionUndoes the last canvas modification made by the AI (add block, connect, delete, update parameter).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Undoes the last canvas modification made by the AI (add block, connect, delete, update parameter).
Annotations the server declares
- title: Undo last AI action
- readOnlyHint: false
- destructiveHint: true
- openWorldHint: false
Can't be undone 1Claude Code: ask
get_canvas_previewCaptures a visual screenshot preview of the canvas branded with the official BlockWerk watermark badge and returns the live interactive URL to view and edit the diagram online.1 finding
Why it is in this group
- The name "get_canvas_preview" says "get": a word for reading.
- The description's first verb is "capture": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "get_canvas_preview" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "get_canvas_preview" says "get": a word for reading.
Description, as the server wrote it Captures a visual screenshot preview of the canvas branded with the official BlockWerk watermark badge and returns the live interactive URL to view and edit the diagram online.
Annotations the server declares
- title: Get canvas preview
- readOnlyHint: true
- openWorldHint: false
Changes things 15Claude Code: ask
add_blockAdd a new block to the canvas.No findings
Why it is in this group
- The name "add_block" says "add": a word for a change.
Description, as the server wrote it Add a new block to the canvas. Returns the new block ID.
Annotations the server declares
- title: Add block
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
auto_tune_pidAutomatically tunes a PID controller using the Ziegler-Nichols ultimate cycle method.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Automatically tunes a PID controller using the Ziegler-Nichols ultimate cycle method. Finds the ultimate gain (Ku) and oscillation period (Tu) via binary search, then applies ZN formulas. No prior knowledge of the plant required.
Annotations the server declares
- title: Auto-tune PID
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
calculate_metricsCalculates step response metrics from signal data: rise time, settling time, overshoot percentage, and steady-state error.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Calculates step response metrics from signal data: rise time, settling time, overshoot percentage, and steady-state error.
Annotations the server declares
- title: Calculate signal metrics
- readOnlyHint: true
- openWorldHint: false
connect_blocksConnect an output port of one block to an input port of another.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Connect an output port of one block to an input port of another. Automatically resolves common port aliases (e.g., "in" -> "signal" for uPlotDisplay, "in" -> "error" for PIDController, "+" / "-" for Subtraction).
Annotations the server declares
- title: Connect blocks
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
evaluate_spec_maskEvaluates signal data against automated design specifications and tolerance corridors (rise time, settling time, overshoot %, steady-state error, min/max limits).1 finding
Why it is in this group
- The name "evaluate_spec_mask" says "evaluate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "evaluate_spec_mask" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "evaluate_spec_mask" says "evaluate": a word for a change.
Description, as the server wrote it Evaluates signal data against automated design specifications and tolerance corridors (rise time, settling time, overshoot %, steady-state error, min/max limits).
Annotations the server declares
- title: Evaluate spec mask
- readOnlyHint: true
- openWorldHint: false
export_diagramExports the current canvas project as a complete BlockWerk JSON string.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Exports the current canvas project as a complete BlockWerk JSON string.
Annotations the server declares
- title: Export diagram
- readOnlyHint: true
- openWorldHint: false
generate_codeGenerates standalone production code (C++, Python, Rust) from the current canvas diagram.1 finding
Why it is in this group
- The name "generate_code" says "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "generate_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "generate_code" says "generate": a word for a change.
Description, as the server wrote it Generates standalone production code (C++, Python, Rust) from the current canvas diagram. Returns structured code files, interfaces (inputs/outputs), execution order, and diagnostics.
Annotations the server declares
- title: Generate code
- readOnlyHint: true
- openWorldHint: false
optimize_multi_parameterOptimizes 2–6 parameters simultaneously using Nelder-Mead simplex search, for example Kp, Ki and Kd of a PID controller at once.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Optimizes 2–6 parameters simultaneously using Nelder-Mead simplex search, for example Kp, Ki and Kd of a PID controller at once.
Annotations the server declares
- title: Optimize multiple parameters
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
optimize_parametersFinds the optimal value for a single parameter using golden-section search.1 finding
Why it is in this group
- The description's first verb is "find": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "optimize_parameters" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The description's first verb is "find": a word for reading.
Description, as the server wrote it Finds the optimal value for a single parameter using golden-section search. Minimizes IAE (integral absolute error), overshoot, or settling_time within a [min, max] range. Converges in about 10 simulations.
Annotations the server declares
- title: Optimize parameter
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
run_simulationTriggers a new simulation run with the current canvas state and settings, refreshing the signal data.No findings
Why it is in this group
- The name "run_simulation" says "run": a word for a change.
Description, as the server wrote it Triggers a new simulation run with the current canvas state and settings, refreshing the signal data.
Annotations the server declares
- title: Run simulation
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
start_optimizationStart a parameter optimization job in the background.No findings
Why it is in this group
- The name "start_optimization" says "start": a word for a change.
Description, as the server wrote it Start a parameter optimization job in the background.
Annotations the server declares
- title: Start background optimization
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
sweep_parameterRuns simulations across a list of values for one parameter, returning control quality metrics (IAE, overshoot, settling_time, steady_state_error) per value.No findings
Why it is in this group
- The description's first verb is "run": a word for a change.
Description, as the server wrote it Runs simulations across a list of values for one parameter, returning control quality metrics (IAE, overshoot, settling_time, steady_state_error) per value. Requires measureBlockId and setpoint.
Annotations the server declares
- title: Sweep parameter
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
tidy_layoutAutomatically rearrange all blocks on the canvas into a clean, left-to-right flow.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Automatically rearrange all blocks on the canvas into a clean, left-to-right flow.
Annotations the server declares
- title: Tidy layout
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
update_architect_memoryUpdates the persistent memory of the Architect.No findings
Why it is in this group
- The name "update_architect_memory" says "update": a word for a change.
Description, as the server wrote it Updates the persistent memory of the Architect. Provide a JSON object with keys to update/merge.
Annotations the server declares
- title: Update architect memory
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
update_paramsUpdate one or more parameters of an existing block.No findings
Why it is in this group
- The name "update_params" says "update": a word for a change.
Description, as the server wrote it Update one or more parameters of an existing block.
Annotations the server declares
- title: Update block parameters
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
Only reads 18Claude Code: allow
analyze_topologyAnalyzes the block diagram structure: detects feedback loops, signal paths, and system order.No findings
Why it is in this group
- The name "analyze_topology" says "analyze": a word for reading.
Description, as the server wrote it Analyzes the block diagram structure: detects feedback loops, signal paths, and system order.
Annotations the server declares
- title: Analyze topology
- readOnlyHint: true
- openWorldHint: false
describe_canvasReturns a structured description of all blocks and connections currently on the canvas.No findings
Why it is in this group
- The name "describe_canvas" says "describe": a word for reading.
Description, as the server wrote it Returns a structured description of all blocks and connections currently on the canvas. Set "compact" to true for a token-efficient summary.
Annotations the server declares
- title: Describe canvas
- readOnlyHint: true
- openWorldHint: false
explain_simulationAnalyze the last completed simulation and return a structured diagnosis: signal anomalies (NaN, divergence, oscillation), solver health (rejection rate, efficiency), algebraic loop…No findings
Why it is in this group
- The name "explain_simulation" says "explain": a word for reading.
Description, as the server wrote it Analyze the last completed simulation and return a structured diagnosis: signal anomalies (NaN, divergence, oscillation), solver health (rejection rate, efficiency), algebraic loops, and optional stability margins. Returns JSON with severity-tagged findings and actionable suggestions.
Annotations the server declares
- title: Explain simulation
- readOnlyHint: true
- openWorldHint: false
get_ai_historyReturns the list of recent canvas operations performed by the AI, showing what can be undone.No findings
Why it is in this group
- The name "get_ai_history" says "get": a word for reading.
Description, as the server wrote it Returns the list of recent canvas operations performed by the AI, showing what can be undone.
Annotations the server declares
- title: Get AI action history
- readOnlyHint: true
- openWorldHint: false
get_analysis_measurementsRetrieves the currently active pinned measurements and their computed values across plotted signals in the Analysis panel.No findings
Why it is in this group
- The name "get_analysis_measurements" says "get": a word for reading.
Description, as the server wrote it Retrieves the currently active pinned measurements and their computed values across plotted signals in the Analysis panel.
Annotations the server declares
- title: Get analysis measurements
- readOnlyHint: true
- openWorldHint: false
get_architect_memoryReturns the persistent memory object of the Architect.No findings
Why it is in this group
- The name "get_architect_memory" says "get": a word for reading.
Description, as the server wrote it Returns the persistent memory object of the Architect.
Annotations the server declares
- title: Get architect memory
- readOnlyHint: true
- openWorldHint: false
get_available_blocksReturns the block types in the library with their descriptions, configurable parameters, and exact input/output port IDs.No findings
Why it is in this group
- The name "get_available_blocks" says "get": a word for reading.
Description, as the server wrote it Returns the block types in the library with their descriptions, configurable parameters, and exact input/output port IDs. Without a filter it returns a compact list of all types; with a list of type IDs it returns full details for those types. Example port IDs: Step out "out"; Sum in "in", out "out"; Gain in "in", out "out"; PIDController in "error","reset", out "out"; uPlotDisplay in "signal". Common aliases (e.g. "in" for PID error, "in" for uPlotDisplay signal, "+" / "-" for Subtraction) are resolved automatically.
Annotations the server declares
- title: List available blocks
- readOnlyHint: true
- openWorldHint: false
get_bode_dataComputes magnitude and phase frequency response (Bode data) between two blocks.No findings
Why it is in this group
- The name "get_bode_data" says "get": a word for reading.
Description, as the server wrote it Computes magnitude and phase frequency response (Bode data) between two blocks. Traces path backwards from outputBlockId. Returns analytic response if the path contains only linear blocks, otherwise runs numerical sweep.
Annotations the server declares
- title: Get Bode data
- readOnlyHint: true
- openWorldHint: false
get_engine_statusReturns the simulation engine status, including supported solvers, active background jobs, and compilation/WASM capabilities.No findings
Why it is in this group
- The name "get_engine_status" says "get": a word for reading.
Description, as the server wrote it Returns the simulation engine status, including supported solvers, active background jobs, and compilation/WASM capabilities.
Annotations the server declares
- title: Get engine status
- readOnlyHint: true
- openWorldHint: false
get_fft_dataComputes FFT (frequency spectrum) of a Scope signal.No findings
Why it is in this group
- The name "get_fft_data" says "get": a word for reading.
Description, as the server wrote it Computes FFT (frequency spectrum) of a Scope signal. Returns frequencies and magnitudes.
Annotations the server declares
- title: Get FFT data
- readOnlyHint: true
- openWorldHint: false
get_job_statusCheck the status and progress of a background job.No findings
Why it is in this group
- The name "get_job_status" says "get": a word for reading.
Description, as the server wrote it Check the status and progress of a background job.
Annotations the server declares
- title: Get job status
- readOnlyHint: true
- openWorldHint: false
get_signal_dataReturns time series data from a Scope block output for analysis.No findings
Why it is in this group
- The name "get_signal_data" says "get": a word for reading.
Description, as the server wrote it Returns time series data from a Scope block output for analysis.
Annotations the server declares
- title: Get signal data
- readOnlyHint: true
- openWorldHint: false
get_templatesLists the built-in, verified BlockWerk diagrams: classic control systems (PID loop, cruise control, inverted pendulum), signal processing, electrical and physics models.No findings
Why it is in this group
- The name "get_templates" says "get": a word for reading.
Description, as the server wrote it Lists the built-in, verified BlockWerk diagrams: classic control systems (PID loop, cruise control, inverted pendulum), signal processing, electrical and physics models. Each entry gives an id, what the diagram does, its difficulty and the blocks it uses. Returns metadata only; load_template puts a diagram on the canvas by id.
Annotations the server declares
- title: List diagram templates
- readOnlyHint: true
- openWorldHint: false
identify_fopdtAnalyzes a step response from a plant to identify its First-Order Plus Dead Time (FOPDT) parameters: Gain (K), Time Constant (tau), and Dead Time (theta).No findings
Why it is in this group
- The description's first verb is "analyze": a word for reading.
Description, as the server wrote it Analyzes a step response from a plant to identify its First-Order Plus Dead Time (FOPDT) parameters: Gain (K), Time Constant (tau), and Dead Time (theta). Requires a completed simulation with a step input connected to the plant. Returns the calculated parameters.
Annotations the server declares
- title: Identify FOPDT model
- readOnlyHint: true
- openWorldHint: false
list_jobsList all recent background jobs and their status.No findings
Why it is in this group
- The name "list_jobs" says "list": a word for reading.
Description, as the server wrote it List all recent background jobs and their status.
Annotations the server declares
- title: List jobs
- readOnlyHint: true
- openWorldHint: false
validate_canvasPerforms pre-flight topological and numerical integrity checks on the canvas.No findings
Why it is in this group
- The name "validate_canvas" says "validate": a word for reading.
Description, as the server wrote it Performs pre-flight topological and numerical integrity checks on the canvas. Detects unconnected required input ports, isolated blocks, parameter domain anomalies, and direct algebraic feedthrough loops.
Annotations the server declares
- title: Validate canvas
- readOnlyHint: true
- openWorldHint: false
validate_engineering_unitsChecks the consistency of engineering units across the diagram.No findings
Why it is in this group
- The name "validate_engineering_units" says "validate": a word for reading.
Description, as the server wrote it Checks the consistency of engineering units across the diagram. Detects incompatible connections and missing units.
Annotations the server declares
- title: Validate engineering units
- readOnlyHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.1.2. Values in angle brackets are yours to fill in.
claude mcp add --transport http blockwerk https://blockwerk-mcp-worker.blockwerk.workers.dev/Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__blockwerk__describe_canvas",
"mcp__blockwerk__get_available_blocks",
"mcp__blockwerk__get_share_link",
"mcp__blockwerk__analyze_topology",
"mcp__blockwerk__get_signal_data",
"mcp__blockwerk__get_analysis_measurements",
"mcp__blockwerk__get_architect_memory",
"mcp__blockwerk__validate_engineering_units",
"mcp__blockwerk__validate_canvas",
"mcp__blockwerk__get_templates",
"mcp__blockwerk__identify_fopdt",
"mcp__blockwerk__get_job_status",
"mcp__blockwerk__list_jobs",
"mcp__blockwerk__explain_simulation",
"mcp__blockwerk__get_bode_data",
"mcp__blockwerk__get_fft_data",
"mcp__blockwerk__get_engine_status",
"mcp__blockwerk__get_ai_history"
],
"ask": [
"mcp__blockwerk__add_block",
"mcp__blockwerk__connect_blocks",
"mcp__blockwerk__update_params",
"mcp__blockwerk__export_diagram",
"mcp__blockwerk__tidy_layout",
"mcp__blockwerk__calculate_metrics",
"mcp__blockwerk__evaluate_spec_mask",
"mcp__blockwerk__update_architect_memory",
"mcp__blockwerk__get_canvas_preview",
"mcp__blockwerk__run_simulation",
"mcp__blockwerk__sweep_parameter",
"mcp__blockwerk__optimize_parameters",
"mcp__blockwerk__optimize_multi_parameter",
"mcp__blockwerk__auto_tune_pid",
"mcp__blockwerk__start_optimization",
"mcp__blockwerk__generate_code"
],
"deny": [
"mcp__blockwerk__delete_block",
"mcp__blockwerk__load_diagram",
"mcp__blockwerk__clear_canvas",
"mcp__blockwerk__batch_commands",
"mcp__blockwerk__load_template",
"mcp__blockwerk__cancel_job",
"mcp__blockwerk__undo_last_ai_action",
"mcp__blockwerk__redo_last_ai_action"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as blockwerk. Review it before you use it.