improve: add filter parameter to compute list tools - #70
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Adds an optional filters input to Compute Engine list_* MCP tools and forwards those filters to the IONOS Compute API as filter.{key}={value} query params, enabling server-side filtered listings (and reducing the need for client-side post-processing).
Changes:
- Extended compute list-tool input schemas with
filters(and introduced resource-scoped list input structs to avoid affectingget_*schemas). - Updated compute
list_*tool implementations to applyFilter(k, v)on the SDK request builders beforeExecute(). - Expanded endpoint routing tests and updated compute docs + changelog to reflect the new parameter.
Reviewed changes
Copilot reviewed 42 out of 42 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tools/inputs.go | Adds Filters fields and new list input structs used by compute list tools. |
| tools/compute/application_loadbalancer.go | Applies server-side filters for ALB list tools. |
| tools/compute/datacenter.go | Applies server-side filters for datacenter listing. |
| tools/compute/firewall_rule.go | Applies server-side filters for firewall-rule listing. |
| tools/compute/image.go | Applies server-side filters for image listing. |
| tools/compute/ip_block.go | Applies server-side filters for IP block listing. |
| tools/compute/lan.go | Applies server-side filters for LAN list tools. |
| tools/compute/loadbalancer.go | Applies server-side filters for LB list tools. |
| tools/compute/location.go | Applies server-side filters for location listing. |
| tools/compute/nat_gateway.go | Applies server-side filters for NAT gateway list tools. |
| tools/compute/network_loadbalancer.go | Applies server-side filters for NLB list tools. |
| tools/compute/nic.go | Applies server-side filters for NIC listing. |
| tools/compute/private_cross_connect.go | Applies server-side filters for PCC listing. |
| tools/compute/request.go | Applies server-side filters for request listing. |
| tools/compute/security_group.go | Applies server-side filters for security group list tools. |
| tools/compute/server.go | Applies server-side filters for server and server-subresource list tools. |
| tools/compute/snapshot.go | Applies server-side filters for snapshot listing. |
| tools/compute/target_group.go | Applies server-side filters for target group listing. |
| tools/compute/template.go | Applies server-side filters for template listing. |
| tools/compute/volume.go | Applies server-side filters for volume listing. |
| test/compute_test.go | Adds coverage asserting filter.* query params are sent for compute list tools. |
| docs/compute/application-loadbalancer.md | Documents new filters parameter for ALB list tools. |
| docs/compute/datacenter.md | Documents new filters parameter for datacenter listing. |
| docs/compute/firewall-rule.md | Documents new filters parameter for firewall-rule listing. |
| docs/compute/image.md | Documents new filters parameter for image listing. |
| docs/compute/ip-block.md | Documents new filters parameter for IP block listing. |
| docs/compute/lan.md | Documents new filters parameter for LAN list tools. |
| docs/compute/loadbalancer.md | Documents new filters parameter for LB list tools. |
| docs/compute/location.md | Documents new filters parameter for location listing. |
| docs/compute/nat-gateway.md | Documents new filters parameter for NAT gateway list tools. |
| docs/compute/network-loadbalancer.md | Documents new filters parameter for NLB list tools. |
| docs/compute/nic.md | Documents new filters parameter for NIC listing. |
| docs/compute/private-cross-connect.md | Documents new filters parameter for PCC listing. |
| docs/compute/request.md | Documents new filters parameter for request listing. |
| docs/compute/security-group.md | Documents new filters parameter for security group list tools. |
| docs/compute/server-subresources.md | Documents new filters parameter for server subresource list tools. |
| docs/compute/server.md | Documents new filters parameter for server listing. |
| docs/compute/snapshot.md | Documents new filters parameter for snapshot listing. |
| docs/compute/target-group.md | Documents new filters parameter for target group listing. |
| docs/compute/template.md | Documents new filters parameter for template listing. |
| docs/compute/volume.md | Documents new filters parameter for volume listing. |
| CHANGELOG.md | Notes the new filters capability for compute list_* tools. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
cavramoniu-ionos
marked this pull request as ready for review
June 19, 2026 09:11
cavramoniu-ionos
requested review from
adeatcu-ionos,
avirtopeanu-ionos,
cristiGuranIonos,
glimberea,
mimihalescu,
rijeshharidas and
rmocanu-ionos
June 19, 2026 09:11
mimihalescu
approved these changes
Jul 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
filtersparameter to all computelist_*tools in the MCP server. Filters are forwarded as server-side query params (filter.{key}={value}), so only matching resources are returned by the API - no client-side post-processing needed.ListInDatacenterInput,ListInServerInput, and 7 resource-scoped variants) keepget_*tool schemas clean - filter fields don't bleed onto single-resource GET tools.Filtersfield descriptions include a retry hint: if a filter returns an empty result, the model retries without filters since a typo or value mismatch silently returns nothing.