-
Notifications
You must be signed in to change notification settings - Fork 18
Description
Description
As a follow-up to #92, another improvement that can be done on the performance of the MCP server is to implement a system for data tiers.
This would allow the MCP server to choose between different levels/sizes of data objects returned as part of a request and by extension then minimize the usage of tokens by only parsing the data that is required.
This is already somewhat implemented in the usage of OData standards such as $select but it has been seen that in the case that the agent does not receive a requirement for providing a select, then it will just query for the full data objects.
Suggested Solution
The best idea would be to separate data by 3 tiers; HIGH, LOW, VERBOSE through an annotation such as @mcp.priority that would be placed on the data entity's properties. Example:
entity Books {
key ID : Integer @mcp.priority: 'HIGH';
title : String;
stock : Integer @mcp.priority: 'LOW';
author : Association to Authors;
createdBy : String; @mcp.priority: 'VERBOSE';
}As part of the tools and resources, there should then be a parameter for dataTier that would take effect in case no select statements were made.
In the case of no priority set, we would then default it to be 'HIGH'.
Alternatives
No response
Additional Context
No response