Repository navigation
mcp: follow-ups for agent tools, lint rules and error capture #372
Copy link
Copy link
Open
Labels
bugSomething is broken or shows wrong dataSomething is broken or shows wrong datafeatureA feature request or a pull request that adds oneA feature request or a pull request that adds one
Description
Items still open from the audit issue #358. The fixed items landed in #363; this issue tracks what is left. Each item says why it was not part of that fix.
From #358 (agent tools, lint rules and error capture)
Partly done (the rest is open):
- Medium: email-in-url leaks the email: The finding's route now replaces each address with [email] (EMAIL_IN_URL in rpc/router-config-tools.ts), covered by a new test. redactUrl still leaves emails alone: masking them there would change every HTTP and router URL, which is a product decision.
Open:
- Low: forms rejection attribution: Confirmed, but the collector only wraps the submitState.selfSubmitting flag and has no handle on the action's promise. Fixing it needs a different hook into submit().
- Low: no tool titles / tags / structuredContent: Touches every registerTool call and changes the list tools' output shape. Too wide for a small, safe fix.
- Low: inconsistent page argument (pageId aliases): Dropping the aliases is a breaking change planned for a minor release, so it is a release decision.
- Improvement: generate AGENT_INSPECTOR/ACTION_TOOLS/PAGE_AGENT_ENTRIES from metadata: Refactors config across many files, not a small local change.
- Improvement: MCP prompts for workflows: New feature and new API.
- Improvement: per-page resource templates and list_changed: New API and needs a design.
- Improvement: general wait-for tool: New tool.
- Improvement: snapshot-everything export tool: New tool.
- Improvement: keep tool descriptions under ~600 chars: Needs an editorial pass over several long descriptions, with matching docs. Left for a separate change.
- Improvement: module and lazy-chunk graph tool: New feature.
- Improvement: server-side SSR and Vite error capture: New feature, and it overlaps with phase 3 of 4: a shell you live in #342.
- Improvement: template diagnostics lint-templates tool: New tool.
- Improvement: perf collector (LCP/CLS/INP/long tasks): New collector.
- Improvement: lazy chunk sizes per route: New feature.
- Improvement: lint rule config to turn rules off: New public config option.
- Improvement: JSON/SARIF lint export through the CLI: New CLI feature.
Done since
- Panel-only actions as an agent tool:
clear-recordingslanded in feat(mcp): add clear-recordings agent tool #365.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething is broken or shows wrong dataSomething is broken or shows wrong datafeatureA feature request or a pull request that adds oneA feature request or a pull request that adds one
Activity
Kaap10 commentedon Oct 12, 2026
Happy to see #365 merged. My focus is on the MCP and agent tools side of this issue.
Looking at the remaining tasks, the MCP-specific items break down into 8 focused PRs to keep changes small and reviewable:
I can take on the next item and would like to start with trimming tool descriptions under ~600 chars (safe and non-breaking) or adding tool titles and tags. Let me know if you would like me to proceed @erkamyaman
erkamyaman commentedon Oct 12, 2026
Thanks @Kaap10, great work on #365 and a solid breakdown 🙌 Go ahead with 1 (trimming tool descriptions), it's safe to start now. Please hold 2 and 3 for a bit: a PR for the phase 1 security items in #340 is about to change how tools are registered and tiered in
config.tsanddevframe.ts. I'll ping you here when it lands, so you can build the metadata and the derived lists on top of it. 4–8 sound good too. Let's take them one at a time after that. Keep each PR small like #365 and update the matching docs pages inapps/docs.erkamyaman commentedon Oct 12, 2026
@Kaap10 the phase 1 security PR is merged (#375), so 2 and 3 are unblocked 🚀
A few things it changed that 2 and 3 should build on:
config.tsnow hasAGENT_SAFETY, which marks each tool asread,actionordestructive.readOnlykeeps only thereadtools. Please treat the tier as part of each tool's metadata, so the derived lists in 3 pick it up too.ACTION_TOOLS.routeris now['navigate', 'clear-recordings']. Some tools are free in some modes, which is inACTION_TOOL_FREE_MODES(for examplechange-detectionwithmode: 'read').dispatch-ngrx-actionrefuses when it can't tell which page to use.For 3, the derived
AGENT_INSPECTOR,ACTION_TOOLS,PAGE_AGENT_ENTRIESandAGENT_SAFETYshould match what's there today exactly. A test that compares them would make the review easy.Same as before: one small PR at a time, with the matching docs pages in
apps/docsupdated. Thanks!Kaap10 commentedon Oct 12, 2026
@erkamyaman, opened PR for # 1 (tool descriptions under 600 chars with regression tests).
Noted on the #375 changes - will incorporate safety tiers and metadata into # 2 next once this lands.
feat(mcp): trim tool and resource descriptions under 600 characters
feat(mcp): trim tool and resource descriptions under 600 characters (#…