Add admin/app/proxy cleanup parity tools#113
Conversation
Move item resource reads into shared resource templates, keep collection resources list-only, and document the browser-pools URI shape so agent-facing resources are predictable.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Firetiger deploy monitoring skipped This PR didn't match the auto-monitor filter configured on your GitHub connection:
Reason: PR is from the To monitor this PR anyway, reply with |
Keep browser pool create validation strict while allowing update-only fields such as discard_all_idle to be sent without redundantly supplying size.
Expose the remaining small SDK passthroughs for project limits, deployment deletion/version filters, proxy checks, and paginated profile lookup while keeping the handlers on shared response helpers for clearer agent output.
99bedc0 to
0f021bb
Compare
Add shared list and pagination response helpers for MCP tool output. Use them across the PR 113 admin parity handlers so the new actions do not keep repeating hand-built JSON/text response boilerplate.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 8fbfcf4. Configure here.
c6e6427 to
5d4a8e6
Compare
…ension-cleanup-mcp-tool Resolve conflicts by taking the base branch's evolved copies of the shared browser/browser-pool/api-key work and re-applying this PR's unique admin/app/proxy cleanup parity changes on top: - projects.ts: keep base structure, re-add get_limits/update_limits with integer-validated limit params and errorResponse/toolErrorResponse style - apps.ts: re-add delete_deployment, list_apps query search, and list_deployments version filter on base's version - profiles.ts: re-add the get action and setup-time query narrowing - extensions.ts/proxies.ts: port to base's responses API (itemsJsonResponse, errorResponse, toolErrorResponse) - responses.ts/browser-config.ts/register.ts/api-keys.ts/browsers.ts/ browser-pools.ts: take base's versions (PR-side copies were duplicates) - remove browser-utilities.ts, superseded by base's browser-curl.ts and the clipboard actions folded into computer_action - README: keep base's 16-tool listing, fold in updated action descriptions Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Summary
Adds the small MCP parity cleanup slice after browser pools:
manage_appsdelete_deploymentversionthrough to deployment listing as the SDK'sapp_versionfilterquerysearch onlist_appsapp_name, matching the SDK/API requirementmanage_proxiesgetcheckwith optionalcheck_urlcheck_urlas HTTP(S) at the MCP boundarymanage_profilesgetquery,limit, andoffsetfor paginated listing instead of forcing agents to enumerate every profilemanage_projectsget_limitsandupdate_limitsfor per-project capsmanage_extensionsReview Question
The main question for this PR is not whether the SDK calls work; it is whether we want this functionality exposed through MCP at all.
My current read:
get/check, profileget/search pagination, and app deployment list/delete because they map to concrete agent workflows: prepare a browser with a working proxy, reuse the right profile, and clean up an app deployment after testing.manage_projectsget_limits/update_limitsis the most admin-passthrough-shaped part of this PR. Keep it if we want MCP to support lightweight project administration; split or drop it if we want this MCP to stay strictly browser/workflow-oriented.If accepted, I would treat this as the last small parity/admin cleanup slice, not as precedent that every SDK endpoint automatically deserves MCP exposure.
Why
These are the remaining small SDK passthroughs that do not belong in the managed-auth PR. They close agent-facing gaps without adding another large workflow surface:
Agent Experience / Flow
Typical app cleanup flow:
manage_apps { action: "list_apps", query: "..." }to find the app/version.manage_apps { action: "list_deployments", app_name, version }to narrow to the deployment for that app version.manage_apps { action: "get_deployment", deployment_id }before destructive action.manage_apps { action: "delete_deployment", deployment_id }.Typical proxy verification flow:
manage_proxies { action: "list" }orgetto identify the proxy.manage_proxies { action: "check", proxy_id, check_url: "https://target.example" }when site-specific reachability matters.Typical profile discovery flow:
manage_profiles { action: "list", query, limit }instead of pulling every profile.manage_profiles { action: "get", profile_name }before reuse or deletion.setuponly when the desired profile does not already exist, or withupdate_existing: truewhen intentionally refreshing it.Typical admin limit flow:
manage_projects { action: "get", project_id }to confirm the target project.manage_projects { action: "get_limits", project_id }to inspect current caps.update_limitsonly with the specific cap fields requested by the user; omitted fields are left unchanged.Implementation Notes
textResponse,jsonResponse, anderrorMessagehelpers are used in touched handlers to keep tool output consistent.Verification
bunx prettier --check README.md src/lib/mcp/tools/apps.ts src/lib/mcp/tools/proxies.ts src/lib/mcp/tools/profiles.ts src/lib/mcp/tools/projects.ts src/lib/mcp/tools/extensions.tsgit diff --checkbun run buildwith dummy auth env. Build passes; network access was needed because Next/Turbopack fetches Google Fonts during build.http://localhost:3002/mcpwith dummy bearer token:tools/listreturned 15 toolsmanage_apps,manage_proxies,manage_profiles,manage_projects, andmanage_extensionsapp_name, deployment delete withoutdeployment_id, proxy check withoutproxy_id, profile get without profile identifier, projectget_limitswithoutproject_id, and non-HTTP(S)check_urlschema rejection.Note
Medium Risk
New destructive (
delete_deployment) and admin (update_limits) actions are exposed through MCP with the same auth as other tools; validation is present but agents could misuse caps or delete deployments if prompted incorrectly.Overview
Extends several
manage_*MCP tools with SDK parity actions and aligns README with the documented tool surface.manage_appsaddsdelete_deployment,queryonlist_apps, andversionfiltering onlist_deployments(mapped toapp_version), with validation when version is set withoutapp_name.manage_proxiesaddsgetandcheck(optional HTTP(S)check_urlvalidated at the schema boundary).manage_profilesaddsgetand uses name search duringsetup’s duplicate check.manage_projectsaddsget_limitsandupdate_limitsfor concurrent invocations, sessions, and pooled session caps.manage_extensions,manage_proxies, and related handlers adopt sharederrorResponse/jsonResponse/itemsJsonResponsehelpers for consistent tool output.Reviewed by Cursor Bugbot for commit 27afef7. Bugbot is set up for automated code reviews on this repo. Configure here.