Skip to content

[FEATURE] Optimizations Through Data Tiering #93

@SVLaursen

Description

@SVLaursen

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions