@@ -1,6 +1,7 @@
11package permissions
22
33import (
4+ "encoding/json"
45 "fmt"
56 "strings"
67
@@ -614,6 +615,35 @@ func (p *permissionDialogCmp) generateDefaultContent() string {
614615
615616 content := p.permission.Description
616617
618+ // Add pretty-printed JSON parameters for MCP tools
619+ if p.permission.Params != nil {
620+ var paramStr string
621+
622+ // Ensure params is a string
623+ if str, ok := p.permission.Params.(string); ok {
624+ paramStr = str
625+ } else {
626+ paramStr = fmt.Sprintf("%v", p.permission.Params)
627+ }
628+
629+ // Try to parse as JSON for pretty printing
630+ var parsed any
631+ if err := json.Unmarshal([]byte(paramStr), &parsed); err == nil {
632+ if b, err := json.MarshalIndent(parsed, "", " "); err == nil {
633+ if content != "" {
634+ content += "\n\n"
635+ }
636+ content += string(b)
637+ }
638+ } else {
639+ // Not JSON, show as-is
640+ if content != "" {
641+ content += "\n\n"
642+ }
643+ content += paramStr
644+ }
645+ }
646+
617647 content = strings.TrimSpace(content)
618648 content = "\n" + content + "\n"
619649 lines := strings.Split(content, "\n")