Built-in MCP Tools

From QPR ProcessAnalyzer Wiki
Revision as of 12:49, 13 August 2026 by Ollvihe (talk | contribs)
Jump to navigation Jump to search

QPR ProcessAnalyzer ships with the followin built-in MCP tools that allow an MCP client to explore process models and run analytical queries against them. The built-in tools are always available in the MCP interface. All three tools are read-only: they only retrieve data and never modify models, data tables, or any other server-side state. In MCP terms, each tool is annotated with readOnlyHint: true and destructiveHint: false. In addition, custom MCP tools can be implemented using scripts.

It's possible to temporarily disable the built-in MCP tools using the EnabledPrimitives setting if they are undesired.

The built-in MCP tools are internally available as system projects containing system scripts. System projects and scripts are content that cannot be modified and are not shown in the user interface. The built-in MCP tools can be listed using the expression language by querying SystemScripts in Expression Designer.

Overview

Tool Purpose Read-only

List Available Process Models - Get Model Details - Generic Query }


A typical workflow is: first call List Available Process Models to find a model of interest, then call Get Model Details to inspect its structure (data tables, columns, object types), and finally use Generic Query to compute results.

List Available Process Models

Lists all process models that are available on the server. For each model it reports the model ID, name, description, whether the model uses in-memory or DataFrame-based processing, and whether it is an object-centric (OCPM/OCEL) or case-centric model. This tool is read-only.

Inputs

This tool takes no input parameters (the input schema is an empty object).

Outputs

The tool returns an object with a single models property, which is an array of model objects. Each model object has the following fields:

Field Type Description

id - name - description - isInMemoryModel - isObjectCentric - createdDate - createdBy - modifiedDate - modifiedBy }


Only models that pass a validity check are included in the result.

Get Model Details

Returns detailed information about a single model, identified by its ID. In addition to the basic metadata also returned by List Available Process Models, this tool exposes the model's configuration and the data tables it uses — including columns, data types, primary keys, and foreign keys. This is the recommended way to discover the exact table and column names needed to build a query. This tool is read-only.

Inputs

Parameter Type Required Description

modelId }


Outputs

The tool returns an object describing the model. It contains the same identity fields as a model object from List Available Process Models (id, name, description, isInMemoryModel, isObjectCentric, createdDate, createdBy, modifiedDate, modifiedBy), plus:

Field Type Description

configuration - usedDataTables }


Each entry in usedDataTables describes one data table:

Field Type Description

id - name - description - createdDate / createdBy - modifiedDate / modifiedBy - configuration - dataSourceType - dataSourceObjectType - nRows - columns - foreignKeys }


Each column entry contains:

Field Type Description

Name - DataType - DataTypeInDataSource - PrimaryKey }


Each foreign key entry contains a TargetDatatable (the referenced data table) and a Columns array of source-to-target column mappings, where each mapping has a Source column name and a Target column name.

Generic Query

Runs a generic analytical query against a QPR ProcessAnalyzer model using the QPR expression language. When the processing method is DataFrame (the default and recommended mode), the calculation is executed directly in the data source (Snowflake or SQL Server) using SqlDataFrames, and a tabular result with dimension and value columns is returned. The tool supports both case-centric models and object-centric (OCPM/OCEL) models. Despite its analytical power, this tool is read-only — it only reads and aggregates existing data.

Inputs

The tool takes a single required object parameter, queryConfiguration, which describes the query. Its most important properties are:

Property Type Required Description

Root - ProcessingMethod - ModelId - ContextType - Filter }


Additional configuration properties (such as Dimensions, Values, Ordering, MaximumRowCount, and IncludeAllSourceDataColumns) shape and limit the output. Dimensions group rows and Values define the aggregated or selected columns.

Outputs

The result is returned as a data frame with the following structure:

Field Type Description

Columns - Rows }


Notes

For object-centric (OCEL) models queried with ContextType: "Model", the Filter must include a Perspective that selects the object type treated as the "case". Because column names are model-specific and case-sensitive, it is good practice to first run Get Model Details, or a query with IncludeAllSourceDataColumns: true and MaximumRowCount: 1, to discover the actual column names before building expressions.