Read Agent or Model (MO) Table Rows

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

modelName

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.

tableName

Yes

Name, label, unique name, or ID of the table, for example DetectedItems. The match is exact and case-sensitive.

columns

No

Technical names of the columns to return. The names are case-sensitive.

Default: first 5 columns of the table.

filters

No

Conditions that the rows must meet. All conditions must match (AND). Each condition is an object: {columnName, operator, value}. See Filter Operators.

Default: no filter.

orderBy

No

Column to sort by, as an object: {columnName, sortingMode}. Use the technical column name. sortingMode is asc or desc. If sortingMode is not given, the rows are sorted in descending order. Without orderBy, the rows are returned in no specific order.

limit

No

Maximum number of matching rows to use. The default is no limit. The tool returns at most 50 rows per page.

pageToken

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

mo

The Agent or Model: id, label, uniqueName, and deepLink, a link that opens it in Pricefx.

table

The table: id, uniqueName, label, name, and lastDataModificationDate.

paging

Paging information. See the following table.

warnings

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.

rows

The returned rows, keyed by the technical column name.

columns

The columns from the columns parameter. Returned only when you give columns.

The paging field has:

Attribute

Description

page

Returned page number.

pageSize

Rows per page. Always 50.

startRow

Position of the first returned row, starting at 0.

displayedRows

Number of returned rows.

totalCount

Number of rows that match the filters, before limit is applied.

truncated

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 in columns.

  • 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.

  • limit does not make the query faster. The tool reads all matching rows first, then applies limit and 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 modelName

Multiple objects match delivered name: [...] Please select one and deliver uniqueName or typedId for clear selection.

You do not have the required user role

You don't have permission to view Agents! or You don't have permission to view Models!

The Agent or Model is restricted to user groups that you are not in

There are User Group restrictions for requested object. You don't have required permissions.

tableName does not match any table

Incorrect table name. Select one of: [...]

The Agent or Model has no tables yet

There are no tables in model X yet.

tableName matches several tables

Multiple tables matching provided table name. Provide table unique name or id for clear selection: [...]

A column in columns or orderBy does not exist

Table "X" has no column with name "Y"

A column in filters or orderBy does not exist

No such column: X in model table. Try one of: [...]

A filter value for a number column is not a number

Field X is numeric. Must provide integer or real number for the detection rule definition, incorrect format for value: Y

A filter value for a date-time column has the wrong format

Cannot parse string: X into date. Please follow the pattern : yyyy-MM-dd HH:mm, yyyy-MM-dd HH:mm:ss or yyyy-MM-dd'T'HH:mm:ss

pageToken is higher than the number of pages

Page token has to be integer value between 1 and N