@egain/egain-mcp-server 1.0.1

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.
Files changed (693) hide show
  1. package/.speakeasy/templates/src/lib/env.ts +1 -0
  2. package/README.md +119 -0
  3. package/bin/mcp-server.js +47817 -0
  4. package/bin/mcp-server.js.map +371 -0
  5. package/esm/src/cloudflare-worker/cloudflare-worker.d.ts +17 -0
  6. package/esm/src/cloudflare-worker/cloudflare-worker.d.ts.map +1 -0
  7. package/esm/src/cloudflare-worker/cloudflare-worker.js +72 -0
  8. package/esm/src/cloudflare-worker/cloudflare-worker.js.map +1 -0
  9. package/esm/src/cloudflare-worker/landing-page.d.ts +2 -0
  10. package/esm/src/cloudflare-worker/landing-page.d.ts.map +1 -0
  11. package/esm/src/cloudflare-worker/landing-page.js +330 -0
  12. package/esm/src/cloudflare-worker/landing-page.js.map +1 -0
  13. package/esm/src/core.d.ts +10 -0
  14. package/esm/src/core.d.ts.map +1 -0
  15. package/esm/src/core.js +13 -0
  16. package/esm/src/core.js.map +1 -0
  17. package/esm/src/funcs/getAnnouncements.d.ts +25 -0
  18. package/esm/src/funcs/getAnnouncements.d.ts.map +1 -0
  19. package/esm/src/funcs/getAnnouncements.js +111 -0
  20. package/esm/src/funcs/getAnnouncements.js.map +1 -0
  21. package/esm/src/funcs/getAnswers.d.ts +25 -0
  22. package/esm/src/funcs/getAnswers.d.ts.map +1 -0
  23. package/esm/src/funcs/getAnswers.js +115 -0
  24. package/esm/src/funcs/getAnswers.js.map +1 -0
  25. package/esm/src/funcs/getArticle.d.ts +28 -0
  26. package/esm/src/funcs/getArticle.d.ts.map +1 -0
  27. package/esm/src/funcs/getArticle.js +118 -0
  28. package/esm/src/funcs/getArticle.js.map +1 -0
  29. package/esm/src/funcs/getPopularArticles.d.ts +25 -0
  30. package/esm/src/funcs/getPopularArticles.d.ts.map +1 -0
  31. package/esm/src/funcs/getPopularArticles.js +111 -0
  32. package/esm/src/funcs/getPopularArticles.js.map +1 -0
  33. package/esm/src/funcs/getPortals.d.ts +23 -0
  34. package/esm/src/funcs/getPortals.d.ts.map +1 -0
  35. package/esm/src/funcs/getPortals.js +106 -0
  36. package/esm/src/funcs/getPortals.js.map +1 -0
  37. package/esm/src/funcs/makeSuggestion.d.ts +25 -0
  38. package/esm/src/funcs/makeSuggestion.d.ts.map +1 -0
  39. package/esm/src/funcs/makeSuggestion.js +104 -0
  40. package/esm/src/funcs/makeSuggestion.js.map +1 -0
  41. package/esm/src/funcs/queryAnswers.d.ts +25 -0
  42. package/esm/src/funcs/queryAnswers.d.ts.map +1 -0
  43. package/esm/src/funcs/queryAnswers.js +109 -0
  44. package/esm/src/funcs/queryAnswers.js.map +1 -0
  45. package/esm/src/funcs/queryRetrieve.d.ts +27 -0
  46. package/esm/src/funcs/queryRetrieve.d.ts.map +1 -0
  47. package/esm/src/funcs/queryRetrieve.js +115 -0
  48. package/esm/src/funcs/queryRetrieve.js.map +1 -0
  49. package/esm/src/funcs/querySearch.d.ts +16 -0
  50. package/esm/src/funcs/querySearch.d.ts.map +1 -0
  51. package/esm/src/funcs/querySearch.js +98 -0
  52. package/esm/src/funcs/querySearch.js.map +1 -0
  53. package/esm/src/funcs/retrieveChunks.d.ts +27 -0
  54. package/esm/src/funcs/retrieveChunks.d.ts.map +1 -0
  55. package/esm/src/funcs/retrieveChunks.js +117 -0
  56. package/esm/src/funcs/retrieveChunks.js.map +1 -0
  57. package/esm/src/funcs/searchAiSearch.d.ts +16 -0
  58. package/esm/src/funcs/searchAiSearch.d.ts.map +1 -0
  59. package/esm/src/funcs/searchAiSearch.js +102 -0
  60. package/esm/src/funcs/searchAiSearch.js.map +1 -0
  61. package/esm/src/hooks/auth-hook.d.ts +100 -0
  62. package/esm/src/hooks/auth-hook.d.ts.map +1 -0
  63. package/esm/src/hooks/auth-hook.js +1565 -0
  64. package/esm/src/hooks/auth-hook.js.map +1 -0
  65. package/esm/src/hooks/hooks.d.ts +25 -0
  66. package/esm/src/hooks/hooks.d.ts.map +1 -0
  67. package/esm/src/hooks/hooks.js +82 -0
  68. package/esm/src/hooks/hooks.js.map +1 -0
  69. package/esm/src/hooks/portal-cache-hook.d.ts +34 -0
  70. package/esm/src/hooks/portal-cache-hook.d.ts.map +1 -0
  71. package/esm/src/hooks/portal-cache-hook.js +441 -0
  72. package/esm/src/hooks/portal-cache-hook.js.map +1 -0
  73. package/esm/src/hooks/portal-lookup-hook.d.ts +17 -0
  74. package/esm/src/hooks/portal-lookup-hook.d.ts.map +1 -0
  75. package/esm/src/hooks/portal-lookup-hook.js +374 -0
  76. package/esm/src/hooks/portal-lookup-hook.js.map +1 -0
  77. package/esm/src/hooks/registration.d.ts +3 -0
  78. package/esm/src/hooks/registration.d.ts.map +1 -0
  79. package/esm/src/hooks/registration.js +36 -0
  80. package/esm/src/hooks/registration.js.map +1 -0
  81. package/esm/src/hooks/server-routing-hook.d.ts +19 -0
  82. package/esm/src/hooks/server-routing-hook.d.ts.map +1 -0
  83. package/esm/src/hooks/server-routing-hook.js +43 -0
  84. package/esm/src/hooks/server-routing-hook.js.map +1 -0
  85. package/esm/src/hooks/types.d.ts +76 -0
  86. package/esm/src/hooks/types.d.ts.map +1 -0
  87. package/esm/src/hooks/types.js +5 -0
  88. package/esm/src/hooks/types.js.map +1 -0
  89. package/esm/src/lib/base64.d.ts +10 -0
  90. package/esm/src/lib/base64.d.ts.map +1 -0
  91. package/esm/src/lib/base64.js +29 -0
  92. package/esm/src/lib/base64.js.map +1 -0
  93. package/esm/src/lib/config.d.ts +57 -0
  94. package/esm/src/lib/config.d.ts.map +1 -0
  95. package/esm/src/lib/config.js +46 -0
  96. package/esm/src/lib/config.js.map +1 -0
  97. package/esm/src/lib/dlv.d.ts +14 -0
  98. package/esm/src/lib/dlv.d.ts.map +1 -0
  99. package/esm/src/lib/dlv.js +46 -0
  100. package/esm/src/lib/dlv.js.map +1 -0
  101. package/esm/src/lib/encodings.d.ts +52 -0
  102. package/esm/src/lib/encodings.d.ts.map +1 -0
  103. package/esm/src/lib/encodings.js +354 -0
  104. package/esm/src/lib/encodings.js.map +1 -0
  105. package/esm/src/lib/env.d.ts +15 -0
  106. package/esm/src/lib/env.d.ts.map +1 -0
  107. package/esm/src/lib/env.js +27 -0
  108. package/esm/src/lib/env.js.map +1 -0
  109. package/esm/src/lib/files.d.ts +13 -0
  110. package/esm/src/lib/files.d.ts.map +1 -0
  111. package/esm/src/lib/files.js +73 -0
  112. package/esm/src/lib/files.js.map +1 -0
  113. package/esm/src/lib/http.d.ts +67 -0
  114. package/esm/src/lib/http.d.ts.map +1 -0
  115. package/esm/src/lib/http.js +209 -0
  116. package/esm/src/lib/http.js.map +1 -0
  117. package/esm/src/lib/is-plain-object.d.ts +2 -0
  118. package/esm/src/lib/is-plain-object.d.ts.map +1 -0
  119. package/esm/src/lib/is-plain-object.js +38 -0
  120. package/esm/src/lib/is-plain-object.js.map +1 -0
  121. package/esm/src/lib/logger.d.ts +6 -0
  122. package/esm/src/lib/logger.d.ts.map +1 -0
  123. package/esm/src/lib/logger.js +5 -0
  124. package/esm/src/lib/logger.js.map +1 -0
  125. package/esm/src/lib/matchers.d.ts +66 -0
  126. package/esm/src/lib/matchers.d.ts.map +1 -0
  127. package/esm/src/lib/matchers.js +209 -0
  128. package/esm/src/lib/matchers.js.map +1 -0
  129. package/esm/src/lib/primitives.d.ts +11 -0
  130. package/esm/src/lib/primitives.d.ts.map +1 -0
  131. package/esm/src/lib/primitives.js +81 -0
  132. package/esm/src/lib/primitives.js.map +1 -0
  133. package/esm/src/lib/result.d.ts +31 -0
  134. package/esm/src/lib/result.d.ts.map +1 -0
  135. package/esm/src/lib/result.js +31 -0
  136. package/esm/src/lib/result.js.map +1 -0
  137. package/esm/src/lib/retries.d.ts +38 -0
  138. package/esm/src/lib/retries.d.ts.map +1 -0
  139. package/esm/src/lib/retries.js +150 -0
  140. package/esm/src/lib/retries.js.map +1 -0
  141. package/esm/src/lib/schemas.d.ts +19 -0
  142. package/esm/src/lib/schemas.d.ts.map +1 -0
  143. package/esm/src/lib/schemas.js +57 -0
  144. package/esm/src/lib/schemas.js.map +1 -0
  145. package/esm/src/lib/sdks.d.ts +63 -0
  146. package/esm/src/lib/sdks.d.ts.map +1 -0
  147. package/esm/src/lib/sdks.js +258 -0
  148. package/esm/src/lib/sdks.js.map +1 -0
  149. package/esm/src/lib/security.d.ts +83 -0
  150. package/esm/src/lib/security.d.ts.map +1 -0
  151. package/esm/src/lib/security.js +138 -0
  152. package/esm/src/lib/security.js.map +1 -0
  153. package/esm/src/lib/url.d.ts +5 -0
  154. package/esm/src/lib/url.d.ts.map +1 -0
  155. package/esm/src/lib/url.js +22 -0
  156. package/esm/src/lib/url.js.map +1 -0
  157. package/esm/src/mcp-server/cli/start/command.d.ts +2 -0
  158. package/esm/src/mcp-server/cli/start/command.d.ts.map +1 -0
  159. package/esm/src/mcp-server/cli/start/command.js +96 -0
  160. package/esm/src/mcp-server/cli/start/command.js.map +1 -0
  161. package/esm/src/mcp-server/cli/start/impl.d.ts +17 -0
  162. package/esm/src/mcp-server/cli/start/impl.d.ts.map +1 -0
  163. package/esm/src/mcp-server/cli/start/impl.js +98 -0
  164. package/esm/src/mcp-server/cli/start/impl.js.map +1 -0
  165. package/esm/src/mcp-server/cli.d.ts +6 -0
  166. package/esm/src/mcp-server/cli.d.ts.map +1 -0
  167. package/esm/src/mcp-server/cli.js +7 -0
  168. package/esm/src/mcp-server/cli.js.map +1 -0
  169. package/esm/src/mcp-server/console-logger.d.ts +9 -0
  170. package/esm/src/mcp-server/console-logger.d.ts.map +1 -0
  171. package/esm/src/mcp-server/console-logger.js +56 -0
  172. package/esm/src/mcp-server/console-logger.js.map +1 -0
  173. package/esm/src/mcp-server/extensions.d.ts +11 -0
  174. package/esm/src/mcp-server/extensions.d.ts.map +1 -0
  175. package/esm/src/mcp-server/extensions.js +5 -0
  176. package/esm/src/mcp-server/extensions.js.map +1 -0
  177. package/esm/src/mcp-server/mcp-server.d.ts +2 -0
  178. package/esm/src/mcp-server/mcp-server.d.ts.map +1 -0
  179. package/esm/src/mcp-server/mcp-server.js +23 -0
  180. package/esm/src/mcp-server/mcp-server.js.map +1 -0
  181. package/esm/src/mcp-server/prompts.d.ts +26 -0
  182. package/esm/src/mcp-server/prompts.d.ts.map +1 -0
  183. package/esm/src/mcp-server/prompts.js +47 -0
  184. package/esm/src/mcp-server/prompts.js.map +1 -0
  185. package/esm/src/mcp-server/resources.d.ts +32 -0
  186. package/esm/src/mcp-server/resources.d.ts.map +1 -0
  187. package/esm/src/mcp-server/resources.js +82 -0
  188. package/esm/src/mcp-server/resources.js.map +1 -0
  189. package/esm/src/mcp-server/scopes.d.ts +3 -0
  190. package/esm/src/mcp-server/scopes.d.ts.map +1 -0
  191. package/esm/src/mcp-server/scopes.js +5 -0
  192. package/esm/src/mcp-server/scopes.js.map +1 -0
  193. package/esm/src/mcp-server/server.d.ts +16 -0
  194. package/esm/src/mcp-server/server.d.ts.map +1 -0
  195. package/esm/src/mcp-server/server.js +53 -0
  196. package/esm/src/mcp-server/server.js.map +1 -0
  197. package/esm/src/mcp-server/shared.d.ts +8 -0
  198. package/esm/src/mcp-server/shared.d.ts.map +1 -0
  199. package/esm/src/mcp-server/shared.js +61 -0
  200. package/esm/src/mcp-server/shared.js.map +1 -0
  201. package/esm/src/mcp-server/tools/getAnnouncements.d.ts +7 -0
  202. package/esm/src/mcp-server/tools/getAnnouncements.d.ts.map +1 -0
  203. package/esm/src/mcp-server/tools/getAnnouncements.js +44 -0
  204. package/esm/src/mcp-server/tools/getAnnouncements.js.map +1 -0
  205. package/esm/src/mcp-server/tools/getAnswers.d.ts +7 -0
  206. package/esm/src/mcp-server/tools/getAnswers.d.ts.map +1 -0
  207. package/esm/src/mcp-server/tools/getAnswers.js +44 -0
  208. package/esm/src/mcp-server/tools/getAnswers.js.map +1 -0
  209. package/esm/src/mcp-server/tools/getArticle.d.ts +7 -0
  210. package/esm/src/mcp-server/tools/getArticle.d.ts.map +1 -0
  211. package/esm/src/mcp-server/tools/getArticle.js +47 -0
  212. package/esm/src/mcp-server/tools/getArticle.js.map +1 -0
  213. package/esm/src/mcp-server/tools/getPopularArticles.d.ts +7 -0
  214. package/esm/src/mcp-server/tools/getPopularArticles.d.ts.map +1 -0
  215. package/esm/src/mcp-server/tools/getPopularArticles.js +44 -0
  216. package/esm/src/mcp-server/tools/getPopularArticles.js.map +1 -0
  217. package/esm/src/mcp-server/tools/getPortals.d.ts +7 -0
  218. package/esm/src/mcp-server/tools/getPortals.d.ts.map +1 -0
  219. package/esm/src/mcp-server/tools/getPortals.js +42 -0
  220. package/esm/src/mcp-server/tools/getPortals.js.map +1 -0
  221. package/esm/src/mcp-server/tools/makeSuggestion.d.ts +7 -0
  222. package/esm/src/mcp-server/tools/makeSuggestion.d.ts.map +1 -0
  223. package/esm/src/mcp-server/tools/makeSuggestion.js +44 -0
  224. package/esm/src/mcp-server/tools/makeSuggestion.js.map +1 -0
  225. package/esm/src/mcp-server/tools/queryAnswers.d.ts +7 -0
  226. package/esm/src/mcp-server/tools/queryAnswers.d.ts.map +1 -0
  227. package/esm/src/mcp-server/tools/queryAnswers.js +44 -0
  228. package/esm/src/mcp-server/tools/queryAnswers.js.map +1 -0
  229. package/esm/src/mcp-server/tools/queryRetrieve.d.ts +7 -0
  230. package/esm/src/mcp-server/tools/queryRetrieve.d.ts.map +1 -0
  231. package/esm/src/mcp-server/tools/queryRetrieve.js +46 -0
  232. package/esm/src/mcp-server/tools/queryRetrieve.js.map +1 -0
  233. package/esm/src/mcp-server/tools/querySearch.d.ts +7 -0
  234. package/esm/src/mcp-server/tools/querySearch.d.ts.map +1 -0
  235. package/esm/src/mcp-server/tools/querySearch.js +35 -0
  236. package/esm/src/mcp-server/tools/querySearch.js.map +1 -0
  237. package/esm/src/mcp-server/tools/retrieveChunks.d.ts +7 -0
  238. package/esm/src/mcp-server/tools/retrieveChunks.d.ts.map +1 -0
  239. package/esm/src/mcp-server/tools/retrieveChunks.js +46 -0
  240. package/esm/src/mcp-server/tools/retrieveChunks.js.map +1 -0
  241. package/esm/src/mcp-server/tools/searchAiSearch.d.ts +7 -0
  242. package/esm/src/mcp-server/tools/searchAiSearch.d.ts.map +1 -0
  243. package/esm/src/mcp-server/tools/searchAiSearch.js +35 -0
  244. package/esm/src/mcp-server/tools/searchAiSearch.js.map +1 -0
  245. package/esm/src/mcp-server/tools.d.ts +37 -0
  246. package/esm/src/mcp-server/tools.d.ts.map +1 -0
  247. package/esm/src/mcp-server/tools.js +78 -0
  248. package/esm/src/mcp-server/tools.js.map +1 -0
  249. package/esm/src/models/acceptlanguage.d.ts +7 -0
  250. package/esm/src/models/acceptlanguage.d.ts.map +1 -0
  251. package/esm/src/models/acceptlanguage.js +25 -0
  252. package/esm/src/models/acceptlanguage.js.map +1 -0
  253. package/esm/src/models/accessibleportal.d.ts +12 -0
  254. package/esm/src/models/accessibleportal.d.ts.map +1 -0
  255. package/esm/src/models/accessibleportal.js +14 -0
  256. package/esm/src/models/accessibleportal.js.map +1 -0
  257. package/esm/src/models/additionalsnippets.d.ts +17 -0
  258. package/esm/src/models/additionalsnippets.d.ts.map +1 -0
  259. package/esm/src/models/additionalsnippets.js +23 -0
  260. package/esm/src/models/additionalsnippets.js.map +1 -0
  261. package/esm/src/models/aisearchop.d.ts +23 -0
  262. package/esm/src/models/aisearchop.d.ts.map +1 -0
  263. package/esm/src/models/aisearchop.js +24 -0
  264. package/esm/src/models/aisearchop.js.map +1 -0
  265. package/esm/src/models/allaccessibleportals.d.ts +12 -0
  266. package/esm/src/models/allaccessibleportals.d.ts.map +1 -0
  267. package/esm/src/models/allaccessibleportals.js +11 -0
  268. package/esm/src/models/allaccessibleportals.js.map +1 -0
  269. package/esm/src/models/answersrequest.d.ts +28 -0
  270. package/esm/src/models/answersrequest.d.ts.map +1 -0
  271. package/esm/src/models/answersrequest.js +28 -0
  272. package/esm/src/models/answersrequest.js.map +1 -0
  273. package/esm/src/models/answersresponse.d.ts +34 -0
  274. package/esm/src/models/answersresponse.d.ts.map +1 -0
  275. package/esm/src/models/answersresponse.js +38 -0
  276. package/esm/src/models/answersresponse.js.map +1 -0
  277. package/esm/src/models/article.d.ts +59 -0
  278. package/esm/src/models/article.d.ts.map +1 -0
  279. package/esm/src/models/article.js +59 -0
  280. package/esm/src/models/article.js.map +1 -0
  281. package/esm/src/models/articleadditionalattributes.d.ts +4 -0
  282. package/esm/src/models/articleadditionalattributes.d.ts.map +1 -0
  283. package/esm/src/models/articleadditionalattributes.js +22 -0
  284. package/esm/src/models/articleadditionalattributes.js.map +1 -0
  285. package/esm/src/models/articleattachment.d.ts +16 -0
  286. package/esm/src/models/articleattachment.d.ts.map +1 -0
  287. package/esm/src/models/articleattachment.js +20 -0
  288. package/esm/src/models/articleattachment.js.map +1 -0
  289. package/esm/src/models/articleresult.d.ts +43 -0
  290. package/esm/src/models/articleresult.d.ts.map +1 -0
  291. package/esm/src/models/articleresult.js +42 -0
  292. package/esm/src/models/articleresult.js.map +1 -0
  293. package/esm/src/models/articleresultadditionalattributes.d.ts +4 -0
  294. package/esm/src/models/articleresultadditionalattributes.d.ts.map +1 -0
  295. package/esm/src/models/articleresultadditionalattributes.js +21 -0
  296. package/esm/src/models/articleresultadditionalattributes.js.map +1 -0
  297. package/esm/src/models/articleresults.d.ts +12 -0
  298. package/esm/src/models/articleresults.d.ts.map +1 -0
  299. package/esm/src/models/articleresults.js +11 -0
  300. package/esm/src/models/articleresults.js.map +1 -0
  301. package/esm/src/models/articlesearchresult.d.ts +57 -0
  302. package/esm/src/models/articlesearchresult.d.ts.map +1 -0
  303. package/esm/src/models/articlesearchresult.js +62 -0
  304. package/esm/src/models/articlesearchresult.js.map +1 -0
  305. package/esm/src/models/articletype.d.ts +17 -0
  306. package/esm/src/models/articletype.d.ts.map +1 -0
  307. package/esm/src/models/articletype.js +24 -0
  308. package/esm/src/models/articletype.js.map +1 -0
  309. package/esm/src/models/attachmentforcreatesuggestion.d.ts +9 -0
  310. package/esm/src/models/attachmentforcreatesuggestion.d.ts.map +1 -0
  311. package/esm/src/models/attachmentforcreatesuggestion.js +8 -0
  312. package/esm/src/models/attachmentforcreatesuggestion.js.map +1 -0
  313. package/esm/src/models/bookmarkstatus.d.ts +12 -0
  314. package/esm/src/models/bookmarkstatus.d.ts.map +1 -0
  315. package/esm/src/models/bookmarkstatus.js +11 -0
  316. package/esm/src/models/bookmarkstatus.js.map +1 -0
  317. package/esm/src/models/complianceforarticle.d.ts +24 -0
  318. package/esm/src/models/complianceforarticle.d.ts.map +1 -0
  319. package/esm/src/models/complianceforarticle.js +15 -0
  320. package/esm/src/models/complianceforarticle.js.map +1 -0
  321. package/esm/src/models/createdby.d.ts +10 -0
  322. package/esm/src/models/createdby.d.ts.map +1 -0
  323. package/esm/src/models/createdby.js +12 -0
  324. package/esm/src/models/createdby.js.map +1 -0
  325. package/esm/src/models/createsuggestion.d.ts +43 -0
  326. package/esm/src/models/createsuggestion.d.ts.map +1 -0
  327. package/esm/src/models/createsuggestion.js +47 -0
  328. package/esm/src/models/createsuggestion.js.map +1 -0
  329. package/esm/src/models/customattribute.d.ts +13 -0
  330. package/esm/src/models/customattribute.d.ts.map +1 -0
  331. package/esm/src/models/customattribute.js +19 -0
  332. package/esm/src/models/customattribute.js.map +1 -0
  333. package/esm/src/models/department.d.ts +7 -0
  334. package/esm/src/models/department.d.ts.map +1 -0
  335. package/esm/src/models/department.js +9 -0
  336. package/esm/src/models/department.js.map +1 -0
  337. package/esm/src/models/edition.d.ts +22 -0
  338. package/esm/src/models/edition.d.ts.map +1 -0
  339. package/esm/src/models/edition.js +18 -0
  340. package/esm/src/models/edition.js.map +1 -0
  341. package/esm/src/models/errors/apierror.d.ts +13 -0
  342. package/esm/src/models/errors/apierror.d.ts.map +1 -0
  343. package/esm/src/models/errors/apierror.js +12 -0
  344. package/esm/src/models/errors/apierror.js.map +1 -0
  345. package/esm/src/models/errors/httpclienterrors.d.ts +44 -0
  346. package/esm/src/models/errors/httpclienterrors.d.ts.map +1 -0
  347. package/esm/src/models/errors/httpclienterrors.js +56 -0
  348. package/esm/src/models/errors/httpclienterrors.js.map +1 -0
  349. package/esm/src/models/errors/sdkvalidationerror.d.ts +20 -0
  350. package/esm/src/models/errors/sdkvalidationerror.d.ts.map +1 -0
  351. package/esm/src/models/errors/sdkvalidationerror.js +85 -0
  352. package/esm/src/models/errors/sdkvalidationerror.js.map +1 -0
  353. package/esm/src/models/folderbreadcrumb.d.ts +10 -0
  354. package/esm/src/models/folderbreadcrumb.d.ts.map +1 -0
  355. package/esm/src/models/folderbreadcrumb.js +9 -0
  356. package/esm/src/models/folderbreadcrumb.js.map +1 -0
  357. package/esm/src/models/foldersummary.d.ts +12 -0
  358. package/esm/src/models/foldersummary.d.ts.map +1 -0
  359. package/esm/src/models/foldersummary.js +11 -0
  360. package/esm/src/models/foldersummary.js.map +1 -0
  361. package/esm/src/models/getannouncementarticlesop.d.ts +25 -0
  362. package/esm/src/models/getannouncementarticlesop.d.ts.map +1 -0
  363. package/esm/src/models/getannouncementarticlesop.js +26 -0
  364. package/esm/src/models/getannouncementarticlesop.js.map +1 -0
  365. package/esm/src/models/getarticlebyidop.d.ts +57 -0
  366. package/esm/src/models/getarticlebyidop.d.ts.map +1 -0
  367. package/esm/src/models/getarticlebyidop.js +130 -0
  368. package/esm/src/models/getarticlebyidop.js.map +1 -0
  369. package/esm/src/models/getmyportalsop.d.ts +28 -0
  370. package/esm/src/models/getmyportalsop.d.ts.map +1 -0
  371. package/esm/src/models/getmyportalsop.js +29 -0
  372. package/esm/src/models/getmyportalsop.js.map +1 -0
  373. package/esm/src/models/getpopulararticlesop.d.ts +24 -0
  374. package/esm/src/models/getpopulararticlesop.d.ts.map +1 -0
  375. package/esm/src/models/getpopulararticlesop.js +25 -0
  376. package/esm/src/models/getpopulararticlesop.js.map +1 -0
  377. package/esm/src/models/l10nstring.d.ts +7 -0
  378. package/esm/src/models/l10nstring.d.ts.map +1 -0
  379. package/esm/src/models/l10nstring.js +9 -0
  380. package/esm/src/models/l10nstring.js.map +1 -0
  381. package/esm/src/models/languagecode.d.ts +7 -0
  382. package/esm/src/models/languagecode.d.ts.map +1 -0
  383. package/esm/src/models/languagecode.js +40 -0
  384. package/esm/src/models/languagecode.js.map +1 -0
  385. package/esm/src/models/languagecodeparameter.d.ts +7 -0
  386. package/esm/src/models/languagecodeparameter.d.ts.map +1 -0
  387. package/esm/src/models/languagecodeparameter.js +41 -0
  388. package/esm/src/models/languagecodeparameter.js.map +1 -0
  389. package/esm/src/models/languagequeryparameter.d.ts +7 -0
  390. package/esm/src/models/languagequeryparameter.d.ts.map +1 -0
  391. package/esm/src/models/languagequeryparameter.js +41 -0
  392. package/esm/src/models/languagequeryparameter.js.map +1 -0
  393. package/esm/src/models/link.d.ts +10 -0
  394. package/esm/src/models/link.d.ts.map +1 -0
  395. package/esm/src/models/link.js +9 -0
  396. package/esm/src/models/link.js.map +1 -0
  397. package/esm/src/models/makesuggestionop.d.ts +18 -0
  398. package/esm/src/models/makesuggestionop.d.ts.map +1 -0
  399. package/esm/src/models/makesuggestionop.js +19 -0
  400. package/esm/src/models/makesuggestionop.js.map +1 -0
  401. package/esm/src/models/mandatorylanguagequeryparameter.d.ts +7 -0
  402. package/esm/src/models/mandatorylanguagequeryparameter.d.ts.map +1 -0
  403. package/esm/src/models/mandatorylanguagequeryparameter.js +40 -0
  404. package/esm/src/models/mandatorylanguagequeryparameter.js.map +1 -0
  405. package/esm/src/models/milestone.d.ts +10 -0
  406. package/esm/src/models/milestone.d.ts.map +1 -0
  407. package/esm/src/models/milestone.js +9 -0
  408. package/esm/src/models/milestone.js.map +1 -0
  409. package/esm/src/models/milestonename.d.ts +10 -0
  410. package/esm/src/models/milestonename.d.ts.map +1 -0
  411. package/esm/src/models/milestonename.js +9 -0
  412. package/esm/src/models/milestonename.js.map +1 -0
  413. package/esm/src/models/modifiedby.d.ts +10 -0
  414. package/esm/src/models/modifiedby.d.ts.map +1 -0
  415. package/esm/src/models/modifiedby.js +12 -0
  416. package/esm/src/models/modifiedby.js.map +1 -0
  417. package/esm/src/models/order.d.ts +4 -0
  418. package/esm/src/models/order.d.ts.map +1 -0
  419. package/esm/src/models/order.js +9 -0
  420. package/esm/src/models/order.js.map +1 -0
  421. package/esm/src/models/ownedby.d.ts +10 -0
  422. package/esm/src/models/ownedby.d.ts.map +1 -0
  423. package/esm/src/models/ownedby.js +13 -0
  424. package/esm/src/models/ownedby.js.map +1 -0
  425. package/esm/src/models/paginationinfo.d.ts +10 -0
  426. package/esm/src/models/paginationinfo.d.ts.map +1 -0
  427. package/esm/src/models/paginationinfo.js +12 -0
  428. package/esm/src/models/paginationinfo.js.map +1 -0
  429. package/esm/src/models/personalization.d.ts +25 -0
  430. package/esm/src/models/personalization.d.ts.map +1 -0
  431. package/esm/src/models/personalization.js +22 -0
  432. package/esm/src/models/personalization.js.map +1 -0
  433. package/esm/src/models/postportalidanswersop.d.ts +24 -0
  434. package/esm/src/models/postportalidanswersop.d.ts.map +1 -0
  435. package/esm/src/models/postportalidanswersop.js +25 -0
  436. package/esm/src/models/postportalidanswersop.js.map +1 -0
  437. package/esm/src/models/postportalidretrieveop.d.ts +26 -0
  438. package/esm/src/models/postportalidretrieveop.d.ts.map +1 -0
  439. package/esm/src/models/postportalidretrieveop.js +27 -0
  440. package/esm/src/models/postportalidretrieveop.js.map +1 -0
  441. package/esm/src/models/publishview.d.ts +13 -0
  442. package/esm/src/models/publishview.d.ts.map +1 -0
  443. package/esm/src/models/publishview.js +15 -0
  444. package/esm/src/models/publishview.js.map +1 -0
  445. package/esm/src/models/referenceresponse.d.ts +25 -0
  446. package/esm/src/models/referenceresponse.d.ts.map +1 -0
  447. package/esm/src/models/referenceresponse.js +30 -0
  448. package/esm/src/models/referenceresponse.js.map +1 -0
  449. package/esm/src/models/retrieverequest.d.ts +18 -0
  450. package/esm/src/models/retrieverequest.d.ts.map +1 -0
  451. package/esm/src/models/retrieverequest.js +21 -0
  452. package/esm/src/models/retrieverequest.js.map +1 -0
  453. package/esm/src/models/retrieveresponse.d.ts +37 -0
  454. package/esm/src/models/retrieveresponse.d.ts.map +1 -0
  455. package/esm/src/models/retrieveresponse.js +37 -0
  456. package/esm/src/models/retrieveresponse.js.map +1 -0
  457. package/esm/src/models/schemaslink.d.ts +8 -0
  458. package/esm/src/models/schemaslink.d.ts.map +1 -0
  459. package/esm/src/models/schemaslink.js +10 -0
  460. package/esm/src/models/schemaslink.js.map +1 -0
  461. package/esm/src/models/searchresponse.d.ts +14 -0
  462. package/esm/src/models/searchresponse.d.ts.map +1 -0
  463. package/esm/src/models/searchresponse.js +12 -0
  464. package/esm/src/models/searchresponse.js.map +1 -0
  465. package/esm/src/models/searchresult.d.ts +27 -0
  466. package/esm/src/models/searchresult.d.ts.map +1 -0
  467. package/esm/src/models/searchresult.js +32 -0
  468. package/esm/src/models/searchresult.js.map +1 -0
  469. package/esm/src/models/security.d.ts +6 -0
  470. package/esm/src/models/security.d.ts.map +1 -0
  471. package/esm/src/models/security.js +9 -0
  472. package/esm/src/models/security.js.map +1 -0
  473. package/esm/src/models/shorturl.d.ts +9 -0
  474. package/esm/src/models/shorturl.d.ts.map +1 -0
  475. package/esm/src/models/shorturl.js +12 -0
  476. package/esm/src/models/shorturl.js.map +1 -0
  477. package/esm/src/models/sortidnamedepartment.d.ts +4 -0
  478. package/esm/src/models/sortidnamedepartment.d.ts.map +1 -0
  479. package/esm/src/models/sortidnamedepartment.js +10 -0
  480. package/esm/src/models/sortidnamedepartment.js.map +1 -0
  481. package/esm/src/models/stage.d.ts +11 -0
  482. package/esm/src/models/stage.d.ts.map +1 -0
  483. package/esm/src/models/stage.js +11 -0
  484. package/esm/src/models/stage.js.map +1 -0
  485. package/esm/src/models/structuredauthoringfields.d.ts +10 -0
  486. package/esm/src/models/structuredauthoringfields.d.ts.map +1 -0
  487. package/esm/src/models/structuredauthoringfields.js +12 -0
  488. package/esm/src/models/structuredauthoringfields.js.map +1 -0
  489. package/esm/src/models/tag.d.ts +7 -0
  490. package/esm/src/models/tag.d.ts.map +1 -0
  491. package/esm/src/models/tag.js +9 -0
  492. package/esm/src/models/tag.js.map +1 -0
  493. package/esm/src/models/tagcategory.d.ts +14 -0
  494. package/esm/src/models/tagcategory.d.ts.map +1 -0
  495. package/esm/src/models/tagcategory.js +13 -0
  496. package/esm/src/models/tagcategory.js.map +1 -0
  497. package/esm/src/models/taggroup.d.ts +7 -0
  498. package/esm/src/models/taggroup.d.ts.map +1 -0
  499. package/esm/src/models/taggroup.js +10 -0
  500. package/esm/src/models/taggroup.js.map +1 -0
  501. package/esm/src/models/taggroups.d.ts +7 -0
  502. package/esm/src/models/taggroups.d.ts.map +1 -0
  503. package/esm/src/models/taggroups.js +9 -0
  504. package/esm/src/models/taggroups.js.map +1 -0
  505. package/esm/src/models/tags.d.ts +7 -0
  506. package/esm/src/models/tags.d.ts.map +1 -0
  507. package/esm/src/models/tags.js +9 -0
  508. package/esm/src/models/tags.js.map +1 -0
  509. package/esm/src/models/topicbreadcrumb.d.ts +10 -0
  510. package/esm/src/models/topicbreadcrumb.d.ts.map +1 -0
  511. package/esm/src/models/topicbreadcrumb.js +9 -0
  512. package/esm/src/models/topicbreadcrumb.js.map +1 -0
  513. package/esm/src/models/topicsummary.d.ts +10 -0
  514. package/esm/src/models/topicsummary.d.ts.map +1 -0
  515. package/esm/src/models/topicsummary.js +9 -0
  516. package/esm/src/models/topicsummary.js.map +1 -0
  517. package/esm/src/models/workflow.d.ts +10 -0
  518. package/esm/src/models/workflow.d.ts.map +1 -0
  519. package/esm/src/models/workflow.js +10 -0
  520. package/esm/src/models/workflow.js.map +1 -0
  521. package/esm/src/models/workflowmilestone.d.ts +4 -0
  522. package/esm/src/models/workflowmilestone.d.ts.map +1 -0
  523. package/esm/src/models/workflowmilestone.js +10 -0
  524. package/esm/src/models/workflowmilestone.js.map +1 -0
  525. package/esm/src/models/wserrorcommon.d.ts +17 -0
  526. package/esm/src/models/wserrorcommon.d.ts.map +1 -0
  527. package/esm/src/models/wserrorcommon.js +16 -0
  528. package/esm/src/models/wserrorcommon.js.map +1 -0
  529. package/esm/src/types/async.d.ts +23 -0
  530. package/esm/src/types/async.d.ts.map +1 -0
  531. package/esm/src/types/async.js +28 -0
  532. package/esm/src/types/async.js.map +1 -0
  533. package/esm/src/types/blobs.d.ts +2 -0
  534. package/esm/src/types/blobs.d.ts.map +1 -0
  535. package/esm/src/types/blobs.js +20 -0
  536. package/esm/src/types/blobs.js.map +1 -0
  537. package/esm/src/types/enums.d.ts +12 -0
  538. package/esm/src/types/enums.d.ts.map +1 -0
  539. package/esm/src/types/enums.js +7 -0
  540. package/esm/src/types/enums.js.map +1 -0
  541. package/esm/src/types/fp.d.ts +31 -0
  542. package/esm/src/types/fp.d.ts.map +1 -0
  543. package/esm/src/types/fp.js +31 -0
  544. package/esm/src/types/fp.js.map +1 -0
  545. package/esm/src/types/rfcdate.d.ts +21 -0
  546. package/esm/src/types/rfcdate.d.ts.map +1 -0
  547. package/esm/src/types/rfcdate.js +43 -0
  548. package/esm/src/types/rfcdate.js.map +1 -0
  549. package/esm/src/types/streams.d.ts +2 -0
  550. package/esm/src/types/streams.d.ts.map +1 -0
  551. package/esm/src/types/streams.js +15 -0
  552. package/esm/src/types/streams.js.map +1 -0
  553. package/esm/worker-configuration.d.ts +4 -0
  554. package/esm/worker-configuration.d.ts.map +1 -0
  555. package/esm/worker-configuration.js +5 -0
  556. package/esm/worker-configuration.js.map +1 -0
  557. package/manifest.json +96 -0
  558. package/package.json +41 -0
  559. package/scripts/login.js +93 -0
  560. package/scripts/logout.js +53 -0
  561. package/src/cloudflare-worker/cloudflare-worker.ts +98 -0
  562. package/src/cloudflare-worker/landing-page.ts +337 -0
  563. package/src/core.ts +13 -0
  564. package/src/funcs/getAnnouncements.ts +202 -0
  565. package/src/funcs/getArticle.ts +208 -0
  566. package/src/funcs/getPopularArticles.ts +198 -0
  567. package/src/funcs/getPortals.ts +190 -0
  568. package/src/funcs/makeSuggestion.ts +191 -0
  569. package/src/funcs/queryAnswers.ts +191 -0
  570. package/src/funcs/queryRetrieve.ts +197 -0
  571. package/src/funcs/querySearch.ts +181 -0
  572. package/src/hooks/auth-hook.ts +1752 -0
  573. package/src/hooks/auth-pages/config-page.js +531 -0
  574. package/src/hooks/hooks.ts +132 -0
  575. package/src/hooks/portal-cache-hook.ts +505 -0
  576. package/src/hooks/portal-lookup-hook.ts +429 -0
  577. package/src/hooks/registration.ts +43 -0
  578. package/src/hooks/server-routing-hook.ts +58 -0
  579. package/src/hooks/types.ts +107 -0
  580. package/src/lib/base64.ts +37 -0
  581. package/src/lib/config.ts +89 -0
  582. package/src/lib/dlv.ts +53 -0
  583. package/src/lib/encodings.ts +483 -0
  584. package/src/lib/env.ts +41 -0
  585. package/src/lib/files.ts +82 -0
  586. package/src/lib/http.ts +323 -0
  587. package/src/lib/is-plain-object.ts +43 -0
  588. package/src/lib/logger.ts +9 -0
  589. package/src/lib/matchers.ts +350 -0
  590. package/src/lib/primitives.ts +113 -0
  591. package/src/lib/result.ts +50 -0
  592. package/src/lib/retries.ts +218 -0
  593. package/src/lib/schemas.ts +91 -0
  594. package/src/lib/sdks.ts +409 -0
  595. package/src/lib/security.ts +260 -0
  596. package/src/lib/url.ts +33 -0
  597. package/src/mcp-server/cli/start/command.ts +100 -0
  598. package/src/mcp-server/cli/start/impl.ts +133 -0
  599. package/src/mcp-server/cli.ts +13 -0
  600. package/src/mcp-server/console-logger.ts +76 -0
  601. package/src/mcp-server/extensions.ts +17 -0
  602. package/src/mcp-server/mcp-server.ts +26 -0
  603. package/src/mcp-server/prompts.ts +121 -0
  604. package/src/mcp-server/resources.ts +176 -0
  605. package/src/mcp-server/scopes.ts +7 -0
  606. package/src/mcp-server/server.ts +91 -0
  607. package/src/mcp-server/shared.ts +78 -0
  608. package/src/mcp-server/tools/getAnnouncements.ts +53 -0
  609. package/src/mcp-server/tools/getArticle.ts +56 -0
  610. package/src/mcp-server/tools/getPopularArticles.ts +53 -0
  611. package/src/mcp-server/tools/getPortals.ts +51 -0
  612. package/src/mcp-server/tools/makeSuggestion.ts +53 -0
  613. package/src/mcp-server/tools/queryAnswers.ts +53 -0
  614. package/src/mcp-server/tools/queryRetrieve.ts +55 -0
  615. package/src/mcp-server/tools/querySearch.ts +44 -0
  616. package/src/mcp-server/tools.ts +156 -0
  617. package/src/models/acceptlanguage.ts +30 -0
  618. package/src/models/accessibleportal.ts +27 -0
  619. package/src/models/additionalsnippets.ts +43 -0
  620. package/src/models/aisearchop.ts +62 -0
  621. package/src/models/allaccessibleportals.ts +27 -0
  622. package/src/models/answersrequest.ts +67 -0
  623. package/src/models/answersresponse.ts +88 -0
  624. package/src/models/article.ts +120 -0
  625. package/src/models/articleadditionalattributes.ts +27 -0
  626. package/src/models/articleattachment.ts +38 -0
  627. package/src/models/articleresult.ts +91 -0
  628. package/src/models/articleresults.ts +24 -0
  629. package/src/models/articlesearchresult.ts +139 -0
  630. package/src/models/articletype.ts +42 -0
  631. package/src/models/attachmentforcreatesuggestion.ts +18 -0
  632. package/src/models/bookmarkstatus.ts +28 -0
  633. package/src/models/complianceforarticle.ts +48 -0
  634. package/src/models/createdby.ts +22 -0
  635. package/src/models/createsuggestion.ts +108 -0
  636. package/src/models/customattribute.ts +33 -0
  637. package/src/models/department.ts +16 -0
  638. package/src/models/edition.ts +40 -0
  639. package/src/models/errors/apierror.ts +21 -0
  640. package/src/models/errors/httpclienterrors.ts +62 -0
  641. package/src/models/errors/sdkvalidationerror.ts +97 -0
  642. package/src/models/folderbreadcrumb.ts +21 -0
  643. package/src/models/foldersummary.ts +27 -0
  644. package/src/models/getannouncementarticlesop.ts +68 -0
  645. package/src/models/getarticlebyidop.ts +182 -0
  646. package/src/models/getmyportalsop.ts +78 -0
  647. package/src/models/getpopulararticlesop.ts +66 -0
  648. package/src/models/l10nstring.ts +19 -0
  649. package/src/models/languagecode.ts +43 -0
  650. package/src/models/languagecodeparameter.ts +48 -0
  651. package/src/models/languagequeryparameter.ts +48 -0
  652. package/src/models/link.ts +17 -0
  653. package/src/models/makesuggestionop.ts +47 -0
  654. package/src/models/mandatorylanguagequeryparameter.ts +47 -0
  655. package/src/models/milestone.ts +16 -0
  656. package/src/models/milestonename.ts +22 -0
  657. package/src/models/modifiedby.ts +25 -0
  658. package/src/models/order.ts +12 -0
  659. package/src/models/ownedby.ts +22 -0
  660. package/src/models/paginationinfo.ts +24 -0
  661. package/src/models/personalization.ts +55 -0
  662. package/src/models/postportalidanswersop.ts +62 -0
  663. package/src/models/postportalidretrieveop.ts +68 -0
  664. package/src/models/publishview.ts +35 -0
  665. package/src/models/referenceresponse.ts +60 -0
  666. package/src/models/retrieverequest.ts +47 -0
  667. package/src/models/retrieveresponse.ts +92 -0
  668. package/src/models/schemaslink.ts +21 -0
  669. package/src/models/searchresponse.ts +34 -0
  670. package/src/models/searchresult.ts +64 -0
  671. package/src/models/security.ts +14 -0
  672. package/src/models/shorturl.ts +20 -0
  673. package/src/models/sortidnamedepartment.ts +15 -0
  674. package/src/models/stage.ts +20 -0
  675. package/src/models/structuredauthoringfields.ts +24 -0
  676. package/src/models/tagcategory.ts +28 -0
  677. package/src/models/taggroup.ts +13 -0
  678. package/src/models/taggroups.ts +13 -0
  679. package/src/models/tags.ts +15 -0
  680. package/src/models/topicbreadcrumb.ts +21 -0
  681. package/src/models/topicsummary.ts +24 -0
  682. package/src/models/workflow.ts +16 -0
  683. package/src/models/workflowmilestone.ts +13 -0
  684. package/src/models/wserrorcommon.ts +34 -0
  685. package/src/types/async.ts +68 -0
  686. package/src/types/blobs.ts +23 -0
  687. package/src/types/enums.ts +16 -0
  688. package/src/types/fp.ts +50 -0
  689. package/src/types/rfcdate.ts +54 -0
  690. package/src/types/streams.ts +21 -0
  691. package/tsconfig.json +36 -0
  692. package/worker-configuration.d.ts +8489 -0
  693. package/worker-configuration.ts +11 -0
@@ -0,0 +1,121 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import { RequestHandlerExtra } from "@modelcontextprotocol/sdk/shared/protocol.js";
7
+ import {
8
+ GetPromptResult,
9
+ ServerNotification,
10
+ ServerRequest,
11
+ } from "@modelcontextprotocol/sdk/types.js";
12
+ import {
13
+ objectOutputType,
14
+ ZodOptional,
15
+ ZodType,
16
+ ZodTypeAny,
17
+ ZodTypeDef,
18
+ } from "zod";
19
+ import { EgainMcpCore } from "../core.js";
20
+ import { ConsoleLogger } from "./console-logger.js";
21
+ import { MCPScope } from "./scopes.js";
22
+
23
+ // '@modelcontextprotocol/sdk' currently does not export this type
24
+ export type PromptArgsRawShape = {
25
+ [k: string]:
26
+ | ZodType<string, ZodTypeDef, string>
27
+ | ZodOptional<ZodType<string, ZodTypeDef, string>>;
28
+ };
29
+
30
+ export type PromptDefinition<
31
+ Args extends undefined | PromptArgsRawShape = undefined,
32
+ > = Args extends PromptArgsRawShape ? {
33
+ name: string;
34
+ description?: string;
35
+ scopes?: MCPScope[];
36
+ args: Args;
37
+ prompt: (
38
+ client: EgainMcpCore,
39
+ args: objectOutputType<Args, ZodTypeAny>,
40
+ extra: RequestHandlerExtra<ServerRequest, ServerNotification>,
41
+ ) => GetPromptResult | Promise<GetPromptResult>;
42
+ }
43
+ : {
44
+ name: string;
45
+ description?: string;
46
+ scopes?: MCPScope[];
47
+ args?: undefined;
48
+ prompt: (
49
+ client: EgainMcpCore,
50
+ extra: RequestHandlerExtra<ServerRequest, ServerNotification>,
51
+ ) => GetPromptResult | Promise<GetPromptResult>;
52
+ };
53
+
54
+ // Optional function to assist with formatting prompt results
55
+ export async function formatResult(value: string): Promise<GetPromptResult> {
56
+ return {
57
+ messages: [
58
+ {
59
+ role: "user",
60
+ content: {
61
+ type: "text",
62
+ text: value,
63
+ },
64
+ },
65
+ ],
66
+ };
67
+ }
68
+
69
+ export function createRegisterPrompt(
70
+ logger: ConsoleLogger,
71
+ server: McpServer,
72
+ getSDK: () => EgainMcpCore,
73
+ allowedScopes: Set<MCPScope>,
74
+ ): <A extends PromptArgsRawShape | undefined>(
75
+ prompt: PromptDefinition<A>,
76
+ ) => void {
77
+ return <A extends PromptArgsRawShape | undefined>(
78
+ prompt: PromptDefinition<A>,
79
+ ): void => {
80
+ const scopes = prompt.scopes ?? [];
81
+ if (allowedScopes.size > 0 && scopes.length === 0) {
82
+ return;
83
+ }
84
+
85
+ if (
86
+ allowedScopes.size > 0
87
+ && !scopes.every((s: MCPScope) => allowedScopes.has(s))
88
+ ) {
89
+ return;
90
+ }
91
+
92
+ if (prompt.args) {
93
+ if (prompt.description) {
94
+ server.prompt(
95
+ prompt.name,
96
+ prompt.description,
97
+ prompt.args,
98
+ async (args, ctx) => prompt.prompt(getSDK(), args, ctx),
99
+ );
100
+ } else {
101
+ server.prompt(
102
+ prompt.name,
103
+ prompt.args,
104
+ async (args, ctx) => prompt.prompt(getSDK(), args, ctx),
105
+ );
106
+ }
107
+ } else {
108
+ if (prompt.description) {
109
+ server.prompt(
110
+ prompt.name,
111
+ prompt.description,
112
+ async (ctx) => prompt.prompt(getSDK(), ctx),
113
+ );
114
+ } else {
115
+ server.prompt(prompt.name, async (ctx) => prompt.prompt(getSDK(), ctx));
116
+ }
117
+ }
118
+
119
+ logger.debug("Registered prompt", { name: prompt.name });
120
+ };
121
+ }
@@ -0,0 +1,176 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import {
6
+ McpServer,
7
+ ResourceMetadata,
8
+ ResourceTemplate,
9
+ } from "@modelcontextprotocol/sdk/server/mcp.js";
10
+ import { RequestHandlerExtra } from "@modelcontextprotocol/sdk/shared/protocol.js";
11
+ import { Variables } from "@modelcontextprotocol/sdk/shared/uriTemplate.js";
12
+ import {
13
+ ReadResourceResult,
14
+ ServerNotification,
15
+ ServerRequest,
16
+ } from "@modelcontextprotocol/sdk/types.js";
17
+ import { EgainMcpCore } from "../core.js";
18
+ import { ConsoleLogger } from "./console-logger.js";
19
+ import { MCPScope } from "./scopes.js";
20
+ import { isAsyncIterable, isBinaryData, valueToBase64 } from "./shared.js";
21
+
22
+ export type ReadResourceCallback = (
23
+ client: EgainMcpCore,
24
+ uri: URL,
25
+ extra: RequestHandlerExtra<ServerRequest, ServerNotification>,
26
+ ) => ReadResourceResult | Promise<ReadResourceResult>;
27
+
28
+ export type ResourceDefinition = {
29
+ name: string;
30
+ description?: string;
31
+ metadata?: ResourceMetadata;
32
+ scopes?: MCPScope[];
33
+ resource: string;
34
+ read: ReadResourceCallback;
35
+ };
36
+
37
+ export type ReadResourceTemplateCallback = (
38
+ client: EgainMcpCore,
39
+ uri: URL,
40
+ vars: Variables,
41
+ extra: RequestHandlerExtra<ServerRequest, ServerNotification>,
42
+ ) => ReadResourceResult | Promise<ReadResourceResult>;
43
+
44
+ export type ResourceTemplateDefinition = {
45
+ name: string;
46
+ description: string;
47
+ metadata?: ResourceMetadata;
48
+ scopes?: MCPScope[];
49
+ resource: ResourceTemplate;
50
+ read: ReadResourceTemplateCallback;
51
+ };
52
+
53
+ // Optional function to assist with formatting resource results
54
+ export async function formatResult(
55
+ value: unknown,
56
+ uri: URL,
57
+ init: { mimeType?: string | undefined; response?: Response | undefined },
58
+ ): Promise<ReadResourceResult> {
59
+ if (typeof value === "undefined") {
60
+ return { contents: [] };
61
+ }
62
+
63
+ let contents: ReadResourceResult["contents"] = [];
64
+
65
+ const mimeType = init.mimeType ?? init.response?.headers.get("content-type")
66
+ ?? "";
67
+
68
+ if (mimeType.search(/\bjson\b/g) !== -1) {
69
+ contents = [{ uri: uri.toString(), mimeType, text: JSON.stringify(value) }];
70
+ } else if (
71
+ mimeType.startsWith("text/event-stream")
72
+ && isAsyncIterable(value)
73
+ ) {
74
+ contents = [
75
+ {
76
+ uri: uri.toString(),
77
+ mimeType: "application/json",
78
+ text: await stringifySSEToJSON(value),
79
+ },
80
+ ];
81
+ } else if (
82
+ (mimeType.startsWith("text/") || mimeType.startsWith("application/"))
83
+ && typeof value === "string"
84
+ ) {
85
+ contents = [{ uri: uri.toString(), mimeType, text: value }];
86
+ } else if (isBinaryData(value)) {
87
+ const blob = await valueToBase64(value);
88
+ contents = blob == null ? [] : [{ uri: uri.toString(), blob, mimeType }];
89
+ } else {
90
+ throw new Error(`Unsupported content type: "${mimeType}"`);
91
+ }
92
+
93
+ return { contents };
94
+ }
95
+
96
+ async function stringifySSEToJSON(
97
+ value: AsyncIterable<unknown>,
98
+ ): Promise<string> {
99
+ const payloads = [];
100
+
101
+ for await (const chunk of value) {
102
+ payloads.push(chunk);
103
+ }
104
+
105
+ return JSON.stringify(payloads);
106
+ }
107
+
108
+ export function createRegisterResource(
109
+ logger: ConsoleLogger,
110
+ server: McpServer,
111
+ getSDK: () => EgainMcpCore,
112
+ allowedScopes: Set<MCPScope>,
113
+ ): (resource: ResourceDefinition) => void {
114
+ return (resource: ResourceDefinition): void => {
115
+ const scopes = resource.scopes ?? [];
116
+ if (allowedScopes.size > 0 && scopes.length === 0) {
117
+ return;
118
+ }
119
+
120
+ if (
121
+ allowedScopes.size > 0
122
+ && !scopes.every((s: MCPScope) => allowedScopes.has(s))
123
+ ) {
124
+ return;
125
+ }
126
+
127
+ const metadata: ResourceMetadata = {
128
+ ...resource.metadata,
129
+ description: resource.description,
130
+ };
131
+
132
+ server.resource(
133
+ resource.name,
134
+ resource.resource,
135
+ metadata,
136
+ async (uri, ctx) => resource.read(getSDK(), uri, ctx),
137
+ );
138
+
139
+ logger.debug("Registered resource", { name: resource.name });
140
+ };
141
+ }
142
+
143
+ export function createRegisterResourceTemplate(
144
+ logger: ConsoleLogger,
145
+ server: McpServer,
146
+ getSDK: () => EgainMcpCore,
147
+ allowedScopes: Set<MCPScope>,
148
+ ): (resource: ResourceTemplateDefinition) => void {
149
+ return (resource: ResourceTemplateDefinition): void => {
150
+ const scopes = resource.scopes ?? [];
151
+ if (allowedScopes.size > 0 && scopes.length === 0) {
152
+ return;
153
+ }
154
+
155
+ if (
156
+ allowedScopes.size > 0
157
+ && !scopes.every((s: MCPScope) => allowedScopes.has(s))
158
+ ) {
159
+ return;
160
+ }
161
+
162
+ const metadata: ResourceMetadata = {
163
+ ...resource.metadata,
164
+ description: resource.description,
165
+ };
166
+
167
+ server.resource(
168
+ resource.name,
169
+ resource.resource,
170
+ metadata,
171
+ async (uri, vars, ctx) => resource.read(getSDK(), uri, vars, ctx),
172
+ );
173
+
174
+ logger.debug("Registered resource template", { name: resource.name });
175
+ };
176
+ }
@@ -0,0 +1,7 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ export const mcpScopes = [] as const;
6
+
7
+ export type MCPScope = (typeof mcpScopes)[number];
@@ -0,0 +1,91 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import { EgainMcpCore } from "../core.js";
7
+ import { SDKOptions } from "../lib/config.js";
8
+ import type { ConsoleLogger } from "./console-logger.js";
9
+ import { createRegisterPrompt } from "./prompts.js";
10
+ import {
11
+ createRegisterResource,
12
+ createRegisterResourceTemplate,
13
+ } from "./resources.js";
14
+ import { MCPScope } from "./scopes.js";
15
+ import { createRegisterTool } from "./tools.js";
16
+ import { tool$getAnnouncements } from "./tools/getAnnouncements.js";
17
+ import { tool$getArticle } from "./tools/getArticle.js";
18
+ import { tool$getPopularArticles } from "./tools/getPopularArticles.js";
19
+ import { tool$getPortals } from "./tools/getPortals.js";
20
+ import { tool$makeSuggestion } from "./tools/makeSuggestion.js";
21
+ import { tool$queryAnswers } from "./tools/queryAnswers.js";
22
+ import { tool$queryRetrieve } from "./tools/queryRetrieve.js";
23
+ import { tool$querySearch } from "./tools/querySearch.js";
24
+
25
+ export function createMCPServer(deps: {
26
+ logger: ConsoleLogger;
27
+ allowedTools?: string[] | undefined;
28
+ scopes?: MCPScope[] | undefined;
29
+ getSDK?: () => EgainMcpCore;
30
+ serverURL?: string | undefined;
31
+ security?: SDKOptions["security"] | undefined;
32
+ server?: SDKOptions["server"] | undefined;
33
+ API_DOMAIN?: SDKOptions["API_DOMAIN"] | undefined;
34
+ }) {
35
+ const server = new McpServer({
36
+ name: "EgainMcp",
37
+ version: "1.0.1",
38
+ });
39
+
40
+ const getClient = deps.getSDK || (() =>
41
+ new EgainMcpCore({
42
+ security: deps.security,
43
+ serverURL: deps.serverURL,
44
+ server: deps.server,
45
+ API_DOMAIN: deps.API_DOMAIN,
46
+ debugLogger: deps.logger.level === "debug"
47
+ ? {
48
+ log: (...args) => console.log(...args),
49
+ group: (...args) => console.group(...args),
50
+ groupEnd: (...args) => console.groupEnd(...args),
51
+ }
52
+ : undefined,
53
+ }));
54
+
55
+ const scopes = new Set(deps.scopes);
56
+
57
+ const allowedTools = deps.allowedTools && new Set(deps.allowedTools);
58
+ const tool = createRegisterTool(
59
+ deps.logger,
60
+ server,
61
+ getClient,
62
+ scopes,
63
+ allowedTools,
64
+ );
65
+ const resource = createRegisterResource(
66
+ deps.logger,
67
+ server,
68
+ getClient,
69
+ scopes,
70
+ );
71
+ const resourceTemplate = createRegisterResourceTemplate(
72
+ deps.logger,
73
+ server,
74
+ getClient,
75
+ scopes,
76
+ );
77
+ const prompt = createRegisterPrompt(deps.logger, server, getClient, scopes);
78
+ const register = { tool, resource, resourceTemplate, prompt };
79
+ void register; // suppress unused warnings
80
+
81
+ tool(tool$getArticle);
82
+ tool(tool$getAnnouncements);
83
+ tool(tool$getPopularArticles);
84
+ tool(tool$getPortals);
85
+ tool(tool$makeSuggestion);
86
+ tool(tool$queryAnswers);
87
+ tool(tool$querySearch);
88
+ tool(tool$queryRetrieve);
89
+
90
+ return server;
91
+ }
@@ -0,0 +1,78 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod";
6
+
7
+ type BinaryData =
8
+ | Uint8Array
9
+ | ArrayBuffer
10
+ | Blob
11
+ | ReadableStream
12
+ | Response
13
+ | string;
14
+
15
+ const base64Schema = z.string().base64();
16
+
17
+ export function bytesToBase64(u8arr: Uint8Array): string {
18
+ return btoa(String.fromCodePoint(...u8arr));
19
+ }
20
+
21
+ export async function consumeStream(
22
+ stream: ReadableStream<Uint8Array>,
23
+ ): Promise<Uint8Array> {
24
+ const reader = stream.getReader();
25
+ const chunks: Uint8Array[] = [];
26
+
27
+ try {
28
+ while (true) {
29
+ const { done, value } = await reader.read();
30
+ if (value != null) chunks.push(value);
31
+ if (done) break;
32
+ }
33
+ } finally {
34
+ reader.releaseLock();
35
+ }
36
+
37
+ return new Uint8Array(await new Blob(chunks).arrayBuffer());
38
+ }
39
+
40
+ export function isAsyncIterable(
41
+ value: unknown,
42
+ ): value is AsyncIterable<string> {
43
+ return (
44
+ typeof value === "object" && value != null && Symbol.asyncIterator in value
45
+ );
46
+ }
47
+
48
+ export function isBinaryData(value: unknown): value is BinaryData {
49
+ return (
50
+ value instanceof Uint8Array
51
+ || value instanceof ArrayBuffer
52
+ || value instanceof Blob
53
+ || value instanceof ReadableStream
54
+ || value instanceof Response
55
+ || typeof value === "string"
56
+ );
57
+ }
58
+
59
+ export async function valueToBase64(
60
+ value: BinaryData | null | undefined,
61
+ ): Promise<string | null> {
62
+ if (value == null) {
63
+ return null;
64
+ } else if (value instanceof Uint8Array) {
65
+ return bytesToBase64(value);
66
+ } else if (value instanceof ArrayBuffer) {
67
+ return bytesToBase64(new Uint8Array(value));
68
+ } else if (value instanceof Response || value instanceof Blob) {
69
+ return bytesToBase64(new Uint8Array(await value.arrayBuffer()));
70
+ } else if (value instanceof ReadableStream) {
71
+ return bytesToBase64(await consumeStream(value));
72
+ } else if (typeof value === "string") {
73
+ return base64Schema.parse(value);
74
+ } else {
75
+ value satisfies never;
76
+ throw new Error(`Unsupported image value type: ${typeof value}`);
77
+ }
78
+ }
@@ -0,0 +1,53 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { getAnnouncements } from "../../funcs/getAnnouncements.js";
6
+ import { GetAnnouncementArticlesRequest$zodSchema } from "../../models/getannouncementarticlesop.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ const args = {
10
+ request: GetAnnouncementArticlesRequest$zodSchema,
11
+ };
12
+
13
+ export const tool$getAnnouncements: ToolDefinition<typeof args> = {
14
+ name: "get-announcements",
15
+ description: `Get Announcement Articles
16
+
17
+ Get Announcements
18
+
19
+ ## Prerequisites
20
+ - Requires a valid portal ID. If you don't have the portal ID, first call 'get-portals' to get available portals.
21
+ - Portal ID format: 2-4 letter prefix + dash + 4-15 digits (e.g., "EB-123456789")
22
+
23
+ ## Overview
24
+ The Get Announcements API allows a user to retrieve all announcement articles for a specific portal. Announcements are special articles that are prominently displayed to users and typically contain important updates, news, or notifications.
25
+
26
+ This API returns announcement articles with their full content, metadata, and any associated attachments or links.
27
+ `,
28
+ annotations: {
29
+ "destructiveHint": false,
30
+ "idempotentHint": false,
31
+ "openWorldHint": false,
32
+ "readOnlyHint": true,
33
+ },
34
+ args,
35
+ tool: async (client, args, ctx) => {
36
+ const [result, apiCall] = await getAnnouncements(
37
+ client,
38
+ args.request,
39
+ { fetchOptions: { signal: ctx.signal } },
40
+ ).$inspect();
41
+
42
+ if (!result.ok) {
43
+ return {
44
+ content: [{ type: "text", text: result.error.message }],
45
+ isError: true,
46
+ };
47
+ }
48
+
49
+ const value = result.value;
50
+
51
+ return formatResult(value, apiCall);
52
+ },
53
+ };
@@ -0,0 +1,56 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { getArticle } from "../../funcs/getArticle.js";
6
+ import { GetArticleByIdRequest$zodSchema } from "../../models/getarticlebyidop.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ const args = {
10
+ request: GetArticleByIdRequest$zodSchema,
11
+ };
12
+
13
+ export const tool$getArticle: ToolDefinition<typeof args> = {
14
+ name: "get-article",
15
+ description: `Get Article by ID
16
+
17
+ Get Article by ID
18
+
19
+ ## Prerequisites
20
+ - Requires a valid portal ID. If you don't have the portal ID, first call 'get-portals' to get available portals.
21
+ - Portal ID format: 2-4 letter prefix + dash + 4-15 digits (e.g., "EB-123456789")
22
+ - Requires a valid article ID. Article ID format: 2-4 letter prefix + dash + 4-15 digits (e.g., "PROD-2996")
23
+
24
+ ## Overview
25
+ The Get Article by ID API allows a user to retrieve a specific article using its ID. Additional article attributes and contextual views can be specified in the query parameters.
26
+
27
+ This API returns structured authoring attributes of Issue, Environment, Cause and Confidence Level when the following conditions are met:
28
+ - The "Allow Structured Authoring" setting is enabled at the partition/department level
29
+ - The "Use Structured Authoring" flag is set on the article type
30
+ `,
31
+ annotations: {
32
+ "destructiveHint": false,
33
+ "idempotentHint": false,
34
+ "openWorldHint": false,
35
+ "readOnlyHint": true,
36
+ },
37
+ args,
38
+ tool: async (client, args, ctx) => {
39
+ const [result, apiCall] = await getArticle(
40
+ client,
41
+ args.request,
42
+ { fetchOptions: { signal: ctx.signal } },
43
+ ).$inspect();
44
+
45
+ if (!result.ok) {
46
+ return {
47
+ content: [{ type: "text", text: result.error.message }],
48
+ isError: true,
49
+ };
50
+ }
51
+
52
+ const value = result.value;
53
+
54
+ return formatResult(value, apiCall);
55
+ },
56
+ };
@@ -0,0 +1,53 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { getPopularArticles } from "../../funcs/getPopularArticles.js";
6
+ import { GetpopulararticlesRequest$zodSchema } from "../../models/getpopulararticlesop.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ const args = {
10
+ request: GetpopulararticlesRequest$zodSchema,
11
+ };
12
+
13
+ export const tool$getPopularArticles: ToolDefinition<typeof args> = {
14
+ name: "get-popular-articles",
15
+ description: `Get Popular Articles
16
+
17
+ Get Popular Articles
18
+
19
+ ## Prerequisites
20
+ - Requires a valid portal ID. If you don't have the portal ID, first call 'get-portals' to get available portals.
21
+ - Portal ID format: 2-4 letter prefix + dash + 4-15 digits (e.g., "EB-123456789")
22
+
23
+ ## Overview
24
+ The Popular Articles API allows a user to retrieve the most popular articles from a specific portal. Popular articles are typically determined by user engagement metrics such as views, ratings, or usage frequency.
25
+
26
+ This API returns a list of popular articles with their metadata, allowing users to discover the most relevant and frequently accessed content within the portal.
27
+ `,
28
+ annotations: {
29
+ "destructiveHint": false,
30
+ "idempotentHint": false,
31
+ "openWorldHint": false,
32
+ "readOnlyHint": true,
33
+ },
34
+ args,
35
+ tool: async (client, args, ctx) => {
36
+ const [result, apiCall] = await getPopularArticles(
37
+ client,
38
+ args.request,
39
+ { fetchOptions: { signal: ctx.signal } },
40
+ ).$inspect();
41
+
42
+ if (!result.ok) {
43
+ return {
44
+ content: [{ type: "text", text: result.error.message }],
45
+ isError: true,
46
+ };
47
+ }
48
+
49
+ const value = result.value;
50
+
51
+ return formatResult(value, apiCall);
52
+ },
53
+ };
@@ -0,0 +1,51 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { getPortals } from "../../funcs/getPortals.js";
6
+ import { GetMyPortalsRequest$zodSchema } from "../../models/getmyportalsop.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ const args = {
10
+ request: GetMyPortalsRequest$zodSchema,
11
+ };
12
+
13
+ export const tool$getPortals: ToolDefinition<typeof args> = {
14
+ name: "get-portals",
15
+ description: `Get All Portals Accessible To User
16
+
17
+ ## Overview
18
+ The Get All Portals Accessible to User API allows a user to fetch all portals accessible to user across all department.
19
+ * If no access tags are specified for a portal, then any user can access the portal.
20
+ * If access tags are specified for a portal, users with a user profile that allows access have access to the portal. For users with multiple user profiles, the user profile that allows access does not need to be the active user profile.
21
+ * All the global users(partition) cannot be assigned user profiles; their access is limited to portals without access restrictions.
22
+ * The only articles returned are associated to an Article type when the parameter, “Include in browse on portals” is set to "Yes".
23
+ * When the "shortUrlTemplate" query parameter is provided, the API filters accessible portals according to the specified language and template name. Portal Short URL specific to to the "shortUrlTemplate" query parameter value is returned in the response.
24
+ * When there is no short URL available for a specific language, the API returns a portal object with an empty "shortURL" field.
25
+ `,
26
+ annotations: {
27
+ "destructiveHint": false,
28
+ "idempotentHint": false,
29
+ "openWorldHint": false,
30
+ "readOnlyHint": true,
31
+ },
32
+ args,
33
+ tool: async (client, args, ctx) => {
34
+ const [result, apiCall] = await getPortals(
35
+ client,
36
+ args.request,
37
+ { fetchOptions: { signal: ctx.signal } },
38
+ ).$inspect();
39
+
40
+ if (!result.ok) {
41
+ return {
42
+ content: [{ type: "text", text: result.error.message }],
43
+ isError: true,
44
+ };
45
+ }
46
+
47
+ const value = result.value;
48
+
49
+ return formatResult(value, apiCall);
50
+ },
51
+ };