Skip to content

feat: MCP permission model + unified policy enforcement + settings UI (Phase 4) (#129) * feat(mcp-bridge): enforce McpPolicy + flat /tools shape - bump data-studio-agent to feat/mcp-permissions (confirm_destructive) - McpConfig.policy field (serde default, backward compatible) - pure check_policy() gates /invoke: mode → allowlist → read-only override → confirm_destructive - invoke_with_policy() extracted for testability - /tools returns flat [{name, description, inputSchema, metadata:{riskLevel, ... #412

feat: MCP permission model + unified policy enforcement + settings UI (Phase 4) (#129) * feat(mcp-bridge): enforce McpPolicy + flat /tools shape - bump data-studio-agent to feat/mcp-permissions (confirm_destructive) - McpConfig.policy field (serde default, backward compatible) - pure check_policy() gates /invoke: mode → allowlist → read-only override → confirm_destructive - invoke_with_policy() extracted for testability - /tools returns flat [{name, description, inputSchema, metadata:{riskLevel, ...

feat: MCP permission model + unified policy enforcement + settings UI (Phase 4) (#129) * feat(mcp-bridge): enforce McpPolicy + flat /tools shape - bump data-studio-agent to feat/mcp-permissions (confirm_destructive) - McpConfig.policy field (serde default, backward compatible) - pure check_policy() gates /invoke: mode → allowlist → read-only override → confirm_destructive - invoke_with_policy() extracted for testability - /tools returns flat [{name, description, inputSchema, metadata:{riskLevel, ... #412