Skip to main content
Glama

Staffing Math

Server Details

Exact staffing math: FTE needed, a monthly hiring plan, and Erlang C queue staffing.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
bsunter93/staffing-math
GitHub Stars
0
Server Listing
staffing-math
ChatGPT
–
Claude
–

TDQS

A4.1/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: Erlang C for live queue staffing, month-by-month hiring/ramp planning, and steady-state FTE sizing. The descriptions explicitly route between them (required_fte says use hiring_plan when volume changes, use erlang_staffing for answer-time targets), leaving little room for misselection.

Naming Consistency4/5

All names are snake_case and concise, but they mix shapes: erlang_staffing (method_noun), hiring_plan (noun_noun), required_fte (adjective_noun). There is no verb_noun pattern, though the domain-noun style is still readable and predictable within this small set.

Tool Count5/5

Three tools is well-scoped for a narrow workforce-math server; each covers a genuinely different calculation mode (queue, steady FTE, growth/hiring). Nothing feels padded or redundant.

Completeness4/5

The core lifecycle — size FTE, staff a live queue, project hiring over time — is covered, including shrinkage and ramp handling. Minor gaps remain: no cost/budget calculation, no shift/schedule generation despite mentioning 'people to schedule', and no reverse lookup of service level for a fixed headcount as a standalone tool.

Available Tools

3 tools
erlang_staffingQueue staffing (Erlang C)A
Read-onlyIdempotent
Inspect

Agents needed on a live queue (phone, chat) to answer a target share of contacts within a target time, using Erlang C. Give contacts per hour for the interval being staffed (usually the busiest hour) and handle time in seconds. Returns agents needed, the service level at that number and at one fewer, chance of waiting, occupancy, and people to schedule after shrinkage. Use required_fte for case or ticket work with no answer-time target.

NameRequiredDescriptionDefault
shrinkageNoShare of paid time agents are off the queue. Converts agents to people scheduled. Default 0.3.
service_levelNoShare of contacts to answer within the target time. Default 0.8.
contacts_per_hourYesContacts arriving per hour in the interval being staffed.
handle_time_secondsYesAverage handle time in seconds: talk plus after-contact work.
answer_within_secondsNoTarget answer time in seconds. Default 20.

Output Schema

NameRequiredDescription
notesYes
stepsYes
agentsYes
answerYes
engineYes
inputsYes
occupancyYes
people_to_scheduleYes
offered_load_erlangsYes
probability_of_waitingYes
service_level_at_agentsYes
service_level_one_fewerYes

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds what the computation returns (service level at n and n-1, wait probability, occupancy, shrinkage-adjusted headcount), which conveys that this is a sensitivity-producing calculation rather than a single number. It does not mention edge behavior such as what happens at very low load or invalid target/service-level combinations, so it adds only modest context beyond the structured fields and the output schema.

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

Conciseness5/5

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

Three sentences, front-loaded with the purpose, then inputs, then outputs, then the sibling exclusion. Nothing is redundant and no sentence could be dropped without losing information.

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 read-only calculation tool with a full input schema and an output schema, the description supplies everything an agent needs: what it computes, how to parameterize the inputs, what comes back conceptually, and when to prefer the sibling.

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 100%, so the baseline is 3. The description still earns credit by adding interpretation the schema lacks: that contacts_per_hour should represent the busiest interval being staffed, that shrinkage converts agents into people to schedule, and that answer-time targets are optional in spirit for non-queue work.

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

Purpose5/5

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

States a specific computation (agents needed) on a specific resource (live phone/chat queue) with the method named (Erlang C), and explicitly distinguishes itself from the sibling required_fte for case/ticket work with no answer-time target.

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

Usage Guidelines5/5

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

Gives the condition to use it (live queue with a target share answered within a target time), the input heuristic (contacts per hour for the busiest hour), and names the alternative when there is no answer-time target. The routing decision is fully determined from the description alone.

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

hiring_planMonthly hiring planA
Read-onlyIdempotent
Inspect

Month-by-month hiring plan: how many requisitions to open each month so FTE on hand keeps up with FTE needed, after attrition, time to hire and ramp. Give weekly_volume with monthly_growth (0.05 means 5% a month, compounding), or weekly_volume_by_month. Unknown inputs fall back to stated defaults: current headcount defaults to what month 1 needs, attrition to 0, time to hire to 2 months, ramp to 0. When attrition is assumed, the result also gives the plan at 15% and 30%. Give hires_in_flight for people already hired or in the pipeline. Returns the plan table, totals, the arithmetic, and which inputs were assumed. A hire counts as zero capacity until fully ramped.

NameRequiredDescriptionDefault
monthsNoPlan length in months when using monthly_growth. Default 12.
shrinkageNoShare of paid time not available for the work: PTO, sick time, training, meetings. 0.30 means 30%. Default 0.3.
ramp_monthsNoMonths from start date to full productivity. Default 0.
start_monthNoFirst month of the plan as YYYY-MM, used only to label months.
weekly_volumeNoWeekly volume in month 1. Use with monthly_growth.
monthly_growthNoMonth-over-month change in weekly volume. 0.05 means 5% a month. Default 0.
hires_in_flightNoPeople already hired or in the pipeline, and the month they start counting. These are the only way to cover months before a new requisition can land.
annual_attritionNoShare of the team that leaves in a year. 0.25 means 25%. Default 0.
minutes_per_caseYesAverage handling time per case, in minutes.
target_occupancyNoShare of available time you plan to keep people busy with the work. Default 0.85.
current_headcountNoFTE on the team today. Default: what month 1 needs, rounded up.
hours_per_fte_weekNoPaid hours per full-time person per week. Default 40.
time_to_hire_monthsNoMonths from opening a requisition to the start date. Default 2.
weekly_volume_by_monthNoAverage weekly volume in each month of the plan, instead of weekly_volume and monthly_growth.

Output Schema

NameRequiredDescription
notesYes
stepsYes
answerYes
engineYes
inputsYes
monthsYes
most_spareYes
total_reqsYes
attrition_rangeYes
expected_leaversYes
lookahead_monthsYes
months_with_spareYes
fte_needed_last_monthYes
fte_needed_first_monthYes
first_month_hires_can_countYes
months_short_before_hires_landYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare a safe, read-only, idempotent, closed-world computation, so the description's burden is lower, and it still adds real behavior: unknown inputs fall back to stated defaults, the response is accompanied by a 15% and 30% attrition sensitivity, and it reports which inputs were assumed. The rule that a hire counts as zero capacity until fully ramped is a genuinely useful behavioral disclosure. It does not cover runtime characteristics such as compute cost or limits on large month arrays.

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?

Purpose is front-loaded in the first sentence, followed by input-mode selection, defaults, sensitivity behavior, and return contents in a logical order with no filler. It is dense but appropriately so for a 14-parameter planning model; only minor tightening would help.

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

Completeness4/5

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

For a 14-parameter computational tool with annotations and an output schema, the description covers the ambiguity an agent would actually hit: default resolution, the two mutually exclusive volume modes, pipeline hires, ramp treatment, and what the response contains. The remaining gap is the absent relationship to its sibling tools.

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 coverage is 100%, so the baseline is 3; the description earns above that by explaining the interplay of parameters rather than repeating them — monthly_growth is stated to be compounding, current_headcount defaults to month 1's requirement rounded up, and hires_in_flight is framed as the only way to cover months before a new requisition can land. It stays silent on shrinkage, target_occupancy, and hours_per_fte_week, but those are documented in the schema.

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?

The opening sentence names the resource and the computed output precisely: month-by-month requisitions to open so FTE on hand tracks FTE needed after attrition, time to hire, and ramp. That is far more specific than a tautology. It does not, however, distinguish itself from the siblings required_fte and erlang_staffing, so an agent must infer which of the three to pick.

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?

Guidance is given on how to drive the model (supply weekly_volume with monthly_growth, or weekly_volume_by_month; use hires_in_flight for people already hired) and on default fallbacks for unspecified inputs. What is missing is when-to-use-this-vs-alternatives: no sibling is named and no exclusion is stated, so routing among required_fte, erlang_staffing, and this tool is left implicit.

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

required_fteFTE needed for a workloadA
Read-onlyIdempotent
Inspect

How many people a steady workload needs. Give weekly volume and minutes per case; shrinkage, target occupancy and hours per week fall back to stated defaults. Returns FTE, people to staff (rounded up), every input marked given or assumed, and the arithmetic with numbers filled in. Use hiring_plan when volume changes over time or the question is about hiring, and erlang_staffing for live queues with an answer-time target.

NameRequiredDescriptionDefault
shrinkageNoShare of paid time not available for the work: PTO, sick time, training, meetings. 0.30 means 30%. Default 0.3.
weekly_volumeYesCases, tickets or items arriving per week.
minutes_per_caseYesAverage handling time per case, in minutes.
target_occupancyNoShare of available time you plan to keep people busy with the work. Default 0.85.
hours_per_fte_weekNoPaid hours per full-time person per week. Default 40.

Output Schema

NameRequiredDescription
fteYes
notesYes
stepsYes
answerYes
engineYes
inputsYes
peopleYes
weekly_work_hoursYes
fte_per_extra_minuteYes
planned_hours_per_fte_weekYes
productive_hours_per_fte_weekYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior. The description adds useful context about defaults and the returned arithmetic, but it does not go much beyond what the annotations and output schema already establish.

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

Conciseness5/5

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

The description is front-loaded with the purpose, then inputs/defaults, then return values, then alternatives. Every sentence is useful and there is no redundant wording.

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?

Given the output schema and annotations, the description is complete enough for an agent to select and invoke the tool correctly. It covers purpose, required inputs, defaults, return shape, and sibling alternatives.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all five parameters, including defaults and ranges. The description reinforces which inputs are required and which fall back to defaults, but adds little semantic detail beyond the schema.

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

Purpose5/5

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

The description states a specific computation: how many people a steady workload needs from weekly volume and minutes per case. It clearly scopes the tool to steady workloads, which distinguishes it from the sibling tools.

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

Usage Guidelines5/5

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

It explicitly names when to use the alternatives: hiring_plan for changing volume or hiring questions, and erlang_staffing for live queues with an answer-time target. It also tells the caller which inputs to provide.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • First observederlang_staffing
    • First observedhiring_plan
    • First observedrequired_fte

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    C
    maintenance
    Deterministic Odoo ERP calculators: implementation, migration and upgrade cost, ROI and TCO, US/Canada/EU sales tax and VAT, Canadian payroll source deductions, and inventory maths (reorder point, safety stock, EOQ, landed cost, OEE). 24 tools, each a pure function, the numbers are arithmetic rather than a model's guess. Hosted remote server, no install and no API key; a stdio bridge is included
    24
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Deterministic marketing math for AI agents: 62 engines that compute LTV:CAC, CAC payback, pipeline coverage, A/B test significance, budget allocation, pricing and retention from your own numbers. Runs locally with Node 18+, makes no network calls and stores no data.
    5
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to assess vetted Filipino virtual assistant talent pool depth by role, skills, and timezone; learn the real hiring process and engagement terms; and retrieve a link to book a free discovery call. It deliberately withholds prices and candidate identities, returning only aggregate coverage and process information.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables candy-store expansion planning and supplier forecasting across metro Atlanta's ten counties and 1,200 census tracts, modeling demand, heritage-segment specialty markets, competitor-aware capture, and distribution capacity. Users can locate optimal store sites under a budget, test what-if scenarios, and forecast weekly orders per center and category with p10/p90 ranges and expected losses.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.