@carrierllc/mcp 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1475,6 +1475,979 @@ function registerAllTools(server2, ctx) {
1475
1475
  // src/intelligence.ts
1476
1476
  import { z as z2 } from "zod";
1477
1477
 
1478
+ // ../../packages/ocs-spec/ocs-methods.json
1479
+ var ocs_methods_default = {
1480
+ version: "1.0.0",
1481
+ captured_at: "2026-05-10T20:55:08.779899+00:00",
1482
+ sources: {
1483
+ live_docs_url: "https://docs.esimvault.cloud/ocs-api",
1484
+ server_source_repo: "auroracapital/esimmcp.com",
1485
+ server_source_commit: "8793971",
1486
+ server_source_branch: "feat/intelligence-tools@e200c42 merged to main via restore-mcp-to-main PR#31",
1487
+ notes: "Live docs SPA rendered via Kapture (2026-05-10). Server is a strict subset of live docs (43/52 methods). Zero server\u2192live drift confirmed. 9 live-only methods are v1.1 backlog."
1488
+ },
1489
+ v1_methods: [
1490
+ {
1491
+ name: "list_reseller_accounts",
1492
+ ocs_method: "listResellerAccount",
1493
+ category: "reseller",
1494
+ scope: "read",
1495
+ description: "List all accounts across all resellers",
1496
+ params: {
1497
+ resellerId: { type: "number", required: false }
1498
+ },
1499
+ response: {},
1500
+ annotations: "readOnlyHint",
1501
+ verified_against_server: true,
1502
+ verified_against_live_docs: true
1503
+ },
1504
+ {
1505
+ name: "get_reseller_info",
1506
+ ocs_method: "getResellerInfo",
1507
+ category: "reseller",
1508
+ scope: "read",
1509
+ description: "Retrieve reseller details",
1510
+ params: {
1511
+ resellerId: { type: "number", required: false }
1512
+ },
1513
+ response: {},
1514
+ annotations: "readOnlyHint",
1515
+ verified_against_server: true,
1516
+ verified_against_live_docs: true
1517
+ },
1518
+ {
1519
+ name: "esim_status_per_account",
1520
+ ocs_method: "esimStatusPerAccount",
1521
+ category: "reseller",
1522
+ scope: "read",
1523
+ description: "eSIM status breakdown per account",
1524
+ params: {
1525
+ accountId: { type: "number", required: false }
1526
+ },
1527
+ response: {},
1528
+ annotations: "readOnlyHint",
1529
+ verified_against_server: true,
1530
+ verified_against_live_docs: true
1531
+ },
1532
+ {
1533
+ name: "list_sponsors",
1534
+ ocs_method: "listSponsor",
1535
+ category: "reseller",
1536
+ scope: "read",
1537
+ description: "List all sponsor networks",
1538
+ params: {},
1539
+ response: {},
1540
+ annotations: "readOnlyHint",
1541
+ verified_against_server: true,
1542
+ verified_against_live_docs: true
1543
+ },
1544
+ {
1545
+ name: "list_steering_lists",
1546
+ ocs_method: "listSteeringList",
1547
+ category: "reseller",
1548
+ scope: "read",
1549
+ description: "List all network steering lists",
1550
+ params: {},
1551
+ response: {},
1552
+ annotations: "readOnlyHint",
1553
+ verified_against_server: true,
1554
+ verified_against_live_docs: true
1555
+ },
1556
+ {
1557
+ name: "modify_account_balance",
1558
+ ocs_method: "modifyAccountBalance",
1559
+ category: "reseller",
1560
+ scope: "admin",
1561
+ description: "Adjust or set reseller account balance",
1562
+ params: {
1563
+ accountId: { type: "number", required: true },
1564
+ amount: { type: "number", required: true },
1565
+ mode: { type: "enum[adapt,set]", required: true }
1566
+ },
1567
+ response: {},
1568
+ annotations: "destructiveHint",
1569
+ verified_against_server: true,
1570
+ verified_against_live_docs: true
1571
+ },
1572
+ {
1573
+ name: "get_subscriber",
1574
+ ocs_method: "getSingleSubscriber",
1575
+ category: "subscriber",
1576
+ scope: "read",
1577
+ description: "Get full subscriber details by ICCID or MSISDN",
1578
+ params: {
1579
+ iccid: { type: "string", required: false },
1580
+ msisdn: { type: "string", required: false },
1581
+ with_gz_counter: { type: "boolean", required: false, ocs_field: "withGzCounter", description: "When true, include greenZoneCounter { subscriberId, volumeOnGZ (bytes), lastResetDate, lastUpdateDate } in response" }
1582
+ },
1583
+ response: {
1584
+ greenZoneCounter: { type: "object", present_when: "with_gz_counter=true", fields: { subscriberId: "number", volumeOnGZ: "number (bytes)", lastResetDate: "string (ISO8601)", lastUpdateDate: "string (ISO8601)" } }
1585
+ },
1586
+ annotations: "readOnlyHint",
1587
+ verified_against_server: true,
1588
+ verified_against_live_docs: true
1589
+ },
1590
+ {
1591
+ name: "list_subscribers",
1592
+ ocs_method: "listSubscriber",
1593
+ category: "subscriber",
1594
+ scope: "read",
1595
+ description: "List subscribers with optional filters",
1596
+ params: {
1597
+ accountId: { type: "number", required: false },
1598
+ status: { type: "string", required: false },
1599
+ offset: { type: "number", required: false },
1600
+ limit: { type: "number", required: false }
1601
+ },
1602
+ response: {},
1603
+ annotations: "readOnlyHint",
1604
+ verified_against_server: true,
1605
+ verified_against_live_docs: true
1606
+ },
1607
+ {
1608
+ name: "modify_subscriber_balance",
1609
+ ocs_method: "modifySubscriberBalance",
1610
+ category: "subscriber",
1611
+ scope: "write",
1612
+ description: "Adjust or set subscriber balance",
1613
+ params: {
1614
+ iccid: { type: "string", required: true },
1615
+ amount: { type: "number", required: true },
1616
+ mode: { type: "enum[adapt,set]", required: true }
1617
+ },
1618
+ response: {},
1619
+ annotations: "destructiveHint",
1620
+ verified_against_server: true,
1621
+ verified_against_live_docs: true
1622
+ },
1623
+ {
1624
+ name: "modify_subscriber_status",
1625
+ ocs_method: "modifySubscriberStatus",
1626
+ category: "subscriber",
1627
+ scope: "write",
1628
+ description: "Change subscriber OCS status",
1629
+ params: {
1630
+ iccid: { type: "string", required: true },
1631
+ status: { type: "string", required: true }
1632
+ },
1633
+ response: {},
1634
+ annotations: "destructiveHint",
1635
+ verified_against_server: true,
1636
+ verified_against_live_docs: true
1637
+ },
1638
+ {
1639
+ name: "change_sim_status",
1640
+ ocs_method: "changeSimStatus",
1641
+ category: "subscriber",
1642
+ scope: "write",
1643
+ description: "Change SIM status at provider level",
1644
+ params: {
1645
+ iccid: { type: "string", required: true },
1646
+ simStatus: { type: "string", required: true }
1647
+ },
1648
+ response: {},
1649
+ annotations: "destructiveHint",
1650
+ verified_against_server: true,
1651
+ verified_against_live_docs: true
1652
+ },
1653
+ {
1654
+ name: "get_sim_provider_status",
1655
+ ocs_method: "getSimProviderStatus",
1656
+ category: "subscriber",
1657
+ scope: "read",
1658
+ description: "Check SIM provider-level status",
1659
+ params: {
1660
+ iccid: { type: "string", required: true }
1661
+ },
1662
+ response: {},
1663
+ annotations: "readOnlyHint",
1664
+ verified_against_server: true,
1665
+ verified_against_live_docs: true
1666
+ },
1667
+ {
1668
+ name: "get_subscriber_location",
1669
+ ocs_method: "getSubscriberLocation",
1670
+ category: "subscriber",
1671
+ scope: "read",
1672
+ description: "Get last known subscriber location",
1673
+ params: {
1674
+ iccid: { type: "string", required: true }
1675
+ },
1676
+ response: {},
1677
+ annotations: "readOnlyHint",
1678
+ verified_against_server: true,
1679
+ verified_against_live_docs: true
1680
+ },
1681
+ {
1682
+ name: "modify_subscriber_contact_info",
1683
+ ocs_method: "modifySubscriberContactInfo",
1684
+ category: "subscriber",
1685
+ scope: "write",
1686
+ description: "Update subscriber contact info",
1687
+ params: {
1688
+ iccid: { type: "string", required: true },
1689
+ firstName: { type: "string", required: false },
1690
+ lastName: { type: "string", required: false },
1691
+ email: { type: "string", required: false },
1692
+ phoneNumber: { type: "string", required: false }
1693
+ },
1694
+ response: {},
1695
+ annotations: "destructiveHint",
1696
+ verified_against_server: true,
1697
+ verified_against_live_docs: true
1698
+ },
1699
+ {
1700
+ name: "set_subscriber_traffic_restrictions",
1701
+ ocs_method: "setSubscriberTrafficRestrictions",
1702
+ category: "subscriber",
1703
+ scope: "write",
1704
+ description: "Configure traffic restrictions for a subscriber",
1705
+ params: {
1706
+ iccid: { type: "string", required: true },
1707
+ restrictions: { type: "string(JSON)", required: true }
1708
+ },
1709
+ response: {},
1710
+ annotations: "destructiveHint",
1711
+ verified_against_server: true,
1712
+ verified_against_live_docs: true
1713
+ },
1714
+ {
1715
+ name: "modify_subscriber_steering_list",
1716
+ ocs_method: "modifySubscriberSteeringList",
1717
+ category: "subscriber",
1718
+ scope: "write",
1719
+ description: "Change network steering list for a subscriber",
1720
+ params: {
1721
+ iccid: { type: "string", required: true },
1722
+ steeringListId: { type: "number", required: true }
1723
+ },
1724
+ response: {},
1725
+ annotations: "destructiveHint",
1726
+ verified_against_server: true,
1727
+ verified_against_live_docs: true
1728
+ },
1729
+ {
1730
+ name: "move_subscriber_range_to_account",
1731
+ ocs_method: "moveSubscriberRangeToAccount",
1732
+ category: "subscriber",
1733
+ scope: "admin",
1734
+ description: "Move subscriber range to another account",
1735
+ params: {
1736
+ iccidFrom: { type: "string", required: true },
1737
+ iccidTo: { type: "string", required: true },
1738
+ accountId: { type: "number", required: true }
1739
+ },
1740
+ response: {},
1741
+ annotations: "destructiveHint",
1742
+ verified_against_server: true,
1743
+ verified_against_live_docs: true
1744
+ },
1745
+ {
1746
+ name: "hlr_set_bitrate",
1747
+ ocs_method: "hlrSetBitrate",
1748
+ category: "subscriber",
1749
+ scope: "write",
1750
+ description: "Set HLR bitrate for a subscriber",
1751
+ params: {
1752
+ iccid: { type: "string", required: true },
1753
+ bitrate: { type: "number", required: true }
1754
+ },
1755
+ response: {},
1756
+ annotations: "destructiveHint",
1757
+ verified_against_server: true,
1758
+ verified_against_live_docs: true
1759
+ },
1760
+ {
1761
+ name: "hlr_get_bitrate",
1762
+ ocs_method: "hlrGetBitrate",
1763
+ category: "subscriber",
1764
+ scope: "read",
1765
+ description: "Get HLR bitrate for a subscriber",
1766
+ params: {
1767
+ iccid: { type: "string", required: true }
1768
+ },
1769
+ response: {},
1770
+ annotations: "readOnlyHint",
1771
+ verified_against_server: true,
1772
+ verified_against_live_docs: true
1773
+ },
1774
+ {
1775
+ name: "list_subscriber_packages",
1776
+ ocs_method: "listSubscriberPrepaidPackages",
1777
+ category: "packages",
1778
+ scope: "read",
1779
+ description: "List all prepaid packages assigned to a subscriber",
1780
+ params: {
1781
+ iccid: { type: "string", required: true }
1782
+ },
1783
+ response: {},
1784
+ annotations: "readOnlyHint",
1785
+ verified_against_server: true,
1786
+ verified_against_live_docs: true
1787
+ },
1788
+ {
1789
+ name: "assign_package",
1790
+ ocs_method: "affectPackageToSubscriber",
1791
+ category: "packages",
1792
+ scope: "write",
1793
+ description: "Assign prepaid package template to subscriber",
1794
+ params: {
1795
+ iccid: { type: "string", required: true },
1796
+ packageTemplateId: { type: "number", required: true }
1797
+ },
1798
+ response: {},
1799
+ annotations: "destructiveHint",
1800
+ verified_against_server: true,
1801
+ verified_against_live_docs: true
1802
+ },
1803
+ {
1804
+ name: "assign_recurring_package",
1805
+ ocs_method: "affectRecurringPackageToSubscriber",
1806
+ category: "packages",
1807
+ scope: "write",
1808
+ description: "Assign recurring prepaid package to subscriber",
1809
+ params: {
1810
+ iccid: { type: "string", required: true },
1811
+ packageTemplateId: { type: "number", required: true }
1812
+ },
1813
+ response: {},
1814
+ annotations: "destructiveHint",
1815
+ verified_against_server: true,
1816
+ verified_against_live_docs: true
1817
+ },
1818
+ {
1819
+ name: "modify_package_limits",
1820
+ ocs_method: "modifySubscriberPrepaidPackageLimits",
1821
+ category: "packages",
1822
+ scope: "write",
1823
+ description: "Change data/voice/SMS limits on active package",
1824
+ params: {
1825
+ iccid: { type: "string", required: true },
1826
+ packageId: { type: "number", required: true },
1827
+ limits: { type: "string(JSON)", required: true }
1828
+ },
1829
+ response: {},
1830
+ annotations: "destructiveHint",
1831
+ verified_against_server: true,
1832
+ verified_against_live_docs: true
1833
+ },
1834
+ {
1835
+ name: "modify_package_expiry",
1836
+ ocs_method: "modifySubscriberPrepaidPackageExpDate",
1837
+ category: "packages",
1838
+ scope: "write",
1839
+ description: "Change expiration date of active package",
1840
+ params: {
1841
+ iccid: { type: "string", required: true },
1842
+ packageId: { type: "number", required: true },
1843
+ expirationDate: { type: "string(ISO8601)", required: true }
1844
+ },
1845
+ response: {},
1846
+ annotations: "destructiveHint",
1847
+ verified_against_server: true,
1848
+ verified_against_live_docs: true
1849
+ },
1850
+ {
1851
+ name: "modify_package_status",
1852
+ ocs_method: "modifySubscriberPrepaidPackageStatus",
1853
+ category: "packages",
1854
+ scope: "write",
1855
+ description: "Activate or deactivate a subscriber package",
1856
+ params: {
1857
+ iccid: { type: "string", required: true },
1858
+ packageId: { type: "number", required: true },
1859
+ status: { type: "string", required: true }
1860
+ },
1861
+ response: {},
1862
+ annotations: "destructiveHint",
1863
+ verified_against_server: true,
1864
+ verified_against_live_docs: true
1865
+ },
1866
+ {
1867
+ name: "stop_resume_recurring_package",
1868
+ ocs_method: "stopResumeSubsRecurringPackage",
1869
+ category: "packages",
1870
+ scope: "write",
1871
+ description: "Stop or resume recurring package auto-renewal",
1872
+ params: {
1873
+ iccid: { type: "string", required: true },
1874
+ packageId: { type: "number", required: true },
1875
+ action: { type: "enum[stop,resume]", required: true }
1876
+ },
1877
+ response: {},
1878
+ annotations: "destructiveHint",
1879
+ verified_against_server: true,
1880
+ verified_against_live_docs: true
1881
+ },
1882
+ {
1883
+ name: "delete_subscriber_package",
1884
+ ocs_method: "deleteSubscriberPackage",
1885
+ category: "packages",
1886
+ scope: "admin",
1887
+ description: "Remove a package from a subscriber",
1888
+ params: {
1889
+ iccid: { type: "string", required: true },
1890
+ packageId: { type: "number", required: true }
1891
+ },
1892
+ response: {},
1893
+ annotations: "destructiveHint",
1894
+ verified_against_server: true,
1895
+ verified_against_live_docs: true
1896
+ },
1897
+ {
1898
+ name: "clean_all_packages",
1899
+ ocs_method: "cleanSubscriberAllPackages",
1900
+ category: "packages",
1901
+ scope: "admin",
1902
+ description: "Remove ALL packages from a subscriber",
1903
+ params: {
1904
+ iccid: { type: "string", required: true }
1905
+ },
1906
+ response: {},
1907
+ annotations: "destructiveHint",
1908
+ verified_against_server: true,
1909
+ verified_against_live_docs: true
1910
+ },
1911
+ {
1912
+ name: "list_package_templates",
1913
+ ocs_method: "listPrepaidPackageTemplate",
1914
+ category: "templates",
1915
+ scope: "read",
1916
+ description: "List all prepaid package templates",
1917
+ params: {
1918
+ accountId: { type: "number", required: false }
1919
+ },
1920
+ response: {},
1921
+ annotations: "readOnlyHint",
1922
+ verified_against_server: true,
1923
+ verified_against_live_docs: true
1924
+ },
1925
+ {
1926
+ name: "create_package_template",
1927
+ ocs_method: "createPrepaidPackageTemplate",
1928
+ category: "templates",
1929
+ scope: "admin",
1930
+ description: "Create a new prepaid package template",
1931
+ params: {
1932
+ template: { type: "string(JSON)", required: true }
1933
+ },
1934
+ response: {},
1935
+ annotations: "destructiveHint",
1936
+ verified_against_server: true,
1937
+ verified_against_live_docs: true
1938
+ },
1939
+ {
1940
+ name: "modify_template_core",
1941
+ ocs_method: "modifyPPTCore",
1942
+ category: "templates",
1943
+ scope: "admin",
1944
+ description: "Modify core settings of a package template",
1945
+ params: {
1946
+ templateId: { type: "number", required: true },
1947
+ changes: { type: "string(JSON)", required: true }
1948
+ },
1949
+ response: {},
1950
+ annotations: "destructiveHint",
1951
+ verified_against_server: true,
1952
+ verified_against_live_docs: true
1953
+ },
1954
+ {
1955
+ name: "modify_template_recurring",
1956
+ ocs_method: "modifyPPTRecurring",
1957
+ category: "templates",
1958
+ scope: "admin",
1959
+ description: "Modify recurring settings of a package template",
1960
+ params: {
1961
+ templateId: { type: "number", required: true },
1962
+ changes: { type: "string(JSON)", required: true }
1963
+ },
1964
+ response: {},
1965
+ annotations: "destructiveHint",
1966
+ verified_against_server: true,
1967
+ verified_against_live_docs: true
1968
+ },
1969
+ {
1970
+ name: "modify_template_throttling",
1971
+ ocs_method: "modifyPPTThrottling",
1972
+ category: "templates",
1973
+ scope: "admin",
1974
+ description: "Modify throttling settings of a package template",
1975
+ params: {
1976
+ templateId: { type: "number", required: true },
1977
+ changes: { type: "string(JSON)", required: true }
1978
+ },
1979
+ response: {},
1980
+ annotations: "destructiveHint",
1981
+ verified_against_server: true,
1982
+ verified_against_live_docs: true
1983
+ },
1984
+ {
1985
+ name: "list_location_zones",
1986
+ ocs_method: "listLocationZoneElement",
1987
+ category: "templates",
1988
+ scope: "read",
1989
+ description: "List countries/networks in a location zone",
1990
+ params: {
1991
+ locationZoneId: { type: "number", required: false }
1992
+ },
1993
+ response: {},
1994
+ annotations: "readOnlyHint",
1995
+ verified_against_server: true,
1996
+ verified_against_live_docs: true
1997
+ },
1998
+ {
1999
+ name: "list_detailed_location_zones",
2000
+ ocs_method: "listDetailedLocationZone",
2001
+ category: "templates",
2002
+ scope: "read",
2003
+ description: "Get detailed location zone definitions",
2004
+ params: {},
2005
+ response: {},
2006
+ annotations: "readOnlyHint",
2007
+ verified_against_server: true,
2008
+ verified_against_live_docs: true
2009
+ },
2010
+ {
2011
+ name: "list_destination_prefixes",
2012
+ ocs_method: "listDestinationListPrefix",
2013
+ category: "templates",
2014
+ scope: "read",
2015
+ description: "List phone number prefixes in destination lists",
2016
+ params: {
2017
+ destinationListId: { type: "number", required: false }
2018
+ },
2019
+ response: {},
2020
+ annotations: "readOnlyHint",
2021
+ verified_against_server: true,
2022
+ verified_against_live_docs: true
2023
+ },
2024
+ {
2025
+ name: "create_location_zone",
2026
+ ocs_method: "createLocationZone",
2027
+ category: "templates",
2028
+ scope: "admin",
2029
+ description: "Create a new location zone",
2030
+ params: {
2031
+ zone: { type: "string(JSON)", required: true }
2032
+ },
2033
+ response: {},
2034
+ annotations: "destructiveHint",
2035
+ verified_against_server: true,
2036
+ verified_against_live_docs: true
2037
+ },
2038
+ {
2039
+ name: "subscriber_usage",
2040
+ ocs_method: "subscriberUsageOverPeriod",
2041
+ category: "statistics",
2042
+ scope: "read",
2043
+ description: "Get daily usage for a subscriber (max 7 days)",
2044
+ params: {
2045
+ iccid: { type: "string", required: true },
2046
+ startDate: { type: "string(YYYY-MM-DD)", required: true },
2047
+ endDate: { type: "string(YYYY-MM-DD)", required: true }
2048
+ },
2049
+ response: {},
2050
+ annotations: "readOnlyHint",
2051
+ verified_against_server: true,
2052
+ verified_against_live_docs: true
2053
+ },
2054
+ {
2055
+ name: "subscriber_network_events",
2056
+ ocs_method: "subscriberNetworkEventsOverPeriod",
2057
+ category: "statistics",
2058
+ scope: "read",
2059
+ description: "Get network events for a subscriber (max 7 days)",
2060
+ params: {
2061
+ iccid: { type: "string", required: true },
2062
+ startDate: { type: "string(YYYY-MM-DD)", required: true },
2063
+ endDate: { type: "string(YYYY-MM-DD)", required: true }
2064
+ },
2065
+ response: {},
2066
+ annotations: "readOnlyHint",
2067
+ verified_against_server: true,
2068
+ verified_against_live_docs: true
2069
+ },
2070
+ {
2071
+ name: "subscriber_active_period",
2072
+ ocs_method: "getSubscriberActivePeriod",
2073
+ category: "statistics",
2074
+ scope: "read",
2075
+ description: "Get subscriber active period",
2076
+ params: {
2077
+ iccid: { type: "string", required: true }
2078
+ },
2079
+ response: {},
2080
+ annotations: "readOnlyHint",
2081
+ verified_against_server: true,
2082
+ verified_against_live_docs: true
2083
+ },
2084
+ {
2085
+ name: "get_tariff",
2086
+ ocs_method: "getCustomerTariff",
2087
+ category: "tariff",
2088
+ scope: "read",
2089
+ description: "Retrieve customer tariff/pricing table",
2090
+ params: {},
2091
+ response: {},
2092
+ annotations: "readOnlyHint",
2093
+ verified_against_server: true,
2094
+ verified_against_live_docs: true
2095
+ },
2096
+ {
2097
+ name: "send_sms",
2098
+ ocs_method: "sendMtSms",
2099
+ category: "messaging",
2100
+ scope: "write",
2101
+ description: "Send MT SMS to a subscriber",
2102
+ params: {
2103
+ iccid: { type: "string", required: true },
2104
+ msisdn: { type: "string", required: true },
2105
+ message: { type: "string", required: true },
2106
+ sender: { type: "string", required: false }
2107
+ },
2108
+ response: {},
2109
+ annotations: "destructiveHint",
2110
+ verified_against_server: true,
2111
+ verified_against_live_docs: true
2112
+ },
2113
+ {
2114
+ name: "list_network_profiles",
2115
+ ocs_method: "listNetworkProfile",
2116
+ category: "network",
2117
+ scope: "read",
2118
+ description: "List all available network profiles",
2119
+ params: {},
2120
+ response: {},
2121
+ annotations: "readOnlyHint",
2122
+ verified_against_server: true,
2123
+ verified_against_live_docs: true
2124
+ }
2125
+ ],
2126
+ v1_intelligence_methods: [
2127
+ {
2128
+ name: "diagnose_subscriber",
2129
+ category: "intelligence",
2130
+ scope: "read",
2131
+ description: "AI diagnostic: chains 5 OCS calls to diagnose connectivity issues",
2132
+ wraps: ["getSingleSubscriber", "getSimProviderStatus", "listSubscriberPrepaidPackages", "subscriberNetworkEventsOverPeriod", "hlrGetBitrate"],
2133
+ params: {
2134
+ iccid: { type: "string", required: true },
2135
+ startDate: { type: "string(YYYY-MM-DD)", required: false },
2136
+ endDate: { type: "string(YYYY-MM-DD)", required: false }
2137
+ },
2138
+ verified_against_server: true,
2139
+ verified_against_live_docs: false
2140
+ },
2141
+ {
2142
+ name: "fleet_health",
2143
+ category: "intelligence",
2144
+ scope: "read",
2145
+ description: "Single-call fleet overview: accounts, eSIM counts, low-balance alerts",
2146
+ wraps: ["listResellerAccount", "esimStatusPerAccount", "listSubscriberPrepaidPackages"],
2147
+ params: {},
2148
+ verified_against_server: true,
2149
+ verified_against_live_docs: false
2150
+ },
2151
+ {
2152
+ name: "detect_usage_anomalies",
2153
+ category: "intelligence",
2154
+ scope: "read",
2155
+ description: "Detect abnormal usage patterns across subscribers",
2156
+ wraps: ["listSubscriber", "subscriberUsageOverPeriod"],
2157
+ params: {
2158
+ startDate: { type: "string(YYYY-MM-DD)", required: true },
2159
+ endDate: { type: "string(YYYY-MM-DD)", required: true },
2160
+ accountId: { type: "number", required: false }
2161
+ },
2162
+ verified_against_server: true,
2163
+ verified_against_live_docs: false
2164
+ },
2165
+ {
2166
+ name: "optimize_package",
2167
+ category: "intelligence",
2168
+ scope: "read",
2169
+ description: "Package optimization: match subscriber usage to best template",
2170
+ wraps: ["getSingleSubscriber", "listSubscriberPrepaidPackages", "subscriberUsageOverPeriod", "listPrepaidPackageTemplate"],
2171
+ params: {
2172
+ iccid: { type: "string", required: true },
2173
+ startDate: { type: "string(YYYY-MM-DD)", required: false },
2174
+ endDate: { type: "string(YYYY-MM-DD)", required: false }
2175
+ },
2176
+ verified_against_server: true,
2177
+ verified_against_live_docs: false
2178
+ },
2179
+ {
2180
+ name: "churn_risk",
2181
+ category: "intelligence",
2182
+ scope: "read",
2183
+ description: "Identify subscribers at risk of churn based on usage patterns",
2184
+ wraps: ["listSubscriber", "subscriberUsageOverPeriod", "getSubscriberActivePeriod"],
2185
+ params: {
2186
+ startDate: { type: "string(YYYY-MM-DD)", required: true },
2187
+ endDate: { type: "string(YYYY-MM-DD)", required: true },
2188
+ accountId: { type: "number", required: false }
2189
+ },
2190
+ verified_against_server: true,
2191
+ verified_against_live_docs: false
2192
+ },
2193
+ {
2194
+ name: "audit_network_coverage",
2195
+ category: "intelligence",
2196
+ scope: "read",
2197
+ description: "Audit network coverage and steering effectiveness",
2198
+ wraps: ["listDetailedLocationZone", "listSteeringList", "getSubscriberLocation"],
2199
+ params: {
2200
+ iccid: { type: "string", required: false }
2201
+ },
2202
+ verified_against_server: true,
2203
+ verified_against_live_docs: false
2204
+ },
2205
+ {
2206
+ name: "marketing_intelligence",
2207
+ category: "intelligence",
2208
+ scope: "read",
2209
+ description: "Marketing insights: segment analysis, upsell opportunities",
2210
+ wraps: ["listResellerAccount", "esimStatusPerAccount", "listPrepaidPackageTemplate", "subscriberUsageOverPeriod"],
2211
+ params: {
2212
+ startDate: { type: "string(YYYY-MM-DD)", required: true },
2213
+ endDate: { type: "string(YYYY-MM-DD)", required: true }
2214
+ },
2215
+ verified_against_server: true,
2216
+ verified_against_live_docs: false
2217
+ },
2218
+ {
2219
+ name: "high_cost_subscribers",
2220
+ category: "intelligence",
2221
+ scope: "read",
2222
+ description: "Identify highest-cost subscribers for cost optimization",
2223
+ wraps: ["listSubscriber", "subscriberUsageOverPeriod", "getCustomerTariff"],
2224
+ params: {
2225
+ startDate: { type: "string(YYYY-MM-DD)", required: true },
2226
+ endDate: { type: "string(YYYY-MM-DD)", required: true },
2227
+ accountId: { type: "number", required: false }
2228
+ },
2229
+ verified_against_server: true,
2230
+ verified_against_live_docs: false
2231
+ }
2232
+ ],
2233
+ v1_1_backlog: [
2234
+ {
2235
+ name: "affect_subscriber_phone_number",
2236
+ ocs_method: "affectSubscriberFakePhoneNumber / affectSubscriberRealPhoneNumber",
2237
+ category: "subscriber",
2238
+ scope: "write",
2239
+ status: "implemented",
2240
+ description: "Assign a fake or real MSISDN to a subscriber \u2014 single MCP tool wraps both OCS methods via phone_type param",
2241
+ params: {
2242
+ iccid: { type: "string", required: true },
2243
+ phone_number: { type: "string(E.164)", required: true },
2244
+ phone_type: { type: "enum[fake,real]", required: true }
2245
+ },
2246
+ annotations: "destructiveHint",
2247
+ verified_against_server: true,
2248
+ verified_against_live_docs: true
2249
+ },
2250
+ {
2251
+ name: "get_subscriber_location_by_cell_id",
2252
+ ocs_method: "getSubscriberLocationByCellId",
2253
+ category: "subscriber",
2254
+ scope: "read",
2255
+ status: "implemented",
2256
+ description: "Resolve a cell tower tuple (radioType + MCC + MNC + LAC + optional cellId) to lat/lon via Bridge4IP GeoSense. No subscriber identifier required \u2014 caller supplies cell params directly.",
2257
+ params: {
2258
+ radio_type: { type: "enum[2G,3G,4G,5G,NB-IoT]", required: true },
2259
+ mcc: { type: "integer", required: true },
2260
+ mnc: { type: "integer", required: true },
2261
+ lac: { type: "integer", required: true },
2262
+ cell_id: { type: "integer", required: false },
2263
+ signal_strength: { type: "number", required: false }
2264
+ },
2265
+ response: {
2266
+ latitude: { type: "number" },
2267
+ longitude: { type: "number" },
2268
+ accuracy: { type: "integer", notes: "median error in meters at 50% confidence" }
2269
+ },
2270
+ annotations: "readOnlyHint",
2271
+ verified_against_server: true,
2272
+ verified_against_live_docs: true
2273
+ },
2274
+ {
2275
+ name: "list_destination_lists",
2276
+ ocs_method: "listDetailedDestinationList",
2277
+ category: "templates",
2278
+ scope: "read",
2279
+ status: "implemented",
2280
+ description: "List all destination lists with full detail (prefix sets for voice/SMS routing control)",
2281
+ params: {},
2282
+ annotations: "readOnlyHint",
2283
+ verified_against_server: true,
2284
+ verified_against_live_docs: true
2285
+ },
2286
+ {
2287
+ name: "modify_subscriber_mobile_plan",
2288
+ ocs_method: "modifySubscriberMobilePlan",
2289
+ category: "subscriber",
2290
+ scope: "write",
2291
+ status: "implemented",
2292
+ description: "Change the mobile plan assigned to a subscriber",
2293
+ params: {
2294
+ iccid: { type: "string", required: true },
2295
+ mobile_plan_id: { type: "number", required: true }
2296
+ },
2297
+ annotations: "destructiveHint",
2298
+ verified_against_server: true,
2299
+ verified_against_live_docs: true
2300
+ },
2301
+ {
2302
+ name: "modify_subscriber_package_active_period",
2303
+ ocs_method: "modifySubscriberPrepaidPackageActivePeriod",
2304
+ category: "packages",
2305
+ scope: "write",
2306
+ status: "implemented",
2307
+ description: "Change the active period (start/end dates) of a prepaid package on a subscriber",
2308
+ params: {
2309
+ iccid: { type: "string", required: true },
2310
+ package_id: { type: "number", required: true },
2311
+ start_date: { type: "string(ISO8601)", required: false },
2312
+ end_date: { type: "string(ISO8601)", required: false }
2313
+ },
2314
+ annotations: "destructiveHint",
2315
+ verified_against_server: true,
2316
+ verified_against_live_docs: true
2317
+ },
2318
+ {
2319
+ name: "modify_subscriber_voip_plan",
2320
+ ocs_method: "modifySubscriberVoipPlan",
2321
+ category: "subscriber",
2322
+ scope: "write",
2323
+ status: "implemented",
2324
+ description: "Change the VoIP plan assigned to a subscriber",
2325
+ params: {
2326
+ iccid: { type: "string", required: true },
2327
+ voip_plan_id: { type: "number", required: true }
2328
+ },
2329
+ annotations: "destructiveHint",
2330
+ verified_against_server: true,
2331
+ verified_against_live_docs: true
2332
+ },
2333
+ {
2334
+ name: "push_steering_to_subscriber",
2335
+ ocs_method: "pushSteeringToSubs",
2336
+ category: "subscriber",
2337
+ scope: "write",
2338
+ status: "implemented",
2339
+ description: "Push the current steering list configuration down to the subscriber's SIM \u2014 required after modifying steering to take effect",
2340
+ params: {
2341
+ iccid: { type: "string", required: true }
2342
+ },
2343
+ annotations: "destructiveHint",
2344
+ verified_against_server: true,
2345
+ verified_against_live_docs: true
2346
+ },
2347
+ {
2348
+ name: "reset_subscriber_gz_counter",
2349
+ ocs_method: "resetSubsGzCounter",
2350
+ category: "subscriber",
2351
+ scope: "admin",
2352
+ status: "implemented",
2353
+ description: "Reset the Green Zone (Greenzone) volume counter for a subscriber \u2014 tracks bytes consumed on reseller whitelist after bundle depletion. Irreversible, use only for reprovisioning or billing disputes.",
2354
+ params: {
2355
+ iccid: { type: "string", required: true }
2356
+ },
2357
+ annotations: "destructiveHint",
2358
+ verified_against_server: true,
2359
+ verified_against_live_docs: true
2360
+ },
2361
+ {
2362
+ name: "resolve_cell_location",
2363
+ ocs_method: "getSubscriberLocationByCellId",
2364
+ category: "subscriber",
2365
+ scope: "read",
2366
+ status: "stubbed",
2367
+ audit_pr: "feat/ocs-feature-audit",
2368
+ audit_stub_id: "S-03",
2369
+ description: "Resolve a raw cell tower tuple (radioType + MCC + MNC + LAC + optional cellId) to lat/lon via Bridge4IP GeoSense. Does NOT require a subscriber identifier \u2014 caller supplies cell params directly. Lower-level primitive than get_subscriber_location_by_cell_id. Needed for Relay LU webhook consumer.",
2370
+ params: {
2371
+ radio_type: { type: "enum[2G,3G,4G,5G,NB-IoT]", required: true },
2372
+ mcc: { type: "integer", required: true },
2373
+ mnc: { type: "integer", required: true },
2374
+ lac: { type: "integer", required: true },
2375
+ cell_id: { type: "integer", required: false },
2376
+ signal_strength: { type: "integer", required: false }
2377
+ },
2378
+ response: {
2379
+ latitude: { type: "number" },
2380
+ longitude: { type: "number" },
2381
+ accuracy: { type: "integer", notes: "median error in meters at 50% confidence" }
2382
+ },
2383
+ annotations: "readOnlyHint",
2384
+ blocked_by: "confirm Relay LU payload shape with Bridge4IP NOC",
2385
+ verified_against_server: false,
2386
+ verified_against_live_docs: true
2387
+ },
2388
+ {
2389
+ name: "carrier_webhook_config",
2390
+ ocs_method: "getResellerInfo",
2391
+ category: "reseller",
2392
+ scope: "read",
2393
+ status: "stubbed",
2394
+ audit_pr: "feat/ocs-feature-audit",
2395
+ audit_stub_id: "S-04",
2396
+ description: "Read-only view of Bridge4IP webhook and relay flag state from getResellerInfo.trafficInfo. Surfaces relayLU, relayGy, relayCallSms, relayVoIP booleans + notification webhook types. Relay LU is the key flag for event-driven country-change detection (vs polling). Relay endpoint config is OCS portal UI-only.",
2397
+ params: {
2398
+ reseller_id: { type: "number", required: false }
2399
+ },
2400
+ response: {
2401
+ relay_lu: { type: "boolean", notes: "Update Location relay active \u2014 closest to country-change signal" },
2402
+ relay_gy: { type: "boolean", notes: "Mobile data usage relay active" },
2403
+ relay_voip: { type: "boolean", notes: "VoIP usage relay active" },
2404
+ relay_calls_sms: { type: "boolean", notes: "Calls + SMS relay active" },
2405
+ notification_webhooks: { type: "array", notes: "Active notification types: prepaid_usage, low_credit, esim_status, recurring_packages" }
2406
+ },
2407
+ annotations: "readOnlyHint",
2408
+ verified_against_server: false,
2409
+ verified_against_live_docs: true
2410
+ }
2411
+ ],
2412
+ v1_app_methods: [
2413
+ {
2414
+ name: "fleet_health_app",
2415
+ category: "apps",
2416
+ scope: "read",
2417
+ description: "MCP App: Fleet Health Dashboard \u2014 rendered chart UI wrapping the fleet_health composite. Read-only, no destructive ops.",
2418
+ min_tier: "free",
2419
+ destructive: false,
2420
+ ui_resource_uri: "ui://fleet-health-dashboard",
2421
+ verified_against_server: false,
2422
+ verified_against_live_docs: false
2423
+ },
2424
+ {
2425
+ name: "provision_esim_wizard",
2426
+ category: "apps",
2427
+ scope: "write",
2428
+ description: "MCP App: eSIM Provisioning Wizard \u2014 3-step wizard UI. Destructive on step 3 (confirm). Pro tier minimum.",
2429
+ min_tier: "pro",
2430
+ destructive: true,
2431
+ destructive_step: 3,
2432
+ ui_resource_uri: "ui://esim-provisioning-wizard",
2433
+ verified_against_server: false,
2434
+ verified_against_live_docs: false
2435
+ },
2436
+ {
2437
+ name: "balance_topup_form",
2438
+ category: "apps",
2439
+ scope: "admin",
2440
+ description: "MCP App: Balance Top-up Form \u2014 single-field destructive form with dry_run preview. Enterprise only, MFA-gated.",
2441
+ min_tier: "enterprise",
2442
+ destructive: true,
2443
+ mfa_gated: true,
2444
+ ui_resource_uri: "ui://balance-topup-form",
2445
+ verified_against_server: false,
2446
+ verified_against_live_docs: false
2447
+ }
2448
+ ]
2449
+ };
2450
+
1478
2451
  // ../../packages/ocs-spec/src/mcc-iso.ts
1479
2452
  var MCC_TO_ISO = {
1480
2453
  // Europe
@@ -1971,6 +2944,13 @@ function mccToIso(mcc) {
1971
2944
  return MCC_TO_ISO[n] ?? null;
1972
2945
  }
1973
2946
 
2947
+ // ../../packages/ocs-spec/src/index.ts
2948
+ var ocsSpec = ocs_methods_default;
2949
+ var ocsMethods = ocsSpec.v1_methods;
2950
+ var ocsIntelligenceMethods = ocsSpec.v1_intelligence_methods;
2951
+ var ocsBacklog = ocsSpec.v1_1_backlog;
2952
+ var ocsAppMethods = ocsSpec.v1_app_methods;
2953
+
1974
2954
  // src/intelligence.ts
1975
2955
  async function safeCall(env, token2, method, params = {}) {
1976
2956
  try {
@@ -3147,7 +4127,7 @@ function registerAllBacklogTools(server2, ctx) {
3147
4127
  resellerId = await getDefaultResellerId(ctx.env, token2);
3148
4128
  }
3149
4129
  const params = {};
3150
- if (resellerId !== void 0) params.resellerId = resellerId;
4130
+ if (resellerId !== void 0) params.id = resellerId;
3151
4131
  const raw = await client.call("getResellerInfo", params);
3152
4132
  const traffic = raw.trafficInfo ?? {};
3153
4133
  const notification = raw.notificationInfo ?? {};