zai-org / zai-org/feedback

[建议 / Feature] Permission prompt shows only the tool name for MCP calls — display full tool_input before approval

Open
#610 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

priority: P2
Dominant language
No language data
Stars
22
Forks
1
PR merge metrics
No merged PRs in 30d

Description

提交前确认 · Pre-submission checklist
  • 我已搜索过现有 issue,确认这不是重复提议 / I searched existing issues and confirmed this isn't a duplicate.
  • 我已阅读 CONTRIBUTING.md / I've read CONTRIBUTING.md.
问题类别 · Category

工具调用 / MCP · Tool use / MCP

涉及的 Agent 框架 · Agent framework

ZCode Agent(自研)

使用场景 · Use case

In the ZCode Desktop permission card («Нужны права»), the preview is rendered per tool family: bash commands show the command line, file edits show diffs — but MCP tools (mcp__server__tool) render only the tool name, never the call arguments (tool_input).

So when an MCP tool needs approval, I have to allow or deny it blind: the full arguments become visible only after the call has already been approved and executed. Practically this forces choosing between approving unseen parameters and avoiding "always allow" rules for MCP tools altogether. (Verified in v3.11.2 by inspecting the app bundle: for the mcp family the preview is hardcoded to showInput: false; no setting changes this.)

MCP servers are third-party integrations, so this is the exact case where seeing what is being sent out matters most.

建议方案 · Proposal

Render the call's input JSON in the permission card for MCP tools the same way bash renders the command — ideally as a collapsible monospace block, visible before the Allow / Deny decision.

(As a stopgap I currently run a PermissionRequest hook that shows the tool_input in a native dialog before approving — happy to share it if useful for reference.)

预期价值 · Expected value
  • Informed approve/deny decisions for MCP calls; no more blind approvals.
  • Makes granular allow-rules ("always allow this MCP tool") actually usable, since arguments are still visible in the transcript/card flow.
  • Closes a trust/safety gap: MCP servers are third-party code, and arguments may contain data being sent outward.
你认为的优先级 · Your perceived priority

中 · Medium

你使用的 ZCode 版本 / 环境 · ZCode version / environment

ZCode Desktop 3.11.2 (macOS, Apple Silicon)

补充材料 · Additional context

Searched existing issues first — closest ones are all different: #256 (edit proposed actions in prompts), #243 (no session memory of prompts), #221 (card covers chat), #604 (allow-rules not persisted).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the ZCode Desktop permission-card rendering for the MCP family, where the report says the app bundle hardcodes showInput: false. Compare it with the bash preview and inspect the PermissionRequest hook example for the available tool_input data. Done means the full MCP call input is visible before Allow or Deny, ideally in a collapsible monospace block.

Written by the indexing model from the issue text.

Assessment

Domain
desktop, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.