@egain/egain-mcp-server 1.0.26 → 1.1.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.
- package/README.md +20 -43
- package/bin/mcp-server.js +39534 -29516
- package/bin/mcp-server.js.map +298 -185
- package/esm/src/cloudflare-worker/cloudflare-worker.d.ts.map +1 -1
- package/esm/src/cloudflare-worker/cloudflare-worker.js +20 -9
- package/esm/src/cloudflare-worker/cloudflare-worker.js.map +1 -1
- package/esm/src/funcs/aiSearch.d.ts +63 -0
- package/esm/src/funcs/aiSearch.d.ts.map +1 -0
- package/esm/src/funcs/aiSearch.js +151 -0
- package/esm/src/funcs/aiSearch.js.map +1 -0
- package/esm/src/funcs/getAnnouncementArticles.d.ts +61 -0
- package/esm/src/funcs/getAnnouncementArticles.d.ts.map +1 -0
- package/esm/src/funcs/getAnnouncementArticles.js +152 -0
- package/esm/src/funcs/getAnnouncementArticles.js.map +1 -0
- package/esm/src/funcs/getAnnouncements.d.ts +39 -1
- package/esm/src/funcs/getAnnouncements.d.ts.map +1 -1
- package/esm/src/funcs/getAnnouncements.js +39 -1
- package/esm/src/funcs/getAnnouncements.js.map +1 -1
- package/esm/src/funcs/getArticle.d.ts +42 -0
- package/esm/src/funcs/getArticle.d.ts.map +1 -1
- package/esm/src/funcs/getArticle.js +42 -0
- package/esm/src/funcs/getArticle.js.map +1 -1
- package/esm/src/funcs/getArticleById.d.ts +70 -0
- package/esm/src/funcs/getArticleById.d.ts.map +1 -0
- package/esm/src/funcs/getArticleById.js +163 -0
- package/esm/src/funcs/getArticleById.js.map +1 -0
- package/esm/src/funcs/getBestAnswer.d.ts +66 -0
- package/esm/src/funcs/getBestAnswer.d.ts.map +1 -0
- package/esm/src/funcs/getBestAnswer.js +148 -0
- package/esm/src/funcs/getBestAnswer.js.map +1 -0
- package/esm/src/funcs/getMyPortals.d.ts +97 -0
- package/esm/src/funcs/getMyPortals.d.ts.map +1 -0
- package/esm/src/funcs/getMyPortals.js +180 -0
- package/esm/src/funcs/getMyPortals.js.map +1 -0
- package/esm/src/funcs/getPopularArticles.d.ts +39 -0
- package/esm/src/funcs/getPopularArticles.d.ts.map +1 -1
- package/esm/src/funcs/getPopularArticles.js +47 -3
- package/esm/src/funcs/getPopularArticles.js.map +1 -1
- package/esm/src/funcs/getPortals.d.ts +26 -1
- package/esm/src/funcs/getPortals.d.ts.map +1 -1
- package/esm/src/funcs/getPortals.js +35 -10
- package/esm/src/funcs/getPortals.js.map +1 -1
- package/esm/src/funcs/makeSuggestion.d.ts +46 -2
- package/esm/src/funcs/makeSuggestion.d.ts.map +1 -1
- package/esm/src/funcs/makeSuggestion.js +51 -3
- package/esm/src/funcs/makeSuggestion.js.map +1 -1
- package/esm/src/funcs/queryAnswers.d.ts +41 -5
- package/esm/src/funcs/queryAnswers.d.ts.map +1 -1
- package/esm/src/funcs/queryAnswers.js +41 -5
- package/esm/src/funcs/queryAnswers.js.map +1 -1
- package/esm/src/funcs/queryRetrieve.d.ts +41 -1
- package/esm/src/funcs/queryRetrieve.d.ts.map +1 -1
- package/esm/src/funcs/queryRetrieve.js +41 -1
- package/esm/src/funcs/queryRetrieve.js.map +1 -1
- package/esm/src/funcs/querySearch.d.ts +48 -1
- package/esm/src/funcs/querySearch.d.ts.map +1 -1
- package/esm/src/funcs/querySearch.js +48 -1
- package/esm/src/funcs/querySearch.js.map +1 -1
- package/esm/src/funcs/retrieveChunks.d.ts +41 -7
- package/esm/src/funcs/retrieveChunks.d.ts.map +1 -1
- package/esm/src/funcs/retrieveChunks.js +45 -19
- package/esm/src/funcs/retrieveChunks.js.map +1 -1
- package/esm/src/hooks/auth-hook.d.ts +1 -2
- package/esm/src/hooks/auth-hook.d.ts.map +1 -1
- package/esm/src/hooks/auth-hook.js +1 -65
- package/esm/src/hooks/auth-hook.js.map +1 -1
- package/esm/src/hooks/registration.d.ts.map +1 -1
- package/esm/src/hooks/registration.js +2 -16
- package/esm/src/hooks/registration.js.map +1 -1
- package/esm/src/landing-page.d.ts +5 -0
- package/esm/src/landing-page.d.ts.map +1 -0
- package/esm/src/landing-page.js +1070 -0
- package/esm/src/landing-page.js.map +1 -0
- package/esm/src/lib/base64.d.ts +2 -2
- package/esm/src/lib/base64.d.ts.map +1 -1
- package/esm/src/lib/base64.js +2 -2
- package/esm/src/lib/base64.js.map +1 -1
- package/esm/src/lib/config.d.ts +3 -3
- package/esm/src/lib/config.js +5 -5
- package/esm/src/lib/config.js.map +1 -1
- package/esm/src/lib/encodings.d.ts.map +1 -1
- package/esm/src/lib/encodings.js +10 -1
- package/esm/src/lib/encodings.js.map +1 -1
- package/esm/src/lib/matchers.d.ts.map +1 -1
- package/esm/src/lib/matchers.js +4 -1
- package/esm/src/lib/matchers.js.map +1 -1
- package/esm/src/lib/schemas.d.ts +4 -4
- package/esm/src/lib/schemas.d.ts.map +1 -1
- package/esm/src/lib/schemas.js +2 -2
- package/esm/src/lib/schemas.js.map +1 -1
- package/esm/src/lib/sdks.js +2 -2
- package/esm/src/lib/sdks.js.map +1 -1
- package/esm/src/lib/security.d.ts.map +1 -1
- package/esm/src/lib/security.js +18 -0
- package/esm/src/lib/security.js.map +1 -1
- package/esm/src/mcp-server/cli/start/command.d.ts.map +1 -1
- package/esm/src/mcp-server/cli/start/command.js +30 -0
- package/esm/src/mcp-server/cli/start/command.js.map +1 -1
- package/esm/src/mcp-server/cli/start/impl.d.ts +2 -7
- package/esm/src/mcp-server/cli/start/impl.d.ts.map +1 -1
- package/esm/src/mcp-server/cli/start/impl.js +98 -22
- package/esm/src/mcp-server/cli/start/impl.js.map +1 -1
- package/esm/src/mcp-server/extensions.d.ts +4 -4
- package/esm/src/mcp-server/extensions.d.ts.map +1 -1
- package/esm/src/mcp-server/flags.d.ts +17 -0
- package/esm/src/mcp-server/flags.d.ts.map +1 -0
- package/esm/src/mcp-server/flags.js +5 -0
- package/esm/src/mcp-server/flags.js.map +1 -0
- package/esm/src/mcp-server/mcp-server.js +1 -1
- package/esm/src/mcp-server/mcp-server.js.map +1 -1
- package/esm/src/mcp-server/prompts.d.ts +4 -7
- package/esm/src/mcp-server/prompts.d.ts.map +1 -1
- package/esm/src/mcp-server/prompts.js.map +1 -1
- package/esm/src/mcp-server/server.d.ts +8 -1
- package/esm/src/mcp-server/server.d.ts.map +1 -1
- package/esm/src/mcp-server/server.js +19 -16
- package/esm/src/mcp-server/server.js.map +1 -1
- package/esm/src/mcp-server/tools/aiSearch.d.ts +7 -0
- package/esm/src/mcp-server/tools/aiSearch.d.ts.map +1 -0
- package/esm/src/mcp-server/tools/aiSearch.js +83 -0
- package/esm/src/mcp-server/tools/aiSearch.js.map +1 -0
- package/esm/src/mcp-server/tools/getAnnouncementArticles.d.ts +7 -0
- package/esm/src/mcp-server/tools/getAnnouncementArticles.d.ts.map +1 -0
- package/esm/src/mcp-server/tools/getAnnouncementArticles.js +81 -0
- package/esm/src/mcp-server/tools/getAnnouncementArticles.js.map +1 -0
- package/esm/src/mcp-server/tools/getAnnouncements.d.ts.map +1 -1
- package/esm/src/mcp-server/tools/getAnnouncements.js +39 -1
- package/esm/src/mcp-server/tools/getAnnouncements.js.map +1 -1
- package/esm/src/mcp-server/tools/getArticle.d.ts.map +1 -1
- package/esm/src/mcp-server/tools/getArticle.js +42 -0
- package/esm/src/mcp-server/tools/getArticle.js.map +1 -1
- package/esm/src/mcp-server/tools/getArticleById.d.ts +7 -0
- package/esm/src/mcp-server/tools/getArticleById.d.ts.map +1 -0
- package/esm/src/mcp-server/tools/getArticleById.js +90 -0
- package/esm/src/mcp-server/tools/getArticleById.js.map +1 -0
- package/esm/src/mcp-server/tools/getBestAnswer.d.ts +7 -0
- package/esm/src/mcp-server/tools/getBestAnswer.d.ts.map +1 -0
- package/esm/src/mcp-server/tools/getBestAnswer.js +85 -0
- package/esm/src/mcp-server/tools/getBestAnswer.js.map +1 -0
- package/esm/src/mcp-server/tools/getMyPortals.d.ts +7 -0
- package/esm/src/mcp-server/tools/getMyPortals.d.ts.map +1 -0
- package/esm/src/mcp-server/tools/getMyPortals.js +117 -0
- package/esm/src/mcp-server/tools/getMyPortals.js.map +1 -0
- package/esm/src/mcp-server/tools/getPopularArticles.d.ts +1 -1
- package/esm/src/mcp-server/tools/getPopularArticles.d.ts.map +1 -1
- package/esm/src/mcp-server/tools/getPopularArticles.js +40 -0
- package/esm/src/mcp-server/tools/getPopularArticles.js.map +1 -1
- package/esm/src/mcp-server/tools/getPortals.d.ts +1 -1
- package/esm/src/mcp-server/tools/getPortals.d.ts.map +1 -1
- package/esm/src/mcp-server/tools/getPortals.js +26 -1
- package/esm/src/mcp-server/tools/getPortals.js.map +1 -1
- package/esm/src/mcp-server/tools/makeSuggestion.d.ts +1 -1
- package/esm/src/mcp-server/tools/makeSuggestion.d.ts.map +1 -1
- package/esm/src/mcp-server/tools/makeSuggestion.js +44 -0
- package/esm/src/mcp-server/tools/makeSuggestion.js.map +1 -1
- package/esm/src/mcp-server/tools/queryAnswers.d.ts.map +1 -1
- package/esm/src/mcp-server/tools/queryAnswers.js +41 -5
- package/esm/src/mcp-server/tools/queryAnswers.js.map +1 -1
- package/esm/src/mcp-server/tools/queryRetrieve.d.ts.map +1 -1
- package/esm/src/mcp-server/tools/queryRetrieve.js +41 -1
- package/esm/src/mcp-server/tools/queryRetrieve.js.map +1 -1
- package/esm/src/mcp-server/tools/querySearch.d.ts.map +1 -1
- package/esm/src/mcp-server/tools/querySearch.js +48 -1
- package/esm/src/mcp-server/tools/querySearch.js.map +1 -1
- package/esm/src/mcp-server/tools/retrieveChunks.d.ts +1 -1
- package/esm/src/mcp-server/tools/retrieveChunks.d.ts.map +1 -1
- package/esm/src/mcp-server/tools/retrieveChunks.js +41 -7
- package/esm/src/mcp-server/tools/retrieveChunks.js.map +1 -1
- package/esm/src/mcp-server/tools.d.ts +14 -4
- package/esm/src/mcp-server/tools.d.ts.map +1 -1
- package/esm/src/mcp-server/tools.js +203 -5
- package/esm/src/mcp-server/tools.js.map +1 -1
- package/esm/src/models/acceptlanguage.d.ts +36 -5
- package/esm/src/models/acceptlanguage.d.ts.map +1 -1
- package/esm/src/models/acceptlanguage.js +18 -4
- package/esm/src/models/acceptlanguage.js.map +1 -1
- package/esm/src/models/accessibleportal.d.ts +1 -1
- package/esm/src/models/accessibleportal.d.ts.map +1 -1
- package/esm/src/models/accessibleportal.js.map +1 -1
- package/esm/src/models/additionalsnippets.d.ts +18 -3
- package/esm/src/models/additionalsnippets.d.ts.map +1 -1
- package/esm/src/models/additionalsnippets.js +8 -1
- package/esm/src/models/additionalsnippets.js.map +1 -1
- package/esm/src/models/aisearchop.d.ts +4 -10
- package/esm/src/models/aisearchop.d.ts.map +1 -1
- package/esm/src/models/aisearchop.js +9 -20
- package/esm/src/models/aisearchop.js.map +1 -1
- package/esm/src/models/aisearchresponse.d.ts +2 -2
- package/esm/src/models/aisearchresponse.d.ts.map +1 -1
- package/esm/src/models/aisearchresponse.js.map +1 -1
- package/esm/src/models/aispaginationinfo.d.ts +1 -1
- package/esm/src/models/aispaginationinfo.d.ts.map +1 -1
- package/esm/src/models/aispaginationinfo.js +5 -4
- package/esm/src/models/aispaginationinfo.js.map +1 -1
- package/esm/src/models/aitopicbreadcrumb.d.ts +1 -1
- package/esm/src/models/aitopicbreadcrumb.d.ts.map +1 -1
- package/esm/src/models/aitopicbreadcrumb.js +2 -1
- package/esm/src/models/aitopicbreadcrumb.js.map +1 -1
- package/esm/src/models/aitopicsummary.d.ts +1 -1
- package/esm/src/models/aitopicsummary.d.ts.map +1 -1
- package/esm/src/models/aitopicsummary.js.map +1 -1
- package/esm/src/models/allaccessibleportals.d.ts +1 -1
- package/esm/src/models/allaccessibleportals.d.ts.map +1 -1
- package/esm/src/models/allaccessibleportals.js +2 -1
- package/esm/src/models/allaccessibleportals.js.map +1 -1
- package/esm/src/models/answersrequest.d.ts +16 -25
- package/esm/src/models/answersrequest.d.ts.map +1 -1
- package/esm/src/models/answersrequest.js +11 -25
- package/esm/src/models/answersrequest.js.map +1 -1
- package/esm/src/models/answersresponse.d.ts +28 -7
- package/esm/src/models/answersresponse.d.ts.map +1 -1
- package/esm/src/models/answersresponse.js +8 -0
- package/esm/src/models/answersresponse.js.map +1 -1
- package/esm/src/models/article.d.ts +2 -2
- package/esm/src/models/article.d.ts.map +1 -1
- package/esm/src/models/article.js +3 -4
- package/esm/src/models/article.js.map +1 -1
- package/esm/src/models/articleadditionalattributes.d.ts +36 -2
- package/esm/src/models/articleadditionalattributes.d.ts.map +1 -1
- package/esm/src/models/articleadditionalattributes.js +17 -0
- package/esm/src/models/articleadditionalattributes.js.map +1 -1
- package/esm/src/models/articleaisearchresult.d.ts +48 -9
- package/esm/src/models/articleaisearchresult.d.ts.map +1 -1
- package/esm/src/models/articleaisearchresult.js +17 -1
- package/esm/src/models/articleaisearchresult.js.map +1 -1
- package/esm/src/models/articleattachment.d.ts +14 -3
- package/esm/src/models/articleattachment.d.ts.map +1 -1
- package/esm/src/models/articleattachment.js +7 -2
- package/esm/src/models/articleattachment.js.map +1 -1
- package/esm/src/models/articleresult.d.ts +1 -1
- package/esm/src/models/articleresult.d.ts.map +1 -1
- package/esm/src/models/articleresult.js +1 -1
- package/esm/src/models/articleresult.js.map +1 -1
- package/esm/src/models/articleresultadditionalattributes.d.ts +34 -2
- package/esm/src/models/articleresultadditionalattributes.d.ts.map +1 -1
- package/esm/src/models/articleresultadditionalattributes.js +16 -0
- package/esm/src/models/articleresultadditionalattributes.js.map +1 -1
- package/esm/src/models/articleresults.d.ts +1 -1
- package/esm/src/models/articleresults.d.ts.map +1 -1
- package/esm/src/models/articleresults.js.map +1 -1
- package/esm/src/models/articletype.d.ts +2 -7
- package/esm/src/models/articletype.d.ts.map +1 -1
- package/esm/src/models/articletype.js +2 -16
- package/esm/src/models/articletype.js.map +1 -1
- package/esm/src/models/attachmentforcreatesuggestion.d.ts +1 -1
- package/esm/src/models/attachmentforcreatesuggestion.d.ts.map +1 -1
- package/esm/src/models/attachmentforcreatesuggestion.js.map +1 -1
- package/esm/src/models/bookmarkstatus.d.ts +1 -1
- package/esm/src/models/bookmarkstatus.d.ts.map +1 -1
- package/esm/src/models/bookmarkstatus.js +1 -1
- package/esm/src/models/bookmarkstatus.js.map +1 -1
- package/esm/src/models/complianceforarticle.d.ts +3 -3
- package/esm/src/models/complianceforarticle.d.ts.map +1 -1
- package/esm/src/models/complianceforarticle.js +8 -5
- package/esm/src/models/complianceforarticle.js.map +1 -1
- package/esm/src/models/createdby.d.ts +1 -1
- package/esm/src/models/createdby.d.ts.map +1 -1
- package/esm/src/models/createdby.js.map +1 -1
- package/esm/src/models/createsuggestion.d.ts +69 -6
- package/esm/src/models/createsuggestion.d.ts.map +1 -1
- package/esm/src/models/createsuggestion.js +31 -2
- package/esm/src/models/createsuggestion.js.map +1 -1
- package/esm/src/models/customattribute.d.ts +18 -3
- package/esm/src/models/customattribute.d.ts.map +1 -1
- package/esm/src/models/customattribute.js +6 -0
- package/esm/src/models/customattribute.js.map +1 -1
- package/esm/src/models/department.d.ts +1 -1
- package/esm/src/models/department.d.ts.map +1 -1
- package/esm/src/models/department.js.map +1 -1
- package/esm/src/models/edition.d.ts +2 -2
- package/esm/src/models/edition.d.ts.map +1 -1
- package/esm/src/models/edition.js +1 -2
- package/esm/src/models/edition.js.map +1 -1
- package/esm/src/models/errors/sdkvalidationerror.d.ts +1 -1
- package/esm/src/models/errors/sdkvalidationerror.d.ts.map +1 -1
- package/esm/src/models/errors/sdkvalidationerror.js +2 -49
- package/esm/src/models/errors/sdkvalidationerror.js.map +1 -1
- package/esm/src/models/folderbreadcrumb.d.ts +1 -1
- package/esm/src/models/folderbreadcrumb.d.ts.map +1 -1
- package/esm/src/models/folderbreadcrumb.js.map +1 -1
- package/esm/src/models/foldersummary.d.ts +1 -1
- package/esm/src/models/foldersummary.d.ts.map +1 -1
- package/esm/src/models/foldersummary.js +1 -1
- package/esm/src/models/foldersummary.js.map +1 -1
- package/esm/src/models/getannouncementarticlesop.d.ts +8 -9
- package/esm/src/models/getannouncementarticlesop.d.ts.map +1 -1
- package/esm/src/models/getannouncementarticlesop.js +12 -10
- package/esm/src/models/getannouncementarticlesop.js.map +1 -1
- package/esm/src/models/getarticlebyidop.d.ts +77 -11
- package/esm/src/models/getarticlebyidop.d.ts.map +1 -1
- package/esm/src/models/getarticlebyidop.js +31 -62
- package/esm/src/models/getarticlebyidop.js.map +1 -1
- package/esm/src/models/getbestanswerop.d.ts +1 -9
- package/esm/src/models/getbestanswerop.d.ts.map +1 -1
- package/esm/src/models/getbestanswerop.js +3 -16
- package/esm/src/models/getbestanswerop.js.map +1 -1
- package/esm/src/models/getmyportalsop.d.ts +4 -10
- package/esm/src/models/getmyportalsop.d.ts.map +1 -1
- package/esm/src/models/getmyportalsop.js +9 -10
- package/esm/src/models/getmyportalsop.js.map +1 -1
- package/esm/src/models/getpopulararticlesop.d.ts +8 -9
- package/esm/src/models/getpopulararticlesop.d.ts.map +1 -1
- package/esm/src/models/getpopulararticlesop.js +12 -10
- package/esm/src/models/getpopulararticlesop.js.map +1 -1
- package/esm/src/models/l10nstring.d.ts +1 -1
- package/esm/src/models/l10nstring.d.ts.map +1 -1
- package/esm/src/models/l10nstring.js.map +1 -1
- package/esm/src/models/languagecode.d.ts +69 -2
- package/esm/src/models/languagecode.d.ts.map +1 -1
- package/esm/src/models/languagecode.js +32 -0
- package/esm/src/models/languagecode.js.map +1 -1
- package/esm/src/models/languagecodeparameter.d.ts +90 -5
- package/esm/src/models/languagecodeparameter.d.ts.map +1 -1
- package/esm/src/models/languagecodeparameter.js +45 -4
- package/esm/src/models/languagecodeparameter.js.map +1 -1
- package/esm/src/models/languagequeryparameter.d.ts +90 -5
- package/esm/src/models/languagequeryparameter.d.ts.map +1 -1
- package/esm/src/models/languagequeryparameter.js +45 -4
- package/esm/src/models/languagequeryparameter.js.map +1 -1
- package/esm/src/models/link.d.ts +1 -1
- package/esm/src/models/link.d.ts.map +1 -1
- package/esm/src/models/link.js.map +1 -1
- package/esm/src/models/makesuggestionop.d.ts +4 -9
- package/esm/src/models/makesuggestionop.d.ts.map +1 -1
- package/esm/src/models/makesuggestionop.js +3 -7
- package/esm/src/models/makesuggestionop.js.map +1 -1
- package/esm/src/models/mandatorylanguagequeryparameter.d.ts +90 -5
- package/esm/src/models/mandatorylanguagequeryparameter.d.ts.map +1 -1
- package/esm/src/models/mandatorylanguagequeryparameter.js +45 -4
- package/esm/src/models/mandatorylanguagequeryparameter.js.map +1 -1
- package/esm/src/models/milestone.d.ts +1 -1
- package/esm/src/models/milestone.d.ts.map +1 -1
- package/esm/src/models/milestone.js.map +1 -1
- package/esm/src/models/milestonename.d.ts +1 -1
- package/esm/src/models/milestonename.d.ts.map +1 -1
- package/esm/src/models/milestonename.js.map +1 -1
- package/esm/src/models/modifiedby.d.ts +1 -1
- package/esm/src/models/modifiedby.d.ts.map +1 -1
- package/esm/src/models/modifiedby.js.map +1 -1
- package/esm/src/models/order.d.ts +10 -2
- package/esm/src/models/order.d.ts.map +1 -1
- package/esm/src/models/order.js +4 -0
- package/esm/src/models/order.js.map +1 -1
- package/esm/src/models/ownedby.d.ts +1 -1
- package/esm/src/models/ownedby.d.ts.map +1 -1
- package/esm/src/models/ownedby.js +1 -2
- package/esm/src/models/ownedby.js.map +1 -1
- package/esm/src/models/paginationinfo.d.ts +1 -1
- package/esm/src/models/paginationinfo.d.ts.map +1 -1
- package/esm/src/models/paginationinfo.js +3 -3
- package/esm/src/models/paginationinfo.js.map +1 -1
- package/esm/src/models/personalization.d.ts +4 -4
- package/esm/src/models/personalization.d.ts.map +1 -1
- package/esm/src/models/personalization.js +1 -2
- package/esm/src/models/personalization.js.map +1 -1
- package/esm/src/models/publishview.d.ts +2 -2
- package/esm/src/models/publishview.d.ts.map +1 -1
- package/esm/src/models/publishview.js.map +1 -1
- package/esm/src/models/referenceresponse.d.ts +30 -5
- package/esm/src/models/referenceresponse.d.ts.map +1 -1
- package/esm/src/models/referenceresponse.js +12 -1
- package/esm/src/models/referenceresponse.js.map +1 -1
- package/esm/src/models/requiredlanguagecode.d.ts +71 -2
- package/esm/src/models/requiredlanguagecode.d.ts.map +1 -1
- package/esm/src/models/requiredlanguagecode.js +33 -0
- package/esm/src/models/requiredlanguagecode.js.map +1 -1
- package/esm/src/models/retrievechunksop.d.ts +1 -9
- package/esm/src/models/retrievechunksop.d.ts.map +1 -1
- package/esm/src/models/retrievechunksop.js +1 -15
- package/esm/src/models/retrievechunksop.js.map +1 -1
- package/esm/src/models/retrieverequest.d.ts +15 -4
- package/esm/src/models/retrieverequest.d.ts.map +1 -1
- package/esm/src/models/retrieverequest.js +4 -0
- package/esm/src/models/retrieverequest.js.map +1 -1
- package/esm/src/models/retrieveresponse.d.ts +27 -8
- package/esm/src/models/retrieveresponse.d.ts.map +1 -1
- package/esm/src/models/retrieveresponse.js +8 -1
- package/esm/src/models/retrieveresponse.js.map +1 -1
- package/esm/src/models/schemaslink.d.ts +1 -1
- package/esm/src/models/schemaslink.d.ts.map +1 -1
- package/esm/src/models/schemaslink.js.map +1 -1
- package/esm/src/models/schemastags.d.ts +1 -1
- package/esm/src/models/schemastags.d.ts.map +1 -1
- package/esm/src/models/schemastags.js.map +1 -1
- package/esm/src/models/searchresult.d.ts +40 -5
- package/esm/src/models/searchresult.d.ts.map +1 -1
- package/esm/src/models/searchresult.js +19 -0
- package/esm/src/models/searchresult.js.map +1 -1
- package/esm/src/models/security.d.ts +5 -2
- package/esm/src/models/security.d.ts.map +1 -1
- package/esm/src/models/security.js +5 -3
- package/esm/src/models/security.js.map +1 -1
- package/esm/src/models/shorturl.d.ts +1 -1
- package/esm/src/models/shorturl.d.ts.map +1 -1
- package/esm/src/models/shorturl.js +1 -2
- package/esm/src/models/shorturl.js.map +1 -1
- package/esm/src/models/sortidnamedepartment.d.ts +12 -2
- package/esm/src/models/sortidnamedepartment.d.ts.map +1 -1
- package/esm/src/models/sortidnamedepartment.js +5 -0
- package/esm/src/models/sortidnamedepartment.js.map +1 -1
- package/esm/src/models/stage.d.ts +1 -1
- package/esm/src/models/stage.d.ts.map +1 -1
- package/esm/src/models/stage.js +1 -2
- package/esm/src/models/stage.js.map +1 -1
- package/esm/src/models/structuredauthoringfields.d.ts +1 -1
- package/esm/src/models/structuredauthoringfields.d.ts.map +1 -1
- package/esm/src/models/structuredauthoringfields.js.map +1 -1
- package/esm/src/models/tag.d.ts +1 -1
- package/esm/src/models/tag.d.ts.map +1 -1
- package/esm/src/models/tag.js.map +1 -1
- package/esm/src/models/tagcategory.d.ts +1 -1
- package/esm/src/models/tagcategory.d.ts.map +1 -1
- package/esm/src/models/tagcategory.js.map +1 -1
- package/esm/src/models/taggroup.d.ts +1 -1
- package/esm/src/models/taggroup.d.ts.map +1 -1
- package/esm/src/models/taggroup.js +1 -2
- package/esm/src/models/taggroup.js.map +1 -1
- package/esm/src/models/taggroups.d.ts +1 -1
- package/esm/src/models/taggroups.d.ts.map +1 -1
- package/esm/src/models/taggroups.js.map +1 -1
- package/esm/src/models/tags.d.ts +1 -1
- package/esm/src/models/tags.d.ts.map +1 -1
- package/esm/src/models/tags.js.map +1 -1
- package/esm/src/models/topicbreadcrumb.d.ts +1 -1
- package/esm/src/models/topicbreadcrumb.d.ts.map +1 -1
- package/esm/src/models/topicbreadcrumb.js.map +1 -1
- package/esm/src/models/topicsummary.d.ts +1 -1
- package/esm/src/models/topicsummary.d.ts.map +1 -1
- package/esm/src/models/topicsummary.js.map +1 -1
- package/esm/src/models/workflow.d.ts +1 -1
- package/esm/src/models/workflow.d.ts.map +1 -1
- package/esm/src/models/workflow.js +1 -2
- package/esm/src/models/workflow.js.map +1 -1
- package/esm/src/models/workflowmilestone.d.ts +12 -2
- package/esm/src/models/workflowmilestone.d.ts.map +1 -1
- package/esm/src/models/workflowmilestone.js +5 -0
- package/esm/src/models/workflowmilestone.js.map +1 -1
- package/esm/src/models/wserrorcommon.d.ts +2 -2
- package/esm/src/models/wserrorcommon.d.ts.map +1 -1
- package/esm/src/models/wserrorcommon.js +1 -2
- package/esm/src/models/wserrorcommon.js.map +1 -1
- package/esm/src/tool-names.d.ts +5 -0
- package/esm/src/tool-names.d.ts.map +1 -0
- package/esm/src/tool-names.js +36 -0
- package/esm/src/tool-names.js.map +1 -0
- package/esm/src/types/bigint.d.ts +6 -0
- package/esm/src/types/bigint.d.ts.map +1 -0
- package/esm/src/types/bigint.js +87 -0
- package/esm/src/types/bigint.js.map +1 -0
- package/esm/worker-configuration.d.ts +1 -0
- package/esm/worker-configuration.d.ts.map +1 -1
- package/manifest.json +78 -51
- package/package.json +11 -7
- package/src/cloudflare-worker/cloudflare-worker.ts +22 -9
- package/src/funcs/{querySearch.ts → aiSearch.ts} +49 -2
- package/src/funcs/{getAnnouncements.ts → getAnnouncementArticles.ts} +67 -10
- package/src/funcs/{getArticle.ts → getArticleById.ts} +58 -1
- package/src/funcs/{queryAnswers.ts → getBestAnswer.ts} +52 -14
- package/src/funcs/{getPortals.ts → getMyPortals.ts} +35 -2
- package/src/funcs/getPopularArticles.ts +68 -8
- package/src/funcs/makeSuggestion.ts +67 -9
- package/src/funcs/{queryRetrieve.ts → retrieveChunks.ts} +50 -15
- package/src/hooks/auth-hook.ts +3 -63
- package/src/hooks/registration.ts +3 -18
- package/src/landing-page.ts +1084 -0
- package/src/lib/base64.ts +2 -2
- package/src/lib/config.ts +5 -5
- package/src/lib/encodings.ts +12 -3
- package/src/lib/matchers.ts +5 -1
- package/src/lib/schemas.ts +10 -22
- package/src/lib/sdks.ts +2 -2
- package/src/lib/security.ts +21 -0
- package/src/mcp-server/cli/start/command.ts +31 -0
- package/src/mcp-server/cli/start/impl.ts +118 -31
- package/src/mcp-server/extensions.ts +6 -4
- package/src/mcp-server/flags.ts +21 -0
- package/src/mcp-server/mcp-server.ts +1 -1
- package/src/mcp-server/prompts.ts +9 -19
- package/src/mcp-server/server.ts +22 -16
- package/src/mcp-server/tools/aiSearch.ts +92 -0
- package/src/mcp-server/tools/getAnnouncementArticles.ts +90 -0
- package/src/mcp-server/tools/getArticleById.ts +99 -0
- package/src/mcp-server/tools/getBestAnswer.ts +94 -0
- package/src/mcp-server/tools/{getPortals.ts → getMyPortals.ts} +39 -5
- package/src/mcp-server/tools/getPopularArticles.ts +40 -0
- package/src/mcp-server/tools/makeSuggestion.ts +44 -0
- package/src/mcp-server/tools/retrieveChunks.ts +89 -0
- package/src/mcp-server/tools.ts +300 -46
- package/src/models/acceptlanguage.ts +21 -8
- package/src/models/accessibleportal.ts +9 -11
- package/src/models/additionalsnippets.ts +25 -18
- package/src/models/aisearchop.ts +14 -37
- package/src/models/aisearchresponse.ts +7 -13
- package/src/models/aispaginationinfo.ts +7 -10
- package/src/models/aitopicbreadcrumb.ts +4 -7
- package/src/models/aitopicsummary.ts +1 -5
- package/src/models/allaccessibleportals.ts +5 -8
- package/src/models/answersrequest.ts +22 -58
- package/src/models/answersresponse.ts +30 -24
- package/src/models/article.ts +39 -40
- package/src/models/articleadditionalattributes.ts +22 -4
- package/src/models/articleaisearchresult.ts +70 -52
- package/src/models/articleattachment.ts +18 -15
- package/src/models/articleresult.ts +2 -6
- package/src/models/articleresultadditionalattributes.ts +43 -0
- package/src/models/articleresults.ts +1 -5
- package/src/models/articletype.ts +4 -25
- package/src/models/attachmentforcreatesuggestion.ts +1 -3
- package/src/models/bookmarkstatus.ts +2 -6
- package/src/models/complianceforarticle.ts +13 -22
- package/src/models/createdby.ts +7 -8
- package/src/models/createsuggestion.ts +54 -31
- package/src/models/customattribute.ts +13 -7
- package/src/models/department.ts +1 -5
- package/src/models/edition.ts +8 -13
- package/src/models/errors/sdkvalidationerror.ts +2 -57
- package/src/models/folderbreadcrumb.ts +5 -7
- package/src/models/foldersummary.ts +2 -6
- package/src/models/getannouncementarticlesop.ts +34 -23
- package/src/models/getarticlebyidop.ts +91 -95
- package/src/models/getbestanswerop.ts +16 -48
- package/src/models/getmyportalsop.ts +29 -44
- package/src/models/getpopulararticlesop.ts +34 -23
- package/src/models/l10nstring.ts +1 -5
- package/src/models/languagecode.ts +38 -2
- package/src/models/languagecodeparameter.ts +48 -10
- package/src/models/languagequeryparameter.ts +48 -10
- package/src/models/link.ts +1 -1
- package/src/models/makesuggestionop.ts +20 -30
- package/src/models/mandatorylanguagequeryparameter.ts +50 -10
- package/src/models/milestone.ts +3 -4
- package/src/models/milestonename.ts +1 -5
- package/src/models/modifiedby.ts +1 -5
- package/src/models/order.ts +7 -2
- package/src/models/ownedby.ts +7 -8
- package/src/models/paginationinfo.ts +4 -8
- package/src/models/personalization.ts +6 -19
- package/src/models/publishview.ts +2 -8
- package/src/models/referenceresponse.ts +34 -20
- package/src/models/requiredlanguagecode.ts +39 -4
- package/src/models/retrievechunksop.ts +16 -48
- package/src/models/retrieverequest.ts +12 -10
- package/src/models/retrieveresponse.ts +34 -28
- package/src/models/schemaslink.ts +1 -5
- package/src/models/schemastags.ts +1 -5
- package/src/models/searchresult.ts +34 -8
- package/src/models/security.ts +14 -7
- package/src/models/shorturl.ts +6 -7
- package/src/models/sortidnamedepartment.ts +8 -4
- package/src/models/stage.ts +4 -5
- package/src/models/structuredauthoringfields.ts +1 -3
- package/src/models/tag.ts +1 -1
- package/src/models/tagcategory.ts +1 -5
- package/src/models/taggroup.ts +4 -5
- package/src/models/taggroups.ts +3 -4
- package/src/models/tags.ts +1 -1
- package/src/models/topicbreadcrumb.ts +1 -5
- package/src/models/topicsummary.ts +1 -5
- package/src/models/workflow.ts +3 -4
- package/src/models/workflowmilestone.ts +8 -2
- package/src/models/wserrorcommon.ts +5 -10
- package/src/tool-names.ts +35 -0
- package/src/types/bigint.ts +87 -0
- package/tsconfig.json +0 -1
- package/worker-configuration.d.ts +2 -2
- package/worker-configuration.ts +1 -0
- package/src/cloudflare-worker/landing-page.ts +0 -337
- package/src/hooks/portal-cache-hook.ts +0 -505
- package/src/hooks/portal-lookup-hook.ts +0 -429
- package/src/mcp-server/tools/getAnnouncements.ts +0 -53
- package/src/mcp-server/tools/getArticle.ts +0 -56
- package/src/mcp-server/tools/queryAnswers.ts +0 -57
- package/src/mcp-server/tools/queryRetrieve.ts +0 -55
- package/src/mcp-server/tools/querySearch.ts +0 -44
package/src/mcp-server/tools.ts
CHANGED
|
@@ -3,52 +3,59 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
|
+
import {
|
|
7
|
+
ShapeOutput,
|
|
8
|
+
ZodRawShapeCompat,
|
|
9
|
+
} from "@modelcontextprotocol/sdk/server/zod-compat.js";
|
|
6
10
|
import { RequestHandlerExtra } from "@modelcontextprotocol/sdk/shared/protocol.js";
|
|
7
11
|
import {
|
|
8
12
|
CallToolResult,
|
|
9
13
|
ServerNotification,
|
|
10
14
|
ServerRequest,
|
|
11
15
|
} from "@modelcontextprotocol/sdk/types.js";
|
|
12
|
-
import
|
|
16
|
+
import * as z from "zod";
|
|
13
17
|
import { EgainMcpCore } from "../core.js";
|
|
14
18
|
import { ConsoleLogger } from "./console-logger.js";
|
|
15
|
-
import { MCPScope } from "./scopes.js";
|
|
19
|
+
import { MCPScope, mcpScopes } from "./scopes.js";
|
|
16
20
|
import { isAsyncIterable, isBinaryData, valueToBase64 } from "./shared.js";
|
|
17
21
|
|
|
18
|
-
export type ToolDefinition<
|
|
19
|
-
Args extends
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
extra: RequestHandlerExtra<ServerRequest, ServerNotification>,
|
|
50
|
-
) => CallToolResult | Promise<CallToolResult>;
|
|
22
|
+
export type ToolDefinition<
|
|
23
|
+
Args extends undefined | ZodRawShapeCompat = undefined,
|
|
24
|
+
> = Args extends ZodRawShapeCompat ? {
|
|
25
|
+
name: string;
|
|
26
|
+
description: string;
|
|
27
|
+
scopes?: MCPScope[];
|
|
28
|
+
args: Args;
|
|
29
|
+
annotations: {
|
|
30
|
+
title: string;
|
|
31
|
+
destructiveHint: boolean;
|
|
32
|
+
idempotentHint: boolean;
|
|
33
|
+
openWorldHint: boolean;
|
|
34
|
+
readOnlyHint: boolean;
|
|
35
|
+
};
|
|
36
|
+
tool: (
|
|
37
|
+
client: EgainMcpCore,
|
|
38
|
+
args: ShapeOutput<Args>,
|
|
39
|
+
extra: RequestHandlerExtra<ServerRequest, ServerNotification>,
|
|
40
|
+
) => CallToolResult | Promise<CallToolResult>;
|
|
41
|
+
}
|
|
42
|
+
: {
|
|
43
|
+
name: string;
|
|
44
|
+
description: string;
|
|
45
|
+
scopes?: MCPScope[];
|
|
46
|
+
args?: undefined;
|
|
47
|
+
annotations: {
|
|
48
|
+
title: string;
|
|
49
|
+
destructiveHint: boolean;
|
|
50
|
+
idempotentHint: boolean;
|
|
51
|
+
openWorldHint: boolean;
|
|
52
|
+
readOnlyHint: boolean;
|
|
51
53
|
};
|
|
54
|
+
tool: (
|
|
55
|
+
client: EgainMcpCore,
|
|
56
|
+
extra: RequestHandlerExtra<ServerRequest, ServerNotification>,
|
|
57
|
+
) => CallToolResult | Promise<CallToolResult>;
|
|
58
|
+
};
|
|
52
59
|
|
|
53
60
|
// Optional function to assist with formatting tool results
|
|
54
61
|
export async function formatResult(
|
|
@@ -87,7 +94,8 @@ export async function formatResult(
|
|
|
87
94
|
};
|
|
88
95
|
}
|
|
89
96
|
|
|
90
|
-
|
|
97
|
+
const isError = response ? !response.ok : false;
|
|
98
|
+
return isError ? { content, isError } : { content };
|
|
91
99
|
}
|
|
92
100
|
|
|
93
101
|
async function consumeSSE(
|
|
@@ -112,8 +120,20 @@ export function createRegisterTool(
|
|
|
112
120
|
getSDK: () => EgainMcpCore,
|
|
113
121
|
allowedScopes: Set<MCPScope>,
|
|
114
122
|
allowedTools?: Set<string>,
|
|
115
|
-
|
|
116
|
-
|
|
123
|
+
dynamic?: boolean,
|
|
124
|
+
): [
|
|
125
|
+
<A extends ZodRawShapeCompat | undefined>(tool: ToolDefinition<A>) => void,
|
|
126
|
+
Array<{ name: string; description: string }>,
|
|
127
|
+
Map<string, ToolDefinition<ZodRawShapeCompat | undefined>>,
|
|
128
|
+
] {
|
|
129
|
+
const tools: Array<{ name: string; description: string }> = [];
|
|
130
|
+
const toolMap = new Map<
|
|
131
|
+
string,
|
|
132
|
+
ToolDefinition<ZodRawShapeCompat | undefined>
|
|
133
|
+
>();
|
|
134
|
+
const registerTool = <A extends ZodRawShapeCompat | undefined>(
|
|
135
|
+
tool: ToolDefinition<A>,
|
|
136
|
+
): void => {
|
|
117
137
|
if (allowedTools && !allowedTools.has(tool.name)) {
|
|
118
138
|
return;
|
|
119
139
|
}
|
|
@@ -130,27 +150,261 @@ export function createRegisterTool(
|
|
|
130
150
|
return;
|
|
131
151
|
}
|
|
132
152
|
|
|
153
|
+
toolMap.set(
|
|
154
|
+
tool.name,
|
|
155
|
+
tool as ToolDefinition<ZodRawShapeCompat | undefined>,
|
|
156
|
+
);
|
|
157
|
+
|
|
158
|
+
if (dynamic) {
|
|
159
|
+
logger.debug("Collected tool for dynamic mode", { name: tool.name });
|
|
160
|
+
tools.push({ name: tool.name, description: tool.description });
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
|
|
133
164
|
if (tool.args) {
|
|
134
|
-
server.
|
|
165
|
+
server.registerTool(
|
|
135
166
|
tool.name,
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
167
|
+
{
|
|
168
|
+
description: tool.description,
|
|
169
|
+
inputSchema: tool.args,
|
|
170
|
+
annotations: tool.annotations,
|
|
171
|
+
},
|
|
139
172
|
async (args, ctx) => {
|
|
140
173
|
return tool.tool(getSDK(), args, ctx);
|
|
141
174
|
},
|
|
142
175
|
);
|
|
143
176
|
} else {
|
|
144
|
-
server.
|
|
177
|
+
server.registerTool(
|
|
145
178
|
tool.name,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
179
|
+
{
|
|
180
|
+
description: tool.description,
|
|
181
|
+
annotations: tool.annotations,
|
|
182
|
+
},
|
|
183
|
+
async (ctx) => {
|
|
149
184
|
return tool.tool(getSDK(), ctx);
|
|
150
185
|
},
|
|
151
186
|
);
|
|
152
187
|
}
|
|
153
188
|
|
|
154
189
|
logger.debug("Registered tool", { name: tool.name });
|
|
190
|
+
tools.push({ name: tool.name, description: tool.description });
|
|
155
191
|
};
|
|
192
|
+
|
|
193
|
+
return [registerTool, tools, toolMap];
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
function matchesSearchTerms(
|
|
197
|
+
terms: string[],
|
|
198
|
+
name: string,
|
|
199
|
+
def: ToolDefinition<ZodRawShapeCompat | undefined>,
|
|
200
|
+
): boolean {
|
|
201
|
+
if (terms.length === 0) {
|
|
202
|
+
return true;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
const nameLower = name.toLowerCase();
|
|
206
|
+
const descLower = def.description.toLowerCase();
|
|
207
|
+
const scopesLower = def.scopes?.flatMap((s: unknown) => {
|
|
208
|
+
return typeof s === "string" ? [s.toLowerCase()] : [];
|
|
209
|
+
}) || [];
|
|
210
|
+
|
|
211
|
+
return terms.some((term) =>
|
|
212
|
+
nameLower.includes(term)
|
|
213
|
+
|| descLower.includes(term)
|
|
214
|
+
|| scopesLower.some((s) => s.includes(term))
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
export function registerDynamicTools(
|
|
219
|
+
logger: ConsoleLogger,
|
|
220
|
+
server: McpServer,
|
|
221
|
+
getSDK: () => EgainMcpCore,
|
|
222
|
+
toolMap: Map<string, ToolDefinition<ZodRawShapeCompat | undefined>>,
|
|
223
|
+
allowedScopes: Set<MCPScope>,
|
|
224
|
+
): void {
|
|
225
|
+
// 1. list_tools
|
|
226
|
+
server.registerTool("list_tools", {
|
|
227
|
+
description:
|
|
228
|
+
"List available tools. Optionally filter by search terms that match against tool name, description, and scopes.",
|
|
229
|
+
inputSchema: {
|
|
230
|
+
search_terms: z.array(z.string()).optional().describe(
|
|
231
|
+
[
|
|
232
|
+
"Filter the list of tools.",
|
|
233
|
+
"Each term is matched case-insensitively as a substring against tool name, description, and scopes.",
|
|
234
|
+
"Multiple terms are combined with a logical OR: a tool is included if ANY term matches ANY field.",
|
|
235
|
+
"If not provided, all tools are returned.",
|
|
236
|
+
].join("\n"),
|
|
237
|
+
),
|
|
238
|
+
},
|
|
239
|
+
annotations: {
|
|
240
|
+
title: "List Tools",
|
|
241
|
+
readOnlyHint: true,
|
|
242
|
+
destructiveHint: false,
|
|
243
|
+
idempotentHint: true,
|
|
244
|
+
openWorldHint: false,
|
|
245
|
+
},
|
|
246
|
+
}, async (args) => {
|
|
247
|
+
const terms = (args.search_terms ?? []).map((t) => t.toLowerCase());
|
|
248
|
+
|
|
249
|
+
const tools: Array<
|
|
250
|
+
{ name: string; description: string; scopes?: MCPScope[] | undefined }
|
|
251
|
+
> = [];
|
|
252
|
+
for (const [name, def] of toolMap) {
|
|
253
|
+
if (!matchesSearchTerms(terms, name, def)) {
|
|
254
|
+
continue;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
tools.push({
|
|
258
|
+
name: name,
|
|
259
|
+
description: def.description,
|
|
260
|
+
scopes: def.scopes,
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
return {
|
|
264
|
+
content: [{ type: "text", text: JSON.stringify(tools, null, 2) }],
|
|
265
|
+
};
|
|
266
|
+
});
|
|
267
|
+
logger.debug("Registered dynamic meta-tool", { name: "list_tools" });
|
|
268
|
+
|
|
269
|
+
// 2. describe_tool
|
|
270
|
+
server.registerTool("describe_tool_input", {
|
|
271
|
+
description:
|
|
272
|
+
"Get the input schema for one or more tools. It is a good idea to call this tool first to understand how to successfully call execute_tool.",
|
|
273
|
+
inputSchema: {
|
|
274
|
+
tool_names: z.array(z.string()).describe(
|
|
275
|
+
"The names of the tools to describe",
|
|
276
|
+
),
|
|
277
|
+
},
|
|
278
|
+
annotations: {
|
|
279
|
+
title: "Describe Tool",
|
|
280
|
+
readOnlyHint: true,
|
|
281
|
+
destructiveHint: false,
|
|
282
|
+
idempotentHint: true,
|
|
283
|
+
openWorldHint: false,
|
|
284
|
+
},
|
|
285
|
+
}, async (args) => {
|
|
286
|
+
const parts: string[] = [];
|
|
287
|
+
const unknown: string[] = [];
|
|
288
|
+
|
|
289
|
+
if (args.tool_names.length === 0) {
|
|
290
|
+
return { content: [{ type: "text", text: "No tool names provided." }] };
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
for (const toolName of args.tool_names) {
|
|
294
|
+
const def = toolMap.get(toolName);
|
|
295
|
+
if (!def) {
|
|
296
|
+
unknown.push(toolName);
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
let schemaText = `<input_schema tool="${toolName}">\n\n`;
|
|
301
|
+
if (def.args) {
|
|
302
|
+
const jsonSchema = z.toJSONSchema(z.object(def.args), {
|
|
303
|
+
target: "draft-2020-12",
|
|
304
|
+
});
|
|
305
|
+
schemaText += JSON.stringify(jsonSchema, null, 2);
|
|
306
|
+
} else {
|
|
307
|
+
schemaText += "This tool takes no input parameters.";
|
|
308
|
+
}
|
|
309
|
+
schemaText += `\n\n</input_schema>`;
|
|
310
|
+
parts.push(schemaText);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
if (unknown.length > 0) {
|
|
314
|
+
parts.push(`Unknown tools: ${unknown.join(", ")}`);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
return { content: [{ type: "text", text: parts.join("\n\n") }] };
|
|
318
|
+
});
|
|
319
|
+
logger.debug("Registered dynamic meta-tool", { name: "describe_tool" });
|
|
320
|
+
|
|
321
|
+
// 3. execute_tool
|
|
322
|
+
server.registerTool("execute_tool", {
|
|
323
|
+
description:
|
|
324
|
+
"Execute a tool by name with the provided input parameters. If executing a given tool for the first time, it is recommended to call describe_tool_input first to understand the expected input schema.",
|
|
325
|
+
inputSchema: {
|
|
326
|
+
tool_name: z.string().describe("The name of the tool to execute"),
|
|
327
|
+
input: z.record(z.string(), z.unknown()).optional().describe(
|
|
328
|
+
"Input parameters for the tool as a JSON object",
|
|
329
|
+
),
|
|
330
|
+
},
|
|
331
|
+
annotations: {
|
|
332
|
+
title: "Execute Tool",
|
|
333
|
+
readOnlyHint: false,
|
|
334
|
+
destructiveHint: true,
|
|
335
|
+
idempotentHint: false,
|
|
336
|
+
openWorldHint: true,
|
|
337
|
+
},
|
|
338
|
+
}, async (args, ctx) => {
|
|
339
|
+
const def = toolMap.get(args.tool_name);
|
|
340
|
+
if (!def) {
|
|
341
|
+
return {
|
|
342
|
+
content: [{ type: "text", text: `Unknown tool: ${args.tool_name}` }],
|
|
343
|
+
isError: true,
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
let validatedInput: Record<string, unknown> = {};
|
|
348
|
+
if (def.args) {
|
|
349
|
+
const vres = z.object(def.args).safeParse(args.input ?? {});
|
|
350
|
+
if (vres.success) {
|
|
351
|
+
validatedInput = vres.data;
|
|
352
|
+
} else {
|
|
353
|
+
const issues = z.prettifyError(vres.error);
|
|
354
|
+
|
|
355
|
+
return {
|
|
356
|
+
content: [{
|
|
357
|
+
type: "text",
|
|
358
|
+
text:
|
|
359
|
+
`Invalid input for tool ${args.tool_name}:\n<issues>\n${issues}\n</issues>`,
|
|
360
|
+
}],
|
|
361
|
+
isError: true,
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
try {
|
|
367
|
+
if (def.args) {
|
|
368
|
+
return await def.tool(getSDK(), validatedInput, ctx);
|
|
369
|
+
} else {
|
|
370
|
+
return await def.tool(getSDK(), ctx);
|
|
371
|
+
}
|
|
372
|
+
} catch (error) {
|
|
373
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
374
|
+
return {
|
|
375
|
+
content: [{
|
|
376
|
+
type: "text",
|
|
377
|
+
text: `Error executing tool ${args.tool_name}: ${message}`,
|
|
378
|
+
}],
|
|
379
|
+
isError: true,
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
});
|
|
383
|
+
logger.debug("Registered dynamic meta-tool", { name: "execute_tool" });
|
|
384
|
+
|
|
385
|
+
// 4. list_scopes (only when the server has scopes defined)
|
|
386
|
+
if (mcpScopes.length > 0) {
|
|
387
|
+
const scopes = allowedScopes.size > 0
|
|
388
|
+
? [...allowedScopes].sort()
|
|
389
|
+
: [...mcpScopes];
|
|
390
|
+
|
|
391
|
+
server.registerTool("list_scopes", {
|
|
392
|
+
description: [
|
|
393
|
+
"List the scopes available on this server.",
|
|
394
|
+
"Scopes are categories that group related tools together.",
|
|
395
|
+
"They can be used as search terms when filtering the list of tools.",
|
|
396
|
+
].join("\n"),
|
|
397
|
+
annotations: {
|
|
398
|
+
title: "List Scopes",
|
|
399
|
+
readOnlyHint: true,
|
|
400
|
+
destructiveHint: false,
|
|
401
|
+
idempotentHint: true,
|
|
402
|
+
openWorldHint: false,
|
|
403
|
+
},
|
|
404
|
+
}, async () => {
|
|
405
|
+
const lines = scopes.map((s) => `- ${s}`);
|
|
406
|
+
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
407
|
+
});
|
|
408
|
+
logger.debug("Registered dynamic meta-tool", { name: "list_scopes" });
|
|
409
|
+
}
|
|
156
410
|
}
|
|
@@ -3,10 +3,27 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import * as z from "zod";
|
|
6
|
+
import { ClosedEnum } from "../types/enums.js";
|
|
7
|
+
|
|
8
|
+
export const AcceptLanguage = {
|
|
9
|
+
EnUS: "en-US",
|
|
10
|
+
ESES: "es-ES",
|
|
11
|
+
FRFR: "fr-FR",
|
|
12
|
+
ITIT: "it-IT",
|
|
13
|
+
DEDE: "de-DE",
|
|
14
|
+
NLNL: "nl-NL",
|
|
15
|
+
PtBR: "pt-BR",
|
|
16
|
+
PTPT: "pt-PT",
|
|
17
|
+
DaDK: "da-DK",
|
|
18
|
+
RURU: "ru-RU",
|
|
19
|
+
FrCA: "fr-CA",
|
|
20
|
+
ZhCN: "zh-CN",
|
|
21
|
+
JaJP: "ja-JP",
|
|
22
|
+
KoKR: "ko-KR",
|
|
23
|
+
SvSE: "sv-SE",
|
|
24
|
+
} as const;
|
|
25
|
+
export type AcceptLanguage = ClosedEnum<typeof AcceptLanguage>;
|
|
6
26
|
|
|
7
|
-
/**
|
|
8
|
-
* The language that describes the details of a resource. Resources available in different languages may differ from each other.<li>If <code>$lang</code> is not passed, then the portal's default language is used.</li><br><br>**Important**: When using this API via SDK or MCP, use the parameter name `Dollar_lang`, not `$lang` or `lang`.
|
|
9
|
-
*/
|
|
10
27
|
export const AcceptLanguage$zodSchema = z.enum([
|
|
11
28
|
"en-US",
|
|
12
29
|
"es-ES",
|
|
@@ -23,8 +40,4 @@ export const AcceptLanguage$zodSchema = z.enum([
|
|
|
23
40
|
"ja-JP",
|
|
24
41
|
"ko-KR",
|
|
25
42
|
"sv-SE",
|
|
26
|
-
])
|
|
27
|
-
"The language that describes the details of a resource. Resources available in different languages may differ from each other.<li>If <code>$lang</code> is not passed, then the portal's default language is used.</li><br><br>**Important**: When using this API via SDK or MCP, use the parameter name `Dollar_lang`, not `$lang` or `lang`.",
|
|
28
|
-
);
|
|
29
|
-
|
|
30
|
-
export type AcceptLanguage = z.infer<typeof AcceptLanguage$zodSchema>;
|
|
43
|
+
]);
|
|
@@ -14,14 +14,12 @@ export type AccessiblePortal = {
|
|
|
14
14
|
shortURL?: Array<ShortURL> | undefined;
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
export const AccessiblePortal$zodSchema: z.ZodType<
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
shortURL: z.array(ShortURL$zodSchema).optional(),
|
|
27
|
-
});
|
|
17
|
+
export const AccessiblePortal$zodSchema: z.ZodType<AccessiblePortal> = z.object(
|
|
18
|
+
{
|
|
19
|
+
department: Department$zodSchema.optional(),
|
|
20
|
+
description: z.string().optional(),
|
|
21
|
+
id: z.string().optional(),
|
|
22
|
+
name: z.string().optional(),
|
|
23
|
+
shortURL: z.array(ShortURL$zodSchema).optional(),
|
|
24
|
+
},
|
|
25
|
+
);
|
|
@@ -3,10 +3,24 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import * as z from "zod";
|
|
6
|
+
import { ClosedEnum } from "../types/enums.js";
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Format of the source document (HTML, DOCX, PPTX or PDF).
|
|
9
10
|
*/
|
|
11
|
+
export const AdditionalSnippetsDocType = {
|
|
12
|
+
Html: "HTML",
|
|
13
|
+
Docx: "DOCX",
|
|
14
|
+
Pdf: "PDF",
|
|
15
|
+
Pptx: "PPTX",
|
|
16
|
+
} as const;
|
|
17
|
+
/**
|
|
18
|
+
* Format of the source document (HTML, DOCX, PPTX or PDF).
|
|
19
|
+
*/
|
|
20
|
+
export type AdditionalSnippetsDocType = ClosedEnum<
|
|
21
|
+
typeof AdditionalSnippetsDocType
|
|
22
|
+
>;
|
|
23
|
+
|
|
10
24
|
export const AdditionalSnippetsDocType$zodSchema = z.enum([
|
|
11
25
|
"HTML",
|
|
12
26
|
"DOCX",
|
|
@@ -14,10 +28,6 @@ export const AdditionalSnippetsDocType$zodSchema = z.enum([
|
|
|
14
28
|
"PPTX",
|
|
15
29
|
]).describe("Format of the source document (HTML, DOCX, PPTX or PDF).");
|
|
16
30
|
|
|
17
|
-
export type AdditionalSnippetsDocType = z.infer<
|
|
18
|
-
typeof AdditionalSnippetsDocType$zodSchema
|
|
19
|
-
>;
|
|
20
|
-
|
|
21
31
|
export type AdditionalSnippets = {
|
|
22
32
|
id: string;
|
|
23
33
|
name: string;
|
|
@@ -29,17 +39,14 @@ export type AdditionalSnippets = {
|
|
|
29
39
|
normalizedScore?: number | undefined;
|
|
30
40
|
};
|
|
31
41
|
|
|
32
|
-
export const AdditionalSnippets$zodSchema: z.ZodType<
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
relevanceScore: z.number().optional(),
|
|
44
|
-
snippet: z.string(),
|
|
45
|
-
});
|
|
42
|
+
export const AdditionalSnippets$zodSchema: z.ZodType<AdditionalSnippets> = z
|
|
43
|
+
.object({
|
|
44
|
+
docName: z.string().optional(),
|
|
45
|
+
docType: AdditionalSnippetsDocType$zodSchema,
|
|
46
|
+
id: z.string(),
|
|
47
|
+
keywordSnippet: z.string().optional(),
|
|
48
|
+
name: z.string(),
|
|
49
|
+
normalizedScore: z.number().optional(),
|
|
50
|
+
relevanceScore: z.number().optional(),
|
|
51
|
+
snippet: z.string(),
|
|
52
|
+
});
|
package/src/models/aisearchop.ts
CHANGED
|
@@ -17,7 +17,7 @@ export type AiSearchRequest = {
|
|
|
17
17
|
q: string;
|
|
18
18
|
portalID: string;
|
|
19
19
|
dollarFilterUserProfileID?: string | undefined;
|
|
20
|
-
Dollar_lang
|
|
20
|
+
Dollar_lang: LanguageCodeParameter;
|
|
21
21
|
dollarFilterTags?: { [k: string]: Array<string> } | undefined;
|
|
22
22
|
dollarFilterTopicIds?: Array<string> | undefined;
|
|
23
23
|
articleCustomAdditionalAttributes?: string | undefined;
|
|
@@ -25,37 +25,25 @@ export type AiSearchRequest = {
|
|
|
25
25
|
Dollar_pagesize?: number | undefined;
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
export const AiSearchRequest$zodSchema: z.ZodType<
|
|
29
|
-
|
|
30
|
-
z.
|
|
31
|
-
unknown
|
|
32
|
-
> = z.object({
|
|
33
|
-
Dollar_lang: LanguageCodeParameter$zodSchema.default("en-US"),
|
|
34
|
-
Dollar_pagenum: z.number().int().default(1).describe(
|
|
28
|
+
export const AiSearchRequest$zodSchema: z.ZodType<AiSearchRequest> = z.object({
|
|
29
|
+
Dollar_lang: LanguageCodeParameter$zodSchema,
|
|
30
|
+
Dollar_pagenum: z.int().default(1).describe(
|
|
35
31
|
"Pagination parameter that specifies the page number of results to be returned. Used in conjunction with $pagesize.",
|
|
36
32
|
),
|
|
37
|
-
Dollar_pagesize: z.
|
|
33
|
+
Dollar_pagesize: z.int().default(20).describe(
|
|
38
34
|
"Pagination parameter that specifies the number of results per page. Used in conjunction with $pagenum.",
|
|
39
35
|
),
|
|
40
36
|
articleCustomAdditionalAttributes: z.string().describe(
|
|
41
37
|
"One or more comma-separated names for article custom attributes defined by the user to be returned.",
|
|
42
38
|
).optional(),
|
|
43
|
-
dollarFilterTags: z.record(z.array(z.string())).describe(
|
|
44
|
-
"An object where each key is a **Category Tag ID** (numeric string), \n"
|
|
45
|
-
+ "and each value is an array of **Tag IDs** for that category.\n"
|
|
46
|
-
+ " **Note**:\n"
|
|
47
|
-
+ " - The '$filter[tags]' query parameter JSON value should be url encoded.\n"
|
|
48
|
-
+ " - Some developer tools for invoking APIs may not url encode the '$filter[tags]' query parameter JSON value by default. Ensure that only url encoded values are used.\n"
|
|
49
|
-
+ " - Example of JSON value: {\"BASE-40845\":[\"BASE-40849\",\"BASE-40853\"]}\n"
|
|
50
|
-
+ " - Example of URL encoded value: %7B%22BASE-40845%22%3A%5B%22BASE-40849%22%2C%22BASE-40853%22%5D%7D\n"
|
|
51
|
-
+ "",
|
|
39
|
+
dollarFilterTags: z.record(z.string(), z.array(z.string())).describe(
|
|
40
|
+
"An object where each key is a **Category Tag ID** (numeric string), \nand each value is an array of **Tag IDs** for that category.\n **Note**:\n - The '$filter[tags]' query parameter JSON value should be url encoded.\n - Some developer tools for invoking APIs may not url encode the '$filter[tags]' query parameter JSON value by default. Ensure that only url encoded values are used.\n - Example of JSON value: {\"BASE-40845\":[\"BASE-40849\",\"BASE-40853\"]}\n - Example of URL encoded value: %7B%22BASE-40845%22%3A%5B%22BASE-40849%22%2C%22BASE-40853%22%5D%7D\n",
|
|
52
41
|
).optional(),
|
|
53
42
|
dollarFilterTopicIds: z.array(z.string()).describe(
|
|
54
43
|
"An array of topic IDs. It is used to restrict search results to specific topics.",
|
|
55
44
|
).optional(),
|
|
56
45
|
dollarFilterUserProfileID: z.string().describe(
|
|
57
|
-
"The ID of the user profile. \n"
|
|
58
|
-
+ "",
|
|
46
|
+
"The ID of the user profile. \n",
|
|
59
47
|
).optional(),
|
|
60
48
|
portalID: z.string().describe(
|
|
61
49
|
"The ID of the portal being accessed.<br><br>A portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits.",
|
|
@@ -65,22 +53,11 @@ export const AiSearchRequest$zodSchema: z.ZodType<
|
|
|
65
53
|
),
|
|
66
54
|
});
|
|
67
55
|
|
|
68
|
-
export type AiSearchResponseResponse =
|
|
69
|
-
ContentType: string;
|
|
70
|
-
StatusCode: number;
|
|
71
|
-
RawResponse: Response;
|
|
72
|
-
AISearchResponse?: AISearchResponse | undefined;
|
|
73
|
-
WSErrorCommon?: WSErrorCommon | undefined;
|
|
74
|
-
};
|
|
56
|
+
export type AiSearchResponseResponse = WSErrorCommon | AISearchResponse;
|
|
75
57
|
|
|
76
58
|
export const AiSearchResponseResponse$zodSchema: z.ZodType<
|
|
77
|
-
AiSearchResponseResponse
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
ContentType: z.string(),
|
|
83
|
-
RawResponse: z.instanceof(Response),
|
|
84
|
-
StatusCode: z.number().int(),
|
|
85
|
-
WSErrorCommon: WSErrorCommon$zodSchema.optional(),
|
|
86
|
-
});
|
|
59
|
+
AiSearchResponseResponse
|
|
60
|
+
> = z.union([
|
|
61
|
+
WSErrorCommon$zodSchema,
|
|
62
|
+
AISearchResponse$zodSchema,
|
|
63
|
+
]);
|
|
@@ -19,11 +19,7 @@ export type SearchResults = {
|
|
|
19
19
|
article?: Array<ArticleAISearchResult> | undefined;
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
export const SearchResults$zodSchema: z.ZodType<
|
|
23
|
-
SearchResults,
|
|
24
|
-
z.ZodTypeDef,
|
|
25
|
-
unknown
|
|
26
|
-
> = z.object({
|
|
22
|
+
export const SearchResults$zodSchema: z.ZodType<SearchResults> = z.object({
|
|
27
23
|
article: z.array(ArticleAISearchResult$zodSchema).optional(),
|
|
28
24
|
}).describe("Top search results with relevance scores");
|
|
29
25
|
|
|
@@ -32,11 +28,9 @@ export type AISearchResponse = {
|
|
|
32
28
|
paginationInfo?: AISPaginationInfo | undefined;
|
|
33
29
|
};
|
|
34
30
|
|
|
35
|
-
export const AISearchResponse$zodSchema: z.ZodType<
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
searchResults: z.lazy(() => SearchResults$zodSchema),
|
|
42
|
-
});
|
|
31
|
+
export const AISearchResponse$zodSchema: z.ZodType<AISearchResponse> = z.object(
|
|
32
|
+
{
|
|
33
|
+
paginationInfo: AISPaginationInfo$zodSchema.optional(),
|
|
34
|
+
searchResults: z.lazy(() => SearchResults$zodSchema),
|
|
35
|
+
},
|
|
36
|
+
);
|
|
@@ -12,13 +12,10 @@ export type AISPaginationInfo = {
|
|
|
12
12
|
link?: Array<Link> | undefined;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
export const AISPaginationInfo$zodSchema: z.ZodType<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
pagenum: z.number().int().default(1),
|
|
23
|
-
pagesize: z.number().int().default(20),
|
|
24
|
-
});
|
|
15
|
+
export const AISPaginationInfo$zodSchema: z.ZodType<AISPaginationInfo> = z
|
|
16
|
+
.object({
|
|
17
|
+
count: z.int().default(1),
|
|
18
|
+
link: z.array(Link$zodSchema).optional(),
|
|
19
|
+
pagenum: z.int().default(1),
|
|
20
|
+
pagesize: z.int().default(20),
|
|
21
|
+
});
|
|
@@ -12,10 +12,7 @@ export type AITopicBreadcrumb = {
|
|
|
12
12
|
topicSummary?: Array<AITopicSummary> | undefined;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
export const AITopicBreadcrumb$zodSchema: z.ZodType<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
> = z.object({
|
|
20
|
-
topicSummary: z.array(AITopicSummary$zodSchema).optional(),
|
|
21
|
-
}).describe("This schema contains one or more TopicSummary instances.");
|
|
15
|
+
export const AITopicBreadcrumb$zodSchema: z.ZodType<AITopicBreadcrumb> = z
|
|
16
|
+
.object({
|
|
17
|
+
topicSummary: z.array(AITopicSummary$zodSchema).optional(),
|
|
18
|
+
}).describe("This schema contains one or more TopicSummary instances.");
|