↓ Skip to main content
Rillsoft AI
Connect Rillsoft

Developers: the MCP server contract

Check Resource Capacity with MCP

Check capacity in a project and portfolio with MCP: compare role demand, supply and daily shortages with identical filters in the application.

Counting assigned employees is not enough to answer a capacity question. Rillsoft Project compares role demand with available supply. The AI reads those values, summarises them and explains the bottleneck. Supply exceeding total demand does not rule out shortages on individual days.

These examples cover a single project and a portfolio. They change no employee assignments and save nothing. However, the tool contract classifies the required view change as write access: a strictly read-only connection cannot execute it. Authorise only the view adjustment for this analysis, then restore it. The safety reference explains this boundary.

Define the question first
#

ParameterAgree before querying
ObjectName and file of the open project or portfolio; check included projects
PeriodStart and finish including time; do not infer them from “soon”
RolesAll roles or a named selection; teams may mix qualifications
UnitRead quantityStepUnit from the application; do not silently convert hours and person-days
ScaleDays for shortages; weeks only as a subsequent aggregation
Initial viewCapture with rillsoft_view_state_get; account for existing time and activity filters

Demand is the role work required. Supply is the application’s calculated capacity of the appropriate people. An assignment connects a named employee with an activity. Free capacity is a remaining quantity for a particular role and period; a candidate’s free value applies to that activity’s period. These quantities are not interchangeable and cannot be added across different periods.

Example 1: capacity in a single project
#

Source file: a copy of “Assembly line MX-200.rpj” from the machinery package, with its matching pool. Open the file in the application before starting. Establish whether other projects matter to the decision; one open project does not provide complete allocations from closed project files.

User request: “Check industrial mechanics capacity from 1 January to 31 March 2027. Use the project’s unit and report shortages on individual days. Do not assign anyone or save.”

Read the dataset and presentation state before setting filters:

{"name":"rillsoft_project_tree_get","arguments":{}}
{"name":"rillsoft_view_state_get","arguments":{}}

Retain the entire second response as the original view. Check the project name and effort unit in the tree. Then select employee capacity by role. An existing activity filter must not silently narrow the question:

{"name":"rillsoft_view_state_apply","arguments":{"view":{"name":"employee_capacity","grouping":["role"],"display":"absolute","capacity":true,"secondaryView":"none"},"taskFilter":{"active":false},"timeFilter":{"active":true,"from":"01.01.2027 00:00","to":"31.03.2027 23:59"}}}
{"name":"rillsoft_timescale_apply","arguments":{"unit":"day","subdivision":1}}
{"name":"rillsoft_analysis_report_get","arguments":{}}

Each JSON line is a separate tools/call parameter object. Select the industrial mechanics role in the response using the role identified in the pool. Sum value as demand and offers[].value as supply per day. Calculate each daily gap first, then sum across the period.

Evidence and limit: The existing single-project run on 21 September 2026, build 10.0.623, shows weekly demand of 8–27 person-days against supply of 36–50 person-days for this role. Those weekly values are documented comparisons with the application; they alone do not prove the absence of daily shortages. The daily query above is the necessary additional check. Additionally tested on 19 October 2026 in DE and EN against build 10.0.626: industrial mechanics demand 132 person-days, supply 541.5 person-days, daily shortage 0 person-days. The unit remained shift (person-days), without conversion. Role demand and supply totals agree between daily and weekly reports. The project tree and original view remained unchanged after analysis.

Compare the report with Rillsoft Project using the same project, time filter, activity filter, role and unit. An unfiltered view covers a different period and is not a valid countercheck. If a role is absent from the report, check filters and pool; an absent row is not evidence of unlimited capacity.

Example 2: portfolio bottlenecks despite surplus total supply
#

Starting dataset: the documented five-project “Machinery and plant engineering” portfolio test configuration, status date 16 November 2026 at 08:00. This test configuration includes defined progress and delay values; it is not identical to every unchanged sample installation. Period: 2 November 2026 to 28 February 2027; unit: hours; all roles.

User request: “Compare role demand and supply in the portfolio. Report daily shortages even when total supply is sufficient. Identify the roles and weeks to investigate next.”

Read the tree and original view as in example 1. Check the five included projects and the unit; do not switch files during analysis. Now query the portfolio period:

{"name":"rillsoft_view_state_apply","arguments":{"view":{"name":"employee_capacity","grouping":["role"],"display":"absolute","capacity":true,"secondaryView":"none"},"taskFilter":{"active":false},"timeFilter":{"active":true,"from":"02.11.2026 00:00","to":"28.02.2027 23:59"}}}
{"name":"rillsoft_timescale_apply","arguments":{"unit":"day","subdivision":1}}
{"name":"rillsoft_analysis_report_get","arguments":{}}

DE/EN runtime result on 16 October 2026, build 10.0.625: 21,160 h demand and 36,104 h supply, yet 2,016 h shortage on individual days. Total demand did not exceed total supply in any of the 17 weeks; daily shortages still occurred in 16 weeks. These figures describe the stated test configuration, not a product guarantee.

The explanation lies in distribution across roles and days. A free person with a different qualification, or in a later week, does not automatically cover today’s role demand. Start with the affected role and shortage dates, then examine activities and suitable candidates. A candidate search is the next check, not a calculated reduction of the shortage.

Calculate and verify daily shortages correctly
#

For each role and day:

demand = sum(value)
supply = sum(offers[].value)
shortage = max(0, demand - supply)
period_shortage = sum(daily_shortage)
shortage_percent = 100 * period_shortage / period_demand

If demand is zero, the percentage is undefined; label it accordingly. Calculate per role and day, then aggregate roles or weeks. Applying max(0, total demand − total supply) across the whole period would hide bottlenecks. Do not count a person with several roles at full capacity in each role; use the application’s allocated supply.

Check role totals against the overall total and weekly totals against the daily values. In the application, compare the shortage column using the same filter. A different view such as role supplies role effort, not the capacity supply from employee_capacity.

Restore the view and choose the next action
#

Pass the original saved state as arguments to rillsoft_view_state_apply, then read rillsoft_view_state_get again. Check view, grouping, display, time filter, activity filter and timescale. Informational fields such as baseline do not select a baseline; this workflow does not change it. Do not save, and restore the view before a subsequent file change.

For your own question, use the tested demand and supply trend prompt or capacity report per role. If staffing is required, follow proposal → confirmation → assignment → conflict check. Rillsoft Project explains the planning features.

Sources reviewed on 19 October 2026: the existing single-project capacity-after-rescheduling run, portfolio demand/supply run 4c and their planning rules. The historical weekly check and the new daily run of 19 October 2026 are identified separately.

Product version
Rillsoft Project 10.0.626
Last verified
2026-10-19