Skip to main content
Glama

p6_float_analysis

Read-onlyIdempotent

Analyze total and free float distribution for open Primavera P6 activities by day buckets, with counts, percentages, samples, and summary statistics.

Instructions

Total and free float distribution of the open activities (not completed, LOE and WBS summary left out) of the last F9, in days of each activity's calendar. Buckets from edges_days (default -20, -10, -5, 0, 5, 10, 20, 44; 0 is always added): below the first edge, [a, b) below zero, exactly 0, (a, b] above zero, above the last edge, so every value falls in exactly one bucket (compared in hours, never rounded). Each bucket: total_float and free_float counts, their % of the activities, and samples (the sample_size lowest floats). no_value counts activities without a float; all_ranges_covered checks that bucket counts plus no_value equal the activities. stats: min, max, mean and median in days, total floats that are not whole days, negative, zero, critical (project definition). include_milestones=False leaves milestones out; wbs_name_contains and code_type / code_value / include_child_codes filter as in p6_query_activities (code_filter in the result, as there).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectYesProject ID as shown in P6 (p6_list_projects).
code_typeNo
code_valueNo
edges_daysNo
sample_sizeNoSample rows per check (max 50).
wbs_name_containsNo
include_milestonesNo
include_child_codesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description nonetheless adds substantive behavior: exclusions (completed, LOE, WBS summary), bucket semantics including the guarantee that every value lands in exactly one bucket, the wrinkle that comparison happens in hours and is never rounded, and the internal consistency checks (no_value, all_ranges_covered).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and nearly every clause carries functional information about bucket boundaries, output fields, or filters. It is a dense single paragraph with no visual structure, which hurts scanability for a long definition, but there is little filler to cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex analytical tool with no output schema and low schema description coverage, the description is thorough: it defines the output shape (per-bucket total_float/free_float counts, percentages, samples), the stats block, and the integrity fields. An agent can interpret the result and call the tool correctly without further documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, so the description must compensate. It explains edges_days bucketing in detail, restates sample_size's effect ('the sample_size lowest floats'), clarifies include_milestones, and covers wbs_name_contains / code_type / code_value / include_child_codes by delegating to p6_query_activities. The delegation rather than inline explanation keeps it short of a 5, since the agent must open another tool to fully understand the code filters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific computation (total and free float distribution) on a precisely scoped resource (open activities of the last F9), and explicitly excludes completed, LOE and WBS-summary activities. It also names the sibling whose filter semantics it mirrors (p6_query_activities), giving the agent a concrete anchor, though it never contrasts with p6_critical_path, the most adjacent tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied (analyze float distribution of an activity set) and the filter parameters are explicitly delegated to p6_query_activities, which is useful routing. However, there is no explicit statement of when this tool is preferable to p6_query_activities or p6_critical_path, nor any stated prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.