Skip to content

Installer should request consent for usage telemetry and shouldn't force alwaysLoad: true #42

Description

@zouhair-joby

Use Case

Thanks for the work on the agentic toolkit. The install experience is much smoother than wiring things up by hand. I want to raise two concerns about the defaults the installer writes into ~/.claude.json, both around consent and Claude Code conventions.

After installation, my matlab MCPs:

"matlab": {
  "command": "/Users/<me>/.matlab/agentic-toolkits/bin/matlab-mcp-server",
  "args": [
    "--matlab-session-mode=existing",
    "--extension-file=/Users/<me>ulink/tools/tools.json"
  ],
  "alwaysLoad": true
}

Issue 1: Usage telemetry is enabled by default with no prompt

matlab-mcp-server collects usage telemetry unless --disable-telemetry=true is passed. Prior to the matlab-agentic-toolkit, users previously set things up manually via matlab/matlab-mcp-server, and its README documented that data collection exists and how to turn it off, so the person doing the install saw it and made a choice.

The toolkit installer toolbox is interactive and already prompts the user for other things, but it silently writes the telemetry-on configuration without surfacing that data collection is happening or that an opt-out flag exists. The matlab-agentic-toolkit README also does not address data-collection. Moving from "documented default in a manual setup" to "undisclosed default in a guided installer" makes this feel considerably more opaque, and I don't think that's the standard a vendor like MathWorks should be setting. Telemetry should be disclosed at install time and ideally opt-in (or at minimum an explicit, clearly-labeled opt-out prompt), with --disable-telemetry=true written when the user declines.

Issue 2: alwaysLoad: true overrides Claude Code's deferred-loading behavior

Claude Code defers loading of MCP tools by default: a server's tool schemas are pulled into the model's context on demand (via tool search) rather than occupying the context window at all times. This keeps the context budget available for the user's actual work. Setting "alwaysLoad": true opts out of that and forces every MATLAB/Simulink tool to be resident in context for every session, whether or not the user is touching MATLAB that day.

This is a non-standard override, and the installer applies it without asking. Given the size of the MATLAB/Simulink toolset, this has a real cost on context for users who only occasionally use the server. The default should respect Claude Code's normal deferred-loading behavior; if alwaysLoad is offered at all, it should be an explicit, opt-in choice.

Relevant Skill or MCP Tool

No response

Proposed Behavior

  1. Disclose telemetry during installation and make it opt-in (or an explicit, clearly-labeled opt-out), writing --disable-telemetry=true when declined.
  2. Don't set alwaysLoad: true by default; leave deferred loading in place, or make it an explicit user choice.
  3. Document both behaviors in the toolkit README so the defaults are discoverable.

None of this is hard to fix and it would bring the toolkit in line with both Claude Code conventions and reasonable consent practices. Thanks for considering it.

Current Workaround

python3 - <<'EOF'
import json, os, shutil, time
p = os.path.expanduser("~/.claude.json")
shutil.copy(p, f"{p}.bak.{int(time.time())}")
with open(p) as f: d = json.load(f)
m = d.setdefault("mcpServers", {}).setdefault("matlab", {})
args = m.setdefault("args", [])
if "--disable-telemetry=true" not in args:
    args.append("--disable-telemetry=true")
m["alwaysLoad"] = False
with open(p, "w") as f: json.dump(d, f, indent=2)
print("Updated:", json.dumps(m, indent=2))
EOF

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    confirmedIssue has been verified and acceptedenhancementNew feature or requestin progressWe are actively developing this feature or bug-fix

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions