The modelobjects_read_model_table_rows tool reads rows from a table of an Agent or Model, for example the detected items or actions of an Agent. You can choose the columns, filter and sort the rows, and page through large tables 50 rows at a time.
Tool Name – modelobjects_read_model_table_rows
Title – Read Agent or Model (MO) Table Rows
Type – Private
Access Profile – Operator
Permissions
The modelobjects_read_model_table_rows tool uses your Pricefx permissions. The tool checks your access to the Agent or Model before it reads any rows.
To read the tables of an Agent, you need:
-
one of the user roles MODULECATEGORY_MO_RO, MODULECATEGORY_MO_EDIT, or MODULECATEGORY_MO_MANAGER, and
-
membership in a user group that has Edit, Manage, or View Details access to the Agents module, if the Agents module has such user groups set.
To read the tables of any other Model, you need one of the user roles PO_MCMO_RO, PO_MCMO, PO_MCMO_EDITOR, or PO_MCMO_MANAGER.
If the Agent or Model is restricted by User Group (Edit) or User Group (View Details), you must also be a member of one of those user groups. Users with the USERGROUPOVERRIDE role are not limited by user groups.
The modelobjects_read_model_table_rows runs as a Groovy tool on your Pricefx partition, not centrally on the Pricefx MCP Server. To make it available to your MCP clients, the tool must be deployed to your partition:
-
The Groovy logic that implements the tool must be deployed to the partition.
-
The tool must be declared in an Advanced Configuration Option named
MCP_tool_modelobjects_read_model_table_rows. For more information, see Partition Tools Declaration.
If the tool is not deployed, it does not appear in the tool list of your MCP client. The tool is planned to move to the Pricefx MCP Server in an upcoming release, after which no deployment will be needed.
Parameters
|
Parameter |
Required |
Description |
|---|---|---|
|
|
Yes |
Unique name, label, ID, or typed ID of the Agent or Model, for example Data Agent 12 or 2187.MO. If no Agent or Model matches exactly, the tool looks for one whose unique name or label contains the text, not case-sensitive. |
|
|
Yes |
Name, label, unique name, or ID of the table, for example DetectedItems. The match is exact and case-sensitive. |
|
|
No |
Technical names of the columns to return. The names are case-sensitive. Default: first 5 columns of the table. |
|
|
No |
Conditions that the rows must meet. All conditions must match (AND). Each condition is an object: Default: no filter. |
|
|
No |
Column to sort by, as an object: |
|
|
No |
Maximum number of matching rows to use. The default is no limit. The tool returns at most 50 rows per page. |
|
|
No |
Page number to return, starting at 1. Each page has 50 rows. Default: page 1. |
Filter Operators
|
Operator |
Meaning |
Value |
|---|---|---|
|
eq |
Equal |
One value |
|
ne |
Not equal |
One value |
|
gt |
Greater than |
One value |
|
gte |
Greater than or equal |
One value |
|
lt |
Less than |
One value |
|
lte |
Less than or equal |
One value |
|
in |
Equal to any of the values |
List of values |
|
nin |
Not equal to any of the values |
List of values |
In filters, columnName can be the technical name or the label of the column.
Filter Values
-
Number columns: enter a number, or a string with a number, for example 10 or "10.5". Negative numbers in a string are not accepted.
-
Date-time columns: enter a date and time in UTC, in one of these formats: yyyy-MM-dd HH:mm, yyyy-MM-dd HH:mm:ss, or yyyy-MM-dd'T'HH:mm:ss. A date without a time is not accepted. With eq and in, a value matches every time within one minute after it, for example 2026-10-01 08:30 matches 08:30:00 to 08:31:00.
-
Other columns: the value is compared as text.
Output
The modelobjects_read_model_table_rows tool returns:
|
Field |
Description |
|---|---|
|
|
The Agent or Model: |
|
|
The table: |
|
|
Paging information. See the following table. |
|
|
Notes about the result, for example that the result was cut to 50 rows or that no rows match. Empty when there are no notes. |
|
|
The returned rows, keyed by the technical column name. |
|
|
The columns from the |
The paging field has:
|
Attribute |
Description |
|---|---|
|
|
Returned page number. |
|
|
Rows per page. Always 50. |
|
|
Position of the first returned row, starting at 0. |
|
|
Number of returned rows. |
|
|
Number of rows that match the filters, before |
|
|
true if more than 50 rows are available. Stays true on every page, including the last one. |
Behavior and Limitations
-
The tool returns at most 50 rows per call. To get more rows, request the next page with
pageToken. -
Without
columns, the tool returns only the first 5 columns of the table. To see other columns, list them incolumns. -
Without
orderBy, the rows are returned in no specific order. To get the most recent rows, sort descending by a date column, for example runAt or lastUpdateDate. -
limitdoes not make the query faster. The tool reads all matching rows first, then applieslimitand the page. -
If no rows match, the tool returns an empty list and a note in
warnings, not an error. -
The tool reads data only. It does not change the Agent or Model.
-
To find the table names of an Agent or Model, use the tool that lists model tables first, for example
agents_list_model_tables.
Errors
|
Situation |
Error Message |
|---|---|
|
Several Agents or Models match |
|
|
You do not have the required user role |
|
|
The Agent or Model is restricted to user groups that you are not in |
|
|
|
|
|
The Agent or Model has no tables yet |
|
|
|
|
|
A column in |
|
|
A column in |
|
|
A filter value for a number column is not a number |
|
|
A filter value for a date-time column has the wrong format |
|
|
|
|