@softtechai/quickmcp 1.0.14 → 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.
Files changed (417) hide show
  1. package/dist/auth/auth-utils.d.ts +130 -0
  2. package/dist/auth/auth-utils.d.ts.map +1 -0
  3. package/dist/auth/auth-utils.js +600 -0
  4. package/dist/auth/auth-utils.js.map +1 -0
  5. package/dist/auth/jwks-provider.d.ts +9 -0
  6. package/dist/auth/jwks-provider.d.ts.map +1 -0
  7. package/dist/auth/jwks-provider.js +56 -0
  8. package/dist/auth/jwks-provider.js.map +1 -0
  9. package/dist/auth/token-utils.d.ts +40 -0
  10. package/dist/auth/token-utils.d.ts.map +1 -0
  11. package/dist/auth/token-utils.js +162 -0
  12. package/dist/auth/token-utils.js.map +1 -0
  13. package/dist/client/MCPClient.js +5 -4
  14. package/dist/client/MCPClient.js.map +1 -1
  15. package/dist/config/auth-config.d.ts +16 -0
  16. package/dist/config/auth-config.d.ts.map +1 -0
  17. package/dist/config/auth-config.js +107 -0
  18. package/dist/config/auth-config.js.map +1 -0
  19. package/dist/constant/constant.d.ts +20 -0
  20. package/dist/constant/constant.d.ts.map +1 -0
  21. package/dist/constant/constant.js +24 -0
  22. package/dist/constant/constant.js.map +1 -0
  23. package/dist/database/async-datastore.d.ts +6 -0
  24. package/dist/database/async-datastore.d.ts.map +1 -0
  25. package/dist/database/async-datastore.js +15 -0
  26. package/dist/database/async-datastore.js.map +1 -0
  27. package/dist/database/database-utils.d.ts +6 -0
  28. package/dist/database/database-utils.d.ts.map +1 -0
  29. package/dist/database/database-utils.js +29 -0
  30. package/dist/database/database-utils.js.map +1 -0
  31. package/dist/database/datastore.d.ts +164 -0
  32. package/dist/database/datastore.d.ts.map +1 -0
  33. package/dist/{parsers/types/index.js → database/datastore.js} +1 -0
  34. package/dist/database/datastore.js.map +1 -0
  35. package/dist/database/factory.d.ts +4 -0
  36. package/dist/database/factory.d.ts.map +1 -0
  37. package/dist/database/factory.js +32 -0
  38. package/dist/database/factory.js.map +1 -0
  39. package/dist/database/jdbc-manager.d.ts +49 -0
  40. package/dist/database/jdbc-manager.d.ts.map +1 -0
  41. package/dist/database/jdbc-manager.js +50 -0
  42. package/dist/database/jdbc-manager.js.map +1 -0
  43. package/dist/database/sqlite-manager.d.ts +46 -44
  44. package/dist/database/sqlite-manager.d.ts.map +1 -1
  45. package/dist/database/sqlite-manager.js +492 -42
  46. package/dist/database/sqlite-manager.js.map +1 -1
  47. package/dist/database/supabase-manager.d.ts +58 -0
  48. package/dist/database/supabase-manager.d.ts.map +1 -0
  49. package/dist/database/supabase-manager.js +432 -0
  50. package/dist/database/supabase-manager.js.map +1 -0
  51. package/dist/generators/MCPServerGenerator.d.ts +103 -20
  52. package/dist/generators/MCPServerGenerator.d.ts.map +1 -1
  53. package/dist/generators/MCPServerGenerator.js +6930 -128
  54. package/dist/generators/MCPServerGenerator.js.map +1 -1
  55. package/dist/index.d.ts +0 -1
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +8 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/integrated-mcp-server-new.d.ts +14 -2
  60. package/dist/integrated-mcp-server-new.d.ts.map +1 -1
  61. package/dist/integrated-mcp-server-new.js +270 -180
  62. package/dist/integrated-mcp-server-new.js.map +1 -1
  63. package/dist/mcp-core/McpCoreService.d.ts +63 -0
  64. package/dist/mcp-core/McpCoreService.d.ts.map +1 -0
  65. package/dist/mcp-core/McpCoreService.js +492 -0
  66. package/dist/mcp-core/McpCoreService.js.map +1 -0
  67. package/dist/parsers/CsvParser.d.ts +1 -1
  68. package/dist/parsers/CsvParser.d.ts.map +1 -1
  69. package/dist/parsers/CsvParser.js +3 -2
  70. package/dist/parsers/CsvParser.js.map +1 -1
  71. package/dist/parsers/DatabaseParser.d.ts.map +1 -1
  72. package/dist/parsers/DatabaseParser.js +9 -8
  73. package/dist/parsers/DatabaseParser.js.map +1 -1
  74. package/dist/parsers/ExcelParser.d.ts +15 -0
  75. package/dist/parsers/ExcelParser.d.ts.map +1 -1
  76. package/dist/parsers/ExcelParser.js +287 -21
  77. package/dist/parsers/ExcelParser.js.map +1 -1
  78. package/dist/parsers/WebPageParser.d.ts +5 -0
  79. package/dist/parsers/WebPageParser.d.ts.map +1 -0
  80. package/dist/parsers/WebPageParser.js +35 -0
  81. package/dist/parsers/WebPageParser.js.map +1 -0
  82. package/dist/parsers/index.d.ts +3 -2
  83. package/dist/parsers/index.d.ts.map +1 -1
  84. package/dist/parsers/index.js +19 -16
  85. package/dist/parsers/index.js.map +1 -1
  86. package/dist/server/api/askApi.d.ts +41 -0
  87. package/dist/server/api/askApi.d.ts.map +1 -0
  88. package/dist/server/api/askApi.js +479 -0
  89. package/dist/server/api/askApi.js.map +1 -0
  90. package/dist/server/api/authApi.d.ts +101 -0
  91. package/dist/server/api/authApi.d.ts.map +1 -0
  92. package/dist/server/api/authApi.js +1472 -0
  93. package/dist/server/api/authApi.js.map +1 -0
  94. package/dist/server/api/authProperty.d.ts +18 -0
  95. package/dist/server/api/authProperty.d.ts.map +1 -0
  96. package/dist/server/api/authProperty.js +41 -0
  97. package/dist/server/api/authProperty.js.map +1 -0
  98. package/dist/server/api/configApi.d.ts +15 -0
  99. package/dist/server/api/configApi.d.ts.map +1 -0
  100. package/dist/server/api/configApi.js +42 -0
  101. package/dist/server/api/configApi.js.map +1 -0
  102. package/dist/server/api/databaseApi.d.ts +14 -0
  103. package/dist/server/api/databaseApi.d.ts.map +1 -0
  104. package/dist/server/api/databaseApi.js +111 -0
  105. package/dist/server/api/databaseApi.js.map +1 -0
  106. package/dist/server/api/directoryApi.d.ts +9 -0
  107. package/dist/server/api/directoryApi.d.ts.map +1 -0
  108. package/dist/server/api/directoryApi.js +103 -0
  109. package/dist/server/api/directoryApi.js.map +1 -0
  110. package/dist/server/api/generateApi.d.ts +24 -0
  111. package/dist/server/api/generateApi.d.ts.map +1 -0
  112. package/dist/server/api/generateApi.js +457 -0
  113. package/dist/server/api/generateApi.js.map +1 -0
  114. package/dist/server/api/healthApi.d.ts +9 -0
  115. package/dist/server/api/healthApi.d.ts.map +1 -0
  116. package/dist/server/api/healthApi.js +15 -0
  117. package/dist/server/api/healthApi.js.map +1 -0
  118. package/dist/server/api/indexApi.d.ts +21 -0
  119. package/dist/server/api/indexApi.d.ts.map +1 -0
  120. package/dist/server/api/indexApi.js +61 -0
  121. package/dist/server/api/indexApi.js.map +1 -0
  122. package/dist/server/api/logsApi.d.ts +12 -0
  123. package/dist/server/api/logsApi.d.ts.map +1 -0
  124. package/dist/server/api/logsApi.js +37 -0
  125. package/dist/server/api/logsApi.js.map +1 -0
  126. package/dist/server/api/mcpApi.d.ts +20 -0
  127. package/dist/server/api/mcpApi.d.ts.map +1 -0
  128. package/dist/server/api/mcpApi.js +120 -0
  129. package/dist/server/api/mcpApi.js.map +1 -0
  130. package/dist/server/api/nameApi.d.ts +21 -0
  131. package/dist/server/api/nameApi.d.ts.map +1 -0
  132. package/dist/server/api/nameApi.js +42 -0
  133. package/dist/server/api/nameApi.js.map +1 -0
  134. package/dist/server/api/parseApi.d.ts +9 -0
  135. package/dist/server/api/parseApi.d.ts.map +1 -0
  136. package/dist/server/api/parseApi.js +3245 -0
  137. package/dist/server/api/parseApi.js.map +1 -0
  138. package/dist/server/api/serverApi.d.ts +44 -0
  139. package/dist/server/api/serverApi.d.ts.map +1 -0
  140. package/dist/server/api/serverApi.js +417 -0
  141. package/dist/server/api/serverApi.js.map +1 -0
  142. package/dist/{dynamic-mcp-executor.d.ts → server/dynamic-mcp-executor.d.ts} +4 -5
  143. package/dist/server/dynamic-mcp-executor.d.ts.map +1 -0
  144. package/dist/server/dynamic-mcp-executor.js +62 -0
  145. package/dist/server/dynamic-mcp-executor.js.map +1 -0
  146. package/dist/server/port-utils.d.ts +14 -0
  147. package/dist/server/port-utils.d.ts.map +1 -0
  148. package/dist/server/port-utils.js +31 -0
  149. package/dist/server/port-utils.js.map +1 -0
  150. package/dist/server/server-utils.d.ts +13 -0
  151. package/dist/server/server-utils.d.ts.map +1 -0
  152. package/dist/server/server-utils.js +72 -0
  153. package/dist/server/server-utils.js.map +1 -0
  154. package/dist/{web → server}/server.d.ts +1 -0
  155. package/dist/server/server.d.ts.map +1 -0
  156. package/dist/server/server.js +535 -0
  157. package/dist/server/server.js.map +1 -0
  158. package/dist/server/tool-executer.d.ts +101 -0
  159. package/dist/server/tool-executer.d.ts.map +1 -0
  160. package/dist/server/tool-executer.js +6198 -0
  161. package/dist/server/tool-executer.js.map +1 -0
  162. package/dist/types/index.d.ts +1197 -4
  163. package/dist/types/index.d.ts.map +1 -1
  164. package/dist/types/index.js +1028 -0
  165. package/dist/types/index.js.map +1 -1
  166. package/dist/upload/upload-utils.d.ts +4 -0
  167. package/dist/upload/upload-utils.d.ts.map +1 -0
  168. package/dist/upload/upload-utils.js +29 -0
  169. package/dist/upload/upload-utils.js.map +1 -0
  170. package/dist/utils/deployment-util.d.ts +14 -0
  171. package/dist/utils/deployment-util.d.ts.map +1 -0
  172. package/dist/utils/deployment-util.js +46 -0
  173. package/dist/utils/deployment-util.js.map +1 -0
  174. package/dist/utils/logger.d.ts +15 -0
  175. package/dist/utils/logger.d.ts.map +1 -0
  176. package/dist/utils/logger.js +56 -0
  177. package/dist/utils/logger.js.map +1 -0
  178. package/package.json +18 -6
  179. package/quickmcp-direct-stdio.js +245 -163
  180. package/src/web/public/app.js +15370 -1471
  181. package/src/web/public/authorization.html +868 -0
  182. package/src/web/public/database-tables.html +283 -547
  183. package/src/web/public/how-to-use.html +446 -462
  184. package/src/web/public/how-to-use.js +4 -4
  185. package/src/web/public/images/app/activepieces.png +0 -0
  186. package/src/web/public/images/app/airtable.png +0 -0
  187. package/src/web/public/images/app/androidstudio.png +0 -0
  188. package/src/web/public/images/app/antigravity.png +0 -0
  189. package/src/web/public/images/app/applenotes.png +0 -0
  190. package/src/web/public/images/app/applereminders.png +0 -0
  191. package/src/web/public/images/app/asana.png +0 -0
  192. package/src/web/public/images/app/azureai.png +0 -0
  193. package/src/web/public/images/app/bash.png +0 -0
  194. package/src/web/public/images/app/bearnotes.png +0 -0
  195. package/src/web/public/images/app/bitbucket.png +0 -0
  196. package/src/web/public/images/app/claude.png +0 -0
  197. package/src/web/public/images/app/cli.png +0 -0
  198. package/src/web/public/images/app/clickup.png +0 -0
  199. package/src/web/public/images/app/cohere.png +0 -0
  200. package/src/web/public/images/app/confluence.png +0 -0
  201. package/src/web/public/images/app/confluence2.png +0 -0
  202. package/src/web/public/images/app/curl.png +0 -0
  203. package/src/web/public/images/app/curl_mini.png +0 -0
  204. package/src/web/public/images/app/cursor.png +0 -0
  205. package/src/web/public/images/app/db2.png +0 -0
  206. package/src/web/public/images/app/deepseek.png +0 -0
  207. package/src/web/public/images/app/discord.png +0 -0
  208. package/src/web/public/images/app/docker.png +0 -0
  209. package/src/web/public/images/app/dockerhub.png +0 -0
  210. package/src/web/public/images/app/dropbox.png +0 -0
  211. package/src/web/public/images/app/elasticsearch.png +0 -0
  212. package/src/web/public/images/app/facebook.png +0 -0
  213. package/src/web/public/images/app/falai.png +0 -0
  214. package/src/web/public/images/app/fireworks.png +0 -0
  215. package/src/web/public/images/app/gdrive.png +0 -0
  216. package/src/web/public/images/app/gemini.png +0 -0
  217. package/src/web/public/images/app/github.png +0 -0
  218. package/src/web/public/images/app/githubcopilot.png +0 -0
  219. package/src/web/public/images/app/gitlab.png +0 -0
  220. package/src/web/public/images/app/gmail.png +0 -0
  221. package/src/web/public/images/app/googlecalender.png +0 -0
  222. package/src/web/public/images/app/googledocs.png +0 -0
  223. package/src/web/public/images/app/googlesheets.png +0 -0
  224. package/src/web/public/images/app/gradle.png +0 -0
  225. package/src/web/public/images/app/grafana.png +0 -0
  226. package/src/web/public/images/app/graphql.png +0 -0
  227. package/src/web/public/images/app/grok.png +0 -0
  228. package/src/web/public/images/app/groq.png +0 -0
  229. package/src/web/public/images/app/hazelcast.png +0 -0
  230. package/src/web/public/images/app/huggingface.png +0 -0
  231. package/src/web/public/images/app/imessage.png +0 -0
  232. package/src/web/public/images/app/instagram.png +0 -0
  233. package/src/web/public/images/app/intellij.png +0 -0
  234. package/src/web/public/images/app/jenkins.png +0 -0
  235. package/src/web/public/images/app/jira.png +0 -0
  236. package/src/web/public/images/app/kafka.png +0 -0
  237. package/src/web/public/images/app/kubernetes.png +0 -0
  238. package/src/web/public/images/app/linear.png +0 -0
  239. package/src/web/public/images/app/linkedin.png +0 -0
  240. package/src/web/public/images/app/llama.png +0 -0
  241. package/src/web/public/images/app/make.png +0 -0
  242. package/src/web/public/images/app/maven.png +0 -0
  243. package/src/web/public/images/app/mcp.png +0 -0
  244. package/src/web/public/images/app/microsoftteams.png +0 -0
  245. package/src/web/public/images/app/mistral.png +0 -0
  246. package/src/web/public/images/app/monday.png +0 -0
  247. package/src/web/public/images/app/mongodb.png +0 -0
  248. package/src/web/public/images/app/mssql.png +0 -0
  249. package/src/web/public/images/app/mysql.png +0 -0
  250. package/src/web/public/images/app/n8n.png +0 -0
  251. package/src/web/public/images/app/notion.png +0 -0
  252. package/src/web/public/images/app/npm.png +0 -0
  253. package/src/web/public/images/app/nuget.png +0 -0
  254. package/src/web/public/images/app/obsidian.png +0 -0
  255. package/src/web/public/images/app/openai.png +0 -0
  256. package/src/web/public/images/app/openrouter.png +0 -0
  257. package/src/web/public/images/app/opensearch.png +0 -0
  258. package/src/web/public/images/app/openshift.png +0 -0
  259. package/src/web/public/images/app/oracle.png +0 -0
  260. package/src/web/public/images/app/perplexity.png +0 -0
  261. package/src/web/public/images/app/pipedream.png +0 -0
  262. package/src/web/public/images/app/postgresql.png +0 -0
  263. package/src/web/public/images/app/powershell.png +0 -0
  264. package/src/web/public/images/app/prometheus.png +0 -0
  265. package/src/web/public/images/app/reddit.png +0 -0
  266. package/src/web/public/images/app/redis.png +0 -0
  267. package/src/web/public/images/app/rss.png +0 -0
  268. package/src/web/public/images/app/signal.png +0 -0
  269. package/src/web/public/images/app/slack.png +0 -0
  270. package/src/web/public/images/app/soap.png +0 -0
  271. package/src/web/public/images/app/sqlite.png +0 -0
  272. package/src/web/public/images/app/supabase.png +0 -0
  273. package/src/web/public/images/app/telegram.png +0 -0
  274. package/src/web/public/images/app/things3.png +0 -0
  275. package/src/web/public/images/app/threads.png +0 -0
  276. package/src/web/public/images/app/tiktok.png +0 -0
  277. package/src/web/public/images/app/together.png +0 -0
  278. package/src/web/public/images/app/trello.png +0 -0
  279. package/src/web/public/images/app/vscode.png +0 -0
  280. package/src/web/public/images/app/webhook.png +0 -0
  281. package/src/web/public/images/app/webpage.png +0 -0
  282. package/src/web/public/images/app/whatsappbusiness.png +0 -0
  283. package/src/web/public/images/app/windsorf.png +0 -0
  284. package/src/web/public/images/app/x.png +0 -0
  285. package/src/web/public/images/app/youtube.png +0 -0
  286. package/src/web/public/images/app/zapier.png +0 -0
  287. package/src/web/public/images/app/zededitor.png +0 -0
  288. package/src/web/public/images/app/zoom.png +0 -0
  289. package/src/web/public/images/avatar-anon.svg +4 -0
  290. package/src/web/public/images/favicon.png +0 -0
  291. package/src/web/public/images/install/chatgpt-web/step0.png +0 -0
  292. package/src/web/public/images/install/chatgpt-web/step1.png +0 -0
  293. package/src/web/public/images/install/chatgpt-web/step2.png +0 -0
  294. package/src/web/public/images/install/chatgpt-web/step3.png +0 -0
  295. package/src/web/public/images/install/chatgpt-web/step4.png +0 -0
  296. package/src/web/public/images/install/chatgpt-web/step5.png +0 -0
  297. package/src/web/public/images/readme/1-generate-servers.png +0 -0
  298. package/src/web/public/images/readme/2-database-connection.png +0 -0
  299. package/src/web/public/images/readme/2-file-upload.png +0 -0
  300. package/src/web/public/images/readme/3-data-preview.png +0 -0
  301. package/src/web/public/images/readme/4-data-preview2.png +0 -0
  302. package/src/web/public/images/readme/5-server-configuration.png +0 -0
  303. package/src/web/public/images/readme/6-server-generated-modal.png +0 -0
  304. package/src/web/public/images/readme/7-generated-servers.png +0 -0
  305. package/src/web/public/images/readme/8-generated-servers-view-details.png +0 -0
  306. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.23.51.png +0 -0
  307. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.24.59.png +0 -0
  308. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.05.png +0 -0
  309. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.14.png +0 -0
  310. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.21.png +0 -0
  311. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.36.png +0 -0
  312. package/src/web/public/index.html +4685 -488
  313. package/src/web/public/landing.html +1638 -0
  314. package/src/web/public/logger.js +31 -0
  315. package/src/web/public/login.html +372 -0
  316. package/src/web/public/manage-servers.html +121 -188
  317. package/src/web/public/pricing.html +537 -0
  318. package/src/web/public/quick-ask.html +133 -0
  319. package/src/web/public/quickmcp-styles.css +708 -0
  320. package/src/web/public/roles.html +177 -0
  321. package/src/web/public/shared.js +736 -3
  322. package/src/web/public/sidebar.js +414 -0
  323. package/src/web/public/test-servers.html +605 -221
  324. package/src/web/public/users.html +191 -0
  325. package/dist/client/MCPClientUnified.d.ts +0 -31
  326. package/dist/client/MCPClientUnified.d.ts.map +0 -1
  327. package/dist/client/MCPClientUnified.js +0 -275
  328. package/dist/client/MCPClientUnified.js.map +0 -1
  329. package/dist/client/MCPTestRunnerUnified.d.ts +0 -48
  330. package/dist/client/MCPTestRunnerUnified.d.ts.map +0 -1
  331. package/dist/client/MCPTestRunnerUnified.js +0 -183
  332. package/dist/client/MCPTestRunnerUnified.js.map +0 -1
  333. package/dist/database/json-manager.d.ts +0 -55
  334. package/dist/database/json-manager.d.ts.map +0 -1
  335. package/dist/database/json-manager.js +0 -128
  336. package/dist/database/json-manager.js.map +0 -1
  337. package/dist/dynamic-mcp-executor.d.ts.map +0 -1
  338. package/dist/dynamic-mcp-executor.js +0 -274
  339. package/dist/dynamic-mcp-executor.js.map +0 -1
  340. package/dist/generators/MCPServerGenerator-new.d.ts +0 -37
  341. package/dist/generators/MCPServerGenerator-new.d.ts.map +0 -1
  342. package/dist/generators/MCPServerGenerator-new.js +0 -287
  343. package/dist/generators/MCPServerGenerator-new.js.map +0 -1
  344. package/dist/generators/database/sqlite-manager.d.ts +0 -52
  345. package/dist/generators/database/sqlite-manager.js +0 -143
  346. package/dist/generators/generators/MCPServerGenerator.d.ts +0 -37
  347. package/dist/generators/generators/MCPServerGenerator.js +0 -396
  348. package/dist/integrated-mcp-server.d.ts +0 -25
  349. package/dist/integrated-mcp-server.d.ts.map +0 -1
  350. package/dist/integrated-mcp-server.js +0 -541
  351. package/dist/integrated-mcp-server.js.map +0 -1
  352. package/dist/mcp-inspector-server.d.ts +0 -3
  353. package/dist/mcp-inspector-server.d.ts.map +0 -1
  354. package/dist/mcp-inspector-server.js +0 -119
  355. package/dist/mcp-inspector-server.js.map +0 -1
  356. package/dist/mcp-sdk-server.d.ts +0 -3
  357. package/dist/mcp-sdk-server.d.ts.map +0 -1
  358. package/dist/mcp-sdk-server.js +0 -90
  359. package/dist/mcp-sdk-server.js.map +0 -1
  360. package/dist/mcp-server.d.ts +0 -3
  361. package/dist/mcp-server.d.ts.map +0 -1
  362. package/dist/mcp-server.js +0 -300
  363. package/dist/mcp-server.js.map +0 -1
  364. package/dist/parsers/parsers/ExcelParser.js +0 -118
  365. package/dist/quickmcp-unified-bridge.d.ts +0 -13
  366. package/dist/quickmcp-unified-bridge.d.ts.map +0 -1
  367. package/dist/quickmcp-unified-bridge.js +0 -176
  368. package/dist/quickmcp-unified-bridge.js.map +0 -1
  369. package/dist/sqlite-manager.js +0 -145
  370. package/dist/test-app.d.ts +0 -2
  371. package/dist/test-app.d.ts.map +0 -1
  372. package/dist/test-app.js +0 -119
  373. package/dist/test-app.js.map +0 -1
  374. package/dist/transport/base-transport.d.ts +0 -21
  375. package/dist/transport/base-transport.d.ts.map +0 -1
  376. package/dist/transport/base-transport.js +0 -16
  377. package/dist/transport/base-transport.js.map +0 -1
  378. package/dist/transport/index.d.ts +0 -10
  379. package/dist/transport/index.d.ts.map +0 -1
  380. package/dist/transport/index.js +0 -12
  381. package/dist/transport/index.js.map +0 -1
  382. package/dist/transport/sse-transport.d.ts +0 -13
  383. package/dist/transport/sse-transport.d.ts.map +0 -1
  384. package/dist/transport/sse-transport.js +0 -106
  385. package/dist/transport/sse-transport.js.map +0 -1
  386. package/dist/transport/stdio-transport.d.ts +0 -8
  387. package/dist/transport/stdio-transport.d.ts.map +0 -1
  388. package/dist/transport/stdio-transport.js +0 -53
  389. package/dist/transport/stdio-transport.js.map +0 -1
  390. package/dist/transport/streamable-http-transport.d.ts +0 -15
  391. package/dist/transport/streamable-http-transport.d.ts.map +0 -1
  392. package/dist/transport/streamable-http-transport.js +0 -151
  393. package/dist/transport/streamable-http-transport.js.map +0 -1
  394. package/dist/web/client/MCPClient.js +0 -348
  395. package/dist/web/client/MCPTestRunner.js +0 -317
  396. package/dist/web/database/json-manager.js +0 -124
  397. package/dist/web/database/sqlite-manager.js +0 -146
  398. package/dist/web/dynamic-mcp-executor.js +0 -443
  399. package/dist/web/generators/MCPServerGenerator-new.js +0 -284
  400. package/dist/web/generators/MCPServerGenerator.js +0 -566
  401. package/dist/web/integrated-mcp-server-new.js +0 -394
  402. package/dist/web/parsers/CsvParser.js +0 -144
  403. package/dist/web/parsers/DatabaseParser.js +0 -637
  404. package/dist/web/parsers/ExcelParser.js +0 -180
  405. package/dist/web/parsers/index.js +0 -152
  406. package/dist/web/server.d.ts.map +0 -1
  407. package/dist/web/server.js +0 -790
  408. package/dist/web/server.js.map +0 -1
  409. package/dist/web/types/index.js +0 -2
  410. package/dist/web/web/server.js +0 -860
  411. package/src/web/public/modern-styles.css +0 -946
  412. package/src/web/public/shared-styles.css +0 -2091
  413. /package/src/web/public/images/{1-claude-quickmcp-stdio.png → readme/1-claude-quickmcp-stdio.png} +0 -0
  414. /package/src/web/public/images/{2-claude-tools.png → readme/2-claude-tools.png} +0 -0
  415. /package/src/web/public/images/{3-claude-developer-settings.png → readme/3-claude-developer-settings.png} +0 -0
  416. /package/src/web/public/images/{4-claude-config.png → readme/4-claude-config.png} +0 -0
  417. /package/src/web/public/images/{5-claude-config-edit.png → readme/5-claude-config-edit.png} +0 -0
@@ -0,0 +1,191 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" class="h-full">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>QuickMCP - Users</title>
7
+
8
+ <link rel="icon" type="image/png" href="/images/favicon.png">
9
+ <script src="https://cdn.tailwindcss.com"></script>
10
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
11
+ <link rel="stylesheet" href="quickmcp-styles.css">
12
+ <script>tailwind.config = { darkMode: 'class' };</script>
13
+ </head>
14
+ <body class="h-screen flex flex-col bg-gradient-to-br from-slate-50 to-slate-100 overflow-hidden text-slate-900">
15
+ <header class="backdrop-blur-sm bg-white/80 border-b border-slate-200/60 shadow-sm relative z-50 h-16 flex-shrink-0 flex items-center justify-between px-6 py-3">
16
+ <div class="flex items-center gap-6">
17
+ <div class="flex items-center gap-3">
18
+ <div class="w-9 h-9 rounded-lg bg-blue-600 text-white flex items-center justify-center shadow-lg shadow-blue-500/25">
19
+ <i class="fas fa-rocket text-lg"></i>
20
+ </div>
21
+ <div>
22
+ <h1 class="text-xl font-bold gradient-text leading-tight">QuickMCP</h1>
23
+ <p class="text-xs text-slate-500 font-medium">Server Generator</p>
24
+ </div>
25
+ </div>
26
+ </div>
27
+ <div class="flex items-center gap-3">
28
+ <div class="w-8 h-8 rounded-full bg-gradient-to-tr from-blue-500 to-purple-500 text-white flex items-center justify-center text-sm font-bold shadow-md" data-user-avatar>G</div>
29
+ <button id="openSidebar" class="lg:hidden p-2 rounded-lg hover:bg-slate-100 transition-colors text-slate-500">
30
+ <i class="fas fa-bars"></i>
31
+ </button>
32
+ </div>
33
+ </header>
34
+
35
+ <div class="app-main-layout flex flex-1 overflow-x-hidden">
36
+ <div id="sidebar" class="w-72 bg-white/95 backdrop-blur-sm border-r border-slate-200/60 flex flex-col flex-shrink-0 z-[60] fixed inset-y-0 left-0 transform -translate-x-full lg:translate-x-0 lg:top-0 lg:h-screen transition-transform duration-300 ease-in-out h-full pt-16 lg:pt-0"></div>
37
+ <div id="sidebarOverlay" class="fixed inset-0 bg-slate-900/50 backdrop-blur-sm z-30 lg:hidden opacity-0 invisible transition-all duration-300"></div>
38
+
39
+ <main class="flex-1 overflow-y-auto p-8">
40
+ <div class="max-w-6xl mx-auto space-y-6">
41
+ <div class="text-center mb-10">
42
+ <h2 class="text-3xl font-bold text-slate-900">Users</h2>
43
+ <p class="text-slate-600 mt-1">Only users with the <span class="font-semibold">Admin</span> role can add new users.</p>
44
+ <p id="viewerInfo" class="text-sm text-slate-500 mt-2"></p>
45
+ </div>
46
+
47
+ <section id="createUserCard" class="card p-6 hidden">
48
+ <h3 class="text-lg font-semibold text-slate-900 mb-4">Add User</h3>
49
+ <form id="createUserForm" class="grid grid-cols-1 md:grid-cols-4 gap-3" autocomplete="off">
50
+ <input id="newUsername" class="input" placeholder="username" minlength="3" maxlength="64" required autocomplete="off" autocapitalize="off" autocorrect="off" spellcheck="false">
51
+ <input id="newPassword" type="password" class="input" placeholder="password (min 6)" minlength="6" required autocomplete="new-password">
52
+ <select id="newRole" class="input">
53
+ <option value="user">User</option>
54
+ <option value="admin">Admin</option>
55
+ </select>
56
+ <button type="submit" class="bg-blue-600 hover:bg-blue-700 text-white rounded-lg px-4 py-2 font-medium">Create</button>
57
+ </form>
58
+ <p id="createUserMessage" class="text-sm mt-3 hidden"></p>
59
+ </section>
60
+
61
+ <section class="card p-6">
62
+ <div class="flex items-center justify-between mb-4">
63
+ <h3 class="text-lg font-semibold text-slate-900">User List</h3>
64
+ <button id="refreshUsersBtn" class="px-3 py-2 rounded-lg border border-slate-200 text-slate-700 hover:border-blue-400 hover:text-blue-600 text-sm">Refresh</button>
65
+ </div>
66
+ <div id="usersTableWrap" class="overflow-x-auto"></div>
67
+ </section>
68
+ </div>
69
+ </main>
70
+ </div>
71
+
72
+ <script src="logger.js"></script>
73
+ <script src="shared.js"></script>
74
+ <script src="sidebar.js"></script>
75
+ <script>
76
+ let currentUser = null;
77
+
78
+ function setMessage(message, type) {
79
+ const el = document.getElementById('createUserMessage');
80
+ el.textContent = message;
81
+ el.classList.remove('hidden', 'text-green-700', 'text-red-600');
82
+ el.classList.add(type === 'success' ? 'text-green-700' : 'text-red-600');
83
+ }
84
+
85
+ function renderUsers(users) {
86
+ const root = document.getElementById('usersTableWrap');
87
+ if (!users.length) {
88
+ root.innerHTML = '<p class="text-sm text-slate-500">No users found.</p>';
89
+ return;
90
+ }
91
+
92
+ root.innerHTML = `
93
+ <table class="min-w-full text-sm">
94
+ <thead>
95
+ <tr class="text-left border-b border-slate-200">
96
+ <th class="py-2 pr-4 font-semibold text-slate-700">Username</th>
97
+ <th class="py-2 pr-4 font-semibold text-slate-700">Workspace</th>
98
+ <th class="py-2 pr-4 font-semibold text-slate-700">Role</th>
99
+ <th class="py-2 pr-4 font-semibold text-slate-700">Created</th>
100
+ </tr>
101
+ </thead>
102
+ <tbody>
103
+ ${users.map((u) => `
104
+ <tr class="border-b border-slate-100">
105
+ <td class="py-2 pr-4 text-slate-800">${u.username}</td>
106
+ <td class="py-2 pr-4 text-slate-600">${u.workspaceId || '-'}</td>
107
+ <td class="py-2 pr-4">
108
+ <span class="px-2 py-1 rounded-full text-xs font-semibold ${u.role === 'admin' ? 'bg-blue-100 text-blue-700' : 'bg-slate-100 text-slate-700'}">${u.role}</span>
109
+ </td>
110
+ <td class="py-2 pr-4 text-slate-600">${u.createdAt || '-'}</td>
111
+ </tr>
112
+ `).join('')}
113
+ </tbody>
114
+ </table>
115
+ `;
116
+ }
117
+
118
+ async function loadViewer() {
119
+ const res = await fetch('/api/auth/me');
120
+ if (!res.ok) throw new Error('Unauthorized');
121
+ const payload = await res.json();
122
+ currentUser = payload?.data || {};
123
+ document.getElementById('viewerInfo').textContent = `Signed in as ${currentUser.username} (${currentUser.role || 'user'})`;
124
+ if (currentUser.isAdmin) {
125
+ document.getElementById('createUserCard').classList.remove('hidden');
126
+ }
127
+ }
128
+
129
+ async function loadUsers() {
130
+ const root = document.getElementById('usersTableWrap');
131
+ root.innerHTML = '<p class="text-sm text-slate-500">Loading users...</p>';
132
+ const res = await fetch('/api/auth/users');
133
+ if (res.status === 403) {
134
+ root.innerHTML = '<p class="text-sm text-amber-700">You do not have permission to view users.</p>';
135
+ return;
136
+ }
137
+ if (!res.ok) throw new Error('Failed to load users');
138
+ const payload = await res.json();
139
+ renderUsers(payload?.data?.users || []);
140
+ }
141
+
142
+ async function createUser(event) {
143
+ event.preventDefault();
144
+ const username = document.getElementById('newUsername').value.trim();
145
+ const password = document.getElementById('newPassword').value;
146
+ const role = document.getElementById('newRole').value;
147
+
148
+ const res = await fetch('/api/auth/users', {
149
+ method: 'POST',
150
+ headers: { 'Content-Type': 'application/json' },
151
+ body: JSON.stringify({ username, password, role })
152
+ });
153
+ const payload = await res.json().catch(() => ({}));
154
+ if (!res.ok) {
155
+ throw new Error(payload?.error || 'Failed to create user');
156
+ }
157
+
158
+ document.getElementById('createUserForm').reset();
159
+ setMessage(`User "${username}" created.`, 'success');
160
+ await loadUsers();
161
+ }
162
+
163
+ document.getElementById('refreshUsersBtn').addEventListener('click', () => {
164
+ loadUsers().catch((error) => {
165
+ document.getElementById('usersTableWrap').innerHTML = `<p class="text-sm text-red-600">${error.message || 'Failed to load users.'}</p>`;
166
+ });
167
+ });
168
+
169
+ document.getElementById('createUserForm').addEventListener('submit', async (event) => {
170
+ try {
171
+ await createUser(event);
172
+ } catch (error) {
173
+ setMessage(error.message || 'Failed to create user.', 'error');
174
+ }
175
+ });
176
+
177
+ document.addEventListener('DOMContentLoaded', async () => {
178
+ try {
179
+ const userEl = document.getElementById('newUsername');
180
+ const passEl = document.getElementById('newPassword');
181
+ if (userEl) userEl.value = '';
182
+ if (passEl) passEl.value = '';
183
+ await loadViewer();
184
+ await loadUsers();
185
+ } catch (error) {
186
+ document.getElementById('usersTableWrap').innerHTML = `<p class="text-sm text-red-600">${error.message || 'Failed to load users.'}</p>`;
187
+ }
188
+ });
189
+ </script>
190
+ </body>
191
+ </html>
@@ -1,31 +0,0 @@
1
- import { MCPTestRequest, MCPTestResponse } from '../types';
2
- import { TransportType } from '../transport';
3
- export declare class MCPClientUnified {
4
- private transportType;
5
- private port;
6
- private process;
7
- private eventSource;
8
- private messageId;
9
- private pendingRequests;
10
- private isConnected;
11
- private buffer;
12
- constructor(transportType?: TransportType, port?: number);
13
- connect(serverPath?: string): Promise<void>;
14
- private connectStdio;
15
- private connectSSE;
16
- disconnect(): Promise<void>;
17
- listTools(): Promise<any[]>;
18
- listResources(): Promise<any[]>;
19
- listPrompts(): Promise<any[]>;
20
- callTool(name: string, args?: any): Promise<MCPTestResponse>;
21
- readResource(uri: string): Promise<MCPTestResponse>;
22
- getPrompt(name: string, args?: any): Promise<MCPTestResponse>;
23
- testRequest(request: MCPTestRequest): Promise<MCPTestResponse>;
24
- private initialize;
25
- private sendNotification;
26
- private sendRequest;
27
- private handleStdioMessage;
28
- private handleSSEMessage;
29
- private processMessage;
30
- }
31
- //# sourceMappingURL=MCPClientUnified.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MCPClientUnified.d.ts","sourceRoot":"","sources":["../../src/client/MCPClientUnified.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAiB7C,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAGlB;IACL,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAM;gBAER,aAAa,GAAE,aAAuB,EAAE,IAAI,GAAE,MAAa;IAKjE,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAWnC,YAAY;YAkCZ,UAAU;IAmClB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAK3B,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAK/B,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAK7B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC;IAmB5D,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAenD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC;IAmB7D,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;YAgBtD,UAAU;IAgBxB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,WAAW;IAmCnB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,cAAc;CAYvB"}
@@ -1,275 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MCPClientUnified = void 0;
7
- const child_process_1 = require("child_process");
8
- const axios_1 = __importDefault(require("axios"));
9
- const eventsource_1 = require("eventsource");
10
- class MCPClientUnified {
11
- constructor(transportType = 'stdio', port = 3001) {
12
- this.process = null;
13
- this.eventSource = null;
14
- this.messageId = 1;
15
- this.pendingRequests = new Map();
16
- this.isConnected = false;
17
- this.buffer = '';
18
- this.transportType = transportType;
19
- this.port = port;
20
- }
21
- async connect(serverPath) {
22
- if (this.transportType === 'stdio') {
23
- if (!serverPath) {
24
- throw new Error('Server path required for stdio transport');
25
- }
26
- return this.connectStdio(serverPath);
27
- }
28
- else {
29
- return this.connectSSE();
30
- }
31
- }
32
- async connectStdio(serverPath) {
33
- return new Promise((resolve, reject) => {
34
- this.process = (0, child_process_1.spawn)('node', [serverPath], {
35
- stdio: ['pipe', 'pipe', 'pipe']
36
- });
37
- this.process.stdout?.on('data', (data) => {
38
- this.handleStdioMessage(data.toString());
39
- });
40
- this.process.stderr?.on('data', (data) => {
41
- console.error('MCP Server stderr:', data.toString());
42
- });
43
- this.process.on('error', (error) => {
44
- console.error('MCP Server process error:', error);
45
- reject(error);
46
- });
47
- this.process.on('exit', (code) => {
48
- console.log('MCP Server process exited with code:', code);
49
- this.isConnected = false;
50
- });
51
- // Initialize the connection
52
- this.initialize()
53
- .then(() => {
54
- this.isConnected = true;
55
- resolve();
56
- })
57
- .catch(reject);
58
- });
59
- }
60
- async connectSSE() {
61
- const EventSource = eventsource_1.EventSourcePolyfill || global.EventSource;
62
- return new Promise((resolve, reject) => {
63
- const sseUrl = `http://localhost:${this.port}/sse`;
64
- this.eventSource = new EventSource(sseUrl);
65
- this.eventSource.onmessage = (event) => {
66
- try {
67
- const message = JSON.parse(event.data);
68
- if (message.type === 'connected') {
69
- // Initialize the connection
70
- this.initialize()
71
- .then(() => {
72
- this.isConnected = true;
73
- resolve();
74
- })
75
- .catch(reject);
76
- }
77
- else {
78
- this.handleSSEMessage(message);
79
- }
80
- }
81
- catch (error) {
82
- console.error('Error parsing SSE message:', error);
83
- }
84
- };
85
- this.eventSource.onerror = (error) => {
86
- console.error('SSE connection error:', error);
87
- if (!this.isConnected) {
88
- reject(new Error('Failed to connect to SSE server'));
89
- }
90
- };
91
- });
92
- }
93
- async disconnect() {
94
- if (this.transportType === 'stdio' && this.process) {
95
- this.process.kill();
96
- this.process = null;
97
- }
98
- else if (this.transportType === 'sse' && this.eventSource) {
99
- this.eventSource.close();
100
- this.eventSource = null;
101
- }
102
- this.isConnected = false;
103
- }
104
- async listTools() {
105
- const response = await this.sendRequest('tools/list', {});
106
- return response.tools || [];
107
- }
108
- async listResources() {
109
- const response = await this.sendRequest('resources/list', {});
110
- return response.resources || [];
111
- }
112
- async listPrompts() {
113
- const response = await this.sendRequest('prompts/list', {});
114
- return response.prompts || [];
115
- }
116
- async callTool(name, args) {
117
- try {
118
- const response = await this.sendRequest('tools/call', {
119
- name,
120
- arguments: args || {}
121
- });
122
- return {
123
- success: true,
124
- data: response
125
- };
126
- }
127
- catch (error) {
128
- return {
129
- success: false,
130
- error: error instanceof Error ? error.message : 'Unknown error'
131
- };
132
- }
133
- }
134
- async readResource(uri) {
135
- try {
136
- const response = await this.sendRequest('resources/read', { uri });
137
- return {
138
- success: true,
139
- data: response
140
- };
141
- }
142
- catch (error) {
143
- return {
144
- success: false,
145
- error: error instanceof Error ? error.message : 'Unknown error'
146
- };
147
- }
148
- }
149
- async getPrompt(name, args) {
150
- try {
151
- const response = await this.sendRequest('prompts/get', {
152
- name,
153
- arguments: args || {}
154
- });
155
- return {
156
- success: true,
157
- data: response
158
- };
159
- }
160
- catch (error) {
161
- return {
162
- success: false,
163
- error: error instanceof Error ? error.message : 'Unknown error'
164
- };
165
- }
166
- }
167
- async testRequest(request) {
168
- switch (request.method) {
169
- case 'tool':
170
- return this.callTool(request.name, request.params);
171
- case 'resource':
172
- return this.readResource(request.name);
173
- case 'prompt':
174
- return this.getPrompt(request.name, request.params);
175
- default:
176
- return {
177
- success: false,
178
- error: 'Unknown request method'
179
- };
180
- }
181
- }
182
- async initialize() {
183
- const response = await this.sendRequest('initialize', {
184
- protocolVersion: '2024-11-05',
185
- capabilities: {},
186
- clientInfo: {
187
- name: 'quickmcp-test-client',
188
- version: '1.0.0'
189
- }
190
- });
191
- // Send initialized notification
192
- this.sendNotification('notifications/initialized', {});
193
- return response;
194
- }
195
- sendNotification(method, params) {
196
- const message = {
197
- jsonrpc: '2.0',
198
- method,
199
- params
200
- };
201
- if (this.transportType === 'stdio' && this.process?.stdin) {
202
- this.process.stdin.write(JSON.stringify(message) + '\n');
203
- }
204
- else if (this.transportType === 'sse') {
205
- axios_1.default.post(`http://localhost:${this.port}/message`, message)
206
- .catch(error => console.error('Error sending SSE message:', error));
207
- }
208
- }
209
- sendRequest(method, params) {
210
- return new Promise((resolve, reject) => {
211
- const id = this.messageId++;
212
- const message = {
213
- jsonrpc: '2.0',
214
- id,
215
- method,
216
- params
217
- };
218
- this.pendingRequests.set(id, { resolve, reject });
219
- if (this.transportType === 'stdio' && this.process?.stdin) {
220
- this.process.stdin.write(JSON.stringify(message) + '\n');
221
- }
222
- else if (this.transportType === 'sse') {
223
- axios_1.default.post(`http://localhost:${this.port}/message`, message)
224
- .catch(error => {
225
- this.pendingRequests.delete(id);
226
- reject(error);
227
- });
228
- }
229
- else {
230
- this.pendingRequests.delete(id);
231
- reject(new Error('Not connected'));
232
- }
233
- // Add timeout
234
- setTimeout(() => {
235
- if (this.pendingRequests.has(id)) {
236
- this.pendingRequests.delete(id);
237
- reject(new Error('Request timeout'));
238
- }
239
- }, 30000);
240
- });
241
- }
242
- handleStdioMessage(data) {
243
- this.buffer += data;
244
- const lines = this.buffer.split('\n');
245
- this.buffer = lines.pop() || '';
246
- for (const line of lines) {
247
- if (!line.trim())
248
- continue;
249
- try {
250
- const message = JSON.parse(line);
251
- this.processMessage(message);
252
- }
253
- catch (error) {
254
- console.error('Error parsing message:', error, 'Line:', line);
255
- }
256
- }
257
- }
258
- handleSSEMessage(message) {
259
- this.processMessage(message);
260
- }
261
- processMessage(message) {
262
- if (message.id && this.pendingRequests.has(message.id)) {
263
- const { resolve, reject } = this.pendingRequests.get(message.id);
264
- this.pendingRequests.delete(message.id);
265
- if (message.error) {
266
- reject(new Error(message.error.message));
267
- }
268
- else {
269
- resolve(message.result);
270
- }
271
- }
272
- }
273
- }
274
- exports.MCPClientUnified = MCPClientUnified;
275
- //# sourceMappingURL=MCPClientUnified.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MCPClientUnified.js","sourceRoot":"","sources":["../../src/client/MCPClientUnified.ts"],"names":[],"mappings":"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"}
@@ -1,48 +0,0 @@
1
- import { MCPClientUnified } from './MCPClientUnified';
2
- import { MCPTestRequest, MCPTestResponse } from '../types';
3
- import { TransportType } from '../transport';
4
- export interface TestSuite {
5
- name: string;
6
- description: string;
7
- tests: TestCase[];
8
- }
9
- export interface TestCase {
10
- name: string;
11
- description: string;
12
- request: MCPTestRequest;
13
- expectedSuccess?: boolean;
14
- expectedDataContains?: any;
15
- timeout?: number;
16
- }
17
- export interface TestResult {
18
- testCase: TestCase;
19
- response: MCPTestResponse;
20
- passed: boolean;
21
- duration: number;
22
- error?: string;
23
- transport?: TransportType;
24
- }
25
- export interface TestSuiteResult {
26
- testSuite: TestSuite;
27
- results: TestResult[];
28
- totalTests: number;
29
- passedTests: number;
30
- failedTests: number;
31
- duration: number;
32
- transport?: TransportType;
33
- }
34
- export declare class MCPTestRunnerUnified {
35
- private stdioClient;
36
- private sseClient;
37
- constructor(ssePort?: number);
38
- runTestSuiteBothTransports(serverPath: string, testSuite: TestSuite): Promise<{
39
- stdio: TestSuiteResult;
40
- sse: TestSuiteResult;
41
- }>;
42
- runTestSuite(serverPath: string | null, testSuite: TestSuite, transport?: TransportType): Promise<TestSuiteResult>;
43
- runTestCase(client: MCPClientUnified, testCase: TestCase, transport: TransportType): Promise<TestResult>;
44
- generateTestSuite(serverPath: string | null, suiteName: string, transport?: TransportType): Promise<TestSuite>;
45
- private evaluateTestResult;
46
- private generateSampleParams;
47
- }
48
- //# sourceMappingURL=MCPTestRunnerUnified.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MCPTestRunnerUnified.d.ts","sourceRoot":"","sources":["../../src/client/MCPTestRunnerUnified.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,GAAG,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,SAAS,CAAmB;gBAExB,OAAO,GAAE,MAAa;IAK5B,0BAA0B,CAC9B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC;QAAE,KAAK,EAAE,eAAe,CAAC;QAAC,GAAG,EAAE,eAAe,CAAA;KAAE,CAAC;IAUtD,YAAY,CAChB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,SAAS,EAAE,SAAS,EACpB,SAAS,GAAE,aAAuB,GACjC,OAAO,CAAC,eAAe,CAAC;IAqCrB,WAAW,CACf,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,aAAa,GACvB,OAAO,CAAC,UAAU,CAAC;IAiChB,iBAAiB,CACrB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,aAAuB,GACjC,OAAO,CAAC,SAAS,CAAC;IAsErB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,oBAAoB;CAwB7B"}