Skip to content

improve: add filter parameter to compute list tools - #70

Merged
cavramoniu-ionos merged 5 commits into
mainfrom
feat/filter-param
Jul 1, 2026
Merged

improve: add filter parameter to compute list tools#70
cavramoniu-ionos merged 5 commits into
mainfrom
feat/filter-param

Conversation

@cavramoniu-ionos

Copy link
Copy Markdown
Contributor

Summary

  • Added an optional filters parameter to all compute list_* 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.
  • New dedicated input structs (ListInDatacenterInput, ListInServerInput, and 7 resource-scoped variants) keep get_* tool schemas clean - filter fields don't bleed onto single-resource GET tools.
  • All Filters field 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.

Copilot AI 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.

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 affecting get_* schemas).
  • Updated compute list_* tool implementations to apply Filter(k, v) on the SDK request builders before Execute().
  • 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.

Comment thread tools/inputs.go Outdated
@cavramoniu-ionos
cavramoniu-ionos marked this pull request as ready for review June 19, 2026 09:11
@cavramoniu-ionos
cavramoniu-ionos requested a review from a team as a code owner June 19, 2026 09:11
@cavramoniu-ionos cavramoniu-ionos changed the title feat: add filter parameter to compute list tools Jun 22, 2026
@cavramoniu-ionos
cavramoniu-ionos merged commit ee05dc5 into main Jul 1, 2026
3 checks passed
@cavramoniu-ionos
cavramoniu-ionos deleted the feat/filter-param branch July 1, 2026 12:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants