{"apiVersion":"v1","directorySlug":"pablolisaso-mcp-7c6d3c85bc","title":"Pablo Lisaso — Ciberseguridad, Operaciones IT/OT e Inversión","description":"Gerente de operaciones IT y especialista en ciberseguridad OT/ICS, con más de 18 años de experiencia en energía, industria e infraestructuras críticas. Perfil orientado a la gestión operativa, la visión financiera, la gestión de riesgos, la continuidad de negocio y la eficiencia.","pageUrl":"https://www.mcpbundles.com/skills/pablolisaso-mcp-7c6d3c85bc","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.pablolisaso.com/mcp","hostedMcpUrl":null,"toolCount":117,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.pablolisaso/pablolisaso-mcp-7c6d3c85bc","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"cvss_v31_score","description":"Compute the CVSS v3.1 base score and severity from a vector string.","inputSchema":{"type":"object","required":["vector"],"properties":{"vector":{"type":"string"}}},"logicalName":"cvss_v31_score","displayName":"cvss_v31_score","title":"cvss_v31_score","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"password_entropy","description":"Estimate password entropy (bits) and strength from a password, or from a length plus character-set flags.","inputSchema":{"type":"object","properties":{"digits":{"type":"boolean"},"length":{"type":"integer"},"symbols":{"type":"boolean"},"password":{"type":"string"},"lowercase":{"type":"boolean"},"uppercase":{"type":"boolean"}}},"logicalName":"password_entropy","displayName":"password_entropy","title":"password_entropy","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"raid_capacity","description":"Compute usable capacity, efficiency and fault tolerance for a RAID array.","inputSchema":{"type":"object","required":["level","disks","diskSizeTB"],"properties":{"disks":{"type":"integer"},"level":{"enum":["0","1","5","6","10"],"type":"string"},"diskSizeTB":{"type":"number"}}},"logicalName":"raid_capacity","displayName":"raid_capacity","title":"raid_capacity","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"subnet_ipv4","description":"Compute network/broadcast/mask, host range and counts for an IPv4 CIDR block.","inputSchema":{"type":"object","required":["cidr"],"properties":{"cidr":{"type":"string"}}},"logicalName":"subnet_ipv4","displayName":"subnet_ipv4","title":"subnet_ipv4","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sla_downtime","description":"Compute the allowed downtime budget for a given SLA availability percentage.","inputSchema":{"type":"object","required":["slaPercent"],"properties":{"slaPercent":{"type":"number"}}},"logicalName":"sla_downtime","displayName":"sla_downtime","title":"sla_downtime","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sat_tle_decode","description":"Decode a two-line element set (TLE) into catalog data, epoch, classical orbital elements and derived Keplerian orbit parameters (period, apogee, perigee, orbit type).","inputSchema":{"type":"object","required":["tle"],"properties":{"tle":{"type":"string"}}},"logicalName":"sat_tle_decode","displayName":"sat_tle_decode","title":"sat_tle_decode","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sat_slant_range","description":"Compute the slant range (km) between a ground station and a satellite from orbital altitude and elevation angle, assuming a spherical Earth.","inputSchema":{"type":"object","required":["altitudeKm","elevationDeg"],"properties":{"altitudeKm":{"type":"number"},"elevationDeg":{"type":"number"}}},"logicalName":"sat_slant_range","displayName":"sat_slant_range","title":"sat_slant_range","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sat_latency_compare_orbits","description":"Compare one-way and round-trip propagation latency for typical LEO/MEO/GEO orbit altitudes at a given ground-station elevation.","inputSchema":{"type":"object","required":["elevationDeg"],"properties":{"elevationDeg":{"type":"number"}}},"logicalName":"sat_latency_compare_orbits","displayName":"sat_latency_compare_orbits","title":"sat_latency_compare_orbits","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sat_dish_gain","description":"Compute parabolic dish antenna gain in dBi from diameter, efficiency and frequency.","inputSchema":{"type":"object","required":["diameterMeters","efficiency","frequencyHz"],"properties":{"efficiency":{"type":"number"},"frequencyHz":{"type":"number"},"diameterMeters":{"type":"number"}}},"logicalName":"sat_dish_gain","displayName":"sat_dish_gain","title":"sat_dish_gain","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sat_gt_ratio","description":"Compute the receiver figure of merit G/T in dB/K from receiver antenna gain and system noise temperature.","inputSchema":{"type":"object","required":["rxGainDbi","tsysK"],"properties":{"tsysK":{"type":"number"},"rxGainDbi":{"type":"number"}}},"logicalName":"sat_gt_ratio","displayName":"sat_gt_ratio","title":"sat_gt_ratio","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sat_doppler_leo","description":"Compute maximum Doppler shift, total Doppler swing and Doppler rate for a LEO pass from frequency and orbital altitude.","inputSchema":{"type":"object","required":["frequencyMHz","altitudeKm"],"properties":{"altitudeKm":{"type":"number"},"frequencyMHz":{"type":"number"}}},"logicalName":"sat_doppler_leo","displayName":"sat_doppler_leo","title":"sat_doppler_leo","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sat_delta_v_propellant","description":"Compute Hohmann transfer delta-v, plane-change delta-v, total delta-v and required propellant via the Tsiolkovsky equation.","inputSchema":{"type":"object","required":["alt1Km","alt2Km","planeChangeDeg","ispSeconds","dryMassKg"],"properties":{"alt1Km":{"type":"number"},"alt2Km":{"type":"number"},"dryMassKg":{"type":"number"},"ispSeconds":{"type":"number"},"planeChangeDeg":{"type":"number"}}},"logicalName":"sat_delta_v_propellant","displayName":"sat_delta_v_propellant","title":"sat_delta_v_propellant","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sat_orbit_circular","description":"Compute circular orbit parameters (velocity, period, orbits/day, mean motion, gravity, escape velocity, energy, angular momentum) plus ground coverage and slant range for a minimum elevation.","inputSchema":{"type":"object","required":["altitudeKm"],"properties":{"altitudeKm":{"type":"number"},"minElevationDeg":{"type":"number"}}},"logicalName":"sat_orbit_circular","displayName":"sat_orbit_circular","title":"sat_orbit_circular","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sat_orbit_elliptical","description":"Compute elliptical orbit parameters (eccentricity, period, apsidal velocities, axes, energy, angular momentum) and position/velocity at a true anomaly.","inputSchema":{"type":"object","required":["perigeeAltKm","apogeeAltKm"],"properties":{"apogeeAltKm":{"type":"number"},"perigeeAltKm":{"type":"number"},"trueAnomalyDeg":{"type":"number"}}},"logicalName":"sat_orbit_elliptical","displayName":"sat_orbit_elliptical","title":"sat_orbit_elliptical","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sat_energy_balance","description":"Compute satellite eclipse duration, battery depth of discharge and solar recharge margin for one circular orbit (worst-case eclipse).","inputSchema":{"type":"object","required":["altitudeKm","loadW","panelW","batteryWh"],"properties":{"loadW":{"type":"number"},"panelW":{"type":"number"},"batteryWh":{"type":"number"},"altitudeKm":{"type":"number"}}},"logicalName":"sat_energy_balance","displayName":"sat_energy_balance","title":"sat_energy_balance","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sat_geo_pointing","description":"Compute azimuth, elevation, slant range, polarization skew and visibility for pointing a ground antenna at a geostationary satellite.","inputSchema":{"type":"object","required":["stationLatDeg","stationLonDeg","satLonDeg"],"properties":{"satLonDeg":{"type":"number"},"stationLatDeg":{"type":"number"},"stationLonDeg":{"type":"number"}}},"logicalName":"sat_geo_pointing","displayName":"sat_geo_pointing","title":"sat_geo_pointing","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sat_coverage_footprint","description":"Compute the ground coverage footprint of a satellite (central angle, radius, diameter, area, Earth fraction) plus horizon distance, orbital period and velocity.","inputSchema":{"type":"object","required":["altitudeKm"],"properties":{"altitudeKm":{"type":"number"},"minElevationDeg":{"type":"number"}}},"logicalName":"sat_coverage_footprint","displayName":"sat_coverage_footprint","title":"sat_coverage_footprint","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"net_voip_dimensioning","description":"Dimension VoIP bandwidth per call (voice codec + RTP/UDP/IP + L2 overhead) and the Erlang B trunk count for a target blocking probability.","inputSchema":{"type":"object","required":["codec","ptimeMs","l2","bidirectional","trafficErlangs","targetBlockingPct"],"properties":{"l2":{"enum":["ethernet","ethernet_dot1q","ppp","mpls"],"type":"string"},"codec":{"enum":["g711","g729","g722","g726_32","opus"],"type":"string"},"ptimeMs":{"type":"number"},"bidirectional":{"type":"boolean"},"trafficErlangs":{"type":"number"},"targetBlockingPct":{"type":"number"}}},"logicalName":"net_voip_dimensioning","displayName":"net_voip_dimensioning","title":"net_voip_dimensioning","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"net_vlsm_plan","description":"Plan IPv4 VLSM subnets inside a base CIDR block, allocating aligned variable-size subnets from the largest host requirement to the smallest.","inputSchema":{"type":"object","required":["baseCidr","requirements"],"properties":{"baseCidr":{"type":"string"},"requirements":{"type":"array","items":{"type":"object","required":["name","hosts"],"properties":{"name":{"type":"string"},"vlan":{"type":"integer"},"hosts":{"type":"integer"}}}}}},"logicalName":"net_vlsm_plan","displayName":"net_vlsm_plan","title":"net_vlsm_plan","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"net_ipv6_subnet","description":"Compute IPv6 prefix details: canonical (RFC 5952) and expanded forms, network and last address, address and /64 counts, and address type.","inputSchema":{"type":"object","required":["address"],"properties":{"prefix":{"type":"integer"},"address":{"type":"string"}}},"logicalName":"net_ipv6_subnet","displayName":"net_ipv6_subnet","title":"net_ipv6_subnet","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"net_ipv6_prefix_plan","description":"Enumerate child IPv6 subnets of a parent prefix (total count plus a paginated slice) and optionally allocate named child prefixes sequentially.","inputSchema":{"type":"object","required":["parent","childPrefix"],"properties":{"named":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"prefix":{"type":"integer"}}}},"parent":{"type":"string"},"firstIndex":{"type":"integer"},"maxSubnets":{"type":"integer"},"childPrefix":{"type":"integer"}}},"logicalName":"net_ipv6_prefix_plan","displayName":"net_ipv6_prefix_plan","title":"net_ipv6_prefix_plan","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"net_ipv4_vlsm_allocate","description":"Allocate typed IPv4 VLSM subnets (LAN, point-to-point, host) inside a base block with optional /31 links, reporting utilization and remaining free CIDR blocks.","inputSchema":{"type":"object","required":["baseCidr","requirements"],"properties":{"use31":{"type":"boolean"},"baseCidr":{"type":"string"},"requirements":{"type":"array","items":{"type":"object","required":["type"],"properties":{"name":{"type":"string"},"type":{"enum":["lan","point_to_point","host"],"type":"string"},"requestedHosts":{"type":"integer"}}}}}},"logicalName":"net_ipv4_vlsm_allocate","displayName":"net_ipv4_vlsm_allocate","title":"net_ipv4_vlsm_allocate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"net_mtu_mss","description":"Compute effective MTU and TCP MSS after subtracting encapsulation overheads (GRE, VXLAN, WireGuard, PPPoE, IPsec, extra).","inputSchema":{"type":"object","required":["baseMtu","ipVersion"],"properties":{"gre":{"type":"boolean"},"extra":{"type":"number"},"ipsec":{"type":"boolean"},"pppoe":{"type":"boolean"},"vxlan":{"type":"boolean"},"baseMtu":{"type":"number"},"ipVersion":{"enum":["ipv4","ipv6"],"type":"string"},"wireguard":{"type":"boolean"},"ipsecOverhead":{"type":"number"}}},"logicalName":"net_mtu_mss","displayName":"net_mtu_mss","title":"net_mtu_mss","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"net_tcp_throughput","description":"Estimate maximum TCP throughput from the Mathis packet-loss model and the receive-window/RTT limit, plus the transfer time for a given volume.","inputSchema":{"type":"object","required":["rttMs"],"properties":{"rttMs":{"type":"number"},"lossPct":{"type":"number"},"mssBytes":{"type":"number"},"volumeMB":{"type":"number"},"windowKB":{"type":"number"}}},"logicalName":"net_tcp_throughput","displayName":"net_tcp_throughput","title":"net_tcp_throughput","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"net_erlang_c_soc","description":"Size SOC/call-center staffing with Erlang C: offered traffic, agents needed for a service-level target, occupancy, ASA and probability of waiting.","inputSchema":{"type":"object","required":["callsPerHour","ahtSeconds","targetSeconds","targetSLPct"],"properties":{"ahtSeconds":{"type":"number"},"targetSLPct":{"type":"number"},"callsPerHour":{"type":"number"},"targetSeconds":{"type":"number"}}},"logicalName":"net_erlang_c_soc","displayName":"net_erlang_c_soc","title":"net_erlang_c_soc","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"net_cidr_aggregate","description":"Aggregate a list of IPv4 CIDR blocks into the minimal set of covering prefixes, merging overlapping or adjacent ranges.","inputSchema":{"type":"object","required":["cidrs"],"properties":{"cidrs":{"type":"array","items":{"type":"string"}}}},"logicalName":"net_cidr_aggregate","displayName":"net_cidr_aggregate","title":"net_cidr_aggregate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"net_poe_budget","description":"Compute a PoE power budget: total draw by device class, switch utilization, recommended PSU size with margin, and budget verdict.","inputSchema":{"type":"object","required":["poeClass","deviceCount","switchBudgetW"],"properties":{"poeClass":{"enum":["0","1","2","3","4","5","6","7","8"],"type":"string"},"marginPct":{"type":"number"},"deviceCount":{"type":"integer"},"switchBudgetW":{"type":"number"}}},"logicalName":"net_poe_budget","displayName":"net_poe_budget","title":"net_poe_budget","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"net_data_unit_convert","description":"Convert a data size between decimal byte units (kB, MB...), binary byte units (KiB, MiB...) and decimal bit units (kbit, Mbit...).","inputSchema":{"type":"object","required":["value","unit"],"properties":{"to":{"enum":["B","kB","MB","GB","TB","PB","KiB","MiB","GiB","TiB","PiB","bit","kbit","Mbit","Gbit","Tbit"],"type":"string"},"unit":{"enum":["B","kB","MB","GB","TB","PB","KiB","MiB","GiB","TiB","PiB","bit","kbit","Mbit","Gbit","Tbit"],"type":"string"},"value":{"type":"number"}}},"logicalName":"net_data_unit_convert","displayName":"net_data_unit_convert","title":"net_data_unit_convert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"net_iec104_analyze","description":"Decode a single IEC 60870-5-104 APDU from hex into frame format, sequence numbers, ASDU header, information objects, quality/timestamps and validation findings.","inputSchema":{"type":"object","required":["frame"],"properties":{"frame":{"type":"string"}}},"logicalName":"net_iec104_analyze","displayName":"net_iec104_analyze","title":"net_iec104_analyze","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"net_iec104_session","description":"Analyze a capture of several IEC 60870-5-104 frames: per-frame summary, format/type/COT/CA statistics and N(S)/N(R) sequence findings.","inputSchema":{"type":"object","required":["frames"],"properties":{"frames":{"type":"array","items":{"type":"string"}}}},"logicalName":"net_iec104_session","displayName":"net_iec104_session","title":"net_iec104_session","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comp_nis2_enterprise_size","description":"Determine the enterprise size category (micro/small/medium/large) per the EU SME definition used by the NIS2 self-assessment.","inputSchema":{"type":"object","required":["employees","revenueM","balanceM"],"properties":{"balanceM":{"type":"number"},"revenueM":{"type":"number"},"employees":{"type":"integer"}}},"logicalName":"comp_nis2_enterprise_size","displayName":"comp_nis2_enterprise_size","title":"comp_nis2_enterprise_size","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comp_nis2_readiness","description":"Score the NIS2 self-assessment questionnaire: per-domain readiness percentages, overall readiness index, maturity level and prioritized gaps.","inputSchema":{"type":"object","required":["answers"],"properties":{"mode":{"enum":["quick","full"],"type":"string"},"answers":{"type":"object"},"entityTypeId":{"type":"string"}}},"logicalName":"comp_nis2_readiness","displayName":"comp_nis2_readiness","title":"comp_nis2_readiness","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comp_nis2_incident_deadlines","description":"Compute NIS2 Article 23 incident notification deadlines (24 h early warning, 72 h notification, final report after one calendar month) from the awareness time.","inputSchema":{"type":"object","required":["awarenessAt"],"properties":{"awarenessAt":{"type":"string"}}},"logicalName":"comp_nis2_incident_deadlines","displayName":"comp_nis2_incident_deadlines","title":"comp_nis2_incident_deadlines","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comp_rns_readiness","description":"Score the RNS/SOC readiness assessment (CCN-STIC 896): per-service capability, evidence and readiness (70/30), global index, maturity level and prioritized gaps with roadmap phases.","inputSchema":{"type":"object","required":["answers"],"properties":{"goal":{"enum":["improve","rns","basic","advanced","complete","certify"],"type":"string"},"mode":{"enum":["quick","complete"],"type":"string"},"status":{"type":"object"},"answers":{"type":"object"}}},"logicalName":"comp_rns_readiness","displayName":"comp_rns_readiness","title":"comp_rns_readiness","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comp_rns_coverage","description":"Check operational and certified service coverage for the SOC Basic, Advanced and Complete (CCN-STIC 896) service combinations from declared service statuses.","inputSchema":{"type":"object","required":["status"],"properties":{"status":{"type":"object"}}},"logicalName":"comp_rns_coverage","displayName":"comp_rns_coverage","title":"comp_rns_coverage","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comp_assessment_ens","description":"Score the ENS (Spain RD 311/2022) self-assessment: per-domain maturity percentages, overall score, maturity level and prioritized gaps.","inputSchema":{"type":"object","required":["answers"],"properties":{"answers":{"type":"object"}}},"logicalName":"comp_assessment_ens","displayName":"comp_assessment_ens","title":"comp_assessment_ens","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comp_assessment_dora","description":"Score the DORA (EU 2022/2554) self-assessment across its five pillars: per-pillar maturity, overall score, maturity level and prioritized gaps.","inputSchema":{"type":"object","required":["answers"],"properties":{"answers":{"type":"object"}}},"logicalName":"comp_assessment_dora","displayName":"comp_assessment_dora","title":"comp_assessment_dora","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comp_assessment_cra","description":"Score the CRA (EU 2024/2847) self-assessment: per-domain maturity percentages, overall score, maturity level and prioritized gaps.","inputSchema":{"type":"object","required":["answers"],"properties":{"answers":{"type":"object"}}},"logicalName":"comp_assessment_cra","displayName":"comp_assessment_cra","title":"comp_assessment_cra","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comp_assessment_iso27001","description":"Score the ISO/IEC 27001:2022 Annex A gap analysis: per-theme maturity percentages, overall score, maturity level and prioritized gaps.","inputSchema":{"type":"object","required":["answers"],"properties":{"answers":{"type":"object"}}},"logicalName":"comp_assessment_iso27001","displayName":"comp_assessment_iso27001","title":"comp_assessment_iso27001","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comp_risk_matrix","description":"Build the 5x5 risk matrix (likelihood x impact) with the level bands used by the risk calculator, optionally with custom level ranges.","inputSchema":{"type":"object","properties":{"levels":{"type":"array"}}},"logicalName":"comp_risk_matrix","displayName":"comp_risk_matrix","title":"comp_risk_matrix","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comp_rto_rpo_cost","description":"Compare current vs target RTO/RPO continuity scenarios: incident cost, annual cost, savings, worth-it verdict and break-even solution cost.","inputSchema":{"type":"object","required":["downtimeCostPerHour","dataLossCostPerHour","incidentsPerYear","current","target"],"properties":{"target":{"type":"object"},"current":{"type":"object"},"incidentsPerYear":{"type":"number"},"dataLossCostPerHour":{"type":"number"},"downtimeCostPerHour":{"type":"number"}}},"logicalName":"comp_rto_rpo_cost","displayName":"comp_rto_rpo_cost","title":"comp_rto_rpo_cost","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sec_siem_sizing","description":"Size a SIEM: daily ingest volume, hot/cold storage and annual license cost from EPS, event size, retention and pricing model.","inputSchema":{"type":"object","properties":{"eps":{"type":"number"},"model":{"enum":["per_ingest_gb_day","per_eps","per_stored_gb"],"type":"string"},"preset":{"enum":["small","medium","large","enterprise"],"type":"string"},"hotDays":{"type":"number"},"coldDays":{"type":"number"},"unitPrice":{"type":"number"},"eventBytes":{"type":"number"},"indexOverheadPct":{"type":"number"},"coldCompressionPct":{"type":"number"}}},"logicalName":"sec_siem_sizing","displayName":"sec_siem_sizing","title":"sec_siem_sizing","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sec_roi_phishing_training","description":"Compute phishing-awareness training ROI: incidents before/after, avoided losses, net benefit and ROI percentage.","inputSchema":{"type":"object","required":["employees","emailsPerEmployeeYear"],"properties":{"employees":{"type":"number"},"trainingCost":{"type":"number"},"costPerIncident":{"type":"number"},"clickRateAfterPct":{"type":"number"},"compromiseRatePct":{"type":"number"},"clickRateBeforePct":{"type":"number"},"emailsPerEmployeeYear":{"type":"number"}}},"logicalName":"sec_roi_phishing_training","displayName":"sec_roi_phishing_training","title":"sec_roi_phishing_training","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sec_backup_retention","description":"Compute backup storage for a GFS (grandfather-father-son) retention scheme with change rate, compression and deduplication.","inputSchema":{"type":"object","required":["dataSizeGB"],"properties":{"dailyCount":{"type":"number"},"dataSizeGB":{"type":"number"},"dedupRatio":{"type":"number"},"weeklyCount":{"type":"number"},"yearlyCount":{"type":"number"},"monthlyCount":{"type":"number"},"changeRatePct":{"type":"number"},"compressionPct":{"type":"number"}}},"logicalName":"sec_backup_retention","displayName":"sec_backup_retention","title":"sec_backup_retention","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sec_oncall_sizing","description":"Size a 24x7 on-call rotation: people needed for a 1-in-N week rotation, on-call hours per person and annual compensation cost.","inputSchema":{"type":"object","required":["coverageHoursWeek","rotationWeeks"],"properties":{"rotationWeeks":{"type":"number"},"incidentsPerWeek":{"type":"number"},"coverageHoursWeek":{"type":"number"},"onCallCompPerHour":{"type":"number"},"minutesPerIncident":{"type":"number"}}},"logicalName":"sec_oncall_sizing","displayName":"sec_oncall_sizing","title":"sec_oncall_sizing","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sec_vulnerability_priority","description":"Prioritize a vulnerability from CVSS, EPSS, KEV listing, exposure and asset criticality: returns a 0-10 score, tier and remediation window.","inputSchema":{"type":"object","required":["cvss","exposure","criticality"],"properties":{"kev":{"type":"boolean"},"cvss":{"type":"number"},"epssPct":{"type":"number"},"exposure":{"enum":["internet","internal","isolated"],"type":"string"},"criticality":{"enum":["high","medium","low"],"type":"string"}}},"logicalName":"sec_vulnerability_priority","displayName":"sec_vulnerability_priority","title":"sec_vulnerability_priority","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sec_jwt_inspect","description":"Decode a JWT header and payload (base64url, no signature verification) and report iat/exp/nbf timestamps and expiry state.","inputSchema":{"type":"object","required":["token"],"properties":{"token":{"type":"string"},"nowSec":{"type":"integer"}}},"logicalName":"sec_jwt_inspect","displayName":"sec_jwt_inspect","title":"sec_jwt_inspect","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sec_certificate_inspect","description":"Parse an X.509 certificate (PEM/DER) with a minimal ASN.1 reader: subject, issuer, validity, serial, algorithms and SANs (no chain verification).","inputSchema":{"type":"object","required":["pem"],"properties":{"pem":{"type":"string"}}},"logicalName":"sec_certificate_inspect","displayName":"sec_certificate_inspect","title":"sec_certificate_inspect","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sec_hash_integrity","description":"Compute SHA-256/SHA-1/SHA-384/SHA-512 hex digests of a text via Web Crypto and optionally compare them against an expected checksum.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"},"expected":{"type":"string"},"algorithms":{"type":"array"}}},"logicalName":"sec_hash_integrity","displayName":"sec_hash_integrity","title":"sec_hash_integrity","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sec_csp_build","description":"Build a Content-Security-Policy header string from directive sources and flag weak configurations (unsafe-inline, wildcards, missing hardening).","inputSchema":{"type":"object","required":["directives"],"properties":{"directives":{"type":"object"}}},"logicalName":"sec_csp_build","displayName":"sec_csp_build","title":"sec_csp_build","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sec_password_policy","description":"Generate a NIST SP 800-63B-aligned password policy: technical config block plus deviations from NIST recommendations.","inputSchema":{"type":"object","properties":{"hashing":{"enum":["argon2id","bcrypt","scrypt","pbkdf2"],"type":"string"},"maxLength":{"type":"integer"},"minLength":{"type":"integer"},"allowPaste":{"type":"boolean"},"requireMfa":{"type":"boolean"},"breachCheck":{"type":"boolean"},"noComposition":{"type":"boolean"},"expirationDays":{"type":"integer"},"lockoutThreshold":{"type":"integer"}}},"logicalName":"sec_password_policy","displayName":"sec_password_policy","title":"sec_password_policy","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sec_uuid_generate","description":"Generate random UUIDs with the platform CSPRNG: v4 (random) or v7 (time-ordered per RFC 9562).","inputSchema":{"type":"object","properties":{"count":{"type":"integer"},"nowMs":{"type":"number"},"version":{"enum":["v4","v7"],"type":"string"}}},"logicalName":"sec_uuid_generate","displayName":"sec_uuid_generate","title":"sec_uuid_generate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sec_uuid_parse","description":"Validate a UUID and report its version, variant, nil status and, for v7, the embedded millisecond timestamp.","inputSchema":{"type":"object","required":["uuid"],"properties":{"uuid":{"type":"string"}}},"logicalName":"sec_uuid_parse","displayName":"sec_uuid_parse","title":"sec_uuid_parse","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sec_password_generate","description":"Generate cryptographically random passwords (or numeric PINs) from character classes, exclusions and length, with entropy metrics.","inputSchema":{"type":"object","properties":{"mode":{"enum":["password","pin"],"type":"string"},"count":{"type":"integer"},"length":{"type":"integer"},"numbers":{"type":"boolean"},"symbols":{"type":"boolean"},"lowercase":{"type":"boolean"},"uppercase":{"type":"boolean"},"customSymbols":{"type":"string"},"excludeAmbiguous":{"type":"boolean"},"excludedCharacters":{"type":"string"}}},"logicalName":"sec_password_generate","displayName":"sec_password_generate","title":"sec_password_generate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sec_password_crack_time","description":"Estimate average brute-force crack time of a password from its entropy, attacker hardware and target hash algorithm.","inputSchema":{"type":"object","properties":{"hash":{"enum":["ntlm","md5","sha1","sha256","sha512","bcrypt","argon2"],"type":"string"},"digits":{"type":"boolean"},"length":{"type":"integer"},"symbols":{"type":"boolean"},"hardware":{"enum":["online_throttled","online_fast","single_gpu","gpu_rig","cluster"],"type":"string"},"password":{"type":"string"},"lowercase":{"type":"boolean"},"uppercase":{"type":"boolean"}}},"logicalName":"sec_password_crack_time","displayName":"sec_password_crack_time","title":"sec_password_crack_time","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"fin_compound_savings","description":"Compound interest savings projection: monthly-compounded final balance, contributions vs interest and a yearly table.","inputSchema":{"type":"object","required":["initialCapital","contribution","annualRatePct","years"],"properties":{"years":{"type":"integer"},"periodicity":{"enum":["monthly","annual"],"type":"string"},"contribution":{"type":"number"},"targetAmount":{"type":"number"},"annualRatePct":{"type":"number"},"initialCapital":{"type":"number"}}},"logicalName":"fin_compound_savings","displayName":"fin_compound_savings","title":"fin_compound_savings","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"fin_compound_time_to_goal","description":"Months needed to reach a savings goal with compound interest and periodic contributions (capped at 100 years).","inputSchema":{"type":"object","required":["initialCapital","contribution","annualRatePct","targetAmount"],"properties":{"periodicity":{"enum":["monthly","annual"],"type":"string"},"contribution":{"type":"number"},"targetAmount":{"type":"number"},"annualRatePct":{"type":"number"},"initialCapital":{"type":"number"}}},"logicalName":"fin_compound_time_to_goal","displayName":"fin_compound_time_to_goal","title":"fin_compound_time_to_goal","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"fin_compound_required_contribution","description":"Periodic contribution required to reach a savings goal within a fixed number of years (binary-search solved).","inputSchema":{"type":"object","required":["initialCapital","annualRatePct","years","targetAmount"],"properties":{"years":{"type":"integer"},"periodicity":{"enum":["monthly","annual"],"type":"string"},"targetAmount":{"type":"number"},"annualRatePct":{"type":"number"},"initialCapital":{"type":"number"}}},"logicalName":"fin_compound_required_contribution","displayName":"fin_compound_required_contribution","title":"fin_compound_required_contribution","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"fin_compound_required_rate","description":"Annual interest rate required to reach a savings goal with given capital and contributions (binary-search solved, max 200%).","inputSchema":{"type":"object","required":["initialCapital","contribution","years","targetAmount"],"properties":{"years":{"type":"integer"},"periodicity":{"enum":["monthly","annual"],"type":"string"},"contribution":{"type":"number"},"targetAmount":{"type":"number"},"initialCapital":{"type":"number"}}},"logicalName":"fin_compound_required_rate","displayName":"fin_compound_required_rate","title":"fin_compound_required_rate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"fin_cagr","description":"Compound annual growth rate between two values, total return, gain and doubling time.","inputSchema":{"type":"object","required":["initialValue","finalValue","years"],"properties":{"years":{"type":"number"},"finalValue":{"type":"number"},"initialValue":{"type":"number"}}},"logicalName":"fin_cagr","displayName":"fin_cagr","title":"fin_cagr","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"fin_irr_xirr","description":"Annualized IRR/XIRR of dated cash flows, with invested/received totals, money multiple and multi-root warning.","inputSchema":{"type":"object","required":["flows"],"properties":{"flows":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"amount":{"type":"number"}}}}}},"logicalName":"fin_irr_xirr","displayName":"fin_irr_xirr","title":"fin_irr_xirr","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"fin_rebalance_portfolio","description":"Portfolio rebalancing: buy/sell amounts to restore target weights, or allocate a new contribution only, with HHI concentration index.","inputSchema":{"type":"object","required":["assets"],"properties":{"mode":{"enum":["trade","contribute"],"type":"string"},"assets":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"number"},"targetPct":{"type":"number"}}}},"contribution":{"type":"number"}}},"logicalName":"fin_rebalance_portfolio","displayName":"fin_rebalance_portfolio","title":"fin_rebalance_portfolio","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"fin_real_return","description":"Real return after entry/annual/exit fees, capital-gains tax and inflation, with the money impact of each cost.","inputSchema":{"type":"object","required":["initial","finalGross","years"],"properties":{"years":{"type":"integer"},"taxPct":{"type":"number"},"initial":{"type":"number"},"exitFeePct":{"type":"number"},"finalGross":{"type":"number"},"entryFeePct":{"type":"number"},"annualFeePct":{"type":"number"},"inflationPct":{"type":"number"}}},"logicalName":"fin_real_return","displayName":"fin_real_return","title":"fin_real_return","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"fin_compare_loans","description":"Compare up to four loan offers by monthly payment, total cost and APR estimated from the cash flows, flagging low payments caused by longer terms.","inputSchema":{"type":"object","required":["offers"],"properties":{"offers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"amount":{"type":"number"},"months":{"type":"integer"},"tinPct":{"type":"number"},"otherFees":{"type":"number"},"graceMonths":{"type":"integer"},"monthlyExtra":{"type":"number"},"openingFeePct":{"type":"number"}}}}}},"logicalName":"fin_compare_loans","displayName":"fin_compare_loans","title":"fin_compare_loans","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"fin_automation_roi","description":"Automation ROI: hours saved per year versus development and maintenance cost, payback months and first-year ROI.","inputSchema":{"type":"object","required":["manualMinPerRun","runsPerMonth","autoMinPerRun","maintHoursPerMonth","devHours","hourlyCost"],"properties":{"devHours":{"type":"number"},"hourlyCost":{"type":"number"},"runsPerMonth":{"type":"number"},"autoMinPerRun":{"type":"number"},"manualMinPerRun":{"type":"number"},"maintHoursPerMonth":{"type":"number"}}},"logicalName":"fin_automation_roi","displayName":"fin_automation_roi","title":"fin_automation_roi","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"fin_tech_debt_cost","description":"Technical debt cost: monthly/annual overhead of rework caused by debt, refactor cost and payback months of refactoring.","inputSchema":{"type":"object","required":["extraTimePct","tasksPerMonth","hoursPerTask","hourlyCost","refactorHours"],"properties":{"hourlyCost":{"type":"number"},"extraTimePct":{"type":"number"},"hoursPerTask":{"type":"number"},"refactorHours":{"type":"number"},"tasksPerMonth":{"type":"number"}}},"logicalName":"fin_tech_debt_cost","displayName":"fin_tech_debt_cost","title":"fin_tech_debt_cost","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"fin_ev_vs_ice","description":"Electric vs combustion vehicle comparison: cost per 100 km, annual cost, CO2 per km and annual CO2, with savings of the EV.","inputSchema":{"type":"object","required":["evConsumptionKWh100","elecPrice","iceConsumptionL100","fuelPrice","kmPerYear"],"properties":{"elecPrice":{"type":"number"},"fuelPrice":{"type":"number"},"kmPerYear":{"type":"number"},"gridGramsPerKWh":{"type":"number"},"fuelGramsPerLitre":{"type":"number"},"iceConsumptionL100":{"type":"number"},"evConsumptionKWh100":{"type":"number"}}},"logicalName":"fin_ev_vs_ice","displayName":"fin_ev_vs_ice","title":"fin_ev_vs_ice","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_macro_split","description":"Split a daily calorie target into protein/carb/fat grams and kcal from percentages (Atwater 4/4/9).","inputSchema":{"type":"object","required":["calories","proteinPct","carbPct","fatPct"],"properties":{"fatPct":{"type":"number"},"carbPct":{"type":"number"},"calories":{"type":"number"},"proteinPct":{"type":"number"}}},"logicalName":"health_macro_split","displayName":"health_macro_split","title":"health_macro_split","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_bmi","description":"Compute adult BMI, WHO category, reference weight range (BMI 18.5-24.9), threshold weights and optional waist-to-height ratio.","inputSchema":{"type":"object","required":["units"],"properties":{"units":{"enum":["metric","imperial"],"type":"string"},"waistCm":{"type":"number"},"heightCm":{"type":"number"},"weightKg":{"type":"number"},"weightLb":{"type":"number"},"heightFeet":{"type":"number"},"waistInches":{"type":"number"},"heightInches":{"type":"number"}}},"logicalName":"health_bmi","displayName":"health_bmi","title":"health_bmi","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_caffeine_cutoff","description":"Compute when caffeine drops below a residual threshold before a given bedtime, plus the decay curve by half-life.","inputSchema":{"type":"object","required":["doseMg"],"properties":{"doseMg":{"type":"number"},"bedtime":{"type":"string"},"thresholdMg":{"type":"number"},"halfLifeHours":{"type":"number"}}},"logicalName":"health_caffeine_cutoff","displayName":"health_caffeine_cutoff","title":"health_caffeine_cutoff","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_jet_lag_adaptation","description":"Estimate jet lag adaptation days from UTC offsets crossed (east 1.0 day/zone, west 0.67 day/zone).","inputSchema":{"type":"object","required":["originOffsetUtc","destOffsetUtc"],"properties":{"destOffsetUtc":{"type":"number"},"originOffsetUtc":{"type":"number"}}},"logicalName":"health_jet_lag_adaptation","displayName":"health_jet_lag_adaptation","title":"health_jet_lag_adaptation","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_ftp_power_zones","description":"Compute cycling Coggan power zones Z1-Z7 in watts from FTP, plus W/kg and FTP estimated from a 20-minute test.","inputSchema":{"type":"object","properties":{"ftpWatts":{"type":"number"},"weightKg":{"type":"number"},"best20minWatts":{"type":"number"}}},"logicalName":"health_ftp_power_zones","displayName":"health_ftp_power_zones","title":"health_ftp_power_zones","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_running_pace","description":"Compute running pace per km and per mile and speed (km/h, mph) from a distance and a time.","inputSchema":{"type":"object","required":["distanceKm"],"properties":{"hours":{"type":"integer"},"minutes":{"type":"integer"},"seconds":{"type":"number"},"distanceKm":{"type":"number"}}},"logicalName":"health_running_pace","displayName":"health_running_pace","title":"health_running_pace","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_race_time_predict","description":"Predict race times at 5 km, 10 km, half marathon and marathon (plus an optional custom distance) using the Riegel formula.","inputSchema":{"type":"object","required":["distanceKm"],"properties":{"hours":{"type":"integer"},"minutes":{"type":"integer"},"seconds":{"type":"number"},"distanceKm":{"type":"number"},"targetDistanceKm":{"type":"number"}}},"logicalName":"health_race_time_predict","displayName":"health_race_time_predict","title":"health_race_time_predict","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_sleep_duration","description":"Compute sleep duration between bedtime and wake time (crossing midnight) and assess it against CDC age-band references.","inputSchema":{"type":"object","required":["bedtime","wakeTime"],"properties":{"ageBand":{"enum":["adult_18_60","adult_61_64","adult_65_plus"],"type":"string"},"bedtime":{"type":"string"},"wakeTime":{"type":"string"}}},"logicalName":"health_sleep_duration","displayName":"health_sleep_duration","title":"health_sleep_duration","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_sleep_bedtime","description":"Compute the bedtime needed to reach a target sleep duration before a given wake time, accounting for sleep latency.","inputSchema":{"type":"object","required":["wakeTime","targetSleepHours"],"properties":{"wakeTime":{"type":"string"},"latencyMinutes":{"type":"number"},"targetSleepHours":{"type":"number"}}},"logicalName":"health_sleep_bedtime","displayName":"health_sleep_bedtime","title":"health_sleep_bedtime","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_heart_rate_zones","description":"Compute estimated max heart rate (220 - age) and five training zones by % of max or the Karvonen method, plus AHA moderate/vigorous ranges.","inputSchema":{"type":"object","required":["age"],"properties":{"age":{"type":"number"},"method":{"enum":["percent_max","karvonen"],"type":"string"},"restingBpm":{"type":"number"}}},"logicalName":"health_heart_rate_zones","displayName":"health_heart_rate_zones","title":"health_heart_rate_zones","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_blood_pressure","description":"Classify a blood pressure reading (AHA categories), compute mean arterial pressure and pulse pressure.","inputSchema":{"type":"object","required":["systolic","diastolic"],"properties":{"systolic":{"type":"number"},"diastolic":{"type":"number"},"heartRateBpm":{"type":"number"}}},"logicalName":"health_blood_pressure","displayName":"health_blood_pressure","title":"health_blood_pressure","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_weekly_activity","description":"Compare weekly aerobic activity (moderate + 2x vigorous minutes) against the WHO 150-300 min reference, with strength-days check.","inputSchema":{"type":"object","required":["moderateMinutes","vigorousMinutes"],"properties":{"strengthDays":{"type":"integer"},"moderateMinutes":{"type":"number"},"vigorousMinutes":{"type":"number"},"sedentaryMinutesPerDay":{"type":"number"}}},"logicalName":"health_weekly_activity","displayName":"health_weekly_activity","title":"health_weekly_activity","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_convert_glucose","description":"Convert blood glucose between mg/dL and mmol/L (factor 18.0182).","inputSchema":{"type":"object","required":["value","direction"],"properties":{"value":{"type":"number"},"direction":{"enum":["mgdl_to_mmoll","mmoll_to_mgdl"],"type":"string"}}},"logicalName":"health_convert_glucose","displayName":"health_convert_glucose","title":"health_convert_glucose","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_convert_cholesterol","description":"Convert cholesterol (total, LDL or HDL) between mg/dL and mmol/L (factor 38.67).","inputSchema":{"type":"object","required":["value","direction"],"properties":{"value":{"type":"number"},"direction":{"enum":["mgdl_to_mmoll","mmoll_to_mgdl"],"type":"string"}}},"logicalName":"health_convert_cholesterol","displayName":"health_convert_cholesterol","title":"health_convert_cholesterol","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_convert_triglycerides","description":"Convert triglycerides between mg/dL and mmol/L (factor 88.57).","inputSchema":{"type":"object","required":["value","direction"],"properties":{"value":{"type":"number"},"direction":{"enum":["mgdl_to_mmoll","mmoll_to_mgdl"],"type":"string"}}},"logicalName":"health_convert_triglycerides","displayName":"health_convert_triglycerides","title":"health_convert_triglycerides","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_convert_temperature","description":"Convert body temperature between Celsius and Fahrenheit.","inputSchema":{"type":"object","required":["value","direction"],"properties":{"value":{"type":"number"},"direction":{"enum":["c_to_f","f_to_c"],"type":"string"}}},"logicalName":"health_convert_temperature","displayName":"health_convert_temperature","title":"health_convert_temperature","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_convert_weight","description":"Convert body weight between kilograms and pounds.","inputSchema":{"type":"object","required":["value","direction"],"properties":{"value":{"type":"number"},"direction":{"enum":["kg_to_lb","lb_to_kg"],"type":"string"}}},"logicalName":"health_convert_weight","displayName":"health_convert_weight","title":"health_convert_weight","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"health_convert_height","description":"Convert height between centimetres and inches, with derived metres and feet+inches.","inputSchema":{"type":"object","required":["value","direction"],"properties":{"value":{"type":"number"},"direction":{"enum":["cm_to_in","in_to_cm"],"type":"string"}}},"logicalName":"health_convert_height","displayName":"health_convert_height","title":"health_convert_height","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ops_solar_selfconsumption","description":"Estimate annual production, self-consumption savings, surplus compensation and payback period of a rooftop solar PV installation (Spanish CTE radiation zones).","inputSchema":{"type":"object","required":["kWp","selfConsumptionPct","priceBuy","priceSell","installCost"],"properties":{"kWp":{"type":"number"},"zone":{"enum":["I","II","III","IV","V"],"type":"string"},"priceBuy":{"type":"number"},"priceSell":{"type":"number"},"installCost":{"type":"number"},"yieldKWhPerKWp":{"type":"number"},"selfConsumptionPct":{"type":"number"}}},"logicalName":"ops_solar_selfconsumption","displayName":"ops_solar_selfconsumption","title":"ops_solar_selfconsumption","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ops_pue_cost","description":"Compute facility power (IT x PUE), overhead power, annual energy and annual electricity cost of a datacenter rack or room.","inputSchema":{"type":"object","required":["itLoadKW","pue","tariffPerKWh","hoursPerYear"],"properties":{"pue":{"type":"number"},"itLoadKW":{"type":"number"},"hoursPerYear":{"type":"number"},"tariffPerKWh":{"type":"number"}}},"logicalName":"ops_pue_cost","displayName":"ops_pue_cost","title":"ops_pue_cost","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ops_cooling_sizing","description":"Size datacenter cooling: BTU/h, cooling capacity in kW and airflow (m3/h and CFM) from the IT load, temperature delta and redundancy margin.","inputSchema":{"type":"object","required":["itLoadKW","deltaTC","redundancyPct"],"properties":{"deltaTC":{"type":"number"},"itLoadKW":{"type":"number"},"redundancyPct":{"type":"number"}}},"logicalName":"ops_cooling_sizing","displayName":"ops_cooling_sizing","title":"ops_cooling_sizing","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ops_ups_sizing","description":"Size a UPS (SAI): apparent power in VA from load W and power factor, plus battery count and real autonomy for a target runtime.","inputSchema":{"type":"object","required":["loadW","powerFactor","autonomyMin","batteryWh","dodPct","inverterEffPct"],"properties":{"loadW":{"type":"number"},"dodPct":{"type":"number"},"batteryWh":{"type":"number"},"autonomyMin":{"type":"number"},"powerFactor":{"type":"number"},"inverterEffPct":{"type":"number"}}},"logicalName":"ops_ups_sizing","displayName":"ops_ups_sizing","title":"ops_ups_sizing","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ops_capacity_replicas","description":"Compute the number of replicas needed to serve a base request rate with a peak factor and headroom, plus utilization percentages.","inputSchema":{"type":"object","required":["baseRps","peakFactor","capacityPerReplicaRps","headroomPct"],"properties":{"baseRps":{"type":"number"},"peakFactor":{"type":"number"},"headroomPct":{"type":"number"},"capacityPerReplicaRps":{"type":"number"}}},"logicalName":"ops_capacity_replicas","displayName":"ops_capacity_replicas","title":"ops_capacity_replicas","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ops_carbon_footprint","description":"Estimate the operational carbon footprint (tCO2/year) and electricity cost of IT equipment from power draw, PUE and grid emission factor.","inputSchema":{"type":"object","required":["servers","wattsPerServer"],"properties":{"pue":{"type":"number"},"servers":{"type":"number"},"hoursPerYear":{"type":"number"},"wattsPerServer":{"type":"number"},"gridGramsPerKWh":{"type":"number"},"electricityPrice":{"type":"number"}}},"logicalName":"ops_carbon_footprint","displayName":"ops_carbon_footprint","title":"ops_carbon_footprint","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ops_mtbf_availability","description":"Compute availability from MTBF/MTTR/MTTD, annual downtime and which lever (raising MTBF or cutting MTTR/MTTD by 10%) yields the biggest availability gain.","inputSchema":{"type":"object","required":["mtbfHours","mttrHours","mttdHours"],"properties":{"mtbfHours":{"type":"number"},"mttdHours":{"type":"number"},"mttrHours":{"type":"number"}}},"logicalName":"ops_mtbf_availability","displayName":"ops_mtbf_availability","title":"ops_mtbf_availability","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ops_error_budget","description":"Compute the SLO error budget for a window, its consumption, burn rate and whether deployments should be frozen.","inputSchema":{"type":"object","required":["sloPct","windowDays","actualAvailabilityPct"],"properties":{"sloPct":{"type":"number"},"windowDays":{"type":"number"},"actualAvailabilityPct":{"type":"number"}}},"logicalName":"ops_error_budget","displayName":"ops_error_budget","title":"ops_error_budget","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ops_meeting_cost","description":"Compute the cost of a recurring meeting from attendee count, average hourly cost, duration and monthly frequency.","inputSchema":{"type":"object","required":["attendees","avgHourlyCost","durationMin","meetingsPerMonth"],"properties":{"attendees":{"type":"integer"},"durationMin":{"type":"number"},"avgHourlyCost":{"type":"number"},"meetingsPerMonth":{"type":"number"}}},"logicalName":"ops_meeting_cost","displayName":"ops_meeting_cost","title":"ops_meeting_cost","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ops_remediation_window","description":"Maximum remediation window in days for a vulnerability severity and exposure level (internet x0.5, internal x1, isolated x1.5), plus the full severity x exposure matrix.","inputSchema":{"type":"object","required":["severity","exposure"],"properties":{"exposure":{"enum":["internet","internal","isolated"],"type":"string"},"severity":{"enum":["critical","high","medium","low"],"type":"string"},"policyDays":{"type":"object","properties":{"low":{"type":"integer"},"high":{"type":"integer"},"medium":{"type":"integer"},"critical":{"type":"integer"}}}}},"logicalName":"ops_remediation_window","displayName":"ops_remediation_window","title":"ops_remediation_window","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sla_downtime_custom","description":"Compute the downtime budget for an SLA availability percentage over a custom period (hours, days or weeks).","inputSchema":{"type":"object","required":["slaPercent","amount","unit"],"properties":{"unit":{"enum":["hours","days","weeks"],"type":"string"},"amount":{"type":"number"},"slaPercent":{"type":"number"}}},"logicalName":"sla_downtime_custom","displayName":"sla_downtime_custom","title":"sla_downtime_custom","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sla_composition","description":"Compose the aggregate SLA of several services/dependencies in series (dependent) or parallel (redundant) configuration.","inputSchema":{"type":"object","required":["availabilitiesPct"],"properties":{"mode":{"enum":["series","parallel"],"type":"string"},"availabilitiesPct":{"type":"array","items":{"type":"number"}}}},"logicalName":"sla_composition","displayName":"sla_composition","title":"sla_composition","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"util_timestamp_convert","description":"Convert a Unix epoch (seconds or milliseconds) or ISO 8601 date into epoch values, ISO UTC and formatted wall-clock times in IANA time zones.","inputSchema":{"type":"object","required":["timestamp"],"properties":{"timeZones":{"type":"array","items":{"type":"string"}},"timestamp":{"type":"string"}}},"logicalName":"util_timestamp_convert","displayName":"util_timestamp_convert","title":"util_timestamp_convert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"util_cron_explain","description":"Parse a 5-field cron expression, describe the schedule in plain English and compute the next run times (UTC).","inputSchema":{"type":"object","required":["expression"],"properties":{"from":{"type":"string"},"count":{"type":"integer"},"expression":{"type":"string"}}},"logicalName":"util_cron_explain","displayName":"util_cron_explain","title":"util_cron_explain","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cvss_temporal_score","description":"Compute CVSS v3.1 base, temporal and environmental scores and severities from a vector string including E/RL/RC, CR/IR/AR and modified base metrics.","inputSchema":{"type":"object","required":["vector"],"properties":{"vector":{"type":"string"}}},"logicalName":"cvss_temporal_score","displayName":"cvss_temporal_score","title":"cvss_temporal_score","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"raid_rebuild_risk","description":"Estimate RAID rebuild time and the probability of hitting an unrecoverable read error (URE) or data loss during a rebuild.","inputSchema":{"type":"object","required":["level","disks","diskSizeTB"],"properties":{"uber":{"type":"number"},"disks":{"type":"integer"},"level":{"enum":["0","1","5","6","10"],"type":"string"},"diskSizeTB":{"type":"number"},"rebuildSpeedMBs":{"type":"number"}}},"logicalName":"raid_rebuild_risk","displayName":"raid_rebuild_risk","title":"raid_rebuild_risk","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Pablo-Lisaso-Ciberseguridad-Operaciones-IT-OT-e-Inversi-n&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AucGFibG9saXNhc28uY29tL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Pablo-Lisaso-Ciberseguridad-Operaciones-IT-OT-e-Inversi-n%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.pablolisaso.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Pablo-Lisaso-Ciberseguridad-Operaciones-IT-OT-e-Inversi-n%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.pablolisaso.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Pablo+Lisaso+%E2%80%94+Ciberseguridad%2C+Operaciones+IT%2FOT+e+Inversi%C3%B3n&connectorUrl=https%3A%2F%2Fmcp.pablolisaso.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Pablo-Lisaso-Ciberseguridad-Operaciones-IT-OT-e-Inversi-n\" --url \"https://mcp.pablolisaso.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/pablolisaso-mcp-7c6d3c85bc","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/pablolisaso-mcp-7c6d3c85bc/tools/{tool}","mcpServerUrl":"https://mcp.pablolisaso.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/pablolisaso-mcp-7c6d3c85bc?live=1"}