@epicai/legion 1.0.0

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.

Potentially problematic release.


This version of @epicai/legion might be problematic. Click here for more details.

Files changed (1941) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/LICENSE +190 -0
  3. package/LICENSE-ADAPTERS +98 -0
  4. package/NOTICE +18 -0
  5. package/PRIVACY.md +74 -0
  6. package/README.md +340 -0
  7. package/TRADEMARK.md +72 -0
  8. package/adapter-catalog.json +162567 -0
  9. package/dist/EpicAI.d.ts +14 -0
  10. package/dist/EpicAI.js +307 -0
  11. package/dist/audit/AuditTrail.d.ts +48 -0
  12. package/dist/audit/AuditTrail.js +151 -0
  13. package/dist/audit/HashChain.d.ts +27 -0
  14. package/dist/audit/HashChain.js +85 -0
  15. package/dist/audit/adapters/InMemoryAdapter.d.ts +30 -0
  16. package/dist/audit/adapters/InMemoryAdapter.js +74 -0
  17. package/dist/audit/adapters/JSONLAdapter.d.ts +37 -0
  18. package/dist/audit/adapters/JSONLAdapter.js +117 -0
  19. package/dist/audit/adapters/base.d.ts +6 -0
  20. package/dist/audit/adapters/base.js +6 -0
  21. package/dist/autonomy/ApprovalQueue.d.ts +49 -0
  22. package/dist/autonomy/ApprovalQueue.js +155 -0
  23. package/dist/autonomy/PolicyEngine.d.ts +23 -0
  24. package/dist/autonomy/PolicyEngine.js +40 -0
  25. package/dist/autonomy/TieredAutonomy.d.ts +57 -0
  26. package/dist/autonomy/TieredAutonomy.js +148 -0
  27. package/dist/autonomy/adapters/RedisQueue.d.ts +36 -0
  28. package/dist/autonomy/adapters/RedisQueue.js +138 -0
  29. package/dist/bin/gateway.d.ts +9 -0
  30. package/dist/bin/gateway.js +116 -0
  31. package/dist/bin/setup.d.ts +19 -0
  32. package/dist/bin/setup.js +1365 -0
  33. package/dist/eval/routing-eval.d.ts +18 -0
  34. package/dist/eval/routing-eval.js +307 -0
  35. package/dist/eval/tier3-eval.d.ts +10 -0
  36. package/dist/eval/tier3-eval.js +116 -0
  37. package/dist/federation/AdapterCatalog.d.ts +59 -0
  38. package/dist/federation/AdapterCatalog.js +195 -0
  39. package/dist/federation/AdaptivePool.d.ts +69 -0
  40. package/dist/federation/AdaptivePool.js +291 -0
  41. package/dist/federation/ConnectionPool.d.ts +65 -0
  42. package/dist/federation/ConnectionPool.js +194 -0
  43. package/dist/federation/Correlator.d.ts +17 -0
  44. package/dist/federation/Correlator.js +98 -0
  45. package/dist/federation/DomainClassifier.d.ts +31 -0
  46. package/dist/federation/DomainClassifier.js +164 -0
  47. package/dist/federation/FederationManager.d.ts +83 -0
  48. package/dist/federation/FederationManager.js +159 -0
  49. package/dist/federation/QueryExpander.d.ts +14 -0
  50. package/dist/federation/QueryExpander.js +189 -0
  51. package/dist/federation/RegistryLoader.d.ts +111 -0
  52. package/dist/federation/RegistryLoader.js +175 -0
  53. package/dist/federation/ToolPreFilter.d.ts +73 -0
  54. package/dist/federation/ToolPreFilter.js +329 -0
  55. package/dist/federation/ToolRegistry.d.ts +53 -0
  56. package/dist/federation/ToolRegistry.js +87 -0
  57. package/dist/federation/adapters/MCPClientAdapter.d.ts +24 -0
  58. package/dist/federation/adapters/MCPClientAdapter.js +214 -0
  59. package/dist/federation/adapters/base.d.ts +57 -0
  60. package/dist/federation/adapters/base.js +32 -0
  61. package/dist/federation/sandbox/ProcessSandbox.d.ts +27 -0
  62. package/dist/federation/sandbox/ProcessSandbox.js +170 -0
  63. package/dist/federation/sandbox/SandboxManager.d.ts +33 -0
  64. package/dist/federation/sandbox/SandboxManager.js +96 -0
  65. package/dist/federation/sandbox/WorkerSandbox.d.ts +24 -0
  66. package/dist/federation/sandbox/WorkerSandbox.js +126 -0
  67. package/dist/federation/sandbox/types.d.ts +17 -0
  68. package/dist/federation/sandbox/types.js +14 -0
  69. package/dist/gateway/BackendRegistry.d.ts +26 -0
  70. package/dist/gateway/BackendRegistry.js +218 -0
  71. package/dist/gateway/ControlPlane.d.ts +31 -0
  72. package/dist/gateway/ControlPlane.js +188 -0
  73. package/dist/gateway/InferenceGateway.d.ts +33 -0
  74. package/dist/gateway/InferenceGateway.js +326 -0
  75. package/dist/gateway/OllamaShim.d.ts +34 -0
  76. package/dist/gateway/OllamaShim.js +167 -0
  77. package/dist/gateway/Router.d.ts +23 -0
  78. package/dist/gateway/Router.js +61 -0
  79. package/dist/gateway/index.d.ts +13 -0
  80. package/dist/gateway/index.js +12 -0
  81. package/dist/gateway/types.d.ts +71 -0
  82. package/dist/gateway/types.js +35 -0
  83. package/dist/harness/api/server.d.ts +41 -0
  84. package/dist/harness/api/server.js +205 -0
  85. package/dist/harness/cli.d.ts +10 -0
  86. package/dist/harness/cli.js +75 -0
  87. package/dist/harness/http/process.d.ts +9 -0
  88. package/dist/harness/http/process.js +88 -0
  89. package/dist/harness/http/server.d.ts +20 -0
  90. package/dist/harness/http/server.js +133 -0
  91. package/dist/harness/index.d.ts +18 -0
  92. package/dist/harness/index.js +23 -0
  93. package/dist/harness/runner.d.ts +15 -0
  94. package/dist/harness/runner.js +94 -0
  95. package/dist/harness/shared/assertions.d.ts +8 -0
  96. package/dist/harness/shared/assertions.js +216 -0
  97. package/dist/harness/shared/fixtures.d.ts +50 -0
  98. package/dist/harness/shared/fixtures.js +37 -0
  99. package/dist/harness/shared/handlers.d.ts +18 -0
  100. package/dist/harness/shared/handlers.js +106 -0
  101. package/dist/harness/shared/seed.d.ts +19 -0
  102. package/dist/harness/shared/seed.js +33 -0
  103. package/dist/harness/shared/toolDefs.d.ts +10 -0
  104. package/dist/harness/shared/toolDefs.js +92 -0
  105. package/dist/harness/stdio/process.d.ts +9 -0
  106. package/dist/harness/stdio/process.js +58 -0
  107. package/dist/harness/stdio/server.d.ts +18 -0
  108. package/dist/harness/stdio/server.js +101 -0
  109. package/dist/harness/types.d.ts +57 -0
  110. package/dist/harness/types.js +19 -0
  111. package/dist/index.d.ts +74 -0
  112. package/dist/index.js +71 -0
  113. package/dist/logger.d.ts +49 -0
  114. package/dist/logger.js +189 -0
  115. package/dist/mcp-servers/1forge.d.ts +32 -0
  116. package/dist/mcp-servers/1forge.js +99 -0
  117. package/dist/mcp-servers/1password-connect.d.ts +42 -0
  118. package/dist/mcp-servers/1password-connect.js +623 -0
  119. package/dist/mcp-servers/1password-events.d.ts +34 -0
  120. package/dist/mcp-servers/1password-events.js +154 -0
  121. package/dist/mcp-servers/6-dot-authentiqio-appspot.d.ts +39 -0
  122. package/dist/mcp-servers/6-dot-authentiqio-appspot.js +541 -0
  123. package/dist/mcp-servers/MockMCPAdapter.d.ts +43 -0
  124. package/dist/mcp-servers/MockMCPAdapter.js +846 -0
  125. package/dist/mcp-servers/ably-control.d.ts +53 -0
  126. package/dist/mcp-servers/ably-control.js +709 -0
  127. package/dist/mcp-servers/ably-platform.d.ts +57 -0
  128. package/dist/mcp-servers/ably-platform.js +805 -0
  129. package/dist/mcp-servers/abnormal-security.d.ts +43 -0
  130. package/dist/mcp-servers/abnormal-security.js +427 -0
  131. package/dist/mcp-servers/abstractapi-geolocation.d.ts +34 -0
  132. package/dist/mcp-servers/abstractapi-geolocation.js +111 -0
  133. package/dist/mcp-servers/accela.d.ts +57 -0
  134. package/dist/mcp-servers/accela.js +761 -0
  135. package/dist/mcp-servers/accuweather.d.ts +44 -0
  136. package/dist/mcp-servers/accuweather.js +479 -0
  137. package/dist/mcp-servers/activecampaign.d.ts +58 -0
  138. package/dist/mcp-servers/activecampaign.js +926 -0
  139. package/dist/mcp-servers/acumatica.d.ts +71 -0
  140. package/dist/mcp-servers/acumatica.js +882 -0
  141. package/dist/mcp-servers/ada.d.ts +49 -0
  142. package/dist/mcp-servers/ada.js +491 -0
  143. package/dist/mcp-servers/adobe-acrobat-api.d.ts +58 -0
  144. package/dist/mcp-servers/adobe-acrobat-api.js +822 -0
  145. package/dist/mcp-servers/adobe-aem.d.ts +68 -0
  146. package/dist/mcp-servers/adobe-aem.js +1009 -0
  147. package/dist/mcp-servers/adobe-sign.d.ts +49 -0
  148. package/dist/mcp-servers/adobe-sign.js +591 -0
  149. package/dist/mcp-servers/adp.d.ts +48 -0
  150. package/dist/mcp-servers/adp.js +370 -0
  151. package/dist/mcp-servers/adyen.d.ts +67 -0
  152. package/dist/mcp-servers/adyen.js +679 -0
  153. package/dist/mcp-servers/afterbanks.d.ts +33 -0
  154. package/dist/mcp-servers/afterbanks.js +185 -0
  155. package/dist/mcp-servers/aha.d.ts +54 -0
  156. package/dist/mcp-servers/aha.js +541 -0
  157. package/dist/mcp-servers/airbyte.d.ts +61 -0
  158. package/dist/mcp-servers/airbyte.js +509 -0
  159. package/dist/mcp-servers/aircall.d.ts +63 -0
  160. package/dist/mcp-servers/aircall.js +896 -0
  161. package/dist/mcp-servers/airtable.d.ts +54 -0
  162. package/dist/mcp-servers/airtable.js +813 -0
  163. package/dist/mcp-servers/alchemy.d.ts +56 -0
  164. package/dist/mcp-servers/alchemy.js +686 -0
  165. package/dist/mcp-servers/alpha-vantage.d.ts +49 -0
  166. package/dist/mcp-servers/alpha-vantage.js +652 -0
  167. package/dist/mcp-servers/amadeus.d.ts +54 -0
  168. package/dist/mcp-servers/amadeus.js +941 -0
  169. package/dist/mcp-servers/amazon-ads.d.ts +62 -0
  170. package/dist/mcp-servers/amazon-ads.js +780 -0
  171. package/dist/mcp-servers/amazon-bedrock.d.ts +68 -0
  172. package/dist/mcp-servers/amazon-bedrock.js +833 -0
  173. package/dist/mcp-servers/amazon-ses.d.ts +51 -0
  174. package/dist/mcp-servers/amazon-ses.js +659 -0
  175. package/dist/mcp-servers/amplitude.d.ts +55 -0
  176. package/dist/mcp-servers/amplitude.js +580 -0
  177. package/dist/mcp-servers/anchore.d.ts +45 -0
  178. package/dist/mcp-servers/anchore.js +550 -0
  179. package/dist/mcp-servers/anomali.d.ts +46 -0
  180. package/dist/mcp-servers/anomali.js +498 -0
  181. package/dist/mcp-servers/ansible.d.ts +56 -0
  182. package/dist/mcp-servers/ansible.js +534 -0
  183. package/dist/mcp-servers/anthropic-api.d.ts +45 -0
  184. package/dist/mcp-servers/anthropic-api.js +696 -0
  185. package/dist/mcp-servers/apache.d.ts +43 -0
  186. package/dist/mcp-servers/apache.js +377 -0
  187. package/dist/mcp-servers/api2pdf.d.ts +40 -0
  188. package/dist/mcp-servers/api2pdf.js +384 -0
  189. package/dist/mcp-servers/apicurio-registry.d.ts +55 -0
  190. package/dist/mcp-servers/apicurio-registry.js +421 -0
  191. package/dist/mcp-servers/apigee-marketcheck-cars.d.ts +45 -0
  192. package/dist/mcp-servers/apigee-marketcheck-cars.js +432 -0
  193. package/dist/mcp-servers/apigee-registry.d.ts +67 -0
  194. package/dist/mcp-servers/apigee-registry.js +710 -0
  195. package/dist/mcp-servers/apimatic.d.ts +36 -0
  196. package/dist/mcp-servers/apimatic.js +146 -0
  197. package/dist/mcp-servers/apiz-ebay-commerce-identity.d.ts +32 -0
  198. package/dist/mcp-servers/apiz-ebay-commerce-identity.js +82 -0
  199. package/dist/mcp-servers/apiz-ebay-sell-finances.d.ts +42 -0
  200. package/dist/mcp-servers/apiz-ebay-sell-finances.js +344 -0
  201. package/dist/mcp-servers/apollo.d.ts +44 -0
  202. package/dist/mcp-servers/apollo.js +839 -0
  203. package/dist/mcp-servers/app-store-connect.d.ts +61 -0
  204. package/dist/mcp-servers/app-store-connect.js +827 -0
  205. package/dist/mcp-servers/appcenter-ms.d.ts +48 -0
  206. package/dist/mcp-servers/appcenter-ms.js +641 -0
  207. package/dist/mcp-servers/appdynamics.d.ts +48 -0
  208. package/dist/mcp-servers/appdynamics.js +602 -0
  209. package/dist/mcp-servers/appfolio.d.ts +34 -0
  210. package/dist/mcp-servers/appfolio.js +475 -0
  211. package/dist/mcp-servers/apple-business-connect.d.ts +56 -0
  212. package/dist/mcp-servers/apple-business-connect.js +645 -0
  213. package/dist/mcp-servers/appsmith.d.ts +53 -0
  214. package/dist/mcp-servers/appsmith.js +573 -0
  215. package/dist/mcp-servers/appveyor.d.ts +45 -0
  216. package/dist/mcp-servers/appveyor.js +512 -0
  217. package/dist/mcp-servers/appwrite-client.d.ts +94 -0
  218. package/dist/mcp-servers/appwrite-client.js +1284 -0
  219. package/dist/mcp-servers/aqua-security.d.ts +45 -0
  220. package/dist/mcp-servers/aqua-security.js +437 -0
  221. package/dist/mcp-servers/argo-workflows.d.ts +52 -0
  222. package/dist/mcp-servers/argo-workflows.js +865 -0
  223. package/dist/mcp-servers/argocd.d.ts +55 -0
  224. package/dist/mcp-servers/argocd.js +677 -0
  225. package/dist/mcp-servers/arize-ai.d.ts +46 -0
  226. package/dist/mcp-servers/arize-ai.js +390 -0
  227. package/dist/mcp-servers/art19.d.ts +39 -0
  228. package/dist/mcp-servers/art19.js +408 -0
  229. package/dist/mcp-servers/asana.d.ts +60 -0
  230. package/dist/mcp-servers/asana.js +791 -0
  231. package/dist/mcp-servers/associated-press.d.ts +44 -0
  232. package/dist/mcp-servers/associated-press.js +472 -0
  233. package/dist/mcp-servers/athenahealth.d.ts +59 -0
  234. package/dist/mcp-servers/athenahealth.js +628 -0
  235. package/dist/mcp-servers/atlassian-jira.d.ts +63 -0
  236. package/dist/mcp-servers/atlassian-jira.js +621 -0
  237. package/dist/mcp-servers/ato-au.d.ts +35 -0
  238. package/dist/mcp-servers/ato-au.js +483 -0
  239. package/dist/mcp-servers/auth0.d.ts +62 -0
  240. package/dist/mcp-servers/auth0.js +767 -0
  241. package/dist/mcp-servers/authentiq.d.ts +47 -0
  242. package/dist/mcp-servers/authentiq.js +390 -0
  243. package/dist/mcp-servers/autodealerdata.d.ts +37 -0
  244. package/dist/mcp-servers/autodealerdata.js +589 -0
  245. package/dist/mcp-servers/autodesk-construction.d.ts +47 -0
  246. package/dist/mcp-servers/autodesk-construction.js +651 -0
  247. package/dist/mcp-servers/automox.d.ts +56 -0
  248. package/dist/mcp-servers/automox.js +653 -0
  249. package/dist/mcp-servers/avalara.d.ts +58 -0
  250. package/dist/mcp-servers/avalara.js +724 -0
  251. package/dist/mcp-servers/avaza.d.ts +31 -0
  252. package/dist/mcp-servers/avaza.js +930 -0
  253. package/dist/mcp-servers/aws-cloudtrail.d.ts +45 -0
  254. package/dist/mcp-servers/aws-cloudtrail.js +279 -0
  255. package/dist/mcp-servers/aws-cloudwatch.d.ts +47 -0
  256. package/dist/mcp-servers/aws-cloudwatch.js +394 -0
  257. package/dist/mcp-servers/aws-cost-explorer.d.ts +44 -0
  258. package/dist/mcp-servers/aws-cost-explorer.js +295 -0
  259. package/dist/mcp-servers/aws-dynamodb.d.ts +51 -0
  260. package/dist/mcp-servers/aws-dynamodb.js +513 -0
  261. package/dist/mcp-servers/aws-ecs.d.ts +48 -0
  262. package/dist/mcp-servers/aws-ecs.js +366 -0
  263. package/dist/mcp-servers/aws-iam.d.ts +48 -0
  264. package/dist/mcp-servers/aws-iam.js +311 -0
  265. package/dist/mcp-servers/aws-lambda.d.ts +48 -0
  266. package/dist/mcp-servers/aws-lambda.js +335 -0
  267. package/dist/mcp-servers/aws-redshift.d.ts +46 -0
  268. package/dist/mcp-servers/aws-redshift.js +326 -0
  269. package/dist/mcp-servers/aws-route53.d.ts +46 -0
  270. package/dist/mcp-servers/aws-route53.js +310 -0
  271. package/dist/mcp-servers/aws-s3.d.ts +58 -0
  272. package/dist/mcp-servers/aws-s3.js +775 -0
  273. package/dist/mcp-servers/aws-sns.d.ts +46 -0
  274. package/dist/mcp-servers/aws-sns.js +287 -0
  275. package/dist/mcp-servers/aws-sqs.d.ts +47 -0
  276. package/dist/mcp-servers/aws-sqs.js +337 -0
  277. package/dist/mcp-servers/aws-textract.d.ts +63 -0
  278. package/dist/mcp-servers/aws-textract.js +948 -0
  279. package/dist/mcp-servers/aws.d.ts +54 -0
  280. package/dist/mcp-servers/aws.js +787 -0
  281. package/dist/mcp-servers/azure-blob.d.ts +53 -0
  282. package/dist/mcp-servers/azure-blob.js +683 -0
  283. package/dist/mcp-servers/azure-devops.d.ts +58 -0
  284. package/dist/mcp-servers/azure-devops.js +662 -0
  285. package/dist/mcp-servers/azure-ml.d.ts +62 -0
  286. package/dist/mcp-servers/azure-ml.js +498 -0
  287. package/dist/mcp-servers/azure.d.ts +55 -0
  288. package/dist/mcp-servers/azure.js +543 -0
  289. package/dist/mcp-servers/backstage.d.ts +55 -0
  290. package/dist/mcp-servers/backstage.js +482 -0
  291. package/dist/mcp-servers/bamboohr.d.ts +59 -0
  292. package/dist/mcp-servers/bamboohr.js +700 -0
  293. package/dist/mcp-servers/bandsintown.d.ts +32 -0
  294. package/dist/mcp-servers/bandsintown.js +119 -0
  295. package/dist/mcp-servers/bandwidth.d.ts +53 -0
  296. package/dist/mcp-servers/bandwidth.js +642 -0
  297. package/dist/mcp-servers/barracuda.d.ts +58 -0
  298. package/dist/mcp-servers/barracuda.js +519 -0
  299. package/dist/mcp-servers/base.d.ts +31 -0
  300. package/dist/mcp-servers/base.js +99 -0
  301. package/dist/mcp-servers/bbc-uk.d.ts +46 -0
  302. package/dist/mcp-servers/bbc-uk.js +349 -0
  303. package/dist/mcp-servers/bbc.d.ts +43 -0
  304. package/dist/mcp-servers/bbc.js +518 -0
  305. package/dist/mcp-servers/bbci-uk.d.ts +55 -0
  306. package/dist/mcp-servers/bbci-uk.js +555 -0
  307. package/dist/mcp-servers/beanstream.d.ts +48 -0
  308. package/dist/mcp-servers/beanstream.js +486 -0
  309. package/dist/mcp-servers/beezup.d.ts +44 -0
  310. package/dist/mcp-servers/beezup.js +470 -0
  311. package/dist/mcp-servers/betfair.d.ts +47 -0
  312. package/dist/mcp-servers/betfair.js +521 -0
  313. package/dist/mcp-servers/beyondtrust.d.ts +58 -0
  314. package/dist/mcp-servers/beyondtrust.js +547 -0
  315. package/dist/mcp-servers/biapi-pro.d.ts +33 -0
  316. package/dist/mcp-servers/biapi-pro.js +350 -0
  317. package/dist/mcp-servers/bigcommerce.d.ts +58 -0
  318. package/dist/mcp-servers/bigcommerce.js +1092 -0
  319. package/dist/mcp-servers/bigdatacloud.d.ts +33 -0
  320. package/dist/mcp-servers/bigdatacloud.js +110 -0
  321. package/dist/mcp-servers/bigquery.d.ts +55 -0
  322. package/dist/mcp-servers/bigquery.js +625 -0
  323. package/dist/mcp-servers/bigredcloud.d.ts +83 -0
  324. package/dist/mcp-servers/bigredcloud.js +1063 -0
  325. package/dist/mcp-servers/bill-com.d.ts +62 -0
  326. package/dist/mcp-servers/bill-com.js +734 -0
  327. package/dist/mcp-servers/billbee.d.ts +40 -0
  328. package/dist/mcp-servers/billbee.js +959 -0
  329. package/dist/mcp-servers/billingo-hu.d.ts +36 -0
  330. package/dist/mcp-servers/billingo-hu.js +550 -0
  331. package/dist/mcp-servers/bitbucket.d.ts +68 -0
  332. package/dist/mcp-servers/bitbucket.js +796 -0
  333. package/dist/mcp-servers/bizzabo.d.ts +57 -0
  334. package/dist/mcp-servers/bizzabo.js +667 -0
  335. package/dist/mcp-servers/blackbaud.d.ts +62 -0
  336. package/dist/mcp-servers/blackbaud.js +874 -0
  337. package/dist/mcp-servers/blackboard.d.ts +53 -0
  338. package/dist/mcp-servers/blackboard.js +587 -0
  339. package/dist/mcp-servers/blazemeter.d.ts +51 -0
  340. package/dist/mcp-servers/blazemeter.js +298 -0
  341. package/dist/mcp-servers/bloomerang.d.ts +59 -0
  342. package/dist/mcp-servers/bloomerang.js +654 -0
  343. package/dist/mcp-servers/bluemix-containers.d.ts +92 -0
  344. package/dist/mcp-servers/bluemix-containers.js +954 -0
  345. package/dist/mcp-servers/box.d.ts +60 -0
  346. package/dist/mcp-servers/box.js +711 -0
  347. package/dist/mcp-servers/brainbi.d.ts +49 -0
  348. package/dist/mcp-servers/brainbi.js +380 -0
  349. package/dist/mcp-servers/brandlovers.d.ts +65 -0
  350. package/dist/mcp-servers/brandlovers.js +887 -0
  351. package/dist/mcp-servers/brandwatch.d.ts +53 -0
  352. package/dist/mcp-servers/brandwatch.js +537 -0
  353. package/dist/mcp-servers/braze.d.ts +65 -0
  354. package/dist/mcp-servers/braze.js +1180 -0
  355. package/dist/mcp-servers/brevo.d.ts +58 -0
  356. package/dist/mcp-servers/brevo.js +733 -0
  357. package/dist/mcp-servers/brex.d.ts +68 -0
  358. package/dist/mcp-servers/brex.js +825 -0
  359. package/dist/mcp-servers/brightcove.d.ts +72 -0
  360. package/dist/mcp-servers/brightcove.js +791 -0
  361. package/dist/mcp-servers/britbox-uk.d.ts +58 -0
  362. package/dist/mcp-servers/britbox-uk.js +718 -0
  363. package/dist/mcp-servers/browserstack.d.ts +54 -0
  364. package/dist/mcp-servers/browserstack.js +530 -0
  365. package/dist/mcp-servers/buffer.d.ts +48 -0
  366. package/dist/mcp-servers/buffer.js +576 -0
  367. package/dist/mcp-servers/buildertrend.d.ts +45 -0
  368. package/dist/mcp-servers/buildertrend.js +566 -0
  369. package/dist/mcp-servers/buildkite.d.ts +55 -0
  370. package/dist/mcp-servers/buildkite.js +814 -0
  371. package/dist/mcp-servers/builtwith.d.ts +45 -0
  372. package/dist/mcp-servers/builtwith.js +408 -0
  373. package/dist/mcp-servers/bulksms.d.ts +50 -0
  374. package/dist/mcp-servers/bulksms.js +631 -0
  375. package/dist/mcp-servers/bungie.d.ts +57 -0
  376. package/dist/mcp-servers/bungie.js +759 -0
  377. package/dist/mcp-servers/bunq.d.ts +61 -0
  378. package/dist/mcp-servers/bunq.js +645 -0
  379. package/dist/mcp-servers/calendly.d.ts +55 -0
  380. package/dist/mcp-servers/calendly.js +799 -0
  381. package/dist/mcp-servers/callcontrol.d.ts +36 -0
  382. package/dist/mcp-servers/callcontrol.js +325 -0
  383. package/dist/mcp-servers/canada-post.d.ts +50 -0
  384. package/dist/mcp-servers/canada-post.js +586 -0
  385. package/dist/mcp-servers/canny.d.ts +62 -0
  386. package/dist/mcp-servers/canny.js +748 -0
  387. package/dist/mcp-servers/canva.d.ts +53 -0
  388. package/dist/mcp-servers/canva.js +571 -0
  389. package/dist/mcp-servers/canvas-lms.d.ts +55 -0
  390. package/dist/mcp-servers/canvas-lms.js +812 -0
  391. package/dist/mcp-servers/carbon-black.d.ts +63 -0
  392. package/dist/mcp-servers/carbon-black.js +654 -0
  393. package/dist/mcp-servers/carta.d.ts +52 -0
  394. package/dist/mcp-servers/carta.js +478 -0
  395. package/dist/mcp-servers/cdcgov-prime-data-hub.d.ts +46 -0
  396. package/dist/mcp-servers/cdcgov-prime-data-hub.js +286 -0
  397. package/dist/mcp-servers/cenit.d.ts +37 -0
  398. package/dist/mcp-servers/cenit.js +317 -0
  399. package/dist/mcp-servers/census-gov.d.ts +43 -0
  400. package/dist/mcp-servers/census-gov.js +567 -0
  401. package/dist/mcp-servers/census.d.ts +48 -0
  402. package/dist/mcp-servers/census.js +514 -0
  403. package/dist/mcp-servers/channel4.d.ts +43 -0
  404. package/dist/mcp-servers/channel4.js +443 -0
  405. package/dist/mcp-servers/chargebee.d.ts +60 -0
  406. package/dist/mcp-servers/chargebee.js +792 -0
  407. package/dist/mcp-servers/checkly.d.ts +63 -0
  408. package/dist/mcp-servers/checkly.js +609 -0
  409. package/dist/mcp-servers/checkpoint.d.ts +53 -0
  410. package/dist/mcp-servers/checkpoint.js +544 -0
  411. package/dist/mcp-servers/checkr.d.ts +48 -0
  412. package/dist/mcp-servers/checkr.js +565 -0
  413. package/dist/mcp-servers/chronicle.d.ts +47 -0
  414. package/dist/mcp-servers/chronicle.js +576 -0
  415. package/dist/mcp-servers/churnzero.d.ts +46 -0
  416. package/dist/mcp-servers/churnzero.js +687 -0
  417. package/dist/mcp-servers/circl-lu-hashlookup.d.ts +39 -0
  418. package/dist/mcp-servers/circl-lu-hashlookup.js +328 -0
  419. package/dist/mcp-servers/circleci.d.ts +49 -0
  420. package/dist/mcp-servers/circleci.js +556 -0
  421. package/dist/mcp-servers/circuitsandbox.d.ts +80 -0
  422. package/dist/mcp-servers/circuitsandbox.js +1251 -0
  423. package/dist/mcp-servers/cisco-duo.d.ts +53 -0
  424. package/dist/mcp-servers/cisco-duo.js +513 -0
  425. package/dist/mcp-servers/cisco-meraki.d.ts +49 -0
  426. package/dist/mcp-servers/cisco-meraki.js +611 -0
  427. package/dist/mcp-servers/cisco-secure.d.ts +64 -0
  428. package/dist/mcp-servers/cisco-secure.js +497 -0
  429. package/dist/mcp-servers/cisco.d.ts +42 -0
  430. package/dist/mcp-servers/cisco.js +290 -0
  431. package/dist/mcp-servers/cision.d.ts +35 -0
  432. package/dist/mcp-servers/cision.js +182 -0
  433. package/dist/mcp-servers/citrixonline-gotomeeting.d.ts +45 -0
  434. package/dist/mcp-servers/citrixonline-gotomeeting.js +528 -0
  435. package/dist/mcp-servers/citrixonline-scim-na.d.ts +39 -0
  436. package/dist/mcp-servers/citrixonline-scim-na.js +463 -0
  437. package/dist/mcp-servers/civicplus.d.ts +48 -0
  438. package/dist/mcp-servers/civicplus.js +512 -0
  439. package/dist/mcp-servers/clari.d.ts +51 -0
  440. package/dist/mcp-servers/clari.js +453 -0
  441. package/dist/mcp-servers/clarify.d.ts +53 -0
  442. package/dist/mcp-servers/clarify.js +826 -0
  443. package/dist/mcp-servers/classy.d.ts +54 -0
  444. package/dist/mcp-servers/classy.js +594 -0
  445. package/dist/mcp-servers/clearbit.d.ts +46 -0
  446. package/dist/mcp-servers/clearbit.js +315 -0
  447. package/dist/mcp-servers/clearblade.d.ts +52 -0
  448. package/dist/mcp-servers/clearblade.js +685 -0
  449. package/dist/mcp-servers/clerk.d.ts +52 -0
  450. package/dist/mcp-servers/clerk.js +751 -0
  451. package/dist/mcp-servers/clever-cloud.d.ts +34 -0
  452. package/dist/mcp-servers/clever-cloud.js +1786 -0
  453. package/dist/mcp-servers/clever.d.ts +34 -0
  454. package/dist/mcp-servers/clever.js +609 -0
  455. package/dist/mcp-servers/clickhouse.d.ts +56 -0
  456. package/dist/mcp-servers/clickhouse.js +624 -0
  457. package/dist/mcp-servers/clickmeter.d.ts +41 -0
  458. package/dist/mcp-servers/clickmeter.js +1340 -0
  459. package/dist/mcp-servers/clicksend.d.ts +41 -0
  460. package/dist/mcp-servers/clicksend.js +1338 -0
  461. package/dist/mcp-servers/clickup.d.ts +54 -0
  462. package/dist/mcp-servers/clickup.js +547 -0
  463. package/dist/mcp-servers/climate.d.ts +54 -0
  464. package/dist/mcp-servers/climate.js +927 -0
  465. package/dist/mcp-servers/clio.d.ts +60 -0
  466. package/dist/mcp-servers/clio.js +745 -0
  467. package/dist/mcp-servers/close-crm.d.ts +55 -0
  468. package/dist/mcp-servers/close-crm.js +618 -0
  469. package/dist/mcp-servers/cloudbeds.d.ts +45 -0
  470. package/dist/mcp-servers/cloudbeds.js +561 -0
  471. package/dist/mcp-servers/cloudflare.d.ts +56 -0
  472. package/dist/mcp-servers/cloudflare.js +743 -0
  473. package/dist/mcp-servers/cloudmersive-ocr.d.ts +55 -0
  474. package/dist/mcp-servers/cloudmersive-ocr.js +720 -0
  475. package/dist/mcp-servers/cloudrf.d.ts +42 -0
  476. package/dist/mcp-servers/cloudrf.js +355 -0
  477. package/dist/mcp-servers/cockroachdb.d.ts +50 -0
  478. package/dist/mcp-servers/cockroachdb.js +577 -0
  479. package/dist/mcp-servers/coda.d.ts +59 -0
  480. package/dist/mcp-servers/coda.js +956 -0
  481. package/dist/mcp-servers/codat-accounting.d.ts +76 -0
  482. package/dist/mcp-servers/codat-accounting.js +784 -0
  483. package/dist/mcp-servers/codat-assess.d.ts +58 -0
  484. package/dist/mcp-servers/codat-assess.js +1007 -0
  485. package/dist/mcp-servers/codat-bank-feeds.d.ts +37 -0
  486. package/dist/mcp-servers/codat-bank-feeds.js +324 -0
  487. package/dist/mcp-servers/codat-banking.d.ts +32 -0
  488. package/dist/mcp-servers/codat-banking.js +233 -0
  489. package/dist/mcp-servers/codat-commerce.d.ts +32 -0
  490. package/dist/mcp-servers/codat-commerce.js +509 -0
  491. package/dist/mcp-servers/codat-sync-for-commerce.d.ts +50 -0
  492. package/dist/mcp-servers/codat-sync-for-commerce.js +531 -0
  493. package/dist/mcp-servers/codat-sync-for-expenses-prealpha.d.ts +45 -0
  494. package/dist/mcp-servers/codat-sync-for-expenses-prealpha.js +464 -0
  495. package/dist/mcp-servers/code-scan.d.ts +34 -0
  496. package/dist/mcp-servers/code-scan.js +149 -0
  497. package/dist/mcp-servers/cohere.d.ts +48 -0
  498. package/dist/mcp-servers/cohere.js +669 -0
  499. package/dist/mcp-servers/coingecko.d.ts +49 -0
  500. package/dist/mcp-servers/coingecko.js +538 -0
  501. package/dist/mcp-servers/combell.d.ts +63 -0
  502. package/dist/mcp-servers/combell.js +559 -0
  503. package/dist/mcp-servers/concur.d.ts +46 -0
  504. package/dist/mcp-servers/concur.js +654 -0
  505. package/dist/mcp-servers/configcat.d.ts +64 -0
  506. package/dist/mcp-servers/configcat.js +540 -0
  507. package/dist/mcp-servers/confluence.d.ts +50 -0
  508. package/dist/mcp-servers/confluence.js +660 -0
  509. package/dist/mcp-servers/confluent-kafka.d.ts +95 -0
  510. package/dist/mcp-servers/confluent-kafka.js +759 -0
  511. package/dist/mcp-servers/conjur.d.ts +67 -0
  512. package/dist/mcp-servers/conjur.js +952 -0
  513. package/dist/mcp-servers/consumerfinance.d.ts +35 -0
  514. package/dist/mcp-servers/consumerfinance.js +231 -0
  515. package/dist/mcp-servers/contentful.d.ts +60 -0
  516. package/dist/mcp-servers/contentful.js +815 -0
  517. package/dist/mcp-servers/contentgroove.d.ts +45 -0
  518. package/dist/mcp-servers/contentgroove.js +704 -0
  519. package/dist/mcp-servers/contract-p-fit.d.ts +83 -0
  520. package/dist/mcp-servers/contract-p-fit.js +1438 -0
  521. package/dist/mcp-servers/coralogix.d.ts +52 -0
  522. package/dist/mcp-servers/coralogix.js +740 -0
  523. package/dist/mcp-servers/core-ac-uk.d.ts +47 -0
  524. package/dist/mcp-servers/core-ac-uk.js +614 -0
  525. package/dist/mcp-servers/cornerstone.d.ts +56 -0
  526. package/dist/mcp-servers/cornerstone.js +685 -0
  527. package/dist/mcp-servers/corrently.d.ts +45 -0
  528. package/dist/mcp-servers/corrently.js +407 -0
  529. package/dist/mcp-servers/cortex-xdr.d.ts +58 -0
  530. package/dist/mcp-servers/cortex-xdr.js +730 -0
  531. package/dist/mcp-servers/costar.d.ts +47 -0
  532. package/dist/mcp-servers/costar.js +599 -0
  533. package/dist/mcp-servers/coupa.d.ts +59 -0
  534. package/dist/mcp-servers/coupa.js +834 -0
  535. package/dist/mcp-servers/courier.d.ts +53 -0
  536. package/dist/mcp-servers/courier.js +621 -0
  537. package/dist/mcp-servers/cowin-cin-cowincert.d.ts +33 -0
  538. package/dist/mcp-servers/cowin-cin-cowincert.js +116 -0
  539. package/dist/mcp-servers/cribl.d.ts +74 -0
  540. package/dist/mcp-servers/cribl.js +641 -0
  541. package/dist/mcp-servers/crossbrowsertesting.d.ts +37 -0
  542. package/dist/mcp-servers/crossbrowsertesting.js +232 -0
  543. package/dist/mcp-servers/crowdin.d.ts +54 -0
  544. package/dist/mcp-servers/crowdin.js +788 -0
  545. package/dist/mcp-servers/crowdstrike-identity.d.ts +50 -0
  546. package/dist/mcp-servers/crowdstrike-identity.js +524 -0
  547. package/dist/mcp-servers/crowdstrike.d.ts +57 -0
  548. package/dist/mcp-servers/crowdstrike.js +651 -0
  549. package/dist/mcp-servers/crunchbase.d.ts +41 -0
  550. package/dist/mcp-servers/crunchbase.js +524 -0
  551. package/dist/mcp-servers/culture-amp.d.ts +54 -0
  552. package/dist/mcp-servers/culture-amp.js +570 -0
  553. package/dist/mcp-servers/cvent.d.ts +52 -0
  554. package/dist/mcp-servers/cvent.js +712 -0
  555. package/dist/mcp-servers/cyberark.d.ts +66 -0
  556. package/dist/mcp-servers/cyberark.js +715 -0
  557. package/dist/mcp-servers/cybereason.d.ts +57 -0
  558. package/dist/mcp-servers/cybereason.js +567 -0
  559. package/dist/mcp-servers/cycat.d.ts +42 -0
  560. package/dist/mcp-servers/cycat.js +376 -0
  561. package/dist/mcp-servers/d7networks.d.ts +36 -0
  562. package/dist/mcp-servers/d7networks.js +171 -0
  563. package/dist/mcp-servers/darktrace.d.ts +61 -0
  564. package/dist/mcp-servers/darktrace.js +519 -0
  565. package/dist/mcp-servers/data-gov.d.ts +40 -0
  566. package/dist/mcp-servers/data-gov.js +360 -0
  567. package/dist/mcp-servers/dataatwork.d.ts +41 -0
  568. package/dist/mcp-servers/dataatwork.js +385 -0
  569. package/dist/mcp-servers/databricks.d.ts +54 -0
  570. package/dist/mcp-servers/databricks.js +632 -0
  571. package/dist/mcp-servers/datadog-observability.d.ts +50 -0
  572. package/dist/mcp-servers/datadog-observability.js +682 -0
  573. package/dist/mcp-servers/datadog-rum.d.ts +47 -0
  574. package/dist/mcp-servers/datadog-rum.js +488 -0
  575. package/dist/mcp-servers/datadog-security.d.ts +46 -0
  576. package/dist/mcp-servers/datadog-security.js +639 -0
  577. package/dist/mcp-servers/dataflowkit.d.ts +36 -0
  578. package/dist/mcp-servers/dataflowkit.js +420 -0
  579. package/dist/mcp-servers/datumbox.d.ts +33 -0
  580. package/dist/mcp-servers/datumbox.js +345 -0
  581. package/dist/mcp-servers/dbt-cloud.d.ts +59 -0
  582. package/dist/mcp-servers/dbt-cloud.js +782 -0
  583. package/dist/mcp-servers/deel.d.ts +53 -0
  584. package/dist/mcp-servers/deel.js +684 -0
  585. package/dist/mcp-servers/deepl.d.ts +41 -0
  586. package/dist/mcp-servers/deepl.js +490 -0
  587. package/dist/mcp-servers/delinea.d.ts +54 -0
  588. package/dist/mcp-servers/delinea.js +728 -0
  589. package/dist/mcp-servers/devto.d.ts +46 -0
  590. package/dist/mcp-servers/devto.js +541 -0
  591. package/dist/mcp-servers/dhl.d.ts +47 -0
  592. package/dist/mcp-servers/dhl.js +783 -0
  593. package/dist/mcp-servers/dialpad.d.ts +53 -0
  594. package/dist/mcp-servers/dialpad.js +721 -0
  595. package/dist/mcp-servers/digitallocker-in-authpartner.d.ts +53 -0
  596. package/dist/mcp-servers/digitallocker-in-authpartner.js +602 -0
  597. package/dist/mcp-servers/digitalnz.d.ts +34 -0
  598. package/dist/mcp-servers/digitalnz.js +264 -0
  599. package/dist/mcp-servers/digitalocean.d.ts +57 -0
  600. package/dist/mcp-servers/digitalocean.js +888 -0
  601. package/dist/mcp-servers/discord.d.ts +51 -0
  602. package/dist/mcp-servers/discord.js +729 -0
  603. package/dist/mcp-servers/discourse-latest.d.ts +82 -0
  604. package/dist/mcp-servers/discourse-latest.js +1191 -0
  605. package/dist/mcp-servers/docebo.d.ts +57 -0
  606. package/dist/mcp-servers/docebo.js +795 -0
  607. package/dist/mcp-servers/docker-dvp.d.ts +48 -0
  608. package/dist/mcp-servers/docker-dvp.js +237 -0
  609. package/dist/mcp-servers/docker-engine.d.ts +105 -0
  610. package/dist/mcp-servers/docker-engine.js +1725 -0
  611. package/dist/mcp-servers/docker-hub.d.ts +45 -0
  612. package/dist/mcp-servers/docker-hub.js +520 -0
  613. package/dist/mcp-servers/docusign.d.ts +51 -0
  614. package/dist/mcp-servers/docusign.js +612 -0
  615. package/dist/mcp-servers/doppler.d.ts +49 -0
  616. package/dist/mcp-servers/doppler.js +628 -0
  617. package/dist/mcp-servers/dracoon-team.d.ts +91 -0
  618. package/dist/mcp-servers/dracoon-team.js +1450 -0
  619. package/dist/mcp-servers/drata.d.ts +49 -0
  620. package/dist/mcp-servers/drata.js +629 -0
  621. package/dist/mcp-servers/drchrono.d.ts +31 -0
  622. package/dist/mcp-servers/drchrono.js +1755 -0
  623. package/dist/mcp-servers/dropbox-business.d.ts +50 -0
  624. package/dist/mcp-servers/dropbox-business.js +726 -0
  625. package/dist/mcp-servers/dropx.d.ts +31 -0
  626. package/dist/mcp-servers/dropx.js +186 -0
  627. package/dist/mcp-servers/duck-creek.d.ts +56 -0
  628. package/dist/mcp-servers/duck-creek.js +779 -0
  629. package/dist/mcp-servers/dun-bradstreet.d.ts +48 -0
  630. package/dist/mcp-servers/dun-bradstreet.js +518 -0
  631. package/dist/mcp-servers/dynamics-365.d.ts +37 -0
  632. package/dist/mcp-servers/dynamics-365.js +664 -0
  633. package/dist/mcp-servers/dynatrace.d.ts +54 -0
  634. package/dist/mcp-servers/dynatrace.js +757 -0
  635. package/dist/mcp-servers/easypost.d.ts +53 -0
  636. package/dist/mcp-servers/easypost.js +762 -0
  637. package/dist/mcp-servers/ebi-ac-uk.d.ts +42 -0
  638. package/dist/mcp-servers/ebi-ac-uk.js +608 -0
  639. package/dist/mcp-servers/egnyte.d.ts +56 -0
  640. package/dist/mcp-servers/egnyte.js +802 -0
  641. package/dist/mcp-servers/elastic-apm.d.ts +48 -0
  642. package/dist/mcp-servers/elastic-apm.js +623 -0
  643. package/dist/mcp-servers/elastic-security.d.ts +52 -0
  644. package/dist/mcp-servers/elastic-security.js +812 -0
  645. package/dist/mcp-servers/elasticsearch.d.ts +51 -0
  646. package/dist/mcp-servers/elasticsearch.js +728 -0
  647. package/dist/mcp-servers/elevenlabs.d.ts +52 -0
  648. package/dist/mcp-servers/elevenlabs.js +655 -0
  649. package/dist/mcp-servers/elmah.d.ts +31 -0
  650. package/dist/mcp-servers/elmah.js +475 -0
  651. package/dist/mcp-servers/enode.d.ts +69 -0
  652. package/dist/mcp-servers/enode.js +801 -0
  653. package/dist/mcp-servers/envoy.d.ts +55 -0
  654. package/dist/mcp-servers/envoy.js +798 -0
  655. package/dist/mcp-servers/epa-air.d.ts +38 -0
  656. package/dist/mcp-servers/epa-air.js +404 -0
  657. package/dist/mcp-servers/epa-case.d.ts +40 -0
  658. package/dist/mcp-servers/epa-case.js +456 -0
  659. package/dist/mcp-servers/epa-cwa.d.ts +28 -0
  660. package/dist/mcp-servers/epa-cwa.js +342 -0
  661. package/dist/mcp-servers/epa-dfr.d.ts +30 -0
  662. package/dist/mcp-servers/epa-dfr.js +333 -0
  663. package/dist/mcp-servers/epa-echo.d.ts +39 -0
  664. package/dist/mcp-servers/epa-echo.js +567 -0
  665. package/dist/mcp-servers/epa-eff.d.ts +34 -0
  666. package/dist/mcp-servers/epa-eff.js +241 -0
  667. package/dist/mcp-servers/epa-rcra.d.ts +37 -0
  668. package/dist/mcp-servers/epa-rcra.js +727 -0
  669. package/dist/mcp-servers/epa-sdw.d.ts +33 -0
  670. package/dist/mcp-servers/epa-sdw.js +324 -0
  671. package/dist/mcp-servers/epic-fhir.d.ts +53 -0
  672. package/dist/mcp-servers/epic-fhir.js +735 -0
  673. package/dist/mcp-servers/epicor.d.ts +51 -0
  674. package/dist/mcp-servers/epicor.js +469 -0
  675. package/dist/mcp-servers/equifax.d.ts +51 -0
  676. package/dist/mcp-servers/equifax.js +625 -0
  677. package/dist/mcp-servers/etherpad.d.ts +32 -0
  678. package/dist/mcp-servers/etherpad.js +395 -0
  679. package/dist/mcp-servers/etsi-mec010-2-apppkgmgmt.d.ts +49 -0
  680. package/dist/mcp-servers/etsi-mec010-2-apppkgmgmt.js +560 -0
  681. package/dist/mcp-servers/europeana.d.ts +34 -0
  682. package/dist/mcp-servers/europeana.js +225 -0
  683. package/dist/mcp-servers/eventbrite.d.ts +50 -0
  684. package/dist/mcp-servers/eventbrite.js +744 -0
  685. package/dist/mcp-servers/exabeam.d.ts +49 -0
  686. package/dist/mcp-servers/exabeam.js +688 -0
  687. package/dist/mcp-servers/exavault.d.ts +67 -0
  688. package/dist/mcp-servers/exavault.js +813 -0
  689. package/dist/mcp-servers/exchangerate-api.d.ts +39 -0
  690. package/dist/mcp-servers/exchangerate-api.js +223 -0
  691. package/dist/mcp-servers/exlibrisgroup-tasklists.d.ts +41 -0
  692. package/dist/mcp-servers/exlibrisgroup-tasklists.js +329 -0
  693. package/dist/mcp-servers/expensify.d.ts +45 -0
  694. package/dist/mcp-servers/expensify.js +586 -0
  695. package/dist/mcp-servers/experian.d.ts +57 -0
  696. package/dist/mcp-servers/experian.js +697 -0
  697. package/dist/mcp-servers/extrahop.d.ts +55 -0
  698. package/dist/mcp-servers/extrahop.js +735 -0
  699. package/dist/mcp-servers/f5-bigip.d.ts +59 -0
  700. package/dist/mcp-servers/f5-bigip.js +678 -0
  701. package/dist/mcp-servers/facecheck-id.d.ts +36 -0
  702. package/dist/mcp-servers/facecheck-id.js +249 -0
  703. package/dist/mcp-servers/fastly.d.ts +56 -0
  704. package/dist/mcp-servers/fastly.js +787 -0
  705. package/dist/mcp-servers/fauna.d.ts +50 -0
  706. package/dist/mcp-servers/fauna.js +472 -0
  707. package/dist/mcp-servers/fec.d.ts +42 -0
  708. package/dist/mcp-servers/fec.js +616 -0
  709. package/dist/mcp-servers/fedex.d.ts +51 -0
  710. package/dist/mcp-servers/fedex.js +756 -0
  711. package/dist/mcp-servers/fhir.d.ts +48 -0
  712. package/dist/mcp-servers/fhir.js +673 -0
  713. package/dist/mcp-servers/figma.d.ts +48 -0
  714. package/dist/mcp-servers/figma.js +700 -0
  715. package/dist/mcp-servers/figshare.d.ts +32 -0
  716. package/dist/mcp-servers/figshare.js +530 -0
  717. package/dist/mcp-servers/fire.d.ts +32 -0
  718. package/dist/mcp-servers/fire.js +381 -0
  719. package/dist/mcp-servers/firebrowse.d.ts +33 -0
  720. package/dist/mcp-servers/firebrowse.js +551 -0
  721. package/dist/mcp-servers/firehydrant.d.ts +57 -0
  722. package/dist/mcp-servers/firehydrant.js +760 -0
  723. package/dist/mcp-servers/fireworks-ai.d.ts +51 -0
  724. package/dist/mcp-servers/fireworks-ai.js +652 -0
  725. package/dist/mcp-servers/firmalyzer-iotvas.d.ts +33 -0
  726. package/dist/mcp-servers/firmalyzer-iotvas.js +238 -0
  727. package/dist/mcp-servers/five9.d.ts +49 -0
  728. package/dist/mcp-servers/five9.js +425 -0
  729. package/dist/mcp-servers/fivetran.d.ts +59 -0
  730. package/dist/mcp-servers/fivetran.js +740 -0
  731. package/dist/mcp-servers/flat.d.ts +47 -0
  732. package/dist/mcp-servers/flat.js +707 -0
  733. package/dist/mcp-servers/flexport.d.ts +54 -0
  734. package/dist/mcp-servers/flexport.js +638 -0
  735. package/dist/mcp-servers/flickr.d.ts +44 -0
  736. package/dist/mcp-servers/flickr.js +606 -0
  737. package/dist/mcp-servers/fly-io.d.ts +51 -0
  738. package/dist/mcp-servers/fly-io.js +697 -0
  739. package/dist/mcp-servers/formapi.d.ts +30 -0
  740. package/dist/mcp-servers/formapi.js +702 -0
  741. package/dist/mcp-servers/fortinet.d.ts +57 -0
  742. package/dist/mcp-servers/fortinet.js +613 -0
  743. package/dist/mcp-servers/frankiefinancial.d.ts +29 -0
  744. package/dist/mcp-servers/frankiefinancial.js +646 -0
  745. package/dist/mcp-servers/fraudlabspro-fraud-detection.d.ts +32 -0
  746. package/dist/mcp-servers/fraudlabspro-fraud-detection.js +280 -0
  747. package/dist/mcp-servers/fraudlabspro-sms-verification.d.ts +31 -0
  748. package/dist/mcp-servers/fraudlabspro-sms-verification.js +218 -0
  749. package/dist/mcp-servers/freshbooks.d.ts +67 -0
  750. package/dist/mcp-servers/freshbooks.js +807 -0
  751. package/dist/mcp-servers/freshdesk.d.ts +58 -0
  752. package/dist/mcp-servers/freshdesk.js +720 -0
  753. package/dist/mcp-servers/freshservice.d.ts +69 -0
  754. package/dist/mcp-servers/freshservice.js +954 -0
  755. package/dist/mcp-servers/front.d.ts +51 -0
  756. package/dist/mcp-servers/front.js +688 -0
  757. package/dist/mcp-servers/fulfillment.d.ts +47 -0
  758. package/dist/mcp-servers/fulfillment.js +538 -0
  759. package/dist/mcp-servers/fullstory.d.ts +47 -0
  760. package/dist/mcp-servers/fullstory.js +504 -0
  761. package/dist/mcp-servers/gainsight.d.ts +52 -0
  762. package/dist/mcp-servers/gainsight.js +667 -0
  763. package/dist/mcp-servers/gamesparks-game-details.d.ts +36 -0
  764. package/dist/mcp-servers/gamesparks-game-details.js +975 -0
  765. package/dist/mcp-servers/geneea.d.ts +34 -0
  766. package/dist/mcp-servers/geneea.js +333 -0
  767. package/dist/mcp-servers/genesys-cloud.d.ts +58 -0
  768. package/dist/mcp-servers/genesys-cloud.js +669 -0
  769. package/dist/mcp-servers/geodatasource.d.ts +31 -0
  770. package/dist/mcp-servers/geodatasource.js +112 -0
  771. package/dist/mcp-servers/getgo-gototraining.d.ts +71 -0
  772. package/dist/mcp-servers/getgo-gototraining.js +617 -0
  773. package/dist/mcp-servers/getgo-gotowebinar.d.ts +72 -0
  774. package/dist/mcp-servers/getgo-gotowebinar.js +944 -0
  775. package/dist/mcp-servers/ghost.d.ts +62 -0
  776. package/dist/mcp-servers/ghost.js +751 -0
  777. package/dist/mcp-servers/gitea.d.ts +98 -0
  778. package/dist/mcp-servers/gitea.js +1308 -0
  779. package/dist/mcp-servers/gitguardian.d.ts +45 -0
  780. package/dist/mcp-servers/gitguardian.js +492 -0
  781. package/dist/mcp-servers/github-actions.d.ts +56 -0
  782. package/dist/mcp-servers/github-actions.js +900 -0
  783. package/dist/mcp-servers/github.d.ts +56 -0
  784. package/dist/mcp-servers/github.js +1106 -0
  785. package/dist/mcp-servers/gitlab.d.ts +59 -0
  786. package/dist/mcp-servers/gitlab.js +1092 -0
  787. package/dist/mcp-servers/gladly.d.ts +46 -0
  788. package/dist/mcp-servers/gladly.js +547 -0
  789. package/dist/mcp-servers/gmail.d.ts +52 -0
  790. package/dist/mcp-servers/gmail.js +838 -0
  791. package/dist/mcp-servers/gong.d.ts +52 -0
  792. package/dist/mcp-servers/gong.js +766 -0
  793. package/dist/mcp-servers/google-ads.d.ts +58 -0
  794. package/dist/mcp-servers/google-ads.js +891 -0
  795. package/dist/mcp-servers/google-analytics.d.ts +42 -0
  796. package/dist/mcp-servers/google-analytics.js +395 -0
  797. package/dist/mcp-servers/google-calendar.d.ts +45 -0
  798. package/dist/mcp-servers/google-calendar.js +759 -0
  799. package/dist/mcp-servers/google-chat.d.ts +52 -0
  800. package/dist/mcp-servers/google-chat.js +631 -0
  801. package/dist/mcp-servers/google-cloud.d.ts +48 -0
  802. package/dist/mcp-servers/google-cloud.js +759 -0
  803. package/dist/mcp-servers/google-document-ai.d.ts +56 -0
  804. package/dist/mcp-servers/google-document-ai.js +623 -0
  805. package/dist/mcp-servers/google-drive.d.ts +43 -0
  806. package/dist/mcp-servers/google-drive.js +577 -0
  807. package/dist/mcp-servers/google-home.d.ts +61 -0
  808. package/dist/mcp-servers/google-home.js +690 -0
  809. package/dist/mcp-servers/google-maps.d.ts +43 -0
  810. package/dist/mcp-servers/google-maps.js +592 -0
  811. package/dist/mcp-servers/google-translate.d.ts +43 -0
  812. package/dist/mcp-servers/google-translate.js +557 -0
  813. package/dist/mcp-servers/google-vertex-ai.d.ts +48 -0
  814. package/dist/mcp-servers/google-vertex-ai.js +513 -0
  815. package/dist/mcp-servers/google-workspace.d.ts +51 -0
  816. package/dist/mcp-servers/google-workspace.js +782 -0
  817. package/dist/mcp-servers/google.d.ts +58 -0
  818. package/dist/mcp-servers/google.js +492 -0
  819. package/dist/mcp-servers/gov-bc-ca-bcdc.d.ts +49 -0
  820. package/dist/mcp-servers/gov-bc-ca-bcdc.js +560 -0
  821. package/dist/mcp-servers/gov-bc-ca-geocoder.d.ts +40 -0
  822. package/dist/mcp-servers/gov-bc-ca-geocoder.js +398 -0
  823. package/dist/mcp-servers/gov-bc-ca-jobposting.d.ts +35 -0
  824. package/dist/mcp-servers/gov-bc-ca-jobposting.js +185 -0
  825. package/dist/mcp-servers/gov-bc-ca-open511.d.ts +34 -0
  826. package/dist/mcp-servers/gov-bc-ca-open511.js +214 -0
  827. package/dist/mcp-servers/gov-bc-ca-router.d.ts +31 -0
  828. package/dist/mcp-servers/gov-bc-ca-router.js +370 -0
  829. package/dist/mcp-servers/grafana-api.d.ts +52 -0
  830. package/dist/mcp-servers/grafana-api.js +740 -0
  831. package/dist/mcp-servers/graphhopper.d.ts +41 -0
  832. package/dist/mcp-servers/graphhopper.js +549 -0
  833. package/dist/mcp-servers/greenhouse.d.ts +51 -0
  834. package/dist/mcp-servers/greenhouse.js +608 -0
  835. package/dist/mcp-servers/groq.d.ts +41 -0
  836. package/dist/mcp-servers/groq.js +423 -0
  837. package/dist/mcp-servers/gsa.d.ts +36 -0
  838. package/dist/mcp-servers/gsa.js +191 -0
  839. package/dist/mcp-servers/gsmtasks.d.ts +51 -0
  840. package/dist/mcp-servers/gsmtasks.js +463 -0
  841. package/dist/mcp-servers/guidewire.d.ts +52 -0
  842. package/dist/mcp-servers/guidewire.js +590 -0
  843. package/dist/mcp-servers/gusto.d.ts +45 -0
  844. package/dist/mcp-servers/gusto.js +481 -0
  845. package/dist/mcp-servers/harness-cicd.d.ts +52 -0
  846. package/dist/mcp-servers/harness-cicd.js +770 -0
  847. package/dist/mcp-servers/hashicorp-terraform-cloud.d.ts +62 -0
  848. package/dist/mcp-servers/hashicorp-terraform-cloud.js +751 -0
  849. package/dist/mcp-servers/hashicorp-vault.d.ts +66 -0
  850. package/dist/mcp-servers/hashicorp-vault.js +669 -0
  851. package/dist/mcp-servers/health-gorilla.d.ts +39 -0
  852. package/dist/mcp-servers/health-gorilla.js +573 -0
  853. package/dist/mcp-servers/heap.d.ts +37 -0
  854. package/dist/mcp-servers/heap.js +264 -0
  855. package/dist/mcp-servers/help-scout.d.ts +62 -0
  856. package/dist/mcp-servers/help-scout.js +617 -0
  857. package/dist/mcp-servers/here.d.ts +44 -0
  858. package/dist/mcp-servers/here.js +403 -0
  859. package/dist/mcp-servers/hetzner-cloud.d.ts +42 -0
  860. package/dist/mcp-servers/hetzner-cloud.js +1263 -0
  861. package/dist/mcp-servers/hibob.d.ts +57 -0
  862. package/dist/mcp-servers/hibob.js +547 -0
  863. package/dist/mcp-servers/hightouch.d.ts +43 -0
  864. package/dist/mcp-servers/hightouch.js +396 -0
  865. package/dist/mcp-servers/honeycomb.d.ts +65 -0
  866. package/dist/mcp-servers/honeycomb.js +787 -0
  867. package/dist/mcp-servers/hootsuite.d.ts +46 -0
  868. package/dist/mcp-servers/hootsuite.js +377 -0
  869. package/dist/mcp-servers/hopin.d.ts +57 -0
  870. package/dist/mcp-servers/hopin.js +784 -0
  871. package/dist/mcp-servers/hotjar.d.ts +40 -0
  872. package/dist/mcp-servers/hotjar.js +183 -0
  873. package/dist/mcp-servers/hubspot-marketing.d.ts +53 -0
  874. package/dist/mcp-servers/hubspot-marketing.js +682 -0
  875. package/dist/mcp-servers/hubspot.d.ts +52 -0
  876. package/dist/mcp-servers/hubspot.js +518 -0
  877. package/dist/mcp-servers/huggingface.d.ts +47 -0
  878. package/dist/mcp-servers/huggingface.js +467 -0
  879. package/dist/mcp-servers/hyperproof.d.ts +59 -0
  880. package/dist/mcp-servers/hyperproof.js +854 -0
  881. package/dist/mcp-servers/ibanapi.d.ts +35 -0
  882. package/dist/mcp-servers/ibanapi.js +122 -0
  883. package/dist/mcp-servers/icons8.d.ts +39 -0
  884. package/dist/mcp-servers/icons8.js +359 -0
  885. package/dist/mcp-servers/ideal-postcodes-uk.d.ts +46 -0
  886. package/dist/mcp-servers/ideal-postcodes-uk.js +445 -0
  887. package/dist/mcp-servers/idtbeyond.d.ts +45 -0
  888. package/dist/mcp-servers/idtbeyond.js +396 -0
  889. package/dist/mcp-servers/iex-cloud.d.ts +51 -0
  890. package/dist/mcp-servers/iex-cloud.js +598 -0
  891. package/dist/mcp-servers/impala-travel-hotels.d.ts +43 -0
  892. package/dist/mcp-servers/impala-travel-hotels.js +432 -0
  893. package/dist/mcp-servers/inboxroute.d.ts +44 -0
  894. package/dist/mcp-servers/inboxroute.js +417 -0
  895. package/dist/mcp-servers/incident-io.d.ts +52 -0
  896. package/dist/mcp-servers/incident-io.js +536 -0
  897. package/dist/mcp-servers/infermedica.d.ts +56 -0
  898. package/dist/mcp-servers/infermedica.js +864 -0
  899. package/dist/mcp-servers/influxdata.d.ts +75 -0
  900. package/dist/mcp-servers/influxdata.js +1254 -0
  901. package/dist/mcp-servers/infobip.d.ts +50 -0
  902. package/dist/mcp-servers/infobip.js +751 -0
  903. package/dist/mcp-servers/infogenesis.d.ts +42 -0
  904. package/dist/mcp-servers/infogenesis.js +405 -0
  905. package/dist/mcp-servers/infor.d.ts +56 -0
  906. package/dist/mcp-servers/infor.js +432 -0
  907. package/dist/mcp-servers/infura.d.ts +34 -0
  908. package/dist/mcp-servers/infura.js +570 -0
  909. package/dist/mcp-servers/instagram-graph.d.ts +52 -0
  910. package/dist/mcp-servers/instagram-graph.js +748 -0
  911. package/dist/mcp-servers/instagram.d.ts +56 -0
  912. package/dist/mcp-servers/instagram.js +772 -0
  913. package/dist/mcp-servers/instana.d.ts +57 -0
  914. package/dist/mcp-servers/instana.js +482 -0
  915. package/dist/mcp-servers/intel-product-catalogue.d.ts +43 -0
  916. package/dist/mcp-servers/intel-product-catalogue.js +253 -0
  917. package/dist/mcp-servers/intellifi-nl.d.ts +45 -0
  918. package/dist/mcp-servers/intellifi-nl.js +1090 -0
  919. package/dist/mcp-servers/interactivebrokers.d.ts +49 -0
  920. package/dist/mcp-servers/interactivebrokers.js +407 -0
  921. package/dist/mcp-servers/intercom.d.ts +57 -0
  922. package/dist/mcp-servers/intercom.js +646 -0
  923. package/dist/mcp-servers/intrinio.d.ts +51 -0
  924. package/dist/mcp-servers/intrinio.js +804 -0
  925. package/dist/mcp-servers/invision.d.ts +46 -0
  926. package/dist/mcp-servers/invision.js +458 -0
  927. package/dist/mcp-servers/ip2location-geolocation.d.ts +32 -0
  928. package/dist/mcp-servers/ip2location-geolocation.js +152 -0
  929. package/dist/mcp-servers/ip2location.d.ts +33 -0
  930. package/dist/mcp-servers/ip2location.js +156 -0
  931. package/dist/mcp-servers/ip2proxy.d.ts +32 -0
  932. package/dist/mcp-servers/ip2proxy.js +127 -0
  933. package/dist/mcp-servers/iqualify.d.ts +54 -0
  934. package/dist/mcp-servers/iqualify.js +731 -0
  935. package/dist/mcp-servers/ironclad.d.ts +49 -0
  936. package/dist/mcp-servers/ironclad.js +455 -0
  937. package/dist/mcp-servers/iva-api.d.ts +50 -0
  938. package/dist/mcp-servers/iva-api.js +571 -0
  939. package/dist/mcp-servers/ix-api.d.ts +47 -0
  940. package/dist/mcp-servers/ix-api.js +686 -0
  941. package/dist/mcp-servers/izettle-products.d.ts +63 -0
  942. package/dist/mcp-servers/izettle-products.js +1003 -0
  943. package/dist/mcp-servers/jamf.d.ts +49 -0
  944. package/dist/mcp-servers/jamf.js +488 -0
  945. package/dist/mcp-servers/javatpoint.d.ts +37 -0
  946. package/dist/mcp-servers/javatpoint.js +205 -0
  947. package/dist/mcp-servers/jenkins.d.ts +48 -0
  948. package/dist/mcp-servers/jenkins.js +435 -0
  949. package/dist/mcp-servers/jfrog-artifactory.d.ts +47 -0
  950. package/dist/mcp-servers/jfrog-artifactory.js +522 -0
  951. package/dist/mcp-servers/jira-service-management.d.ts +52 -0
  952. package/dist/mcp-servers/jira-service-management.js +674 -0
  953. package/dist/mcp-servers/jira.d.ts +52 -0
  954. package/dist/mcp-servers/jira.js +573 -0
  955. package/dist/mcp-servers/john-deere-ops.d.ts +46 -0
  956. package/dist/mcp-servers/john-deere-ops.js +546 -0
  957. package/dist/mcp-servers/jumpcloud.d.ts +51 -0
  958. package/dist/mcp-servers/jumpcloud.js +705 -0
  959. package/dist/mcp-servers/juro.d.ts +43 -0
  960. package/dist/mcp-servers/juro.js +472 -0
  961. package/dist/mcp-servers/just-eat-uk.d.ts +71 -0
  962. package/dist/mcp-servers/just-eat-uk.js +1092 -0
  963. package/dist/mcp-servers/kandji.d.ts +45 -0
  964. package/dist/mcp-servers/kandji.js +486 -0
  965. package/dist/mcp-servers/keycloak.d.ts +68 -0
  966. package/dist/mcp-servers/keycloak.js +828 -0
  967. package/dist/mcp-servers/klarna-payments.d.ts +47 -0
  968. package/dist/mcp-servers/klarna-payments.js +419 -0
  969. package/dist/mcp-servers/klaviyo.d.ts +57 -0
  970. package/dist/mcp-servers/klaviyo.js +847 -0
  971. package/dist/mcp-servers/knowbe4.d.ts +56 -0
  972. package/dist/mcp-servers/knowbe4.js +716 -0
  973. package/dist/mcp-servers/kubernetes.d.ts +54 -0
  974. package/dist/mcp-servers/kubernetes.js +631 -0
  975. package/dist/mcp-servers/lacework.d.ts +52 -0
  976. package/dist/mcp-servers/lacework.js +658 -0
  977. package/dist/mcp-servers/landregistry-uk-deed.d.ts +30 -0
  978. package/dist/mcp-servers/landregistry-uk-deed.js +186 -0
  979. package/dist/mcp-servers/langchain-api.d.ts +47 -0
  980. package/dist/mcp-servers/langchain-api.js +665 -0
  981. package/dist/mcp-servers/langsmith.d.ts +50 -0
  982. package/dist/mcp-servers/langsmith.js +674 -0
  983. package/dist/mcp-servers/languagetool.d.ts +39 -0
  984. package/dist/mcp-servers/languagetool.js +300 -0
  985. package/dist/mcp-servers/lansweeper.d.ts +43 -0
  986. package/dist/mcp-servers/lansweeper.js +640 -0
  987. package/dist/mcp-servers/lattice.d.ts +46 -0
  988. package/dist/mcp-servers/lattice.js +556 -0
  989. package/dist/mcp-servers/launchdarkly.d.ts +61 -0
  990. package/dist/mcp-servers/launchdarkly.js +614 -0
  991. package/dist/mcp-servers/lever.d.ts +50 -0
  992. package/dist/mcp-servers/lever.js +613 -0
  993. package/dist/mcp-servers/lexisnexis.d.ts +53 -0
  994. package/dist/mcp-servers/lexisnexis.js +397 -0
  995. package/dist/mcp-servers/lgtm.d.ts +43 -0
  996. package/dist/mcp-servers/lgtm.js +484 -0
  997. package/dist/mcp-servers/lightspeed.d.ts +54 -0
  998. package/dist/mcp-servers/lightspeed.js +745 -0
  999. package/dist/mcp-servers/linear.d.ts +48 -0
  1000. package/dist/mcp-servers/linear.js +594 -0
  1001. package/dist/mcp-servers/linkedin-ads.d.ts +49 -0
  1002. package/dist/mcp-servers/linkedin-ads.js +690 -0
  1003. package/dist/mcp-servers/linkedin.d.ts +46 -0
  1004. package/dist/mcp-servers/linkedin.js +453 -0
  1005. package/dist/mcp-servers/linode.d.ts +49 -0
  1006. package/dist/mcp-servers/linode.js +682 -0
  1007. package/dist/mcp-servers/ljaero-dflight-v-1-0-0.d.ts +30 -0
  1008. package/dist/mcp-servers/ljaero-dflight-v-1-0-0.js +498 -0
  1009. package/dist/mcp-servers/llamaindex-api.d.ts +54 -0
  1010. package/dist/mcp-servers/llamaindex-api.js +538 -0
  1011. package/dist/mcp-servers/logrhythm.d.ts +49 -0
  1012. package/dist/mcp-servers/logrhythm.js +454 -0
  1013. package/dist/mcp-servers/logrocket.d.ts +49 -0
  1014. package/dist/mcp-servers/logrocket.js +461 -0
  1015. package/dist/mcp-servers/loket-nl-v2.d.ts +58 -0
  1016. package/dist/mcp-servers/loket-nl-v2.js +610 -0
  1017. package/dist/mcp-servers/looker.d.ts +64 -0
  1018. package/dist/mcp-servers/looker.js +555 -0
  1019. package/dist/mcp-servers/loom.d.ts +46 -0
  1020. package/dist/mcp-servers/loom.js +418 -0
  1021. package/dist/mcp-servers/lotadata.d.ts +36 -0
  1022. package/dist/mcp-servers/lotadata.js +337 -0
  1023. package/dist/mcp-servers/lumminary.d.ts +50 -0
  1024. package/dist/mcp-servers/lumminary.js +557 -0
  1025. package/dist/mcp-servers/lyft.d.ts +42 -0
  1026. package/dist/mcp-servers/lyft.js +387 -0
  1027. package/dist/mcp-servers/mabl.d.ts +45 -0
  1028. package/dist/mcp-servers/mabl.js +397 -0
  1029. package/dist/mcp-servers/magento.d.ts +53 -0
  1030. package/dist/mcp-servers/magento.js +784 -0
  1031. package/dist/mcp-servers/maif-otoroshi.d.ts +60 -0
  1032. package/dist/mcp-servers/maif-otoroshi.js +528 -0
  1033. package/dist/mcp-servers/mailboxvalidator-validation.d.ts +29 -0
  1034. package/dist/mcp-servers/mailboxvalidator-validation.js +92 -0
  1035. package/dist/mcp-servers/mailchimp.d.ts +55 -0
  1036. package/dist/mcp-servers/mailchimp.js +504 -0
  1037. package/dist/mcp-servers/mailgun.d.ts +52 -0
  1038. package/dist/mcp-servers/mailgun.js +715 -0
  1039. package/dist/mcp-servers/majesco.d.ts +56 -0
  1040. package/dist/mcp-servers/majesco.js +580 -0
  1041. package/dist/mcp-servers/make.d.ts +52 -0
  1042. package/dist/mcp-servers/make.js +594 -0
  1043. package/dist/mcp-servers/mandiant.d.ts +56 -0
  1044. package/dist/mcp-servers/mandiant.js +370 -0
  1045. package/dist/mcp-servers/mandrillapp.d.ts +44 -0
  1046. package/dist/mcp-servers/mandrillapp.js +560 -0
  1047. package/dist/mcp-servers/mapbox.d.ts +43 -0
  1048. package/dist/mcp-servers/mapbox.js +616 -0
  1049. package/dist/mcp-servers/marketo.d.ts +61 -0
  1050. package/dist/mcp-servers/marketo.js +493 -0
  1051. package/dist/mcp-servers/marqeta.d.ts +57 -0
  1052. package/dist/mcp-servers/marqeta.js +943 -0
  1053. package/dist/mcp-servers/mashape-geodb.d.ts +41 -0
  1054. package/dist/mcp-servers/mashape-geodb.js +484 -0
  1055. package/dist/mcp-servers/mattermost.d.ts +55 -0
  1056. package/dist/mcp-servers/mattermost.js +724 -0
  1057. package/dist/mcp-servers/medallia.d.ts +52 -0
  1058. package/dist/mcp-servers/medallia.js +462 -0
  1059. package/dist/mcp-servers/medium.d.ts +62 -0
  1060. package/dist/mcp-servers/medium.js +861 -0
  1061. package/dist/mcp-servers/meltwater.d.ts +47 -0
  1062. package/dist/mcp-servers/meltwater.js +526 -0
  1063. package/dist/mcp-servers/meraki.d.ts +44 -0
  1064. package/dist/mcp-servers/meraki.js +471 -0
  1065. package/dist/mcp-servers/mercedes-benz-configurator.d.ts +46 -0
  1066. package/dist/mcp-servers/mercedes-benz-configurator.js +532 -0
  1067. package/dist/mcp-servers/mercedes-benz-dealer.d.ts +33 -0
  1068. package/dist/mcp-servers/mercedes-benz-dealer.js +228 -0
  1069. package/dist/mcp-servers/mercedes-benz-diagnostics.d.ts +34 -0
  1070. package/dist/mcp-servers/mercedes-benz-diagnostics.js +192 -0
  1071. package/dist/mcp-servers/mercedes-benz-image.d.ts +35 -0
  1072. package/dist/mcp-servers/mercedes-benz-image.js +223 -0
  1073. package/dist/mcp-servers/merge-api.d.ts +56 -0
  1074. package/dist/mcp-servers/merge-api.js +719 -0
  1075. package/dist/mcp-servers/meshery.d.ts +55 -0
  1076. package/dist/mcp-servers/meshery.js +446 -0
  1077. package/dist/mcp-servers/meta-ads.d.ts +56 -0
  1078. package/dist/mcp-servers/meta-ads.js +954 -0
  1079. package/dist/mcp-servers/meta-graph-api.d.ts +49 -0
  1080. package/dist/mcp-servers/meta-graph-api.js +683 -0
  1081. package/dist/mcp-servers/mews.d.ts +47 -0
  1082. package/dist/mcp-servers/mews.js +627 -0
  1083. package/dist/mcp-servers/microcks.d.ts +43 -0
  1084. package/dist/mcp-servers/microcks.js +408 -0
  1085. package/dist/mcp-servers/microsoft-defender-endpoint.d.ts +65 -0
  1086. package/dist/mcp-servers/microsoft-defender-endpoint.js +858 -0
  1087. package/dist/mcp-servers/microsoft-entra.d.ts +62 -0
  1088. package/dist/mcp-servers/microsoft-entra.js +847 -0
  1089. package/dist/mcp-servers/microsoft-graph.d.ts +51 -0
  1090. package/dist/mcp-servers/microsoft-graph.js +786 -0
  1091. package/dist/mcp-servers/microsoft-teams.d.ts +49 -0
  1092. package/dist/mcp-servers/microsoft-teams.js +659 -0
  1093. package/dist/mcp-servers/mimecast.d.ts +58 -0
  1094. package/dist/mcp-servers/mimecast.js +843 -0
  1095. package/dist/mcp-servers/miro.d.ts +56 -0
  1096. package/dist/mcp-servers/miro.js +921 -0
  1097. package/dist/mcp-servers/mist.d.ts +44 -0
  1098. package/dist/mcp-servers/mist.js +456 -0
  1099. package/dist/mcp-servers/mistral-ai.d.ts +55 -0
  1100. package/dist/mcp-servers/mistral-ai.js +881 -0
  1101. package/dist/mcp-servers/mixpanel.d.ts +59 -0
  1102. package/dist/mcp-servers/mixpanel.js +666 -0
  1103. package/dist/mcp-servers/modern-treasury.d.ts +56 -0
  1104. package/dist/mcp-servers/modern-treasury.js +802 -0
  1105. package/dist/mcp-servers/monday.d.ts +58 -0
  1106. package/dist/mcp-servers/monday.js +848 -0
  1107. package/dist/mcp-servers/mongodb.d.ts +49 -0
  1108. package/dist/mcp-servers/mongodb.js +451 -0
  1109. package/dist/mcp-servers/monte-carlo.d.ts +45 -0
  1110. package/dist/mcp-servers/monte-carlo.js +598 -0
  1111. package/dist/mcp-servers/morningstar.d.ts +53 -0
  1112. package/dist/mcp-servers/morningstar.js +611 -0
  1113. package/dist/mcp-servers/motaword.d.ts +57 -0
  1114. package/dist/mcp-servers/motaword.js +501 -0
  1115. package/dist/mcp-servers/musixmatch.d.ts +49 -0
  1116. package/dist/mcp-servers/musixmatch.js +441 -0
  1117. package/dist/mcp-servers/mux.d.ts +60 -0
  1118. package/dist/mcp-servers/mux.js +758 -0
  1119. package/dist/mcp-servers/mx.d.ts +57 -0
  1120. package/dist/mcp-servers/mx.js +673 -0
  1121. package/dist/mcp-servers/n-auth.d.ts +54 -0
  1122. package/dist/mcp-servers/n-auth.js +680 -0
  1123. package/dist/mcp-servers/n8n.d.ts +54 -0
  1124. package/dist/mcp-servers/n8n.js +664 -0
  1125. package/dist/mcp-servers/navan.d.ts +47 -0
  1126. package/dist/mcp-servers/navan.js +438 -0
  1127. package/dist/mcp-servers/naviplancentral-factfinder.d.ts +51 -0
  1128. package/dist/mcp-servers/naviplancentral-factfinder.js +608 -0
  1129. package/dist/mcp-servers/naviplancentral-plan.d.ts +50 -0
  1130. package/dist/mcp-servers/naviplancentral-plan.js +1098 -0
  1131. package/dist/mcp-servers/nbg-gr.d.ts +51 -0
  1132. package/dist/mcp-servers/nbg-gr.js +560 -0
  1133. package/dist/mcp-servers/neon.d.ts +47 -0
  1134. package/dist/mcp-servers/neon.js +545 -0
  1135. package/dist/mcp-servers/netatmo.d.ts +33 -0
  1136. package/dist/mcp-servers/netatmo.js +621 -0
  1137. package/dist/mcp-servers/netbox-dev.d.ts +41 -0
  1138. package/dist/mcp-servers/netbox-dev.js +1119 -0
  1139. package/dist/mcp-servers/netboxdemo.d.ts +35 -0
  1140. package/dist/mcp-servers/netboxdemo.js +742 -0
  1141. package/dist/mcp-servers/netlicensing.d.ts +62 -0
  1142. package/dist/mcp-servers/netlicensing.js +687 -0
  1143. package/dist/mcp-servers/netlify.d.ts +59 -0
  1144. package/dist/mcp-servers/netlify.js +682 -0
  1145. package/dist/mcp-servers/netskope.d.ts +46 -0
  1146. package/dist/mcp-servers/netskope.js +568 -0
  1147. package/dist/mcp-servers/netsuite.d.ts +51 -0
  1148. package/dist/mcp-servers/netsuite.js +592 -0
  1149. package/dist/mcp-servers/new-relic.d.ts +47 -0
  1150. package/dist/mcp-servers/new-relic.js +733 -0
  1151. package/dist/mcp-servers/newsapi.d.ts +34 -0
  1152. package/dist/mcp-servers/newsapi.js +230 -0
  1153. package/dist/mcp-servers/nfusionsolutions-biz.d.ts +47 -0
  1154. package/dist/mcp-servers/nfusionsolutions-biz.js +576 -0
  1155. package/dist/mcp-servers/notion.d.ts +51 -0
  1156. package/dist/mcp-servers/notion.js +582 -0
  1157. package/dist/mcp-servers/nowpayments.d.ts +50 -0
  1158. package/dist/mcp-servers/nowpayments.js +633 -0
  1159. package/dist/mcp-servers/npr-authorization.d.ts +31 -0
  1160. package/dist/mcp-servers/npr-authorization.js +210 -0
  1161. package/dist/mcp-servers/npr-identity.d.ts +36 -0
  1162. package/dist/mcp-servers/npr-identity.js +203 -0
  1163. package/dist/mcp-servers/npr-listening.d.ts +41 -0
  1164. package/dist/mcp-servers/npr-listening.js +354 -0
  1165. package/dist/mcp-servers/npr-sponsorship.d.ts +33 -0
  1166. package/dist/mcp-servers/npr-sponsorship.js +149 -0
  1167. package/dist/mcp-servers/nrel-building-case-studies.d.ts +33 -0
  1168. package/dist/mcp-servers/nrel-building-case-studies.js +142 -0
  1169. package/dist/mcp-servers/ntropywork.d.ts +43 -0
  1170. package/dist/mcp-servers/ntropywork.js +407 -0
  1171. package/dist/mcp-servers/nytimes-archive.d.ts +30 -0
  1172. package/dist/mcp-servers/nytimes-archive.js +109 -0
  1173. package/dist/mcp-servers/nytimes-article-search.d.ts +30 -0
  1174. package/dist/mcp-servers/nytimes-article-search.js +147 -0
  1175. package/dist/mcp-servers/nytimes-books-api.d.ts +36 -0
  1176. package/dist/mcp-servers/nytimes-books-api.js +348 -0
  1177. package/dist/mcp-servers/nytimes-geo-api.d.ts +34 -0
  1178. package/dist/mcp-servers/nytimes-geo-api.js +285 -0
  1179. package/dist/mcp-servers/nytimes-most-popular-api.d.ts +33 -0
  1180. package/dist/mcp-servers/nytimes-most-popular-api.js +177 -0
  1181. package/dist/mcp-servers/nytimes-movie-reviews.d.ts +33 -0
  1182. package/dist/mcp-servers/nytimes-movie-reviews.js +185 -0
  1183. package/dist/mcp-servers/nytimes-semantic-api.d.ts +38 -0
  1184. package/dist/mcp-servers/nytimes-semantic-api.js +317 -0
  1185. package/dist/mcp-servers/nytimes-times-tags.d.ts +33 -0
  1186. package/dist/mcp-servers/nytimes-times-tags.js +230 -0
  1187. package/dist/mcp-servers/nytimes-timeswire.d.ts +33 -0
  1188. package/dist/mcp-servers/nytimes-timeswire.js +179 -0
  1189. package/dist/mcp-servers/nytimes-top-stories.d.ts +31 -0
  1190. package/dist/mcp-servers/nytimes-top-stories.js +99 -0
  1191. package/dist/mcp-servers/o2-cz-mobility.d.ts +30 -0
  1192. package/dist/mcp-servers/o2-cz-mobility.js +120 -0
  1193. package/dist/mcp-servers/o2-cz-sociodemo.d.ts +31 -0
  1194. package/dist/mcp-servers/o2-cz-sociodemo.js +155 -0
  1195. package/dist/mcp-servers/octopus-deploy.d.ts +52 -0
  1196. package/dist/mcp-servers/octopus-deploy.js +658 -0
  1197. package/dist/mcp-servers/odoo.d.ts +58 -0
  1198. package/dist/mcp-servers/odoo.js +573 -0
  1199. package/dist/mcp-servers/okta.d.ts +52 -0
  1200. package/dist/mcp-servers/okta.js +703 -0
  1201. package/dist/mcp-servers/ollama-api.d.ts +39 -0
  1202. package/dist/mcp-servers/ollama-api.js +550 -0
  1203. package/dist/mcp-servers/omdbapi.d.ts +36 -0
  1204. package/dist/mcp-servers/omdbapi.js +209 -0
  1205. package/dist/mcp-servers/onedrive-sharepoint.d.ts +60 -0
  1206. package/dist/mcp-servers/onedrive-sharepoint.js +735 -0
  1207. package/dist/mcp-servers/onetrust.d.ts +52 -0
  1208. package/dist/mcp-servers/onetrust.js +584 -0
  1209. package/dist/mcp-servers/onfido.d.ts +57 -0
  1210. package/dist/mcp-servers/onfido.js +711 -0
  1211. package/dist/mcp-servers/onsched-consumer.d.ts +64 -0
  1212. package/dist/mcp-servers/onsched-consumer.js +738 -0
  1213. package/dist/mcp-servers/onsched-setup.d.ts +73 -0
  1214. package/dist/mcp-servers/onsched-setup.js +798 -0
  1215. package/dist/mcp-servers/open-fda.d.ts +33 -0
  1216. package/dist/mcp-servers/open-fda.js +516 -0
  1217. package/dist/mcp-servers/openai-api.d.ts +51 -0
  1218. package/dist/mcp-servers/openai-api.js +836 -0
  1219. package/dist/mcp-servers/openalpr.d.ts +34 -0
  1220. package/dist/mcp-servers/openalpr.js +296 -0
  1221. package/dist/mcp-servers/openapi-generator-tech.d.ts +38 -0
  1222. package/dist/mcp-servers/openapi-generator-tech.js +288 -0
  1223. package/dist/mcp-servers/openbanking-uk-account-info-openapi.d.ts +63 -0
  1224. package/dist/mcp-servers/openbanking-uk-account-info-openapi.js +592 -0
  1225. package/dist/mcp-servers/openbanking-uk-confirmation-funds-openapi.d.ts +42 -0
  1226. package/dist/mcp-servers/openbanking-uk-confirmation-funds-openapi.js +295 -0
  1227. package/dist/mcp-servers/openbanking-uk-event-notifications-openapi.d.ts +43 -0
  1228. package/dist/mcp-servers/openbanking-uk-event-notifications-openapi.js +414 -0
  1229. package/dist/mcp-servers/openbanking-uk-payment-initiation-openapi.d.ts +60 -0
  1230. package/dist/mcp-servers/openbanking-uk-payment-initiation-openapi.js +1197 -0
  1231. package/dist/mcp-servers/openbanking-uk.d.ts +36 -0
  1232. package/dist/mcp-servers/openbanking-uk.js +223 -0
  1233. package/dist/mcp-servers/openbankingproject-ch.d.ts +44 -0
  1234. package/dist/mcp-servers/openbankingproject-ch.js +535 -0
  1235. package/dist/mcp-servers/opencagedata.d.ts +36 -0
  1236. package/dist/mcp-servers/opencagedata.js +308 -0
  1237. package/dist/mcp-servers/opendatanetwork.d.ts +30 -0
  1238. package/dist/mcp-servers/opendatanetwork.js +328 -0
  1239. package/dist/mcp-servers/openfigi.d.ts +32 -0
  1240. package/dist/mcp-servers/openfigi.js +178 -0
  1241. package/dist/mcp-servers/openfintech.d.ts +29 -0
  1242. package/dist/mcp-servers/openfintech.js +357 -0
  1243. package/dist/mcp-servers/opengov.d.ts +50 -0
  1244. package/dist/mcp-servers/opengov.js +642 -0
  1245. package/dist/mcp-servers/openlinksw-osdb.d.ts +43 -0
  1246. package/dist/mcp-servers/openlinksw-osdb.js +340 -0
  1247. package/dist/mcp-servers/openpolicy.d.ts +43 -0
  1248. package/dist/mcp-servers/openpolicy.js +365 -0
  1249. package/dist/mcp-servers/openstates.d.ts +45 -0
  1250. package/dist/mcp-servers/openstates.js +775 -0
  1251. package/dist/mcp-servers/openstf.d.ts +45 -0
  1252. package/dist/mcp-servers/openstf.js +337 -0
  1253. package/dist/mcp-servers/opensuse-obs.d.ts +75 -0
  1254. package/dist/mcp-servers/opensuse-obs.js +1182 -0
  1255. package/dist/mcp-servers/opentable.d.ts +49 -0
  1256. package/dist/mcp-servers/opentable.js +667 -0
  1257. package/dist/mcp-servers/opentargets.d.ts +46 -0
  1258. package/dist/mcp-servers/opentargets.js +616 -0
  1259. package/dist/mcp-servers/openweathermap.d.ts +42 -0
  1260. package/dist/mcp-servers/openweathermap.js +468 -0
  1261. package/dist/mcp-servers/opera-pms.d.ts +56 -0
  1262. package/dist/mcp-servers/opera-pms.js +735 -0
  1263. package/dist/mcp-servers/opsgenie.d.ts +56 -0
  1264. package/dist/mcp-servers/opsgenie.js +954 -0
  1265. package/dist/mcp-servers/optimade.d.ts +40 -0
  1266. package/dist/mcp-servers/optimade.js +283 -0
  1267. package/dist/mcp-servers/optimizely.d.ts +49 -0
  1268. package/dist/mcp-servers/optimizely.js +599 -0
  1269. package/dist/mcp-servers/opto22-groov.d.ts +47 -0
  1270. package/dist/mcp-servers/opto22-groov.js +318 -0
  1271. package/dist/mcp-servers/opto22-pac.d.ts +85 -0
  1272. package/dist/mcp-servers/opto22-pac.js +1091 -0
  1273. package/dist/mcp-servers/oracle-cloud.d.ts +60 -0
  1274. package/dist/mcp-servers/oracle-cloud.js +729 -0
  1275. package/dist/mcp-servers/oracle-erp-cloud.d.ts +52 -0
  1276. package/dist/mcp-servers/oracle-erp-cloud.js +730 -0
  1277. package/dist/mcp-servers/orbit-love.d.ts +38 -0
  1278. package/dist/mcp-servers/orbit-love.js +736 -0
  1279. package/dist/mcp-servers/orca.d.ts +47 -0
  1280. package/dist/mcp-servers/orca.js +557 -0
  1281. package/dist/mcp-servers/ornl-daymet.d.ts +28 -0
  1282. package/dist/mcp-servers/ornl-daymet.js +276 -0
  1283. package/dist/mcp-servers/orthanc-server.d.ts +77 -0
  1284. package/dist/mcp-servers/orthanc-server.js +832 -0
  1285. package/dist/mcp-servers/osisoft.d.ts +44 -0
  1286. package/dist/mcp-servers/osisoft.js +378 -0
  1287. package/dist/mcp-servers/outreach.d.ts +57 -0
  1288. package/dist/mcp-servers/outreach.js +924 -0
  1289. package/dist/mcp-servers/owler.d.ts +43 -0
  1290. package/dist/mcp-servers/owler.js +457 -0
  1291. package/dist/mcp-servers/pagerduty.d.ts +45 -0
  1292. package/dist/mcp-servers/pagerduty.js +746 -0
  1293. package/dist/mcp-servers/palo-alto.d.ts +41 -0
  1294. package/dist/mcp-servers/palo-alto.js +661 -0
  1295. package/dist/mcp-servers/pandadoc.d.ts +46 -0
  1296. package/dist/mcp-servers/pandadoc.js +818 -0
  1297. package/dist/mcp-servers/pandascore.d.ts +45 -0
  1298. package/dist/mcp-servers/pandascore.js +522 -0
  1299. package/dist/mcp-servers/pandorabots.d.ts +43 -0
  1300. package/dist/mcp-servers/pandorabots.js +390 -0
  1301. package/dist/mcp-servers/panther.d.ts +40 -0
  1302. package/dist/mcp-servers/panther.js +518 -0
  1303. package/dist/mcp-servers/papinet-order-status.d.ts +35 -0
  1304. package/dist/mcp-servers/papinet-order-status.js +133 -0
  1305. package/dist/mcp-servers/particle.d.ts +52 -0
  1306. package/dist/mcp-servers/particle.js +566 -0
  1307. package/dist/mcp-servers/patientview.d.ts +54 -0
  1308. package/dist/mcp-servers/patientview.js +499 -0
  1309. package/dist/mcp-servers/patrowl.d.ts +43 -0
  1310. package/dist/mcp-servers/patrowl.js +277 -0
  1311. package/dist/mcp-servers/paylocity.d.ts +49 -0
  1312. package/dist/mcp-servers/paylocity.js +437 -0
  1313. package/dist/mcp-servers/payments-service-uk-payments.d.ts +35 -0
  1314. package/dist/mcp-servers/payments-service-uk-payments.js +403 -0
  1315. package/dist/mcp-servers/paypal.d.ts +64 -0
  1316. package/dist/mcp-servers/paypal.js +1257 -0
  1317. package/dist/mcp-servers/payrun.d.ts +36 -0
  1318. package/dist/mcp-servers/payrun.js +424 -0
  1319. package/dist/mcp-servers/pdfblocks.d.ts +43 -0
  1320. package/dist/mcp-servers/pdfblocks.js +364 -0
  1321. package/dist/mcp-servers/pdfgeneratorapi.d.ts +42 -0
  1322. package/dist/mcp-servers/pdfgeneratorapi.js +350 -0
  1323. package/dist/mcp-servers/pendo.d.ts +47 -0
  1324. package/dist/mcp-servers/pendo.js +479 -0
  1325. package/dist/mcp-servers/persona.d.ts +53 -0
  1326. package/dist/mcp-servers/persona.js +606 -0
  1327. package/dist/mcp-servers/personio-de-authentication.d.ts +32 -0
  1328. package/dist/mcp-servers/personio-de-authentication.js +97 -0
  1329. package/dist/mcp-servers/pinecone.d.ts +50 -0
  1330. package/dist/mcp-servers/pinecone.js +579 -0
  1331. package/dist/mcp-servers/ping-identity.d.ts +54 -0
  1332. package/dist/mcp-servers/ping-identity.js +633 -0
  1333. package/dist/mcp-servers/pipedrive.d.ts +61 -0
  1334. package/dist/mcp-servers/pipedrive.js +844 -0
  1335. package/dist/mcp-servers/pitchbook.d.ts +45 -0
  1336. package/dist/mcp-servers/pitchbook.js +575 -0
  1337. package/dist/mcp-servers/plaid-investments.d.ts +36 -0
  1338. package/dist/mcp-servers/plaid-investments.js +149 -0
  1339. package/dist/mcp-servers/plaid.d.ts +54 -0
  1340. package/dist/mcp-servers/plaid.js +640 -0
  1341. package/dist/mcp-servers/planetscale.d.ts +49 -0
  1342. package/dist/mcp-servers/planetscale.js +405 -0
  1343. package/dist/mcp-servers/plangrid.d.ts +47 -0
  1344. package/dist/mcp-servers/plangrid.js +647 -0
  1345. package/dist/mcp-servers/plivo.d.ts +53 -0
  1346. package/dist/mcp-servers/plivo.js +438 -0
  1347. package/dist/mcp-servers/polygon-io.d.ts +45 -0
  1348. package/dist/mcp-servers/polygon-io.js +435 -0
  1349. package/dist/mcp-servers/polygon.d.ts +41 -0
  1350. package/dist/mcp-servers/polygon.js +389 -0
  1351. package/dist/mcp-servers/portfoliooptimizer.d.ts +30 -0
  1352. package/dist/mcp-servers/portfoliooptimizer.js +1187 -0
  1353. package/dist/mcp-servers/postgresql.d.ts +50 -0
  1354. package/dist/mcp-servers/postgresql.js +503 -0
  1355. package/dist/mcp-servers/postman.d.ts +51 -0
  1356. package/dist/mcp-servers/postman.js +559 -0
  1357. package/dist/mcp-servers/postmark.d.ts +48 -0
  1358. package/dist/mcp-servers/postmark.js +401 -0
  1359. package/dist/mcp-servers/postmarkapp-account.d.ts +56 -0
  1360. package/dist/mcp-servers/postmarkapp-account.js +574 -0
  1361. package/dist/mcp-servers/postmarkapp-server.d.ts +43 -0
  1362. package/dist/mcp-servers/postmarkapp-server.js +603 -0
  1363. package/dist/mcp-servers/power-bi.d.ts +60 -0
  1364. package/dist/mcp-servers/power-bi.js +548 -0
  1365. package/dist/mcp-servers/powerschool.d.ts +52 -0
  1366. package/dist/mcp-servers/powerschool.js +519 -0
  1367. package/dist/mcp-servers/presalytics-ooxml.d.ts +104 -0
  1368. package/dist/mcp-servers/presalytics-ooxml.js +1243 -0
  1369. package/dist/mcp-servers/presalytics-story.d.ts +64 -0
  1370. package/dist/mcp-servers/presalytics-story.js +644 -0
  1371. package/dist/mcp-servers/pressassociation.d.ts +45 -0
  1372. package/dist/mcp-servers/pressassociation.js +405 -0
  1373. package/dist/mcp-servers/prisma-cloud.d.ts +51 -0
  1374. package/dist/mcp-servers/prisma-cloud.js +573 -0
  1375. package/dist/mcp-servers/probely.d.ts +50 -0
  1376. package/dist/mcp-servers/probely.js +525 -0
  1377. package/dist/mcp-servers/procore.d.ts +50 -0
  1378. package/dist/mcp-servers/procore.js +397 -0
  1379. package/dist/mcp-servers/productboard.d.ts +49 -0
  1380. package/dist/mcp-servers/productboard.js +597 -0
  1381. package/dist/mcp-servers/project44.d.ts +48 -0
  1382. package/dist/mcp-servers/project44.js +355 -0
  1383. package/dist/mcp-servers/prometheus.d.ts +57 -0
  1384. package/dist/mcp-servers/prometheus.js +517 -0
  1385. package/dist/mcp-servers/proofpoint.d.ts +44 -0
  1386. package/dist/mcp-servers/proofpoint.js +550 -0
  1387. package/dist/mcp-servers/prss.d.ts +64 -0
  1388. package/dist/mcp-servers/prss.js +865 -0
  1389. package/dist/mcp-servers/pulumi.d.ts +59 -0
  1390. package/dist/mcp-servers/pulumi.js +543 -0
  1391. package/dist/mcp-servers/qradar.d.ts +56 -0
  1392. package/dist/mcp-servers/qradar.js +667 -0
  1393. package/dist/mcp-servers/qualpay.d.ts +41 -0
  1394. package/dist/mcp-servers/qualpay.js +845 -0
  1395. package/dist/mcp-servers/qualtrics.d.ts +51 -0
  1396. package/dist/mcp-servers/qualtrics.js +451 -0
  1397. package/dist/mcp-servers/qualys.d.ts +54 -0
  1398. package/dist/mcp-servers/qualys.js +627 -0
  1399. package/dist/mcp-servers/quickbooks.d.ts +51 -0
  1400. package/dist/mcp-servers/quickbooks.js +681 -0
  1401. package/dist/mcp-servers/quicknode.d.ts +48 -0
  1402. package/dist/mcp-servers/quicknode.js +375 -0
  1403. package/dist/mcp-servers/railway.d.ts +45 -0
  1404. package/dist/mcp-servers/railway.js +658 -0
  1405. package/dist/mcp-servers/ramp.d.ts +52 -0
  1406. package/dist/mcp-servers/ramp.js +767 -0
  1407. package/dist/mcp-servers/rapid7.d.ts +50 -0
  1408. package/dist/mcp-servers/rapid7.js +775 -0
  1409. package/dist/mcp-servers/readme.d.ts +60 -0
  1410. package/dist/mcp-servers/readme.js +614 -0
  1411. package/dist/mcp-servers/rebilly.d.ts +61 -0
  1412. package/dist/mcp-servers/rebilly.js +694 -0
  1413. package/dist/mcp-servers/recorded-future.d.ts +43 -0
  1414. package/dist/mcp-servers/recorded-future.js +601 -0
  1415. package/dist/mcp-servers/recurly.d.ts +56 -0
  1416. package/dist/mcp-servers/recurly.js +984 -0
  1417. package/dist/mcp-servers/reddit.d.ts +52 -0
  1418. package/dist/mcp-servers/reddit.js +518 -0
  1419. package/dist/mcp-servers/redeal-analytics.d.ts +32 -0
  1420. package/dist/mcp-servers/redeal-analytics.js +197 -0
  1421. package/dist/mcp-servers/redis.d.ts +40 -0
  1422. package/dist/mcp-servers/redis.js +781 -0
  1423. package/dist/mcp-servers/redox.d.ts +52 -0
  1424. package/dist/mcp-servers/redox.js +491 -0
  1425. package/dist/mcp-servers/redshift.d.ts +42 -0
  1426. package/dist/mcp-servers/redshift.js +565 -0
  1427. package/dist/mcp-servers/refinitiv.d.ts +46 -0
  1428. package/dist/mcp-servers/refinitiv.js +362 -0
  1429. package/dist/mcp-servers/regcheck-uk.d.ts +40 -0
  1430. package/dist/mcp-servers/regcheck-uk.js +232 -0
  1431. package/dist/mcp-servers/relativity.d.ts +61 -0
  1432. package/dist/mcp-servers/relativity.js +701 -0
  1433. package/dist/mcp-servers/reloadly.d.ts +37 -0
  1434. package/dist/mcp-servers/reloadly.js +172 -0
  1435. package/dist/mcp-servers/render.d.ts +60 -0
  1436. package/dist/mcp-servers/render.js +727 -0
  1437. package/dist/mcp-servers/replicate.d.ts +46 -0
  1438. package/dist/mcp-servers/replicate.js +445 -0
  1439. package/dist/mcp-servers/restful4up.d.ts +34 -0
  1440. package/dist/mcp-servers/restful4up.js +279 -0
  1441. package/dist/mcp-servers/retool.d.ts +48 -0
  1442. package/dist/mcp-servers/retool.js +519 -0
  1443. package/dist/mcp-servers/ringcentral.d.ts +59 -0
  1444. package/dist/mcp-servers/ringcentral.js +811 -0
  1445. package/dist/mcp-servers/rippling.d.ts +48 -0
  1446. package/dist/mcp-servers/rippling.js +445 -0
  1447. package/dist/mcp-servers/robin.d.ts +52 -0
  1448. package/dist/mcp-servers/robin.js +599 -0
  1449. package/dist/mcp-servers/rootly.d.ts +44 -0
  1450. package/dist/mcp-servers/rootly.js +607 -0
  1451. package/dist/mcp-servers/rottentomatoes.d.ts +37 -0
  1452. package/dist/mcp-servers/rottentomatoes.js +432 -0
  1453. package/dist/mcp-servers/royalmail-click-and-drop.d.ts +46 -0
  1454. package/dist/mcp-servers/royalmail-click-and-drop.js +431 -0
  1455. package/dist/mcp-servers/rudder-example.d.ts +77 -0
  1456. package/dist/mcp-servers/rudder-example.js +1049 -0
  1457. package/dist/mcp-servers/rumble-run.d.ts +42 -0
  1458. package/dist/mcp-servers/rumble-run.js +326 -0
  1459. package/dist/mcp-servers/runscope.d.ts +52 -0
  1460. package/dist/mcp-servers/runscope.js +377 -0
  1461. package/dist/mcp-servers/sabre.d.ts +51 -0
  1462. package/dist/mcp-servers/sabre.js +649 -0
  1463. package/dist/mcp-servers/sage-intacct.d.ts +58 -0
  1464. package/dist/mcp-servers/sage-intacct.js +713 -0
  1465. package/dist/mcp-servers/salesforce.d.ts +52 -0
  1466. package/dist/mcp-servers/salesforce.js +511 -0
  1467. package/dist/mcp-servers/salesloft.d.ts +53 -0
  1468. package/dist/mcp-servers/salesloft.js +819 -0
  1469. package/dist/mcp-servers/samsara.d.ts +56 -0
  1470. package/dist/mcp-servers/samsara.js +707 -0
  1471. package/dist/mcp-servers/sanity.d.ts +53 -0
  1472. package/dist/mcp-servers/sanity.js +507 -0
  1473. package/dist/mcp-servers/sap-s4hana.d.ts +58 -0
  1474. package/dist/mcp-servers/sap-s4hana.js +647 -0
  1475. package/dist/mcp-servers/sauce-labs.d.ts +54 -0
  1476. package/dist/mcp-servers/sauce-labs.js +557 -0
  1477. package/dist/mcp-servers/scale-ai.d.ts +46 -0
  1478. package/dist/mcp-servers/scale-ai.js +590 -0
  1479. package/dist/mcp-servers/schooldigger.d.ts +41 -0
  1480. package/dist/mcp-servers/schooldigger.js +297 -0
  1481. package/dist/mcp-servers/schoology.d.ts +57 -0
  1482. package/dist/mcp-servers/schoology.js +652 -0
  1483. package/dist/mcp-servers/scideas-perfectpdf.d.ts +31 -0
  1484. package/dist/mcp-servers/scideas-perfectpdf.js +102 -0
  1485. package/dist/mcp-servers/sec-edgar.d.ts +40 -0
  1486. package/dist/mcp-servers/sec-edgar.js +316 -0
  1487. package/dist/mcp-servers/secureframe.d.ts +45 -0
  1488. package/dist/mcp-servers/secureframe.js +380 -0
  1489. package/dist/mcp-servers/securonix.d.ts +52 -0
  1490. package/dist/mcp-servers/securonix.js +635 -0
  1491. package/dist/mcp-servers/segment.d.ts +65 -0
  1492. package/dist/mcp-servers/segment.js +984 -0
  1493. package/dist/mcp-servers/selectpdf.d.ts +36 -0
  1494. package/dist/mcp-servers/selectpdf.js +256 -0
  1495. package/dist/mcp-servers/semantic-scholar.d.ts +42 -0
  1496. package/dist/mcp-servers/semantic-scholar.js +436 -0
  1497. package/dist/mcp-servers/semantria.d.ts +48 -0
  1498. package/dist/mcp-servers/semantria.js +332 -0
  1499. package/dist/mcp-servers/semrush.d.ts +45 -0
  1500. package/dist/mcp-servers/semrush.js +568 -0
  1501. package/dist/mcp-servers/sendgrid.d.ts +55 -0
  1502. package/dist/mcp-servers/sendgrid.js +889 -0
  1503. package/dist/mcp-servers/sentinel.d.ts +63 -0
  1504. package/dist/mcp-servers/sentinel.js +1001 -0
  1505. package/dist/mcp-servers/sentinelone.d.ts +48 -0
  1506. package/dist/mcp-servers/sentinelone.js +676 -0
  1507. package/dist/mcp-servers/sentry.d.ts +38 -0
  1508. package/dist/mcp-servers/sentry.js +598 -0
  1509. package/dist/mcp-servers/servicenow-grc.d.ts +41 -0
  1510. package/dist/mcp-servers/servicenow-grc.js +541 -0
  1511. package/dist/mcp-servers/servicenow-itsm.d.ts +44 -0
  1512. package/dist/mcp-servers/servicenow-itsm.js +751 -0
  1513. package/dist/mcp-servers/shipengine.d.ts +49 -0
  1514. package/dist/mcp-servers/shipengine.js +568 -0
  1515. package/dist/mcp-servers/shippo.d.ts +46 -0
  1516. package/dist/mcp-servers/shippo.js +422 -0
  1517. package/dist/mcp-servers/shipstation.d.ts +50 -0
  1518. package/dist/mcp-servers/shipstation.js +630 -0
  1519. package/dist/mcp-servers/shop-pro-jp.d.ts +44 -0
  1520. package/dist/mcp-servers/shop-pro-jp.js +425 -0
  1521. package/dist/mcp-servers/shopify.d.ts +51 -0
  1522. package/dist/mcp-servers/shopify.js +813 -0
  1523. package/dist/mcp-servers/shortcut.d.ts +54 -0
  1524. package/dist/mcp-servers/shortcut.js +725 -0
  1525. package/dist/mcp-servers/shotstack.d.ts +44 -0
  1526. package/dist/mcp-servers/shotstack.js +303 -0
  1527. package/dist/mcp-servers/shutterstock.d.ts +52 -0
  1528. package/dist/mcp-servers/shutterstock.js +575 -0
  1529. package/dist/mcp-servers/siemens-mindsphere.d.ts +54 -0
  1530. package/dist/mcp-servers/siemens-mindsphere.js +527 -0
  1531. package/dist/mcp-servers/signl4.d.ts +39 -0
  1532. package/dist/mcp-servers/signl4.js +252 -0
  1533. package/dist/mcp-servers/similarweb.d.ts +43 -0
  1534. package/dist/mcp-servers/similarweb.js +464 -0
  1535. package/dist/mcp-servers/simplyrets.d.ts +38 -0
  1536. package/dist/mcp-servers/simplyrets.js +208 -0
  1537. package/dist/mcp-servers/slack.d.ts +52 -0
  1538. package/dist/mcp-servers/slack.js +720 -0
  1539. package/dist/mcp-servers/slicebox.d.ts +55 -0
  1540. package/dist/mcp-servers/slicebox.js +582 -0
  1541. package/dist/mcp-servers/slideroom.d.ts +45 -0
  1542. package/dist/mcp-servers/slideroom.js +418 -0
  1543. package/dist/mcp-servers/smart-me.d.ts +54 -0
  1544. package/dist/mcp-servers/smart-me.js +635 -0
  1545. package/dist/mcp-servers/smartsheet.d.ts +56 -0
  1546. package/dist/mcp-servers/smartsheet.js +858 -0
  1547. package/dist/mcp-servers/sms77.d.ts +48 -0
  1548. package/dist/mcp-servers/sms77.js +625 -0
  1549. package/dist/mcp-servers/snipe-it.d.ts +49 -0
  1550. package/dist/mcp-servers/snipe-it.js +676 -0
  1551. package/dist/mcp-servers/snowflake.d.ts +50 -0
  1552. package/dist/mcp-servers/snowflake.js +529 -0
  1553. package/dist/mcp-servers/snyk.d.ts +53 -0
  1554. package/dist/mcp-servers/snyk.js +737 -0
  1555. package/dist/mcp-servers/sonar-trading.d.ts +33 -0
  1556. package/dist/mcp-servers/sonar-trading.js +191 -0
  1557. package/dist/mcp-servers/sonarqube.d.ts +44 -0
  1558. package/dist/mcp-servers/sonarqube.js +554 -0
  1559. package/dist/mcp-servers/sonatype-nexus.d.ts +47 -0
  1560. package/dist/mcp-servers/sonatype-nexus.js +500 -0
  1561. package/dist/mcp-servers/sophos.d.ts +61 -0
  1562. package/dist/mcp-servers/sophos.js +542 -0
  1563. package/dist/mcp-servers/spectrocoin.d.ts +33 -0
  1564. package/dist/mcp-servers/spectrocoin.js +172 -0
  1565. package/dist/mcp-servers/splunk-observability.d.ts +54 -0
  1566. package/dist/mcp-servers/splunk-observability.js +635 -0
  1567. package/dist/mcp-servers/splunk.d.ts +49 -0
  1568. package/dist/mcp-servers/splunk.js +626 -0
  1569. package/dist/mcp-servers/spoonacular.d.ts +52 -0
  1570. package/dist/mcp-servers/spoonacular.js +691 -0
  1571. package/dist/mcp-servers/spotify-sonallux.d.ts +51 -0
  1572. package/dist/mcp-servers/spotify-sonallux.js +1660 -0
  1573. package/dist/mcp-servers/spotify.d.ts +51 -0
  1574. package/dist/mcp-servers/spotify.js +652 -0
  1575. package/dist/mcp-servers/sprinto.d.ts +44 -0
  1576. package/dist/mcp-servers/sprinto.js +590 -0
  1577. package/dist/mcp-servers/sprout-social.d.ts +55 -0
  1578. package/dist/mcp-servers/sprout-social.js +541 -0
  1579. package/dist/mcp-servers/square.d.ts +59 -0
  1580. package/dist/mcp-servers/square.js +798 -0
  1581. package/dist/mcp-servers/squarespace.d.ts +50 -0
  1582. package/dist/mcp-servers/squarespace.js +530 -0
  1583. package/dist/mcp-servers/stackexchange.d.ts +47 -0
  1584. package/dist/mcp-servers/stackexchange.js +414 -0
  1585. package/dist/mcp-servers/stackoverflow.d.ts +53 -0
  1586. package/dist/mcp-servers/stackoverflow.js +716 -0
  1587. package/dist/mcp-servers/statsig.d.ts +57 -0
  1588. package/dist/mcp-servers/statsig.js +591 -0
  1589. package/dist/mcp-servers/statsocial.d.ts +37 -0
  1590. package/dist/mcp-servers/statsocial.js +266 -0
  1591. package/dist/mcp-servers/statuspage.d.ts +58 -0
  1592. package/dist/mcp-servers/statuspage.js +576 -0
  1593. package/dist/mcp-servers/stellastra.d.ts +32 -0
  1594. package/dist/mcp-servers/stellastra.js +117 -0
  1595. package/dist/mcp-servers/stormglass.d.ts +31 -0
  1596. package/dist/mcp-servers/stormglass.js +142 -0
  1597. package/dist/mcp-servers/strapi.d.ts +50 -0
  1598. package/dist/mcp-servers/strapi.js +604 -0
  1599. package/dist/mcp-servers/stripe.d.ts +56 -0
  1600. package/dist/mcp-servers/stripe.js +920 -0
  1601. package/dist/mcp-servers/stytch.d.ts +53 -0
  1602. package/dist/mcp-servers/stytch.js +557 -0
  1603. package/dist/mcp-servers/substack.d.ts +44 -0
  1604. package/dist/mcp-servers/substack.js +388 -0
  1605. package/dist/mcp-servers/sumo-logic.d.ts +55 -0
  1606. package/dist/mcp-servers/sumo-logic.js +513 -0
  1607. package/dist/mcp-servers/supabase.d.ts +60 -0
  1608. package/dist/mcp-servers/supabase.js +527 -0
  1609. package/dist/mcp-servers/surevoip-uk.d.ts +44 -0
  1610. package/dist/mcp-servers/surevoip-uk.js +539 -0
  1611. package/dist/mcp-servers/surveymonkey.d.ts +54 -0
  1612. package/dist/mcp-servers/surveymonkey.js +695 -0
  1613. package/dist/mcp-servers/svix.d.ts +54 -0
  1614. package/dist/mcp-servers/svix.js +452 -0
  1615. package/dist/mcp-servers/swagger-generator.d.ts +42 -0
  1616. package/dist/mcp-servers/swagger-generator.js +239 -0
  1617. package/dist/mcp-servers/swaggerhub.d.ts +58 -0
  1618. package/dist/mcp-servers/swaggerhub.js +461 -0
  1619. package/dist/mcp-servers/symanto.d.ts +38 -0
  1620. package/dist/mcp-servers/symanto.js +329 -0
  1621. package/dist/mcp-servers/synq-fm.d.ts +39 -0
  1622. package/dist/mcp-servers/synq-fm.js +238 -0
  1623. package/dist/mcp-servers/tableau.d.ts +58 -0
  1624. package/dist/mcp-servers/tableau.js +471 -0
  1625. package/dist/mcp-servers/taggun.d.ts +48 -0
  1626. package/dist/mcp-servers/taggun.js +456 -0
  1627. package/dist/mcp-servers/taxamo.d.ts +52 -0
  1628. package/dist/mcp-servers/taxamo.js +587 -0
  1629. package/dist/mcp-servers/taxrates.d.ts +35 -0
  1630. package/dist/mcp-servers/taxrates.js +202 -0
  1631. package/dist/mcp-servers/teamcity.d.ts +58 -0
  1632. package/dist/mcp-servers/teamcity.js +670 -0
  1633. package/dist/mcp-servers/telegram.d.ts +52 -0
  1634. package/dist/mcp-servers/telegram.js +762 -0
  1635. package/dist/mcp-servers/telematicssdk.d.ts +53 -0
  1636. package/dist/mcp-servers/telematicssdk.js +382 -0
  1637. package/dist/mcp-servers/telnyx.d.ts +51 -0
  1638. package/dist/mcp-servers/telnyx.js +655 -0
  1639. package/dist/mcp-servers/tenable.d.ts +54 -0
  1640. package/dist/mcp-servers/tenable.js +475 -0
  1641. package/dist/mcp-servers/terraform-registry.d.ts +66 -0
  1642. package/dist/mcp-servers/terraform-registry.js +668 -0
  1643. package/dist/mcp-servers/text2data.d.ts +36 -0
  1644. package/dist/mcp-servers/text2data.js +201 -0
  1645. package/dist/mcp-servers/tfl-uk.d.ts +45 -0
  1646. package/dist/mcp-servers/tfl-uk.js +382 -0
  1647. package/dist/mcp-servers/the-graph.d.ts +44 -0
  1648. package/dist/mcp-servers/the-graph.js +497 -0
  1649. package/dist/mcp-servers/the-trade-desk.d.ts +54 -0
  1650. package/dist/mcp-servers/the-trade-desk.js +666 -0
  1651. package/dist/mcp-servers/thenounproject.d.ts +45 -0
  1652. package/dist/mcp-servers/thenounproject.js +460 -0
  1653. package/dist/mcp-servers/thesmsworks-uk.d.ts +52 -0
  1654. package/dist/mcp-servers/thesmsworks-uk.js +698 -0
  1655. package/dist/mcp-servers/threatconnect.d.ts +55 -0
  1656. package/dist/mcp-servers/threatconnect.js +641 -0
  1657. package/dist/mcp-servers/threatjammer.d.ts +41 -0
  1658. package/dist/mcp-servers/threatjammer.js +277 -0
  1659. package/dist/mcp-servers/ticketmaster-commerce.d.ts +33 -0
  1660. package/dist/mcp-servers/ticketmaster-commerce.js +106 -0
  1661. package/dist/mcp-servers/ticketmaster-discovery.d.ts +44 -0
  1662. package/dist/mcp-servers/ticketmaster-discovery.js +409 -0
  1663. package/dist/mcp-servers/tiktok-ads.d.ts +48 -0
  1664. package/dist/mcp-servers/tiktok-ads.js +774 -0
  1665. package/dist/mcp-servers/tines.d.ts +50 -0
  1666. package/dist/mcp-servers/tines.js +571 -0
  1667. package/dist/mcp-servers/tipalti.d.ts +45 -0
  1668. package/dist/mcp-servers/tipalti.js +433 -0
  1669. package/dist/mcp-servers/tisane.d.ts +41 -0
  1670. package/dist/mcp-servers/tisane.js +300 -0
  1671. package/dist/mcp-servers/toast.d.ts +49 -0
  1672. package/dist/mcp-servers/toast.js +486 -0
  1673. package/dist/mcp-servers/together-ai.d.ts +46 -0
  1674. package/dist/mcp-servers/together-ai.js +519 -0
  1675. package/dist/mcp-servers/tomorrow-io.d.ts +41 -0
  1676. package/dist/mcp-servers/tomorrow-io.js +475 -0
  1677. package/dist/mcp-servers/tomtom.d.ts +41 -0
  1678. package/dist/mcp-servers/tomtom.js +507 -0
  1679. package/dist/mcp-servers/traccar.d.ts +48 -0
  1680. package/dist/mcp-servers/traccar.js +478 -0
  1681. package/dist/mcp-servers/tradematic.d.ts +33 -0
  1682. package/dist/mcp-servers/tradematic.js +511 -0
  1683. package/dist/mcp-servers/transavia.d.ts +31 -0
  1684. package/dist/mcp-servers/transavia.js +200 -0
  1685. package/dist/mcp-servers/transunion.d.ts +47 -0
  1686. package/dist/mcp-servers/transunion.js +568 -0
  1687. package/dist/mcp-servers/travelport.d.ts +50 -0
  1688. package/dist/mcp-servers/travelport.js +669 -0
  1689. package/dist/mcp-servers/trellix-edr.d.ts +53 -0
  1690. package/dist/mcp-servers/trellix-edr.js +476 -0
  1691. package/dist/mcp-servers/trello.d.ts +50 -0
  1692. package/dist/mcp-servers/trello.js +739 -0
  1693. package/dist/mcp-servers/trend-micro.d.ts +46 -0
  1694. package/dist/mcp-servers/trend-micro.js +480 -0
  1695. package/dist/mcp-servers/truanon.d.ts +39 -0
  1696. package/dist/mcp-servers/truanon.js +132 -0
  1697. package/dist/mcp-servers/truesight.d.ts +63 -0
  1698. package/dist/mcp-servers/truesight.js +610 -0
  1699. package/dist/mcp-servers/truora.d.ts +64 -0
  1700. package/dist/mcp-servers/truora.js +750 -0
  1701. package/dist/mcp-servers/turbinelabs.d.ts +71 -0
  1702. package/dist/mcp-servers/turbinelabs.js +823 -0
  1703. package/dist/mcp-servers/twilio.d.ts +58 -0
  1704. package/dist/mcp-servers/twilio.js +573 -0
  1705. package/dist/mcp-servers/twinehealth.d.ts +66 -0
  1706. package/dist/mcp-servers/twinehealth.js +836 -0
  1707. package/dist/mcp-servers/twitch.d.ts +53 -0
  1708. package/dist/mcp-servers/twitch.js +595 -0
  1709. package/dist/mcp-servers/twitter.d.ts +60 -0
  1710. package/dist/mcp-servers/twitter.js +703 -0
  1711. package/dist/mcp-servers/typeform.d.ts +55 -0
  1712. package/dist/mcp-servers/typeform.js +766 -0
  1713. package/dist/mcp-servers/types.d.ts +20 -0
  1714. package/dist/mcp-servers/types.js +5 -0
  1715. package/dist/mcp-servers/unicourt.d.ts +51 -0
  1716. package/dist/mcp-servers/unicourt.js +540 -0
  1717. package/dist/mcp-servers/unit.d.ts +50 -0
  1718. package/dist/mcp-servers/unit.js +478 -0
  1719. package/dist/mcp-servers/ups.d.ts +48 -0
  1720. package/dist/mcp-servers/ups.js +649 -0
  1721. package/dist/mcp-servers/upstash.d.ts +50 -0
  1722. package/dist/mcp-servers/upstash.js +421 -0
  1723. package/dist/mcp-servers/usps.d.ts +48 -0
  1724. package/dist/mcp-servers/usps.js +540 -0
  1725. package/dist/mcp-servers/uspto.d.ts +44 -0
  1726. package/dist/mcp-servers/uspto.js +462 -0
  1727. package/dist/mcp-servers/va-benefits.d.ts +36 -0
  1728. package/dist/mcp-servers/va-benefits.js +199 -0
  1729. package/dist/mcp-servers/va-confirmation.d.ts +31 -0
  1730. package/dist/mcp-servers/va-confirmation.js +130 -0
  1731. package/dist/mcp-servers/va-facilities.d.ts +34 -0
  1732. package/dist/mcp-servers/va-facilities.js +246 -0
  1733. package/dist/mcp-servers/va-forms.d.ts +33 -0
  1734. package/dist/mcp-servers/va-forms.js +128 -0
  1735. package/dist/mcp-servers/vanta.d.ts +35 -0
  1736. package/dist/mcp-servers/vanta.js +407 -0
  1737. package/dist/mcp-servers/vatapi.d.ts +39 -0
  1738. package/dist/mcp-servers/vatapi.js +309 -0
  1739. package/dist/mcp-servers/vectara.d.ts +40 -0
  1740. package/dist/mcp-servers/vectara.js +536 -0
  1741. package/dist/mcp-servers/vectra-ai.d.ts +52 -0
  1742. package/dist/mcp-servers/vectra-ai.js +630 -0
  1743. package/dist/mcp-servers/veeva.d.ts +54 -0
  1744. package/dist/mcp-servers/veeva.js +530 -0
  1745. package/dist/mcp-servers/velopayments.d.ts +52 -0
  1746. package/dist/mcp-servers/velopayments.js +469 -0
  1747. package/dist/mcp-servers/veracode.d.ts +32 -0
  1748. package/dist/mcp-servers/veracode.js +402 -0
  1749. package/dist/mcp-servers/vercel.d.ts +55 -0
  1750. package/dist/mcp-servers/vercel.js +582 -0
  1751. package/dist/mcp-servers/vertafore.d.ts +52 -0
  1752. package/dist/mcp-servers/vertafore.js +623 -0
  1753. package/dist/mcp-servers/viator.d.ts +49 -0
  1754. package/dist/mcp-servers/viator.js +425 -0
  1755. package/dist/mcp-servers/victorops.d.ts +53 -0
  1756. package/dist/mcp-servers/victorops.js +408 -0
  1757. package/dist/mcp-servers/vimeo.d.ts +50 -0
  1758. package/dist/mcp-servers/vimeo.js +626 -0
  1759. package/dist/mcp-servers/visagecloud.d.ts +50 -0
  1760. package/dist/mcp-servers/visagecloud.js +387 -0
  1761. package/dist/mcp-servers/visualcrossing-weather.d.ts +37 -0
  1762. package/dist/mcp-servers/visualcrossing-weather.js +356 -0
  1763. package/dist/mcp-servers/visualstudio.d.ts +47 -0
  1764. package/dist/mcp-servers/visualstudio.js +440 -0
  1765. package/dist/mcp-servers/vmware-vrni.d.ts +46 -0
  1766. package/dist/mcp-servers/vmware-vrni.js +2038 -0
  1767. package/dist/mcp-servers/vonage.d.ts +50 -0
  1768. package/dist/mcp-servers/vonage.js +597 -0
  1769. package/dist/mcp-servers/walletobjects-googleapis-pay-passes.d.ts +38 -0
  1770. package/dist/mcp-servers/walletobjects-googleapis-pay-passes.js +620 -0
  1771. package/dist/mcp-servers/walmart-inventory.d.ts +40 -0
  1772. package/dist/mcp-servers/walmart-inventory.js +352 -0
  1773. package/dist/mcp-servers/walmart-item.d.ts +38 -0
  1774. package/dist/mcp-servers/walmart-item.js +231 -0
  1775. package/dist/mcp-servers/walmart-order.d.ts +46 -0
  1776. package/dist/mcp-servers/walmart-order.js +424 -0
  1777. package/dist/mcp-servers/walmart-price.d.ts +36 -0
  1778. package/dist/mcp-servers/walmart-price.js +192 -0
  1779. package/dist/mcp-servers/wandb.d.ts +43 -0
  1780. package/dist/mcp-servers/wandb.js +536 -0
  1781. package/dist/mcp-servers/warwick-ac-uk-enterobase.d.ts +40 -0
  1782. package/dist/mcp-servers/warwick-ac-uk-enterobase.js +362 -0
  1783. package/dist/mcp-servers/wealthreader.d.ts +33 -0
  1784. package/dist/mcp-servers/wealthreader.js +210 -0
  1785. package/dist/mcp-servers/weatherbit.d.ts +41 -0
  1786. package/dist/mcp-servers/weatherbit.js +411 -0
  1787. package/dist/mcp-servers/webex.d.ts +56 -0
  1788. package/dist/mcp-servers/webex.js +748 -0
  1789. package/dist/mcp-servers/webflow.d.ts +54 -0
  1790. package/dist/mcp-servers/webflow.js +507 -0
  1791. package/dist/mcp-servers/webscraping.d.ts +35 -0
  1792. package/dist/mcp-servers/webscraping.js +266 -0
  1793. package/dist/mcp-servers/whatsapp-business.d.ts +52 -0
  1794. package/dist/mcp-servers/whatsapp-business.js +527 -0
  1795. package/dist/mcp-servers/whatsapp.d.ts +44 -0
  1796. package/dist/mcp-servers/whatsapp.js +356 -0
  1797. package/dist/mcp-servers/wheretocredit.d.ts +34 -0
  1798. package/dist/mcp-servers/wheretocredit.js +178 -0
  1799. package/dist/mcp-servers/wikimedia.d.ts +42 -0
  1800. package/dist/mcp-servers/wikimedia.js +411 -0
  1801. package/dist/mcp-servers/windows-batch-batchservice.d.ts +73 -0
  1802. package/dist/mcp-servers/windows-batch-batchservice.js +795 -0
  1803. package/dist/mcp-servers/windows-graphrbac.d.ts +65 -0
  1804. package/dist/mcp-servers/windows-graphrbac.js +714 -0
  1805. package/dist/mcp-servers/wistia.d.ts +54 -0
  1806. package/dist/mcp-servers/wistia.js +497 -0
  1807. package/dist/mcp-servers/wix.d.ts +58 -0
  1808. package/dist/mcp-servers/wix.js +545 -0
  1809. package/dist/mcp-servers/wiz.d.ts +51 -0
  1810. package/dist/mcp-servers/wiz.js +562 -0
  1811. package/dist/mcp-servers/woocommerce.d.ts +68 -0
  1812. package/dist/mcp-servers/woocommerce.js +733 -0
  1813. package/dist/mcp-servers/wordnik.d.ts +46 -0
  1814. package/dist/mcp-servers/wordnik.js +670 -0
  1815. package/dist/mcp-servers/workday.d.ts +48 -0
  1816. package/dist/mcp-servers/workday.js +302 -0
  1817. package/dist/mcp-servers/workos.d.ts +57 -0
  1818. package/dist/mcp-servers/workos.js +531 -0
  1819. package/dist/mcp-servers/wowza.d.ts +38 -0
  1820. package/dist/mcp-servers/wowza.js +475 -0
  1821. package/dist/mcp-servers/wrike.d.ts +56 -0
  1822. package/dist/mcp-servers/wrike.js +426 -0
  1823. package/dist/mcp-servers/wso2apistore-transform.d.ts +30 -0
  1824. package/dist/mcp-servers/wso2apistore-transform.js +213 -0
  1825. package/dist/mcp-servers/xero.d.ts +50 -0
  1826. package/dist/mcp-servers/xero.js +446 -0
  1827. package/dist/mcp-servers/xmatters.d.ts +57 -0
  1828. package/dist/mcp-servers/xmatters.js +740 -0
  1829. package/dist/mcp-servers/xtrf-eu.d.ts +33 -0
  1830. package/dist/mcp-servers/xtrf-eu.js +394 -0
  1831. package/dist/mcp-servers/yardi.d.ts +62 -0
  1832. package/dist/mcp-servers/yardi.js +461 -0
  1833. package/dist/mcp-servers/yodlee.d.ts +36 -0
  1834. package/dist/mcp-servers/yodlee.js +526 -0
  1835. package/dist/mcp-servers/youneedabudget.d.ts +33 -0
  1836. package/dist/mcp-servers/youneedabudget.js +528 -0
  1837. package/dist/mcp-servers/youtube.d.ts +62 -0
  1838. package/dist/mcp-servers/youtube.js +932 -0
  1839. package/dist/mcp-servers/zalando.d.ts +44 -0
  1840. package/dist/mcp-servers/zalando.js +402 -0
  1841. package/dist/mcp-servers/zapier.d.ts +59 -0
  1842. package/dist/mcp-servers/zapier.js +396 -0
  1843. package/dist/mcp-servers/zendesk.d.ts +61 -0
  1844. package/dist/mcp-servers/zendesk.js +889 -0
  1845. package/dist/mcp-servers/zenoti.d.ts +49 -0
  1846. package/dist/mcp-servers/zenoti.js +509 -0
  1847. package/dist/mcp-servers/zillow.d.ts +46 -0
  1848. package/dist/mcp-servers/zillow.js +492 -0
  1849. package/dist/mcp-servers/zoho-crm.d.ts +50 -0
  1850. package/dist/mcp-servers/zoho-crm.js +698 -0
  1851. package/dist/mcp-servers/zoom.d.ts +57 -0
  1852. package/dist/mcp-servers/zoom.js +982 -0
  1853. package/dist/mcp-servers/zoomconnect.d.ts +56 -0
  1854. package/dist/mcp-servers/zoomconnect.js +779 -0
  1855. package/dist/mcp-servers/zoominfo.d.ts +43 -0
  1856. package/dist/mcp-servers/zoominfo.js +700 -0
  1857. package/dist/mcp-servers/zscaler.d.ts +58 -0
  1858. package/dist/mcp-servers/zscaler.js +625 -0
  1859. package/dist/mcp-servers/zuora.d.ts +55 -0
  1860. package/dist/mcp-servers/zuora.js +912 -0
  1861. package/dist/memory/PersistentMemory.d.ts +31 -0
  1862. package/dist/memory/PersistentMemory.js +97 -0
  1863. package/dist/memory/adapters/InMemoryStore.d.ts +20 -0
  1864. package/dist/memory/adapters/InMemoryStore.js +125 -0
  1865. package/dist/memory/adapters/RedisMongoAdapter.d.ts +56 -0
  1866. package/dist/memory/adapters/RedisMongoAdapter.js +217 -0
  1867. package/dist/memory/adapters/base.d.ts +6 -0
  1868. package/dist/memory/adapters/base.js +6 -0
  1869. package/dist/observability/EventEmitter.d.ts +68 -0
  1870. package/dist/observability/EventEmitter.js +157 -0
  1871. package/dist/observability/OpenTelemetry.d.ts +41 -0
  1872. package/dist/observability/OpenTelemetry.js +97 -0
  1873. package/dist/observability/PrometheusExporter.d.ts +24 -0
  1874. package/dist/observability/PrometheusExporter.js +185 -0
  1875. package/dist/observability/RunTelemetry.d.ts +66 -0
  1876. package/dist/observability/RunTelemetry.js +166 -0
  1877. package/dist/observability/TokenTracker.d.ts +60 -0
  1878. package/dist/observability/TokenTracker.js +90 -0
  1879. package/dist/orchestrator/GeneratorProvider.d.ts +14 -0
  1880. package/dist/orchestrator/GeneratorProvider.js +198 -0
  1881. package/dist/orchestrator/Orchestrator.d.ts +45 -0
  1882. package/dist/orchestrator/Orchestrator.js +370 -0
  1883. package/dist/orchestrator/OrchestratorProvider.d.ts +13 -0
  1884. package/dist/orchestrator/OrchestratorProvider.js +353 -0
  1885. package/dist/persona/PersonaManager.d.ts +41 -0
  1886. package/dist/persona/PersonaManager.js +70 -0
  1887. package/dist/persona/SystemPromptBuilder.d.ts +17 -0
  1888. package/dist/persona/SystemPromptBuilder.js +67 -0
  1889. package/dist/resilience/Checkpoint.d.ts +54 -0
  1890. package/dist/resilience/Checkpoint.js +95 -0
  1891. package/dist/resilience/ErrorClassifier.d.ts +29 -0
  1892. package/dist/resilience/ErrorClassifier.js +98 -0
  1893. package/dist/resilience/GracefulShutdown.d.ts +44 -0
  1894. package/dist/resilience/GracefulShutdown.js +78 -0
  1895. package/dist/resilience/PromptCache.d.ts +65 -0
  1896. package/dist/resilience/PromptCache.js +131 -0
  1897. package/dist/resilience/RateLimiter.d.ts +44 -0
  1898. package/dist/resilience/RateLimiter.js +74 -0
  1899. package/dist/retrieval/HybridRetriever.d.ts +28 -0
  1900. package/dist/retrieval/HybridRetriever.js +93 -0
  1901. package/dist/retrieval/RankFusion.d.ts +37 -0
  1902. package/dist/retrieval/RankFusion.js +89 -0
  1903. package/dist/retrieval/adapters/InMemoryAdapter.d.ts +36 -0
  1904. package/dist/retrieval/adapters/InMemoryAdapter.js +95 -0
  1905. package/dist/retrieval/adapters/QdrantAdapter.d.ts +47 -0
  1906. package/dist/retrieval/adapters/QdrantAdapter.js +146 -0
  1907. package/dist/retrieval/adapters/base.d.ts +6 -0
  1908. package/dist/retrieval/adapters/base.js +6 -0
  1909. package/dist/transport/JSONResponse.d.ts +13 -0
  1910. package/dist/transport/JSONResponse.js +30 -0
  1911. package/dist/transport/SSEWriter.d.ts +22 -0
  1912. package/dist/transport/SSEWriter.js +37 -0
  1913. package/dist/transport/StreamManager.d.ts +22 -0
  1914. package/dist/transport/StreamManager.js +40 -0
  1915. package/dist/trust/AccessPolicyEngine.d.ts +29 -0
  1916. package/dist/trust/AccessPolicyEngine.js +167 -0
  1917. package/dist/trust/ArtifactVerifier.d.ts +29 -0
  1918. package/dist/trust/ArtifactVerifier.js +168 -0
  1919. package/dist/trust/AuthMiddleware.d.ts +28 -0
  1920. package/dist/trust/AuthMiddleware.js +87 -0
  1921. package/dist/trust/PolicyLoader.d.ts +19 -0
  1922. package/dist/trust/PolicyLoader.js +68 -0
  1923. package/dist/trust/TenantContext.d.ts +25 -0
  1924. package/dist/trust/TenantContext.js +54 -0
  1925. package/dist/trust/index.d.ts +13 -0
  1926. package/dist/trust/index.js +11 -0
  1927. package/dist/trust/secrets/AWSSecretsManager.d.ts +16 -0
  1928. package/dist/trust/secrets/AWSSecretsManager.js +42 -0
  1929. package/dist/trust/secrets/AzureKeyVault.d.ts +16 -0
  1930. package/dist/trust/secrets/AzureKeyVault.js +42 -0
  1931. package/dist/trust/secrets/EnvSecretsProvider.d.ts +10 -0
  1932. package/dist/trust/secrets/EnvSecretsProvider.js +16 -0
  1933. package/dist/trust/secrets/SecretsProvider.d.ts +13 -0
  1934. package/dist/trust/secrets/SecretsProvider.js +28 -0
  1935. package/dist/trust/secrets/VaultProvider.d.ts +21 -0
  1936. package/dist/trust/secrets/VaultProvider.js +93 -0
  1937. package/dist/trust/types.d.ts +81 -0
  1938. package/dist/trust/types.js +8 -0
  1939. package/dist/types/index.d.ts +526 -0
  1940. package/dist/types/index.js +6 -0
  1941. package/package.json +137 -0
@@ -0,0 +1,1365 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Epic AI® Legion — CLI Entry Point
4
+ * `npx @epicai/legion` — setup wizard
5
+ * `npx @epicai/legion --serve` — MCP server mode
6
+ * `npx @epicai/legion add <name>` — add adapter
7
+ * `npx @epicai/legion remove <name>` — remove adapter
8
+ * `npx @epicai/legion health` — check adapter health
9
+ * `npx @epicai/legion list` — list all adapters
10
+ *
11
+ * Legion is an Intelligent Virtual Assistant (IVA) — the AI classifies intent,
12
+ * selects adapters, calls them, and synthesizes a response through your local
13
+ * SLM or cloud LLM.
14
+ *
15
+ * Built on the Epic AI® Intelligence Platform
16
+ * Copyright 2026 protectNIL Inc.
17
+ * Adapters: Elastic License 2.0 | SDK Framework: Apache-2.0
18
+ */
19
+ import { existsSync, readFileSync, writeFileSync, mkdirSync, chmodSync } from 'node:fs';
20
+ import { readFile } from 'node:fs/promises';
21
+ import { execSync } from 'node:child_process';
22
+ import { homedir } from 'node:os';
23
+ import { join } from 'node:path';
24
+ import { fileURLToPath } from 'node:url';
25
+ const EPIC_AI_DIR = join(homedir(), '.epic-ai');
26
+ const ENV_FILE = join(EPIC_AI_DIR, '.env');
27
+ const STATE_FILE = join(EPIC_AI_DIR, 'adapter-state.json');
28
+ const CONFIG_FILE = join(EPIC_AI_DIR, 'config.json');
29
+ // ─── Package root ───────────────────────────────────────────
30
+ function getPackageRoot() {
31
+ const thisFile = fileURLToPath(import.meta.url);
32
+ return join(thisFile, '..', '..', '..');
33
+ }
34
+ // ─── Catalog loading (single source: adapter-catalog.json from MongoDB) ─────
35
+ async function loadAllAdapters() {
36
+ try {
37
+ const catalogPath = join(getPackageRoot(), 'adapter-catalog.json');
38
+ const raw = await readFile(catalogPath, 'utf-8');
39
+ return JSON.parse(raw);
40
+ }
41
+ catch {
42
+ return [];
43
+ }
44
+ }
45
+ // ─── State management ───────────────────────────────────────
46
+ function ensureDir() {
47
+ if (!existsSync(EPIC_AI_DIR)) {
48
+ mkdirSync(EPIC_AI_DIR, { recursive: true });
49
+ }
50
+ }
51
+ function loadState() {
52
+ try {
53
+ if (existsSync(STATE_FILE)) {
54
+ return JSON.parse(readFileSync(STATE_FILE, 'utf-8'));
55
+ }
56
+ }
57
+ catch { /* fresh state */ }
58
+ return { schemaVersion: 1, lastHealthCheck: null, adapters: {} };
59
+ }
60
+ function saveState(state) {
61
+ ensureDir();
62
+ writeFileSync(STATE_FILE, JSON.stringify(state, null, 2));
63
+ }
64
+ function loadConfig() {
65
+ try {
66
+ if (existsSync(CONFIG_FILE)) {
67
+ return JSON.parse(readFileSync(CONFIG_FILE, 'utf-8'));
68
+ }
69
+ }
70
+ catch { /* no config */ }
71
+ return null;
72
+ }
73
+ function saveConfig(config) {
74
+ ensureDir();
75
+ writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
76
+ }
77
+ // ─── Credential helpers ─────────────────────────────────────
78
+ function writeCredential(key, value) {
79
+ ensureDir();
80
+ let existing = '';
81
+ if (existsSync(ENV_FILE)) {
82
+ existing = readFileSync(ENV_FILE, 'utf-8');
83
+ }
84
+ const regex = new RegExp(`^${key}=.*$`, 'm');
85
+ if (regex.test(existing)) {
86
+ existing = existing.replace(regex, `${key}=${value}`);
87
+ }
88
+ else {
89
+ existing += `${key}=${value}\n`;
90
+ }
91
+ writeFileSync(ENV_FILE, existing, 'utf-8');
92
+ chmodSync(ENV_FILE, 0o600);
93
+ }
94
+ function loadCredentials() {
95
+ const creds = {};
96
+ if (!existsSync(ENV_FILE))
97
+ return creds;
98
+ const lines = readFileSync(ENV_FILE, 'utf-8').split('\n');
99
+ for (const line of lines) {
100
+ const eq = line.indexOf('=');
101
+ if (eq > 0) {
102
+ creds[line.slice(0, eq)] = line.slice(eq + 1);
103
+ }
104
+ }
105
+ return creds;
106
+ }
107
+ // ─── Category display names ─────────────────────────────────
108
+ const CATEGORY_LABELS = {
109
+ 'ai': 'AI / ML',
110
+ 'cloud': 'Cloud Infrastructure',
111
+ 'collaboration': 'Collaboration',
112
+ 'commerce': 'Commerce & eCommerce',
113
+ 'communication': 'Communication',
114
+ 'compliance': 'Compliance & GRC',
115
+ 'construction': 'Construction',
116
+ 'crm': 'CRM & Sales',
117
+ 'customer-support': 'Customer Support',
118
+ 'cybersecurity': 'Cybersecurity',
119
+ 'data': 'Data & Analytics',
120
+ 'design': 'Design & Creative',
121
+ 'devops': 'DevOps & CI/CD',
122
+ 'education': 'Education',
123
+ 'energy': 'Energy',
124
+ 'engineering': 'Engineering & Aerospace',
125
+ 'erp': 'ERP',
126
+ 'finance': 'Finance & Payments',
127
+ 'government': 'Government',
128
+ 'healthcare': 'Healthcare',
129
+ 'hospitality': 'Hospitality & Food',
130
+ 'hr': 'HR & People',
131
+ 'identity': 'Identity & Access',
132
+ 'insurance': 'Insurance',
133
+ 'iot': 'IoT & Devices',
134
+ 'legal': 'Legal',
135
+ 'logistics': 'Logistics & Shipping',
136
+ 'manufacturing': 'Manufacturing',
137
+ 'marketing': 'Marketing',
138
+ 'media': 'Media & Entertainment',
139
+ 'misc': 'Other',
140
+ 'observability': 'Observability & Monitoring',
141
+ 'productivity': 'Productivity',
142
+ 'real-estate': 'Real Estate & Property',
143
+ 'science': 'Science & Research',
144
+ 'social': 'Social Media',
145
+ 'telecom': 'Telecom',
146
+ 'travel': 'Travel & Transportation',
147
+ };
148
+ function formatCategory(cat) {
149
+ return CATEGORY_LABELS[cat] || cat.charAt(0).toUpperCase() + cat.slice(1).replace(/-/g, ' ');
150
+ }
151
+ function expandHome(p) {
152
+ return p.startsWith('~') ? join(homedir(), p.slice(1)) : p;
153
+ }
154
+ function commandExists(cmd) {
155
+ try {
156
+ execSync(`which ${cmd}`, { stdio: 'pipe', timeout: 3000 });
157
+ return true;
158
+ }
159
+ catch {
160
+ return false;
161
+ }
162
+ }
163
+ function detectMcpClients() {
164
+ const isMac = process.platform === 'darwin';
165
+ const clients = [
166
+ {
167
+ id: 'claude-code',
168
+ name: 'Claude Code CLI',
169
+ detected: existsSync(expandHome('~/.claude')) || commandExists('claude'),
170
+ configPath: expandHome('~/.claude/claude_desktop_config.json'),
171
+ configKey: 'mcpServers',
172
+ },
173
+ {
174
+ id: 'claude-desktop',
175
+ name: 'Claude Desktop',
176
+ detected: isMac
177
+ ? existsSync(expandHome('~/Library/Application Support/Claude'))
178
+ : existsSync(expandHome('~/.config/Claude')),
179
+ configPath: isMac
180
+ ? expandHome('~/Library/Application Support/Claude/claude_desktop_config.json')
181
+ : expandHome('~/.config/Claude/claude_desktop_config.json'),
182
+ configKey: 'mcpServers',
183
+ },
184
+ {
185
+ id: 'cursor',
186
+ name: 'Cursor',
187
+ detected: existsSync(expandHome('~/.cursor')) || (isMac && existsSync('/Applications/Cursor.app')),
188
+ configPath: expandHome('~/.cursor/mcp.json'),
189
+ configKey: 'mcpServers',
190
+ },
191
+ {
192
+ id: 'windsurf',
193
+ name: 'Windsurf',
194
+ detected: existsSync(expandHome('~/.codeium/windsurf')),
195
+ configPath: expandHome('~/.codeium/windsurf/mcp_config.json'),
196
+ configKey: 'mcpServers',
197
+ },
198
+ {
199
+ id: 'vscode',
200
+ name: 'VS Code (Copilot)',
201
+ detected: commandExists('code') || (isMac && existsSync('/Applications/Visual Studio Code.app')),
202
+ configPath: expandHome('~/.vscode/mcp.json'),
203
+ configKey: 'servers',
204
+ hint: 'Per-project: .vscode/mcp.json',
205
+ },
206
+ {
207
+ id: 'codex',
208
+ name: 'Codex CLI',
209
+ detected: existsSync(expandHome('~/.codex')) || commandExists('codex'),
210
+ configPath: expandHome('~/.codex/config.json'),
211
+ configKey: 'mcpServers',
212
+ },
213
+ {
214
+ id: 'gemini',
215
+ name: 'Gemini CLI',
216
+ detected: existsSync(expandHome('~/.gemini')) || commandExists('gemini'),
217
+ configPath: expandHome('~/.gemini/settings.json'),
218
+ configKey: 'mcpServers',
219
+ },
220
+ {
221
+ id: 'cline',
222
+ name: 'Cline',
223
+ detected: isMac
224
+ ? existsSync(expandHome('~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev'))
225
+ : existsSync(expandHome('~/.config/Code/User/globalStorage/saoudrizwan.claude-dev')),
226
+ configPath: isMac
227
+ ? expandHome('~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json')
228
+ : expandHome('~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json'),
229
+ configKey: 'mcpServers',
230
+ },
231
+ {
232
+ id: 'continue',
233
+ name: 'Continue',
234
+ detected: existsSync(expandHome('~/.continue')),
235
+ configPath: expandHome('~/.continue/config.json'),
236
+ configKey: 'mcpServers',
237
+ },
238
+ {
239
+ id: 'goose',
240
+ name: 'Goose',
241
+ detected: commandExists('goose'),
242
+ configPath: expandHome('~/.config/goose/config.yaml'),
243
+ configKey: 'mcpServers',
244
+ hint: 'YAML config — manual setup recommended',
245
+ },
246
+ {
247
+ id: 'roo-code',
248
+ name: 'Roo Code',
249
+ detected: isMac
250
+ ? existsSync(expandHome('~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline'))
251
+ : false,
252
+ configPath: isMac
253
+ ? expandHome('~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json')
254
+ : '',
255
+ configKey: 'mcpServers',
256
+ },
257
+ ];
258
+ return clients;
259
+ }
260
+ /** Read existing config, merge Legion server entry, write back */
261
+ function writeMcpConfig(client) {
262
+ const legionEntry = { command: 'npx', args: ['@epicai/legion', '--serve'] };
263
+ // YAML configs — don't auto-write
264
+ if (client.configPath.endsWith('.yaml') || client.configPath.endsWith('.yml')) {
265
+ return { success: false, error: 'YAML config — add manually' };
266
+ }
267
+ try {
268
+ // Ensure parent directory exists
269
+ const dir = join(client.configPath, '..');
270
+ if (!existsSync(dir)) {
271
+ mkdirSync(dir, { recursive: true });
272
+ }
273
+ // Read existing config or start fresh
274
+ let config = {};
275
+ if (existsSync(client.configPath)) {
276
+ const raw = readFileSync(client.configPath, 'utf-8').trim();
277
+ if (raw) {
278
+ config = JSON.parse(raw);
279
+ }
280
+ }
281
+ // Get or create the servers object
282
+ const key = client.configKey;
283
+ if (!config[key] || typeof config[key] !== 'object') {
284
+ config[key] = {};
285
+ }
286
+ const servers = config[key];
287
+ // Add Legion (don't overwrite if already present)
288
+ if (servers['legion']) {
289
+ return { success: true, error: 'already configured' };
290
+ }
291
+ servers['legion'] = legionEntry;
292
+ writeFileSync(client.configPath, JSON.stringify(config, null, 2) + '\n');
293
+ return { success: true };
294
+ }
295
+ catch (err) {
296
+ const msg = err instanceof Error ? err.message : String(err);
297
+ return { success: false, error: msg };
298
+ }
299
+ }
300
+ async function detectSystem() {
301
+ const info = {
302
+ nodeVersion: process.version,
303
+ platform: process.platform,
304
+ arch: process.arch,
305
+ hasLlamaCpp: false,
306
+ hasOllama: false,
307
+ hasVllm: false,
308
+ localPort: null,
309
+ localBackend: null,
310
+ mcpClients: detectMcpClients(),
311
+ };
312
+ for (const [port, name] of [[8080, 'llama.cpp'], [11434, 'Ollama'], [8000, 'vLLM']]) {
313
+ try {
314
+ const controller = new AbortController();
315
+ const t = setTimeout(() => controller.abort(), 2000);
316
+ const resp = await fetch(`http://localhost:${port}/v1/models`, { signal: controller.signal });
317
+ clearTimeout(t);
318
+ if (resp.ok) {
319
+ if (port === 8080)
320
+ info.hasLlamaCpp = true;
321
+ if (port === 11434)
322
+ info.hasOllama = true;
323
+ if (port === 8000)
324
+ info.hasVllm = true;
325
+ if (!info.localPort) {
326
+ info.localPort = port;
327
+ info.localBackend = name;
328
+ }
329
+ }
330
+ }
331
+ catch { /* not running */ }
332
+ }
333
+ return info;
334
+ }
335
+ // ─── MCP Server Mode (--serve) ──────────────────────────────
336
+ async function startMcpServer() {
337
+ const { McpServer } = await import('@modelcontextprotocol/sdk/server/mcp.js');
338
+ const { StdioServerTransport } = await import('@modelcontextprotocol/sdk/server/stdio.js');
339
+ const { z } = await import('zod');
340
+ const allAdapters = await loadAllAdapters();
341
+ void loadConfig(); // used in subcommands
342
+ const state = loadState();
343
+ const server = new McpServer({
344
+ name: 'epic-ai-legion',
345
+ version: '1.0.0',
346
+ });
347
+ // Build the real routing engine — same ToolPreFilter used in the eval
348
+ const { ToolPreFilter } = await import('../federation/ToolPreFilter.js');
349
+ // Determine which adapters the user has configured (credentials or explicit selection)
350
+ const creds = loadCredentials();
351
+ const config = loadConfig();
352
+ const configuredAdapterIds = new Set();
353
+ for (const adapter of allAdapters) {
354
+ const hasCredential = adapter.rest?.envKey ? !!creds[adapter.rest.envKey] : false;
355
+ const hasMcpKeys = adapter.mcp?.envKeys?.some(k => !!creds[k]) ?? false;
356
+ const isSelected = config?.selectedAdapters?.includes(adapter.id) ?? false;
357
+ const isInState = !!state.adapters[adapter.id];
358
+ if (hasCredential || hasMcpKeys || isSelected || isInState) {
359
+ configuredAdapterIds.add(adapter.id);
360
+ }
361
+ }
362
+ // Helper: build Tool[] for the pre-filter from a set of adapters
363
+ function buildToolsForFilter(adapters) {
364
+ const tools = [];
365
+ for (const adapter of adapters) {
366
+ const toolNames = adapter.rest?.toolNames || adapter.mcp?.toolNames || [];
367
+ for (const toolName of toolNames) {
368
+ tools.push({
369
+ name: `${adapter.id}:${toolName}`,
370
+ description: `${adapter.name} — ${toolName.replace(/_/g, ' ')}`,
371
+ parameters: { type: 'object', properties: {} },
372
+ server: adapter.id,
373
+ tier: 'orchestrated',
374
+ });
375
+ }
376
+ if (toolNames.length === 0) {
377
+ tools.push({
378
+ name: `${adapter.id}:default`,
379
+ description: `${adapter.name} — ${adapter.description || adapter.id}`,
380
+ parameters: { type: 'object', properties: {} },
381
+ server: adapter.id,
382
+ tier: 'orchestrated',
383
+ });
384
+ }
385
+ }
386
+ return tools;
387
+ }
388
+ // Two indexes: configured adapters (default search) and full catalog (discover mode)
389
+ const configuredAdapters = allAdapters.filter(a => configuredAdapterIds.has(a.id));
390
+ const toolPreFilter = new ToolPreFilter();
391
+ const fullCatalogFilter = new ToolPreFilter();
392
+ toolPreFilter.index(buildToolsForFilter(configuredAdapters));
393
+ fullCatalogFilter.index(buildToolsForFilter(allAdapters));
394
+ // Load vector index if available
395
+ try {
396
+ const vectorPath = join(getPackageRoot(), 'vector-index.json');
397
+ const vectorRaw = await readFile(vectorPath, 'utf-8');
398
+ const vectorRecords = JSON.parse(vectorRaw);
399
+ toolPreFilter.loadVectorIndex(vectorRecords);
400
+ fullCatalogFilter.loadVectorIndex(vectorRecords);
401
+ }
402
+ catch { /* no vector index — BM25 only */ }
403
+ // Main query tool — the single entry point for the LLM
404
+ server.tool('legion_query', {
405
+ query: z.string().describe('Natural language query. Searches your configured adapters by default. Use discover:true to search the full catalog of 3,887 adapters.'),
406
+ detail: z.enum(['full', 'summary']).optional().describe('full (default): top 20 with tool lists. summary: one-line adapter summaries — use this when the first call missed.'),
407
+ discover: z.boolean().optional().describe('Set to true to search ALL available adapters, not just your configured ones. Use this to find new adapters to connect.'),
408
+ adapters: z.array(z.string()).optional().describe('Optional: specific adapter IDs to target directly'),
409
+ }, async (args) => {
410
+ const query = args.query;
411
+ const detail = args.detail || 'full';
412
+ const discover = args.discover || false;
413
+ void args.adapters; // reserved for future per-adapter targeting
414
+ // Choose index: configured adapters by default, full catalog in discover mode
415
+ const activeFilter = discover ? fullCatalogFilter : toolPreFilter;
416
+ // Ring 2: Summary mode — return next 200 BM25-ranked adapters as one-line summaries
417
+ if (detail === 'summary') {
418
+ const selected200 = await activeFilter.select(query, { maxTools: 220, maxPerServer: 10 });
419
+ const servers200 = [...new Set(selected200.map(t => t.server))];
420
+ // Skip the first 20 (already shown in Ring 1), take the next 200
421
+ const ring2Servers = servers200.slice(20);
422
+ const summaries = ring2Servers.map(serverId => {
423
+ const a = allAdapters.find(x => x.id === serverId);
424
+ if (!a)
425
+ return null;
426
+ return {
427
+ id: a.id,
428
+ name: a.name,
429
+ category: a.category || 'other',
430
+ description: (a.description || '').slice(0, 80),
431
+ configured: configuredAdapterIds.has(a.id),
432
+ };
433
+ }).filter(Boolean);
434
+ return {
435
+ content: [{
436
+ type: 'text',
437
+ text: JSON.stringify({
438
+ status: 'summary',
439
+ query,
440
+ mode: discover ? 'discover' : 'configured',
441
+ totalShown: summaries.length,
442
+ adapters: summaries,
443
+ message: discover
444
+ ? `Showing ${summaries.length} adapters from the full catalog. Use legion_call to add and connect one.`
445
+ : `Showing ${summaries.length} additional configured adapters ranked by relevance.`,
446
+ }),
447
+ }],
448
+ };
449
+ }
450
+ // Ring 1: Full mode — BM25 + query expansion, top 20 detailed
451
+ const selected = await activeFilter.select(query, { maxTools: 20, maxPerServer: 5 });
452
+ const selectedServers = [...new Set(selected.map(t => t.server))];
453
+ // Build category hints from all adapters
454
+ const catCounts = new Map();
455
+ for (const a of allAdapters) {
456
+ const cat = a.category || 'other';
457
+ catCounts.set(cat, (catCounts.get(cat) || 0) + 1);
458
+ }
459
+ const topCategories = [...catCounts.entries()]
460
+ .sort((a, b) => b[1] - a[1])
461
+ .slice(0, 10)
462
+ .map(([cat, count]) => ({ category: cat, adapterCount: count }));
463
+ if (selectedServers.length === 0) {
464
+ // No match in configured adapters — suggest discover mode
465
+ const hint = discover
466
+ ? 'No adapters matched in the full catalog. Try a different query or use legion_list to browse.'
467
+ : `None of your ${configuredAdapters.length} configured adapters matched. Try legion_query with discover:true to search all ${allAdapters.length} available adapters.`;
468
+ return {
469
+ content: [{
470
+ type: 'text',
471
+ text: JSON.stringify({
472
+ status: 'no_match',
473
+ message: `No adapters matched query: "${query}"`,
474
+ hint,
475
+ configuredCount: configuredAdapters.length,
476
+ totalAvailable: allAdapters.length,
477
+ categories: topCategories,
478
+ }),
479
+ }],
480
+ };
481
+ }
482
+ // Build response with matched adapter info
483
+ const matches = selectedServers.map(serverId => {
484
+ const adapter = allAdapters.find(a => a.id === serverId);
485
+ if (!adapter)
486
+ return null;
487
+ return {
488
+ id: adapter.id,
489
+ name: adapter.name,
490
+ type: adapter.type,
491
+ category: adapter.category,
492
+ tools: adapter.rest?.toolNames || adapter.mcp?.toolNames || [],
493
+ toolCount: adapter.rest?.toolCount || 0,
494
+ configured: configuredAdapterIds.has(adapter.id),
495
+ transport: adapter.mcp?.transport || (adapter.rest ? 'rest' : 'unknown'),
496
+ };
497
+ }).filter(Boolean);
498
+ return {
499
+ content: [{
500
+ type: 'text',
501
+ text: JSON.stringify({
502
+ status: 'matched',
503
+ query,
504
+ mode: discover ? 'discover' : 'configured',
505
+ matchedAdapters: matches,
506
+ totalMatched: matches.length,
507
+ configuredCount: configuredAdapters.length,
508
+ categories: topCategories,
509
+ message: discover
510
+ ? `Found ${matches.length} adapters in the full catalog. Adapters marked configured:true are ready to use.`
511
+ : matches.length < 3
512
+ ? `Only ${matches.length} of your ${configuredAdapters.length} configured adapters matched. Try legion_query with discover:true to search all ${allAdapters.length} available adapters.`
513
+ : `Found ${matches.length} matching adapters from your ${configuredAdapters.length} configured adapters.`,
514
+ }),
515
+ }],
516
+ };
517
+ });
518
+ // Tool execution
519
+ server.tool('legion_call', {
520
+ adapter: z.string().describe('Adapter ID (e.g., "github", "crowdstrike", "salesforce")'),
521
+ tool: z.string().describe('Tool name to call on the adapter'),
522
+ args: z.record(z.unknown()).optional().describe('Arguments to pass to the tool'),
523
+ }, async (toolArgs) => {
524
+ const adapterId = toolArgs.adapter;
525
+ const toolName = toolArgs.tool;
526
+ const callArgs = toolArgs.args || {};
527
+ const adapter = allAdapters.find(a => a.id === adapterId);
528
+ if (!adapter) {
529
+ return {
530
+ content: [{ type: 'text', text: JSON.stringify({ error: `Adapter "${adapterId}" not found` }) }],
531
+ isError: true,
532
+ };
533
+ }
534
+ // REST adapter execution
535
+ if (adapter.rest?.module && adapter.rest?.className) {
536
+ try {
537
+ const creds = loadCredentials();
538
+ const modulePath = join(getPackageRoot(), adapter.rest.module);
539
+ const mod = await import(modulePath);
540
+ const AdapterClass = mod[adapter.rest.className] || mod.default;
541
+ // Build config from credentials
542
+ const adapterConfig = {};
543
+ if (adapter.rest.envKey && creds[adapter.rest.envKey]) {
544
+ adapterConfig.apiKey = creds[adapter.rest.envKey];
545
+ }
546
+ if (adapter.rest.baseUrl) {
547
+ adapterConfig.baseUrl = adapter.rest.baseUrl;
548
+ }
549
+ const instance = new AdapterClass(adapterConfig);
550
+ const result = await instance.callTool(toolName, callArgs);
551
+ return {
552
+ content: [{ type: 'text', text: typeof result.content === 'string' ? result.content : JSON.stringify(result.content) }],
553
+ isError: result.isError || false,
554
+ };
555
+ }
556
+ catch (err) {
557
+ const msg = err instanceof Error ? err.message : String(err);
558
+ return {
559
+ content: [{ type: 'text', text: JSON.stringify({ error: msg, adapter: adapterId, tool: toolName }) }],
560
+ isError: true,
561
+ };
562
+ }
563
+ }
564
+ // MCP stdio adapter — spawn and call
565
+ if (adapter.mcp?.transport === 'stdio' && adapter.mcp?.command) {
566
+ try {
567
+ const { Client } = await import('@modelcontextprotocol/sdk/client/index.js');
568
+ const { StdioClientTransport } = await import('@modelcontextprotocol/sdk/client/stdio.js');
569
+ const transport = new StdioClientTransport({
570
+ command: adapter.mcp.command,
571
+ args: adapter.mcp.args || [],
572
+ });
573
+ const client = new Client({ name: 'legion', version: '1.0' }, { capabilities: {} });
574
+ await client.connect(transport);
575
+ const result = await client.callTool({ name: toolName, arguments: callArgs });
576
+ await client.close();
577
+ const text = result.content
578
+ .filter(c => c.type === 'text')
579
+ .map(c => c.text || '')
580
+ .join('\n');
581
+ return {
582
+ content: [{ type: 'text', text }],
583
+ isError: result.isError || false,
584
+ };
585
+ }
586
+ catch (err) {
587
+ const msg = err instanceof Error ? err.message : String(err);
588
+ return {
589
+ content: [{ type: 'text', text: JSON.stringify({ error: msg, adapter: adapterId, tool: toolName }) }],
590
+ isError: true,
591
+ };
592
+ }
593
+ }
594
+ // MCP HTTP adapter
595
+ if (adapter.mcp?.transport === 'streamable-http' && adapter.mcp?.url) {
596
+ try {
597
+ const { Client } = await import('@modelcontextprotocol/sdk/client/index.js');
598
+ const { StreamableHTTPClientTransport } = await import('@modelcontextprotocol/sdk/client/streamableHttp.js');
599
+ const transport = new StreamableHTTPClientTransport(new URL(adapter.mcp.url));
600
+ const client = new Client({ name: 'legion', version: '1.0' }, { capabilities: {} });
601
+ await client.connect(transport);
602
+ const result = await client.callTool({ name: toolName, arguments: callArgs });
603
+ await client.close();
604
+ const text = result.content
605
+ .filter(c => c.type === 'text')
606
+ .map(c => c.text || '')
607
+ .join('\n');
608
+ return {
609
+ content: [{ type: 'text', text }],
610
+ isError: result.isError || false,
611
+ };
612
+ }
613
+ catch (err) {
614
+ const msg = err instanceof Error ? err.message : String(err);
615
+ return {
616
+ content: [{ type: 'text', text: JSON.stringify({ error: msg, adapter: adapterId, tool: toolName }) }],
617
+ isError: true,
618
+ };
619
+ }
620
+ }
621
+ return {
622
+ content: [{ type: 'text', text: JSON.stringify({ error: `No executable transport for adapter "${adapterId}"` }) }],
623
+ isError: true,
624
+ };
625
+ });
626
+ // List available adapters
627
+ server.tool('legion_list', {
628
+ category: z.string().optional().describe('Filter by category name (e.g., "hr", "cybersecurity", "healthcare", "hospitality", "construction", "manufacturing", "finance", "devops", "observability", "communication", "crm", "ai"). Use this when legion_query returns low-confidence results to browse all adapters in a domain.'),
629
+ search: z.string().optional().describe('Search by keyword across adapter names and descriptions'),
630
+ }, async (args) => {
631
+ let results = allAdapters;
632
+ if (args.category) {
633
+ results = results.filter(a => a.category === args.category);
634
+ }
635
+ if (args.search) {
636
+ const term = args.search.toLowerCase();
637
+ results = results.filter(a => a.id.includes(term) || a.name.toLowerCase().includes(term) ||
638
+ (a.description || '').toLowerCase().includes(term));
639
+ }
640
+ const categories = [...new Set(allAdapters.map(a => a.category).filter(Boolean))];
641
+ return {
642
+ content: [{
643
+ type: 'text',
644
+ text: JSON.stringify({
645
+ total: results.length,
646
+ categories,
647
+ adapters: results.slice(0, 50).map(a => ({
648
+ id: a.id,
649
+ name: a.name,
650
+ category: a.category,
651
+ type: a.type,
652
+ toolCount: a.rest?.toolCount || 0,
653
+ })),
654
+ truncated: results.length > 50,
655
+ }),
656
+ }],
657
+ };
658
+ });
659
+ // Connect via stdio
660
+ const transport = new StdioServerTransport();
661
+ await server.connect(transport);
662
+ }
663
+ // ─── Subcommands ────────────────────────────────────────────
664
+ async function cmdAdd(adapterName) {
665
+ const p = await import('@clack/prompts');
666
+ const pc = (await import('picocolors')).default;
667
+ const all = await loadAllAdapters();
668
+ const match = all.find(a => a.id === adapterName || a.name.toLowerCase() === adapterName.toLowerCase());
669
+ if (!match) {
670
+ const fuzzy = all.filter(a => a.id.includes(adapterName) || a.name.toLowerCase().includes(adapterName.toLowerCase()));
671
+ if (fuzzy.length > 0) {
672
+ console.log(`Adapter "${adapterName}" not found. Did you mean:`);
673
+ fuzzy.slice(0, 5).forEach(a => console.log(` ${pc.cyan(a.id)} — ${a.name}`));
674
+ }
675
+ else {
676
+ console.log(`Adapter "${adapterName}" not found. Run ${pc.cyan('npx @epicai/legion list')} to see all adapters.`);
677
+ }
678
+ process.exit(1);
679
+ }
680
+ const s = p.spinner();
681
+ // Install stdio dependency if needed
682
+ if (match.mcp?.transport === 'stdio' && match.mcp?.packageName) {
683
+ s.start(`Installing ${match.name}`);
684
+ try {
685
+ execSync(`npm install -g --ignore-scripts ${match.mcp.packageName}`, { stdio: 'pipe', timeout: 60000 });
686
+ // Verify artifact integrity
687
+ try {
688
+ const { ArtifactVerifier } = await import('../trust/ArtifactVerifier.js');
689
+ const verifier = new ArtifactVerifier({ verifyDigests: true });
690
+ const pkgPath = execSync(`npm root -g`, { encoding: 'utf-8', timeout: 5000 }).trim();
691
+ const mainFile = join(pkgPath, match.mcp.packageName, 'package.json');
692
+ const result = await verifier.verify(match.mcp.packageName, mainFile);
693
+ if (!result.valid) {
694
+ s.stop(`${pc.red('✗')} ${match.name} — integrity check failed: ${result.reason}`);
695
+ }
696
+ else {
697
+ s.stop(`${pc.green('✓')} ${match.name} installed — verified (${result.artifactDigest.slice(0, 16)}...)`);
698
+ }
699
+ }
700
+ catch {
701
+ // Verification infrastructure not available — still report install success
702
+ s.stop(`${pc.green('✓')} ${match.name} installed`);
703
+ }
704
+ }
705
+ catch {
706
+ s.stop(`${pc.yellow('!')} Install failed — run manually: npm install -g ${match.mcp.packageName}`);
707
+ }
708
+ }
709
+ // Prompt for credentials
710
+ if (match.rest?.envKey) {
711
+ const key = await p.password({ message: `${match.rest.envKey}` });
712
+ if (!p.isCancel(key) && key) {
713
+ writeCredential(match.rest.envKey, key);
714
+ }
715
+ }
716
+ else if (match.mcp?.envKeys && match.mcp.envKeys.length > 0) {
717
+ for (const envKey of match.mcp.envKeys) {
718
+ const key = await p.password({ message: envKey });
719
+ if (!p.isCancel(key) && key) {
720
+ writeCredential(envKey, key);
721
+ }
722
+ }
723
+ }
724
+ // Update state
725
+ const state = loadState();
726
+ state.adapters[match.id] = {
727
+ type: match.type || 'unknown',
728
+ status: 'configured',
729
+ toolCount: match.rest?.toolCount || 0,
730
+ lastVerified: null,
731
+ };
732
+ saveState(state);
733
+ // Update config
734
+ const config = loadConfig() || { selectedAdapters: [], secretsProvider: 'manual', aiClient: 'unknown' };
735
+ if (!config.selectedAdapters.includes(match.id)) {
736
+ config.selectedAdapters.push(match.id);
737
+ }
738
+ saveConfig(config);
739
+ console.log(`${pc.green('✓')} ${match.name} added to Legion.`);
740
+ }
741
+ async function cmdRemove(adapterName) {
742
+ const pc = (await import('picocolors')).default;
743
+ const state = loadState();
744
+ const config = loadConfig();
745
+ if (!state.adapters[adapterName]) {
746
+ console.log(`Adapter "${adapterName}" is not configured.`);
747
+ process.exit(1);
748
+ }
749
+ delete state.adapters[adapterName];
750
+ saveState(state);
751
+ if (config) {
752
+ config.selectedAdapters = config.selectedAdapters.filter(id => id !== adapterName);
753
+ saveConfig(config);
754
+ }
755
+ console.log(`${pc.green('✓')} ${adapterName} removed from Legion.`);
756
+ }
757
+ async function cmdHealth() {
758
+ const pc = (await import('picocolors')).default;
759
+ const p = await import('@clack/prompts');
760
+ const state = loadState();
761
+ const creds = loadCredentials();
762
+ const all = await loadAllAdapters();
763
+ const configured = Object.keys(state.adapters);
764
+ if (configured.length === 0) {
765
+ console.log(`No adapters configured. Run ${pc.cyan('npx @epicai/legion')} to set up.`);
766
+ return;
767
+ }
768
+ const s = p.spinner();
769
+ s.start(`Checking ${configured.length} adapters`);
770
+ const results = [];
771
+ let healthy = 0;
772
+ let issues = 0;
773
+ for (const id of configured) {
774
+ const adapter = all.find(a => a.id === id);
775
+ if (!adapter) {
776
+ results.push(`${pc.red('✗')} ${id} — not found in catalog`);
777
+ issues++;
778
+ continue;
779
+ }
780
+ // Check if credentials exist
781
+ const hasKey = adapter.rest?.envKey ? !!creds[adapter.rest.envKey] : true;
782
+ if (hasKey) {
783
+ results.push(`${pc.green('✓')} ${adapter.name || id} ${state.adapters[id].toolCount} tools ${state.adapters[id].status}`);
784
+ healthy++;
785
+ }
786
+ else {
787
+ results.push(`${pc.yellow('!')} ${adapter.name || id} missing ${adapter.rest?.envKey || 'credentials'}`);
788
+ issues++;
789
+ }
790
+ }
791
+ s.stop('Health check complete');
792
+ p.note(results.join('\n'), `${healthy} healthy, ${issues} need attention`);
793
+ state.lastHealthCheck = new Date().toISOString();
794
+ saveState(state);
795
+ }
796
+ async function cmdList(searchTerm) {
797
+ const pc = (await import('picocolors')).default;
798
+ const all = await loadAllAdapters();
799
+ let filtered = all;
800
+ if (searchTerm) {
801
+ const term = searchTerm.toLowerCase();
802
+ filtered = all.filter(a => a.id.includes(term) || a.name.toLowerCase().includes(term) ||
803
+ (a.description || '').toLowerCase().includes(term) ||
804
+ (a.category || '').includes(term));
805
+ }
806
+ // Group by category
807
+ const categories = new Map();
808
+ for (const a of filtered) {
809
+ const cat = a.category || 'other';
810
+ if (!categories.has(cat))
811
+ categories.set(cat, []);
812
+ categories.get(cat).push(a);
813
+ }
814
+ console.log('');
815
+ console.log(` Epic AI® Legion — ${filtered.length} adapters${searchTerm ? ` matching "${searchTerm}"` : ''}`);
816
+ console.log('');
817
+ for (const [cat, adapters] of Array.from(categories.entries()).sort((a, b) => b[1].length - a[1].length)) {
818
+ console.log(` ${pc.cyan(cat)} (${adapters.length})`);
819
+ for (const a of adapters.slice(0, 10)) {
820
+ const tools = a.rest?.toolCount ? `${a.rest.toolCount} tools` : '';
821
+ const type = a.type === 'mcp' ? pc.dim('MCP') : a.type === 'both' ? pc.dim('REST+MCP') : pc.dim('REST');
822
+ console.log(` ${a.id.padEnd(35)} ${type} ${tools}`);
823
+ }
824
+ if (adapters.length > 10) {
825
+ console.log(` ${pc.dim(`... and ${adapters.length - 10} more`)}`);
826
+ }
827
+ console.log('');
828
+ }
829
+ }
830
+ // ─── Setup Wizard ───────────────────────────────────────────
831
+ async function runSetupWizard() {
832
+ const p = await import('@clack/prompts');
833
+ const pc = (await import('picocolors')).default;
834
+ console.log('');
835
+ p.intro(pc.bgCyan(pc.black(' Epic AI® Legion — Intelligent Virtual Assistant ')));
836
+ const s = p.spinner();
837
+ // Step 1: System detection
838
+ s.start('Detecting your system');
839
+ const system = await detectSystem();
840
+ const allAdapters = await loadAllAdapters();
841
+ s.stop('System detected');
842
+ const detectedClients = system.mcpClients.filter(c => c.detected);
843
+ const hasLocalLLM = system.localBackend !== null;
844
+ p.note([
845
+ `${pc.green('✓')} Node.js ${system.nodeVersion}`,
846
+ `${pc.green('✓')} ${system.platform} / ${system.arch}`,
847
+ hasLocalLLM ? `${pc.green('✓')} ${system.localBackend} running on port ${system.localPort}` : `${pc.dim('○')} No local LLM detected`,
848
+ `${pc.green('✓')} ${allAdapters.length} adapters available`,
849
+ `${pc.green('✓')} ${detectedClients.length} AI client${detectedClients.length !== 1 ? 's' : ''} detected`,
850
+ ].join('\n'), 'System');
851
+ // Step 2: AI client detection + config
852
+ let configuredClients = [];
853
+ if (detectedClients.length === 0 && !hasLocalLLM) {
854
+ p.log.warning('No AI clients or local LLMs detected.');
855
+ p.note([
856
+ 'Install an MCP-compatible AI client:',
857
+ '',
858
+ ` ${pc.cyan('Claude Code')} — npm install -g @anthropic-ai/claude-code`,
859
+ ` ${pc.cyan('Cursor')} — cursor.com`,
860
+ ` ${pc.cyan('VS Code')} — code.visualstudio.com + Copilot`,
861
+ ` ${pc.cyan('Windsurf')} — windsurf.com`,
862
+ '',
863
+ 'Or install a local LLM:',
864
+ '',
865
+ ` ${pc.cyan('llama.cpp')} — brew install llama.cpp`,
866
+ ` ${pc.cyan('Ollama')} — brew install ollama`,
867
+ ].join('\n'), 'Getting started');
868
+ const cont = await p.confirm({ message: 'Continue anyway? (you can configure clients later)', initialValue: false });
869
+ if (p.isCancel(cont) || !cont) {
870
+ p.cancel('Install an AI client and re-run.');
871
+ process.exit(0);
872
+ }
873
+ }
874
+ else if (detectedClients.length > 0) {
875
+ // Build options — detected clients pre-checked, plus local LLM option
876
+ const clientOptions = detectedClients.map(c => ({
877
+ value: c.id,
878
+ label: c.name,
879
+ hint: c.hint || c.configPath.replace(homedir(), '~'),
880
+ }));
881
+ if (hasLocalLLM) {
882
+ clientOptions.push({
883
+ value: 'local',
884
+ label: `Local SLM (${system.localBackend} on port ${system.localPort})`,
885
+ hint: 'No cloud LLM needed',
886
+ });
887
+ }
888
+ const selectedClients = await p.multiselect({
889
+ message: `Configure Legion for these AI clients? (Space to toggle, Enter to confirm)`,
890
+ options: clientOptions,
891
+ initialValues: detectedClients.map(c => c.id), // all detected pre-selected
892
+ required: false,
893
+ });
894
+ if (p.isCancel(selectedClients)) {
895
+ p.cancel('Setup cancelled.');
896
+ process.exit(0);
897
+ }
898
+ // Write configs for selected clients
899
+ const writeResults = [];
900
+ for (const clientId of selectedClients) {
901
+ if (clientId === 'local')
902
+ continue; // handled separately
903
+ const client = system.mcpClients.find(c => c.id === clientId);
904
+ if (!client)
905
+ continue;
906
+ const autoWrite = await p.confirm({
907
+ message: `Write Legion to ${client.name} config? (${client.configPath.replace(homedir(), '~')})`,
908
+ initialValue: true,
909
+ });
910
+ if (p.isCancel(autoWrite))
911
+ continue;
912
+ if (autoWrite) {
913
+ const result = writeMcpConfig(client);
914
+ if (result.success) {
915
+ if (result.error === 'already configured') {
916
+ writeResults.push(`${pc.green('✓')} ${client.name} — already configured`);
917
+ }
918
+ else {
919
+ writeResults.push(`${pc.green('✓')} ${client.name} — configured`);
920
+ }
921
+ configuredClients.push(clientId);
922
+ }
923
+ else {
924
+ writeResults.push(`${pc.yellow('!')} ${client.name} — ${result.error}`);
925
+ }
926
+ }
927
+ else {
928
+ // Show the JSON for manual copy
929
+ const serverEntry = { legion: { command: 'npx', args: ['@epicai/legion', '--serve'] } };
930
+ const configStr = JSON.stringify({ [client.configKey]: serverEntry }, null, 2);
931
+ p.note([
932
+ `Add this to ${pc.cyan(client.configPath.replace(homedir(), '~'))}:`,
933
+ '',
934
+ pc.dim('─'.repeat(42)),
935
+ configStr,
936
+ pc.dim('─'.repeat(42)),
937
+ ].join('\n'), `${client.name} — manual config`);
938
+ configuredClients.push(clientId);
939
+ }
940
+ }
941
+ if (writeResults.length > 0) {
942
+ p.note(writeResults.join('\n'), 'MCP Clients Configured');
943
+ }
944
+ // Handle local SLM if selected
945
+ if (selectedClients.includes('local')) {
946
+ p.log.success(`Using ${system.localBackend} on port ${system.localPort}`);
947
+ configuredClients.push('local');
948
+ }
949
+ if (configuredClients.length === 0) {
950
+ p.note([
951
+ `Add adapters later: ${pc.cyan('npx @epicai/legion add <name>')}`,
952
+ `Check health: ${pc.cyan('npx @epicai/legion health')}`,
953
+ `List all adapters: ${pc.cyan('npx @epicai/legion list')}`,
954
+ ].join('\n'), 'Quick reference');
955
+ saveConfig({ selectedAdapters: [], secretsProvider: 'manual', aiClient: 'none' });
956
+ p.outro(`${pc.green('Done.')} Configure your AI clients and run this wizard again.\n Your credentials never leave this machine.`);
957
+ return;
958
+ }
959
+ }
960
+ else if (hasLocalLLM) {
961
+ // Only local LLM detected, no MCP clients
962
+ p.log.success(`Using ${system.localBackend} on port ${system.localPort}`);
963
+ configuredClients.push('local');
964
+ }
965
+ // Step 3: Secrets provider
966
+ const secretsChoice = await p.select({
967
+ message: 'Where are your API and MCP credentials stored?',
968
+ options: [
969
+ { value: 'vault', label: 'HashiCorp Vault' },
970
+ { value: 'aws-sm', label: 'AWS Secrets Manager' },
971
+ { value: 'azure-kv', label: 'Azure Key Vault' },
972
+ { value: '1password', label: '1Password CLI' },
973
+ { value: 'doppler', label: 'Doppler' },
974
+ { value: 'env', label: 'Environment variables', hint: 'already exported in shell' },
975
+ { value: 'manual', label: 'I\'ll enter them manually' },
976
+ ],
977
+ });
978
+ if (p.isCancel(secretsChoice)) {
979
+ p.cancel('Setup cancelled.');
980
+ process.exit(0);
981
+ }
982
+ let vaultAddr = '';
983
+ let vaultToken = '';
984
+ let vaultConnected = false;
985
+ if (secretsChoice === 'vault') {
986
+ const envAddr = process.env.VAULT_ADDR;
987
+ const envToken = process.env.VAULT_TOKEN;
988
+ if (envAddr && envToken) {
989
+ p.log.success(`Detected VAULT_ADDR=${envAddr}`);
990
+ vaultAddr = envAddr;
991
+ vaultToken = envToken;
992
+ }
993
+ else {
994
+ const addr = await p.text({
995
+ message: 'Vault address',
996
+ placeholder: 'https://vault.example.com:8200',
997
+ validate: (v) => { if (!v)
998
+ return 'Required'; if (!v.startsWith('http'))
999
+ return 'Must start with http:// or https://'; },
1000
+ });
1001
+ if (p.isCancel(addr)) {
1002
+ p.cancel('Setup cancelled.');
1003
+ process.exit(0);
1004
+ }
1005
+ const token = await p.password({ message: 'Vault token', validate: (v) => { if (!v)
1006
+ return 'Required'; } });
1007
+ if (p.isCancel(token)) {
1008
+ p.cancel('Setup cancelled.');
1009
+ process.exit(0);
1010
+ }
1011
+ vaultAddr = addr;
1012
+ vaultToken = token;
1013
+ }
1014
+ s.start('Connecting to Vault');
1015
+ try {
1016
+ const controller = new AbortController();
1017
+ const t = setTimeout(() => controller.abort(), 5000);
1018
+ const resp = await fetch(`${vaultAddr}/v1/sys/health`, { headers: { 'X-Vault-Token': vaultToken }, signal: controller.signal });
1019
+ clearTimeout(t);
1020
+ if (resp.ok) {
1021
+ vaultConnected = true;
1022
+ s.stop(`Connected to Vault at ${vaultAddr}`);
1023
+ writeCredential('VAULT_ADDR', vaultAddr);
1024
+ writeCredential('VAULT_TOKEN', vaultToken);
1025
+ }
1026
+ else {
1027
+ s.stop(`Vault returned ${resp.status} — check your token`);
1028
+ }
1029
+ }
1030
+ catch {
1031
+ s.stop(`Cannot reach Vault at ${vaultAddr}`);
1032
+ }
1033
+ }
1034
+ if (secretsChoice === '1password') {
1035
+ try {
1036
+ execSync('op --version', { stdio: 'pipe' });
1037
+ p.log.success('1Password CLI detected');
1038
+ }
1039
+ catch {
1040
+ p.log.warning('1Password CLI not found — install from https://1password.com/downloads/command-line');
1041
+ }
1042
+ }
1043
+ if (secretsChoice === 'doppler') {
1044
+ try {
1045
+ execSync('doppler --version', { stdio: 'pipe' });
1046
+ p.log.success('Doppler CLI detected');
1047
+ }
1048
+ catch {
1049
+ p.log.warning('Doppler CLI not found — install from https://docs.doppler.com/docs/install-cli');
1050
+ }
1051
+ }
1052
+ // Step 4: Adapter selection — tree structure (group → category → adapters)
1053
+ // Build category map
1054
+ const categories = new Map();
1055
+ for (const adapter of allAdapters) {
1056
+ const cat = adapter.category || 'other';
1057
+ if (!categories.has(cat))
1058
+ categories.set(cat, []);
1059
+ categories.get(cat).push(adapter);
1060
+ }
1061
+ // Top-level groups that map to subcategories
1062
+ const GROUPS = {
1063
+ 'security': {
1064
+ label: 'Security & Identity',
1065
+ cats: ['cybersecurity', 'identity', 'compliance'],
1066
+ },
1067
+ 'devops': {
1068
+ label: 'DevOps & Infrastructure',
1069
+ cats: ['devops', 'cloud', 'observability', 'engineering'],
1070
+ },
1071
+ 'business': {
1072
+ label: 'Business & Finance',
1073
+ cats: ['finance', 'crm', 'commerce', 'marketing', 'customer-support', 'hr', 'productivity', 'erp'],
1074
+ },
1075
+ 'comms': {
1076
+ label: 'Communication & Collaboration',
1077
+ cats: ['communication', 'collaboration'],
1078
+ },
1079
+ 'data-ai': {
1080
+ label: 'Data & AI',
1081
+ cats: ['data', 'ai', 'science'],
1082
+ },
1083
+ 'industry': {
1084
+ label: 'Industry',
1085
+ cats: ['healthcare', 'hospitality', 'construction', 'manufacturing', 'real-estate', 'travel', 'education', 'insurance', 'legal', 'energy', 'automotive', 'telecom', 'logistics', 'government', 'iot'],
1086
+ },
1087
+ 'media': {
1088
+ label: 'Media & Social',
1089
+ cats: ['media', 'social', 'design'],
1090
+ },
1091
+ 'other': {
1092
+ label: 'Other',
1093
+ cats: ['misc', 'other'],
1094
+ },
1095
+ };
1096
+ // Count adapters per group
1097
+ function countGroup(cats) {
1098
+ let total = 0;
1099
+ for (const cat of cats)
1100
+ total += (categories.get(cat) || []).length;
1101
+ return total;
1102
+ }
1103
+ // Collect any categories not in a group
1104
+ const allGroupedCats = new Set(Object.values(GROUPS).flatMap(g => g.cats));
1105
+ const ungrouped = Array.from(categories.keys()).filter(c => !allGroupedCats.has(c));
1106
+ if (ungrouped.length > 0) {
1107
+ GROUPS['other'].cats.push(...ungrouped);
1108
+ }
1109
+ const groupOptions = Object.entries(GROUPS)
1110
+ .filter(([_, g]) => countGroup(g.cats) > 0)
1111
+ .map(([key, g]) => ({
1112
+ value: key,
1113
+ label: `${g.label} (${countGroup(g.cats)})`,
1114
+ }));
1115
+ const selectedGroups = await p.multiselect({
1116
+ message: 'What do you work with? (Space to select, Enter to confirm)',
1117
+ options: groupOptions,
1118
+ required: false,
1119
+ });
1120
+ if (p.isCancel(selectedGroups)) {
1121
+ p.cancel('Setup cancelled.');
1122
+ process.exit(0);
1123
+ }
1124
+ const selectedAdapterIds = [];
1125
+ for (const groupKey of selectedGroups) {
1126
+ const group = GROUPS[groupKey];
1127
+ if (!group)
1128
+ continue;
1129
+ // Show subcategories within this group
1130
+ const subCatOptions = group.cats
1131
+ .filter(cat => (categories.get(cat) || []).length > 0)
1132
+ .map(cat => ({
1133
+ value: cat,
1134
+ label: `${formatCategory(cat)} (${(categories.get(cat) || []).length})`,
1135
+ }));
1136
+ if (subCatOptions.length === 0)
1137
+ continue;
1138
+ const selectedSubCats = await p.multiselect({
1139
+ message: `${group.label} — select categories (Space to select, Enter to confirm)`,
1140
+ options: subCatOptions,
1141
+ required: false,
1142
+ });
1143
+ if (p.isCancel(selectedSubCats))
1144
+ continue;
1145
+ if (selectedSubCats.length > 0) {
1146
+ // Show adapters from selected subcategories
1147
+ const available = [];
1148
+ for (const cat of selectedSubCats) {
1149
+ for (const a of categories.get(cat) || []) {
1150
+ available.push({ value: a.id, label: a.name || a.id, hint: a.description?.slice(0, 60) });
1151
+ }
1152
+ }
1153
+ if (available.length > 0) {
1154
+ const selected = await p.multiselect({
1155
+ message: `Select adapters (${available.length} available)`,
1156
+ options: available.slice(0, 50),
1157
+ required: false,
1158
+ });
1159
+ if (!p.isCancel(selected)) {
1160
+ selectedAdapterIds.push(...selected);
1161
+ }
1162
+ }
1163
+ }
1164
+ }
1165
+ // Step 5: Credentials
1166
+ if (selectedAdapterIds.length > 0) {
1167
+ if (secretsChoice === 'vault' && vaultConnected) {
1168
+ s.start('Pulling credentials from Vault');
1169
+ let pulled = 0;
1170
+ for (const adapterId of selectedAdapterIds) {
1171
+ try {
1172
+ const controller = new AbortController();
1173
+ const t = setTimeout(() => controller.abort(), 3000);
1174
+ const resp = await fetch(`${vaultAddr}/v1/secret/data/${adapterId}`, {
1175
+ headers: { 'X-Vault-Token': vaultToken },
1176
+ signal: controller.signal,
1177
+ });
1178
+ clearTimeout(t);
1179
+ if (resp.ok) {
1180
+ const data = await resp.json();
1181
+ const secrets = data?.data?.data;
1182
+ if (secrets) {
1183
+ for (const [k, v] of Object.entries(secrets)) {
1184
+ writeCredential(k, v);
1185
+ }
1186
+ pulled++;
1187
+ }
1188
+ }
1189
+ }
1190
+ catch { /* skip */ }
1191
+ }
1192
+ s.stop(`Pulled credentials for ${pulled} of ${selectedAdapterIds.length} adapters`);
1193
+ }
1194
+ else if (secretsChoice === '1password') {
1195
+ s.start('Pulling credentials from 1Password');
1196
+ let pulled = 0;
1197
+ for (const adapterId of selectedAdapterIds) {
1198
+ try {
1199
+ const result = execSync(`op item get "${adapterId}" --format json 2>/dev/null`, { encoding: 'utf-8', timeout: 5000 });
1200
+ const item = JSON.parse(result);
1201
+ const fields = item.fields || [];
1202
+ for (const field of fields) {
1203
+ if (field.value && field.label) {
1204
+ const envKey = `${adapterId.toUpperCase().replace(/-/g, '_')}_${field.label.toUpperCase().replace(/\s+/g, '_')}`;
1205
+ writeCredential(envKey, field.value);
1206
+ }
1207
+ }
1208
+ pulled++;
1209
+ }
1210
+ catch { /* skip */ }
1211
+ }
1212
+ s.stop(`Pulled credentials for ${pulled} of ${selectedAdapterIds.length} adapters`);
1213
+ }
1214
+ else if (secretsChoice === 'doppler') {
1215
+ s.start('Pulling credentials from Doppler');
1216
+ try {
1217
+ const result = execSync('doppler secrets download --no-file --format json 2>/dev/null', { encoding: 'utf-8', timeout: 10000 });
1218
+ const secrets = JSON.parse(result);
1219
+ for (const [k, v] of Object.entries(secrets)) {
1220
+ if (typeof v === 'string')
1221
+ writeCredential(k, v);
1222
+ }
1223
+ s.stop('Credentials pulled from Doppler');
1224
+ }
1225
+ catch {
1226
+ s.stop('Doppler pull failed — configure with: doppler setup');
1227
+ }
1228
+ }
1229
+ else if (secretsChoice === 'manual') {
1230
+ for (const adapterId of selectedAdapterIds) {
1231
+ const adapter = allAdapters.find(a => a.id === adapterId);
1232
+ if (!adapter)
1233
+ continue;
1234
+ const envKey = adapter.rest?.envKey || `${adapterId.toUpperCase().replace(/-/g, '_')}_API_KEY`;
1235
+ const key = await p.password({ message: `${envKey} for ${adapter.name || adapterId}` });
1236
+ if (!p.isCancel(key) && key) {
1237
+ writeCredential(envKey, key);
1238
+ }
1239
+ }
1240
+ }
1241
+ else if (secretsChoice === 'env') {
1242
+ p.log.info('Using credentials from environment variables');
1243
+ }
1244
+ // Step 6: Install stdio dependencies
1245
+ for (const adapterId of selectedAdapterIds) {
1246
+ const adapter = allAdapters.find(a => a.id === adapterId);
1247
+ if (!adapter?.mcp?.packageName || adapter.mcp.transport !== 'stdio')
1248
+ continue;
1249
+ s.start(`Installing ${adapter.name || adapterId}`);
1250
+ try {
1251
+ execSync(`npm install -g --ignore-scripts ${adapter.mcp.packageName}`, { stdio: 'pipe', timeout: 60000 });
1252
+ // Verify artifact integrity
1253
+ try {
1254
+ const { ArtifactVerifier } = await import('../trust/ArtifactVerifier.js');
1255
+ const verifier = new ArtifactVerifier({ verifyDigests: true });
1256
+ const pkgPath = execSync(`npm root -g`, { encoding: 'utf-8', timeout: 5000 }).trim();
1257
+ const mainFile = join(pkgPath, adapter.mcp.packageName, 'package.json');
1258
+ const result = await verifier.verify(adapter.mcp.packageName, mainFile);
1259
+ if (!result.valid) {
1260
+ s.stop(`${pc.red('✗')} ${adapter.name || adapterId} — integrity check failed`);
1261
+ }
1262
+ else {
1263
+ s.stop(`${pc.green('✓')} ${adapter.name || adapterId} installed — verified`);
1264
+ }
1265
+ }
1266
+ catch {
1267
+ s.stop(`${pc.green('✓')} ${adapter.name || adapterId} installed`);
1268
+ }
1269
+ }
1270
+ catch {
1271
+ s.stop(`${pc.yellow('!')} ${adapter.name || adapterId} — run manually: npm install -g ${adapter.mcp.packageName}`);
1272
+ }
1273
+ }
1274
+ // Step 7: Verify
1275
+ s.start('Verifying connections');
1276
+ const creds = loadCredentials();
1277
+ let verified = 0;
1278
+ const results = [];
1279
+ for (const adapterId of selectedAdapterIds) {
1280
+ const adapter = allAdapters.find(a => a.id === adapterId);
1281
+ if (!adapter)
1282
+ continue;
1283
+ const hasKey = adapter.rest?.envKey ? !!creds[adapter.rest.envKey] : false;
1284
+ if (hasKey) {
1285
+ verified++;
1286
+ results.push(`${pc.green('✓')} ${adapter.name || adapterId} ${adapter.rest?.toolCount || 0} tools`);
1287
+ }
1288
+ else {
1289
+ results.push(`${pc.yellow('○')} ${adapter.name || adapterId} credentials needed`);
1290
+ }
1291
+ }
1292
+ s.stop('Verification complete');
1293
+ if (results.length > 0) {
1294
+ p.note(results.join('\n'), `${verified} of ${selectedAdapterIds.length} adapters ready`);
1295
+ }
1296
+ }
1297
+ // Step 8: Save state and config
1298
+ const state = loadState();
1299
+ for (const id of selectedAdapterIds) {
1300
+ const adapter = allAdapters.find(a => a.id === id);
1301
+ state.adapters[id] = {
1302
+ type: adapter?.type || 'unknown',
1303
+ status: 'configured',
1304
+ toolCount: adapter?.rest?.toolCount || 0,
1305
+ lastVerified: null,
1306
+ };
1307
+ }
1308
+ saveState(state);
1309
+ saveConfig({
1310
+ selectedAdapters: selectedAdapterIds,
1311
+ secretsProvider: secretsChoice,
1312
+ aiClient: configuredClients.join(','),
1313
+ localBackend: system.localBackend || undefined,
1314
+ });
1315
+ // Outro
1316
+ p.note([
1317
+ `Add adapters: ${pc.cyan('npx @epicai/legion add <name>')}`,
1318
+ `Remove adapters: ${pc.cyan('npx @epicai/legion remove <name>')}`,
1319
+ `Health check: ${pc.cyan('npx @epicai/legion health')}`,
1320
+ `Update adapters: ${pc.cyan('npx @epicai/legion update')}`,
1321
+ `List adapters: ${pc.cyan('npx @epicai/legion list')}`,
1322
+ ].join('\n'), 'Manage your adapters');
1323
+ p.outro(`${pc.green('Legion is ready.')} Your credentials never leave this machine.`);
1324
+ }
1325
+ // ─── Main router ────────────────────────────────────────────
1326
+ async function main() {
1327
+ const args = process.argv.slice(2);
1328
+ const command = args[0];
1329
+ if (args.includes('--serve')) {
1330
+ await startMcpServer();
1331
+ return;
1332
+ }
1333
+ switch (command) {
1334
+ case 'add':
1335
+ if (!args[1]) {
1336
+ console.error('Usage: npx @epicai/legion add <adapter-name>');
1337
+ process.exit(1);
1338
+ }
1339
+ await cmdAdd(args[1]);
1340
+ break;
1341
+ case 'remove':
1342
+ if (!args[1]) {
1343
+ console.error('Usage: npx @epicai/legion remove <adapter-name>');
1344
+ process.exit(1);
1345
+ }
1346
+ await cmdRemove(args[1]);
1347
+ break;
1348
+ case 'health':
1349
+ await cmdHealth();
1350
+ break;
1351
+ case 'list':
1352
+ await cmdList(args[1]);
1353
+ break;
1354
+ case 'serve':
1355
+ await startMcpServer();
1356
+ break;
1357
+ default:
1358
+ await runSetupWizard();
1359
+ break;
1360
+ }
1361
+ }
1362
+ main().catch(err => {
1363
+ console.error('Legion error:', err.message || err);
1364
+ process.exit(1);
1365
+ });