mcpbeat Sign in

Matlab Configure Scope Object Agent Skill

Prevents crashes due to problematic scope-related API misuse caused by agent escalation into internal scope framework objects. Use when configuring properties of scope-related Simulink blocks or MATLAB objects — constrains the agent to documented APIs and directs users to the scope UI when a property is not programmatically accessible.

2k tokens
context cost
the whole folder, loaded on every use
2
files
instructions only
0
copies elsewhere
how many repositories repackaged it
865
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-configure-scope-object

The instruction itself

11 sections, as written by the author

Scope Configuration — Safe API Skill

When To Use

This skill is active whenever you interact with properties of any scope-related block or object:

Simulink blocks:

  • Scope, Floating Scope (Simulink)
  • Time Scope, Spectrum Analyzer, Array Plot (DSP System Toolbox)
  • Constellation Diagram, Eye Diagram (Communications Toolbox)
  • Video Viewer (Computer Vision Toolbox)
  • Point Cloud Viewer (Point Cloud Toolbox)
  • Scope Viewer (signal-level viewer)
  • Range-Time Intensity Scope, Angle-Time Intensity Scope, Doppler-Time Intensity Scope (Phased Array System Toolbox)

MATLAB objects:

  • timescope(...)
  • spectrumAnalyzer(...) (formerly dsp.SpectrumAnalyzer)
  • dsp.ArrayPlot(...)
  • comm.ConstellationDiagram(...)
  • comm.EyeDiagram(...)
  • phased.IntensityScope(...)
  • phased.RTIScope(...)
  • phased.DTIScope(...)
  • phased.ATIScope(...)
  • phased.RangeDopplerScope(...)
  • phased.RangeAngleScope(...)
  • phased.AngleDopplerScope(...)

When NOT to Use

  • Configuring non-scope Simulink blocks — standard get_param/set_param on blocks like Gain, Sum, or Transfer Function does not carry escalation risk
  • Interacting with scopes without modifying properties — opening, closing, or viewing scopes during simulation
  • Using other visualization tools such as Simulation Data Inspector

Workflow

  • Identify scope type — Simulink block or MATLAB object (see "When This Skill Applies").
  • Get the configuration interface:
  • Simulink block: scopeConfig = get_param('model/Block', 'ScopeConfiguration');
  • MATLAB object: use the object directly.
  • List public properties: properties(scopeConfig) or properties(scopeObj).
  • Check the target property exists in the list. If not → Error Handling (property not found).
  • Set the property via direct assignment.
  • Handle errors:
  • Locked object → release(obj), then set.
  • Format mismatch → one retry with corrected type; for Simulink blocks, try the other access method (get_param/set_param vs ScopeConfiguration).
  • Still fails → report limitation to user and stop.

Key Functions

| Function / API | Purpose |

|---|---|

| get_param(block, 'ScopeConfiguration') | Obtain the documented configuration object for a Simulink scope block |

| set_param(block, param, value) | Set a block-level parameter (fallback access method) |

| properties(obj) | List public properties — the only way to confirm a property is accessible |

| release(obj) | Unlock a locked MATLAB System object before setting non-tunable properties |

CRITICAL SAFETY RULES

Boundary: Only use the documented public API

The ALLOWED actions section below is a complete whitelist. Any approach not listed there is forbidden, including but not limited to:

  • Do not access internal framework objects. The Simulink.scopes.* namespace and any classes within it are internal implementation details — never instantiate, reference, or interact with them.
  • Do not use introspection to discover undocumented interfaces. Do not inspect metaclass information, hidden properties, or internal methods on scope objects or their block handles.
  • Do not bypass the public API via the block object. Scope block handles must only be used with get_param/set_param and 'ScopeConfiguration' — never retrieve or manipulate the underlying object directly.
  • Do not escalate after failure. If a permitted API call fails and the error is not a simple format or access-method issue, stop. Do not attempt deeper access or introspection. Report the limitation to the user. (Permitted retries are defined in the Error Handling Procedure.)

ALLOWED workflow (complete whitelist):

Follow these steps in order. Do not skip steps or invent alternatives.

For Simulink scope blocks:

  • Get the documented configuration object:

scopeConfig = get_param('model/Scope', 'ScopeConfiguration');

  • List available public properties:

properties(scopeConfig)

  • Confirm the target property appears in the list. If it does not, go to the Error Handling Procedure — do not attempt to set it.
  • Read or write the confirmed public property:

value = scopeConfig.PropertyName;

scopeConfig.PropertyName = newValue;

  • Use get_param/set_param with documented parameter names:

value = get_param('model/Scope', 'ParameterName');

set_param('model/Scope', 'ParameterName', value);

A property may be accessible through one method but not the other. If one fails, try the other before reporting a limitation.

For MATLAB scope objects:

  • List available public properties:

properties(scopeObj)

  • Confirm the target property appears in the list. If it does not, go to the Error Handling Procedure — do not attempt to set it.
  • Read or write the confirmed public property:

scopeObj.PropertyName = newValue;

That is the complete set of permitted operations. Nothing else.

Mapping user requests to property names

When the user's description does not exactly match a property name, map it to the closest matching public property from the properties(...) output. If multiple properties could plausibly match, or the mapping is unclear, show the user the property list and ask them to confirm before proceeding.

Error Handling Procedure

Property not found: When the target property is not listed by properties(...):

  • Report to the user:

> "Programmatic access to [property] is not supported for [scope]. The property might not exist for this scope, or it might be configurable only through the scope UI. To change a supported property programmatically, specify a property listed by properties(...). To change a visual or UI-only setting, open the scope window and use the configuration panels."

  • Stop. Do not attempt further programmatic solutions for this specific property.

Locked object error: When setting a property fails because the object is locked (error mentions "non-tunable" or "release"):

  • Call release(scopeObj) to unlock the object.
  • Set the property.
  • The next call to step or obj(data) will re-lock the object.

Format or access-method error: When a confirmed property fails due to a type mismatch, incorrect value format, or method-specific limitation:

  • One retry is permitted for each of the following:
  • Correct the value format (e.g., numeric to string) and retry the same method.
  • For Simulink scope blocks, try the other access method with the same value.
  • If all retries fail, report the limitation and stop. Do not attempt deeper access or introspection.

MATLAB may expose internal class names in error messages or class() output. Do not use any class names from the Simulink.scopes.* namespace to access scope internals.

Why These Rules Exist

Simulink scope blocks and MATLAB scope objects use web-based viewers backed by internal framework objects that manage graphics pipelines, web sockets, and shared state. Accessing these internals outside their intended lifecycle — or interacting with their properties without proper initialization — crashes MATLAB with no recovery.

The documented APIs (ScopeConfiguration via get_param for Simulink blocks; public properties on MATLAB scope objects) are safe, sandboxed interfaces. Everything outside them is unsafe for programmatic access.

----

Copyright 2026 The MathWorks, Inc.

Other skills for the same job

different authors, same section of the catalogue
Obsidian CLI
by kepano
×2

Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more. Also supports plugin and theme development with commands to reload plugins, run JavaScript, capture errors, take screenshots, and inspect the DOM. Use when the user asks to interact with their Obsidian vault, manage notes, search vault content, perform vault operations from the command line, or develop and debug Obsidian plugins and themes.

795 tokens
Architecture Blueprint Generator
by github
vendor ×1

Comprehensive project architecture blueprint generator that analyzes codebases to create detailed architectural documentation. Automatically detects technology stacks and architectural patterns, generates visual diagrams, documents implementation patterns, and provides extensible blueprints for maintaining architectural consistency and guiding new development.

3k tokens
Omero Integration
by K-Dense-AI
×1

Securely inspect and automate microscopy data workflows against OMERO.server with omero-py, BlitzGateway, OMERO CLI, tables, annotations, ROIs, rendering, and documented OMERO.web APIs. Use for scoped OMERO inventory, metadata export, import/export planning, or reviewed write workflows.

36k tokens scripts
Review
by AvdLee
×1

Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/PRD asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X".

1k tokens
API Documenter
by lingxling
×1

Master API documentation with OpenAPI 3.1, AI-powered tools, and modern developer experience practices. Create interactive docs, generate SDKs, and build comprehensive developer portals.

2k tokens
API Changelog Versioning
by ComeOnOliver
×1

Creates comprehensive API changelogs documenting breaking changes, deprecations, and migration strategies for API consumers. Use when managing API versions, communicating breaking changes, or creating upgrade guides.

496 tokens
API Documenter
by ComeOnOliver
×1

Master API documentation with OpenAPI 3.1, AI-powered tools, and modern developer experience practices. Create interactive docs, generate SDKs, and build comprehensive developer portals. Use PROACTIVELY for API documentation or developer portal creation.

4k tokens
Data Substrate Analysis
by ComeOnOliver
×1

Analyze fundamental data primitives, type systems, and state management patterns in a codebase. Use when (1) evaluating typing strategies (Pydantic vs TypedDict vs loose dicts), (2) assessing immutability and mutation patterns, (3) understanding serialization approaches, (4) documenting state shape and lifecycle, or (5) comparing data modeling approaches across frameworks.

4k tokens

How to use it

Copy the folder

Take matlab/matlab-configure-scope-object from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.