Skip to content

feat(frontend): batch approve/reject on global Tools page (MCP-2918)#723

Merged
Dumbris merged 1 commit into
mainfrom
feat/mcp-2918-batch-approve-tools
Jun 19, 2026
Merged

feat(frontend): batch approve/reject on global Tools page (MCP-2918)#723
Dumbris merged 1 commit into
mainfrom
feat/mcp-2918-batch-approve-tools

Conversation

@Dumbris

@Dumbris Dumbris commented Jun 19, 2026

Copy link
Copy Markdown
Member

Summary

Adds batch Approve and batch Reject (block) actions to the global Tools page (frontend/src/views/Tools.vue), alongside the existing batch Enable/Disable. The page spans multiple servers, so the actions group the current multi-select by server_name and fan out one approveTools / blockTools API call per server.

Parent: MCP-2916. Related MCP-2918.

Changes

  • New toolbar buttons data-test="batch-approve" / batch-reject, enabled only when the selection contains at least one tool whose approval_status is pending or changed.
  • On click: group approvable tool names by server_name, fan out one api.approveTools(server, names) / api.blockTools(server, names) per server via Promise.all, aggregate counts, and show a single success/error toast (e.g. "Approved 7 tools across 3 servers").
  • Already-approved tools in the selection are silently skipped (no error).
  • Partial failures surface a per-server error toast naming the failed servers.
  • Existing approval status column / filter behavior unchanged.
  • In-app hint updated to mention batch approve/reject.

Reuses the existing per-server /api/v1/servers/{id}/tools/approve|block endpoints (same client methods as MCP-2917). Frontend-only.

Testing

  • frontend/tests/unit/tools-batch-approve.spec.ts (TDD, 6 cases): button-disabled guard, group-by-server fan-out with correct names, skip-approved, blockTools on reject, single success toast summarising tools/servers, partial-failure error toast.
  • cd frontend && npx vitest run209 passed (27 files).
  • npx vue-tsc --noEmit → clean.
  • make build → embedded bundle refreshed, Go binary builds.

🤖 reviewers: please verify the group-by-server fan-out and the pending/changed guard.

Add batch Approve and Reject (block) actions to the global Tools page,
alongside the existing batch Enable/Disable. The page spans multiple
servers, so the actions group the current multi-select by server_name and
fan out one approveTools/blockTools call per server (Promise.all),
aggregate counts, and show a single success/error toast.

- Buttons (data-test batch-approve / batch-reject) enable only when the
  selection contains at least one pending/changed tool.
- Already-approved tools in the selection are silently skipped.
- Partial failures surface a per-server error toast.

Related #MCP-2918
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying mcpproxy-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 69f2fbf
Status: ✅  Deploy successful!
Preview URL: https://aec266d7.mcpproxy-docs.pages.dev
Branch Preview URL: https://feat-mcp-2918-batch-approve.mcpproxy-docs.pages.dev

View logs

@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions

Copy link
Copy Markdown

📦 Build Artifacts

Workflow Run: View Run
Branch: feat/mcp-2918-batch-approve-tools

Available Artifacts

  • archive-darwin-amd64 (28 MB)
  • archive-darwin-arm64 (25 MB)
  • archive-linux-amd64 (16 MB)
  • archive-linux-arm64 (14 MB)
  • archive-windows-amd64 (28 MB)
  • archive-windows-arm64 (25 MB)
  • frontend-dist-pr (0 MB)
  • installer-dmg-darwin-amd64 (21 MB)
  • installer-dmg-darwin-arm64 (19 MB)

How to Download

Option 1: GitHub Web UI (easiest)

  1. Go to the workflow run page linked above
  2. Scroll to the bottom "Artifacts" section
  3. Click on the artifact you want to download

Option 2: GitHub CLI

gh run download 27811660317 --repo smart-mcp-proxy/mcpproxy-go

Note: Artifacts expire in 14 days.

@mcpproxy-gatekeeper mcpproxy-gatekeeper Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved via independent reviewer verdict — KimiReviewer (MCP-2929): accept. QA PASS (MCP-2928, qa-gate green). CI fully green. Frontend-only batch approve/reject on the global Tools page; group-by-server fan-out, skip-approved, partial-failure toast. Merge gated by human confirmation (MCP-2918).

@Dumbris Dumbris merged commit 3f71302 into main Jun 19, 2026
37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants