Add sparse fieldsets (fields) to get/list tools#2
Merged
Conversation
Add an optional `fields` argument to the `get` and `list` tools (JSON:API sparse fieldsets): return only the named attributes and/or relationships, shrinking the MCP response. Attribute and relationship names share one flat namespace; unknown names are rejected with InvalidParams. - Serializer::Base honors `fields:` natively (serialize_one/collection/ serializable_hash); unselected has_many links are never queried, and the links block is omitted when no relationship is selected. - FieldSelection parses/validates the request; Serialization bridges the executors to the serializer, pruning output for injected serializers that predate the `fields:` kwarg so the injection contract is unchanged. - Omitting `fields` returns the full shape exactly as before (backward compatible). Bumps version 0.1.0 -> 0.2.0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Add an optional
fieldsargument to thegetandlisttools (JSON:API sparse fieldsets): return only the named attributes and/or relationships, shrinking the MCP response. Attribute and relationship names share one flat namespace; unknown names are rejected with InvalidParams.fields:natively (serialize_one/collection/ serializable_hash); unselected has_many links are never queried, and the links block is omitted when no relationship is selected.fields:kwarg so the injection contract is unchanged.fieldsreturns the full shape exactly as before (backward compatible).Bumps version 0.1.0 -> 0.2.0.