# Utility Matrix (remote · utility-matrix.com)

Free browser-based calculators and analyzers for cloud cost, DevOps, security, and data governance.

- Trust score: 68/100 (medium)
- Change this week: +8
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `utility-matrix.com`: 68/100 (this document), [markdown](https://verifymcp.io/servers/helphub369-utility-matrix/utility-matrix.md), [page](https://verifymcp.io/servers/helphub369-utility-matrix/utility-matrix)

## Channel facts

- Endpoint: `https://utility-matrix.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 57/100
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 2469 tokens (~79/item across 31 items; 31 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 75/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 13% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http helphub369-utility-matrix https://utility-matrix.com/mcp
```

### Codex

```toml
[mcp_servers.helphub369-utility-matrix]
url = "https://utility-matrix.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "helphub369-utility-matrix": {
      "type": "remote",
      "url": "https://utility-matrix.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add helphub369-utility-matrix --url https://utility-matrix.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  helphub369-utility-matrix:
    url: "https://utility-matrix.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "helphub369-utility-matrix": {
      "type": "http",
      "url": "https://utility-matrix.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 66, +4)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 62, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 60, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 59)

First indexed and scored.

## MCP tools (31)

### `error-budget-calculator` (~91 tokens)

Use this when a user asks about their SLO error budget, remaining error budget, or burn rate. Given SLO percentage and window, returns budget minutes remaining, burn rate multiplier, and status (Under budget / Elevated / ALERTING).

Input parameters:

- `consumed_minutes` (number)
- `slo_pct` (number, required)
- `window_days` (number)
- `window_elapsed_days` (number)

Output parameters:

- `affiliate_context` (object)
- `budget_minutes` (number)
- `burn_rate` (number)
- `interpretation` (string)
- `next_step` (string)
- `next_step_url` (string)
- `remaining_minutes` (number)
- `status` (string)
- `why_follow_up` (string)

### `slo-burn-rate-calculator` (~83 tokens)

Use this when a user asks how fast they are burning their error budget, or whether their current error rate will exhaust their SLO window. Takes error count and total requests over a period, returns burn rate multiple and time-to-exhaustion signal.

Input parameters:

- `errors` (number, required)
- `slo` (number, required)
- `total` (number, required)

Output parameters:

- `affiliate_context` (object)
- `budget_consumed_pct_per_hour` (number)
- `burn_rate` (number)
- `error_rate_pct` (number)
- `interpretation` (string)
- `next_step` (string)
- `next_step_url` (string)
- `status` (string)
- `why_follow_up` (string)

### `incident-cost-calculator` (~99 tokens)

Use this when a user asks what an outage or incident cost, or wants to calculate the financial impact of downtime. Takes hourly revenue, downtime duration, and affected percentage. Returns revenue impact, engineering cost, and total incident cost in dollars.

Input parameters:

- `affected_pct` (number)
- `downtime_hours` (number, required)
- `eng_hourly` (number)
- `hourly_revenue` (number, required)
- `responders` (number)

Output parameters:

- `affiliate_context` (object)
- `engineering_cost_usd` (number)
- `interpretation` (string)
- `next_step` (string)
- `next_step_url` (string)
- `revenue_impact_usd` (number)
- `severity` (string)
- `total_cost_usd` (number)
- `why_follow_up` (string)

### `reserved-instance-breakeven` (~126 tokens)

Use this when a user asks whether to buy Reserved Instances or stay on On-Demand, or how long until an RI pays for itself. Takes On-Demand and RI monthly costs plus upfront fee. Returns break-even month and net savings over 1yr and 3yr terms.

Input parameters:

- `od_monthly` (number, required)
- `ri_1yr_monthly` (number, required)
- `ri_1yr_upfront` (number)
- `ri_3yr_monthly` (number, required)
- `ri_3yr_upfront` (number)

Output parameters:

- `affiliate_context` (object)
- `breakeven_months` (number)
- `interpretation` (string)
- `net_savings_1yr_usd` (number)
- `net_savings_3yr_usd` (number)
- `next_step` (string)
- `next_step_url` (string)
- `recommended_term` (string)
- `severity` (string)
- `why_follow_up` (string)

### `availability-sla-calculator` (~81 tokens)

Use this when a user asks what a specific availability percentage (like 99.9% or 99.99%) means in downtime minutes per month or year. Converts availability SLA percentage to exact downtime budgets: annual, monthly, weekly, and daily.

Input parameters:

- `availability_pct` (number, required): e.g. 99.9 for three nines

Output parameters:

- `affiliate_context` (object)
- `annual_downtime_minutes` (number)
- `availability_tier` (string)
- `interpretation` (string)
- `monthly_downtime_minutes` (number)
- `next_step` (string)
- `next_step_url` (string)
- `weekly_downtime_minutes` (number)
- `why_follow_up` (string)

### `apdex-score-calculator` (~78 tokens)

Use this when a user asks about their Apdex score or wants to measure user satisfaction with response times. Takes satisfied, tolerating, and total request counts. Returns Apdex score (0–1) and performance rating.

Input parameters:

- `satisfied` (number, required)
- `tolerating` (number, required)
- `total` (number, required)

Output parameters:

- `affiliate_context` (object)
- `apdex_score` (number)
- `interpretation` (string)
- `next_step` (string)
- `next_step_url` (string)
- `rating` (string)
- `satisfied_pct` (number)
- `why_follow_up` (string)

### `dora-metrics-calculator` (~103 tokens)

Use this when a user wants to benchmark their engineering team against DORA metrics, or classify their deployment frequency and lead time. Takes deploy frequency, lead time hours, change failure rate, and restore time. Returns Elite/High/Medium/Low tier classification per metric.

Input parameters:

- `change_failure_pct` (number, required)
- `deploys_per_month` (number, required)
- `lead_time_hours` (number, required)
- `restore_time_hours` (number)

Output parameters:

- `affiliate_context` (object)
- `change_failure_rate_tier` (string)
- `deploy_frequency_tier` (string)
- `interpretation` (string)
- `lead_time_tier` (string)
- `mttr_tier` (string)
- `next_step` (string)
- `next_step_url` (string)
- `overall_tier` (string)
- `why_follow_up` (string)

### `pipeline-cost-calculator` (~96 tokens)

Use this when a user asks how much their GitHub Actions CI/CD pipeline costs per month, or wants to compare runner costs. Takes average job duration, jobs per run, monthly run count, and runner type. Returns monthly billing cost with runner multiplier breakdown.

Input parameters:

- `avg_job_min` (number, required)
- `jobs_per_run` (number, required)
- `runner` (string)
- `runs_per_month` (number, required)

Output parameters:

- `affiliate_context` (object)
- `billable_minutes` (number)
- `interpretation` (string)
- `monthly_cost_usd` (number)
- `next_step` (string)
- `next_step_url` (string)
- `runner_multiplier` (number)
- `severity` (string)
- `total_minutes_per_month` (number)
- `why_follow_up` (string)

### `connection-pool-calculator` (~82 tokens)

Use this when a user asks how many database connections to configure in their connection pool, or is troubleshooting PostgreSQL connection exhaustion. Takes CPU cores, app instances, and max_connections. Returns recommended pool size per instance with utilization ratio.

Input parameters:

- `app_instances` (number)
- `cpu_cores` (number, required)
- `max_connections` (number)

Output parameters:

- `affiliate_context` (object)
- `interpretation` (string)
- `max_connections_utilization_pct`
- `next_step` (string)
- `next_step_url` (string)
- `per_app_instance` (number)
- `recommended_pool_total` (number)
- `warning` (boolean)
- `why_follow_up` (string)

### `cluster-capacity-calculator` (~129 tokens)

Use this when a user asks whether their Kubernetes cluster has enough capacity, or how many more pods they can schedule. Takes node count (`nodes`), CPU cores per node (`node_cpu`), memory per node in GB (`node_memory_gb`), pod count (`pods`), and resource requests. Returns cluster utilization and headroom.

Input parameters:

- `node_cpu` (number, required)
- `node_memory_gb` (number, required)
- `nodes` (number, required)
- `pod_cpu_m` (number)
- `pod_memory_mb` (number)
- `pods` (number)

Output parameters:

- `affiliate_context` (object)
- `allocatable_cpu_cores` (number)
- `allocatable_memory_gb` (number)
- `cpu_utilization_pct` (number)
- `interpretation` (string)
- `memory_utilization_pct` (number)
- `next_step` (string)
- `next_step_url` (string)
- `pressure_level` (string)
- `severity` (string)
- `why_follow_up` (string)

### `precision-recall-f1-calculator` (~84 tokens)

Use this when a user asks about their ML model precision, recall, F1 score, or F-beta score. Takes precision, recall, and optional beta weight. Returns F1, F-beta, and interpretation of the precision-recall tradeoff.

Input parameters:

- `beta` (number)
- `precision` (number, required)
- `recall` (number, required)

Output parameters:

- `affiliate_context` (object)
- `f1_score` (number)
- `f_beta_score` (number)
- `interpretation` (string)
- `next_step` (string)
- `next_step_url` (string)
- `precision_recall_balance` (string)
- `why_follow_up` (string)

### `egress-cost-calculator` (~65 tokens)

Use this when a user asks how much AWS data transfer or egress costs, or wants to estimate their monthly data transfer bill. Takes monthly transfer volume in GB. Returns estimated monthly egress cost using AWS tiered pricing.

Input parameters:

- `transfer_gb` (number, required)

Output parameters:

- `affiliate_context` (object)
- `cost_risk` (string)
- `effective_rate_per_gb` (number)
- `interpretation` (string)
- `monthly_cost_usd` (number)
- `next_step` (string)
- `next_step_url` (string)
- `transfer_gb` (number)
- `why_follow_up` (string)

### `detect-secrets-scanner` (~63 tokens)

Scan text (config, code, env files) for leaked API keys, tokens, passwords, and private keys. Returns findings with redacted matches and severity classification.

Input parameters:

- `text` (string, required): Config, code, or env file content to scan for secrets

Output parameters:

- `affiliate_context` (object)
- `computation_basis` (string)
- `finding_count` (number)
- `findings` (array)
- `interpretation` (string)
- `next_step` (string)
- `next_step_url` (string)
- `severity` (string)
- `types_found` (array)
- `why_follow_up` (string)

### `known-vulnerability-checker` (~81 tokens)

Check a package name against a database of known CVEs. Returns vulnerability status, CVE ID, and severity for common packages (log4j, lodash, moment, axios, django, flask, pillow, etc.).

Input parameters:

- `package_name` (string, required): Package name to check (e.g. "lodash", "log4j", "django")

Output parameters:

- `affiliate_context` (object)
- `checked_against` (string)
- `computation_basis` (string)
- `cve` (string)
- `interpretation` (string)
- `next_step` (string)
- `next_step_url` (string)
- `package_name` (string)
- `severity` (string)
- `status` (string)
- `why_follow_up` (string)

### `certificate-expiry-checker` (~76 tokens)

Assess certificate expiry risk given a domain and days remaining. Returns risk level (OK, WARNING at <30 days, CRITICAL at <7 days, EXPIRED at <0).

Input parameters:

- `days_remaining` (number, required): Days until certificate expires
- `domain` (string, required): Domain name (e.g. "api.example.com")

Output parameters:

- `affiliate_context` (object)
- `computation_basis` (string)
- `days_remaining` (number)
- `domain` (string)
- `interpretation` (string)
- `next_step` (string)
- `next_step_url` (string)
- `risk_level` (string)
- `why_follow_up` (string)

### `kubernetes-manifest-linter` (~59 tokens)

Lint a Kubernetes manifest (YAML) for common issues: missing resource limits, missing health checks, :latest tag usage, privileged containers. Returns issue list and severity.

Input parameters:

- `manifest` (string, required): Kubernetes manifest YAML content

Output parameters:

- `affiliate_context` (object)
- `computation_basis` (string)
- `interpretation` (string)
- `issue_count` (number)
- `issues` (array)
- `next_step` (string)
- `next_step_url` (string)
- `severity` (string)
- `why_follow_up` (string)

### `dockerfile-linter` (~57 tokens)

Lint a Dockerfile for common issues: :latest tag on FROM, interactive installs without -y, running as root. Returns issues with suggestions per instruction.

Input parameters:

- `dockerfile` (string, required): Dockerfile content (full or partial)

Output parameters:

- `affiliate_context` (object)
- `computation_basis` (string)
- `interpretation` (string)
- `issue_count` (number)
- `issues` (array)
- `next_step` (string)
- `next_step_url` (string)
- `severity` (string)
- `why_follow_up` (string)

### `query-cost-estimator` (~58 tokens)

Estimate the relative cost of a SQL query based on heuristic analysis: SELECT *, JOIN count, missing WHERE/LIMIT, leading wildcards, unbounded sorts. Returns cost score and level.

Input parameters:

- `query` (string, required): SQL query to analyze

Output parameters:

- `affiliate_context` (object)
- `computation_basis` (string)
- `cost_level` (string)
- `cost_score` (number)
- `interpretation` (string)
- `next_step` (string)
- `next_step_url` (string)
- `warning_count` (number)
- `warnings` (array)
- `why_follow_up` (string)

### `canonical-url-auditor` (~67 tokens)

Audit a page URL against its canonical tag. Detects missing canonical, self-referencing canonical, and relative URL issues.

Input parameters:

- `canonical` (string, required): The canonical URL found in the page (empty string if missing)
- `page_url` (string, required): The page URL being audited

Output parameters:

- `affiliate_context` (object)
- `canonical_found` (string)
- `computation_basis` (string)
- `interpretation` (string)
- `issue` (string)
- `next_step` (string)
- `next_step_url` (string)
- `page_url` (string)
- `recommendation` (string)
- `severity` (string)
- `why_follow_up` (string)

### `rate-limit-utilization-calculator` (~102 tokens)

Calculate API rate limit utilization given current request count and limit. Returns utilization percentage, buffer, safety status, and risk level (OK at <80%, WARNING at 80-95%, CRITICAL at >95%).

Input parameters:

- `current_requests` (number, required): Current request count in the window
- `limit` (number, required): Rate limit ceiling
- `window_seconds` (number): Rate limit window in seconds (e.g. 60 for per-minute)

Output parameters:

- `affiliate_context` (object)
- `buffer` (number)
- `computation_basis` (string)
- `interpretation` (string)
- `next_step` (string)
- `next_step_url` (string)
- `safe` (boolean)
- `status` (string)
- `utilization_pct` (number)
- `why_follow_up` (string)
- `window_seconds` (number)

### `alert-fatigue-calculator` (~93 tokens)

Use when a user asks about alert noise, alert fatigue, or on-call burden from non-actionable alerts. Given weekly alert volume, actionable %, engineer count, and avg resolution time, returns noise rate, wasted hours, and fatigue tier.

Input parameters:

- `actionable_pct` (number, required)
- `alerts_per_week` (number, required)
- `avg_resolution_min` (number, required)
- `engineer_count` (number, required)

Output parameters:

- `affiliate_context` (object)
- `annual_wasted_hours` (number)
- `burden_per_engineer_hours` (number)
- `computation_basis` (string)
- `fatigue_index` (number)
- `interpretation` (string)
- `next_step` (string)
- `next_step_url` (string)
- `noise_alerts_per_week` (number)
- `noise_rate_pct` (number)
- `output_tier` (string)
- `remaining_pct` (number)
- `signal_value` (number)
- `wasted_hours_per_week` (number)
- `why_follow_up` (string)

### `change-failure-rate-calculator` (~61 tokens)

Use when a user asks about change failure rate or DORA CFR. Given total and failed deployments, returns failure rate percentage and DORA tier.

Input parameters:

- `failed_deploys` (number, required)
- `total_deploys` (number, required)

Output parameters:

- `affiliate_context` (object)
- `change_failure_rate_pct` (number)
- `computation_basis` (string)
- `dora_rating` (string)
- `failed_count` (number)
- `interpretation` (string)
- `next_step` (string)
- `next_step_url` (string)
- `output_tier` (string)
- `remaining_pct` (number)
- `signal_value` (number)
- `total_count` (number)
- `why_follow_up` (string)

### `cloud-waste-calculator` (~81 tokens)

Use when a user asks about cloud waste, idle resources, or unattached storage. Given monthly cloud bill and idle/oversized percentages, returns waste estimate and tier.

Input parameters:

- `idle_pct` (number)
- `monthly_cloud_bill` (number, required)
- `oversized_pct` (number)
- `unattached_volumes_count` (number)

Output parameters:

- `affiliate_context` (object)
- `annualized` (number)
- `computation_basis` (string)
- `do_savings` (number)
- `idle_waste` (number)
- `interpretation` (string)
- `monthly_cost` (number)
- `next_step` (string)
- `next_step_url` (string)
- `output_tier` (string)
- `oversized_waste` (number)
- `signal_value` (number)
- `unattached_cost` (number)
- `waste_pct` (number)
- `why_follow_up` (string)

### `deployment-frequency-calculator` (~50 tokens)

Use when a user asks about deployment frequency or DORA deploy cadence.

Input parameters:

- `deploys_per_month` (number, required)
- `team_size` (number, required)
- `working_days` (number)

Output parameters:

- `affiliate_context` (object)
- `computation_basis` (string)
- `deploys_per_day` (number)
- `deploys_per_dev_per_day` (number)
- `deploys_per_week` (number)
- `dora_rating` (string)
- `interpretation` (string)
- `next_step` (string)
- `next_step_url` (string)
- `output_tier` (string)
- `remaining_pct` (number)
- `signal_value` (number)
- `why_follow_up` (string)

### `ec2-cost-calculator` (~61 tokens)

Use when a user asks about EC2 cost. Given instance type and hours, returns monthly cost and DO-equivalent savings estimate.

Input parameters:

- `hours_per_month` (number)
- `instance_type` (string, required)
- `os` (string)

Output parameters:

- `affiliate_context` (object)
- `annual_cost` (number)
- `computation_basis` (string)
- `do_equivalent_monthly` (number)
- `do_savings` (number)
- `hourly_rate` (number)
- `interpretation` (string)
- `monthly_cost` (number)
- `next_step` (string)
- `next_step_url` (string)
- `output_tier` (string)
- `signal_value` (number)
- `why_follow_up` (string)

### `mttr-calculator` (~55 tokens)

Use when a user asks about MTTR or DORA recovery time. Takes incident timestamps (string lines "start,detected,resolved" or array of {start,detected,resolved}).

Input parameters:

- `incidents` (required)

Output parameters:

- `affiliate_context` (object)
- `computation_basis` (string)
- `dora_rating` (string)
- `incident_count` (number)
- `interpretation` (string)
- `mean_total_minutes` (number)
- `mttd_minutes` (number)
- `mttr_minutes` (number)
- `next_step` (string)
- `next_step_url` (string)
- `output_tier` (string)
- `remaining_pct` (number)
- `signal_value` (number)
- `why_follow_up` (string)

### `on-call-burden-calculator` (~60 tokens)

Use when a user asks about on-call load or burnout risk.

Input parameters:

- `engineer_count` (number, required)
- `hourly_cost` (number, required)
- `hours_per_shift` (number, required)
- `shifts_per_month` (number, required)

Output parameters:

- `affiliate_context` (object)
- `annual_cost` (number)
- `computation_basis` (string)
- `hours_per_engineer` (number)
- `interpretation` (string)
- `monthly_cost` (number)
- `next_step` (string)
- `next_step_url` (string)
- `output_tier` (string)
- `pct_working_time` (number)
- `remaining_pct` (number)
- `shifts_per_engineer` (number)
- `signal_value` (number)
- `total_hours_per_month` (number)
- `why_follow_up` (string)

### `rightsizing-calculator` (~81 tokens)

Use when a user asks about instance rightsizing or overprovisioned compute.

Input parameters:

- `current_memory_gb` (number, required)
- `current_vcpu` (number, required)
- `hourly_cost` (number)
- `instance_count` (number)
- `p99_cpu_pct` (number, required)
- `p99_memory_pct` (number, required)

Output parameters:

- `affiliate_context` (object)
- `annual_savings` (number)
- `computation_basis` (string)
- `do_savings` (number)
- `instance_count` (number)
- `interpretation` (string)
- `monthly_cost` (number)
- `needed_memory_gb` (number)
- `needed_vcpu` (number)
- `next_step` (string)
- `next_step_url` (string)
- `output_tier` (string)
- `savings_factor` (number)
- `signal_value` (number)
- `why_follow_up` (string)

### `software-purchase-risk-calculator` (~97 tokens)

Use when a user asks about risk of a software purchase or SaaS commitment.

Input parameters:

- `changeManagementRisk` (number)
- `contractLengthMonths` (number)
- `integrationCount` (number)
- `internalHourlyCost` (number)
- `monthlySubscription` (number, required)
- `numUsers` (number)
- `setupHours` (number)
- `vendorStabilityScore` (number)

Output parameters:

- `adoption_component` (number)
- `affiliate_context` (object)
- `complexity_component` (number)
- `computation_basis` (string)
- `contract_months` (number)
- `contract_total` (number)
- `integration_component` (number)
- `interpretation` (string)
- `monthly_cost` (number)
- `next_step` (string)
- `next_step_url` (string)
- `output_tier` (string)
- `risk_score` (number)
- `signal_value` (number)
- `vendor_component` (number)
- `why_follow_up` (string)
- `year1_labor_cost` (number)
- `year1_sub_cost` (number)
- `year1_total_cost` (number)

### `terraform-plan-cost-estimator` (~48 tokens)

Use when a user asks to estimate monthly cost of a Terraform plan.

Input parameters:

- `count` (number, required)
- `instance_size` (string)
- `resource_type` (string, required)

Output parameters:

- `affiliate_context` (object)
- `annual_cost` (number)
- `computation_basis` (string)
- `hourly_rate` (number)
- `interpretation` (string)
- `monthly_cost` (number)
- `next_step` (string)
- `next_step_url` (string)
- `output_tier` (string)
- `resource_count` (number)
- `resource_type` (string)
- `signal_value` (number)
- `why_follow_up` (string)

### `total-cost-of-ownership-calculator` (~102 tokens)

Use when a user asks about TCO or multi-year SaaS cost.

Input parameters:

- `adminHoursPerMonth` (number)
- `baseMonthlySubscription` (number)
- `contractLength` (number)
- `expectedActiveUsers` (number, required)
- `internalHourlyCost105` (number)
- `numPaidSeats` (number, required)
- `oneTimeFees` (number)
- `perUserMonthlyFee` (number)

Output parameters:

- `affiliate_context` (object)
- `computation_basis` (string)
- `contract_months` (number)
- `contract_total` (number)
- `cost_per_user_monthly` (number)
- `do_savings` (number)
- `interpretation` (string)
- `monthly_cost` (number)
- `next_step` (string)
- `next_step_url` (string)
- `output_tier` (string)
- `overpaying_flags` (number)
- `seat_waste_cost_yr` (number)
- `seat_waste_pct` (number)
- `shelfware_seats` (number)
- `signal_value` (number)
- `why_follow_up` (string)
- `year1_admin_cost` (number)
- `year1_total_cost` (number)
- `year1_vendor_cost` (number)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/helphub369-utility-matrix/utility-matrix#diagnostics

## Score history

- 2026-08-03: 68
- 2026-08-02: 67
- 2026-08-01: 67
- 2026-07-31: 66
- 2026-07-30: 62
- 2026-07-29: 61
- 2026-07-28: 60
- 2026-07-27: 60
- 2026-07-26: 59

## Links

- Remote endpoint: https://utility-matrix.com/mcp
- Changelog RSS feed: https://verifymcp.io/servers/helphub369-utility-matrix/utility-matrix/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/helphub369-utility-matrix/utility-matrix/changelog.json
- HTML version of this page: https://verifymcp.io/servers/helphub369-utility-matrix/utility-matrix
