feat: add pagination and filtering to MCP clients list endpoint - #4841
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (3)
📝 WalkthroughSummary by CodeRabbit
WalkthroughThis PR updates OpenAPI documentation for ChangesMCP clients endpoint documentation update
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
This stack of pull requests is managed by Graphite. Learn more about stacking. |
46c88b0 to
b186756
Compare
a5db8a2 to
745fe87
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/openapi/openapi.json`:
- Around line 38078-38087: The OpenAPI definition for the query parameter named
limit is inconsistent with its description and should be aligned. Update the
limit schema in the OpenAPI spec so it matches the documented behavior in the
parameter entry: set the minimum to 1 instead of 0, and add the default value of
25 to the schema. Keep the description and schema parity consistent for the
limit field so generated docs and clients reflect the same bounds and default.
In `@docs/openapi/paths/management/mcp.yaml`:
- Around line 87-93: The `limit` query parameter in the MCP OpenAPI spec has a
schema that conflicts with its description. Update the parameter definition in
the management MCP path so the schema matches “1–100, default 25”: change the
minimum to 1 and add a schema default of 25. Keep the definition aligned in the
`limit` parameter block so generated clients and validation reflect the
documented behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 4ddd4e5f-daaa-4daa-85ee-9fce43e35998
📒 Files selected for processing (3)
docs/openapi/openapi.jsondocs/openapi/paths/management/mcp.yamldocs/openapi/schemas/management/mcp.yaml
745fe87 to
c089a4e
Compare
43c4f41 to
d3672b6
Compare
c089a4e to
ce88985
Compare
d3672b6 to
010a3aa
Compare
ce88985 to
3317861
Compare
Merge activity
|
The base branch was changed.
3317861 to
a5faed7
Compare
* upstream/dev: feat: add pagination and filtering to MCP clients list endpoint (maximhq#4841) feat: add filter sidebar with faceted filtering to MCP clients page (maximhq#4840) feat: add connection_type, auth_type, state, and virtual_key filters to MCP clients list (maximhq#4839) # Conflicts: # ui/app/workspace/mcp-registry/page.tsx # ui/app/workspace/mcp-registry/views/mcpClientsTable.tsx

Summary
The
GET /management/mcp/clientsendpoint has been upgraded from returning a flat array to a paginated response with filtering and search support. Theis_deprecatedfield has also been removed from model schemas, and a newdisable_vk_identityoption has been added to the MCP server OAuth configuration.Changes
getMCPClientsendpoint now returns aMCPClientsListResponseobject containingclients,count,total_count,limit, andoffsetfields instead of a bare array.limit,offset,search,server,connection_type,auth_type,state,all_virtual_keys,virtual_keys,code_mode, anddisabledquery parameters to the endpoint. Multi-value filters use comma-separated OR semantics.400error response: Added aBadRequestresponse to thegetMCPClientsendpoint for invalid query parameters.is_deprecatedfield: Dropped theis_deprecatedboolean from model schemas in both inline path definitions and the sharedMCPClientcomponent schema.disable_vk_identityoption: Added a new boolean field to the MCP server OAuth configuration that forces identity-provider login by removing virtual-key identity from the consent flow and rejecting existing virtual-key-mode grants.MCPClientsListResponseschema: Introduced a reusable schema definition for the paginated clients list response.Type of change
Affected areas
How to test
Verify the updated OpenAPI spec is valid and that the
getMCPClientsendpoint reflects the new paginated contract:New config field —
disable_vk_identity:mcp_server_auth_modeisoauthand an identity provider is configured.true, virtual-key identity is removed from the consent flow and existing virtual-key-mode grants are rejected at/mcpand denied on refresh.Breaking changes
The
getMCPClientsresponse shape has changed from an array to a paginated object. Callers that previously iterated directly over the response array must now access.clientsinstead.Related issues
Security considerations
The new
disable_vk_identityflag enforces identity-provider login for MCP OAuth flows, preventing virtual-key credentials from being used as a substitute for user identity. This strengthens the authentication posture for deployments that require explicit IdP-backed user consent.Checklist
docs/contributing/README.mdand followed the guidelines