@softtechai/quickmcp 1.0.16 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/README.md +3 -3
  2. package/dist/auth/auth-utils.d.ts +130 -0
  3. package/dist/auth/auth-utils.d.ts.map +1 -0
  4. package/dist/auth/auth-utils.js +600 -0
  5. package/dist/auth/auth-utils.js.map +1 -0
  6. package/dist/auth/jwks-provider.d.ts +9 -0
  7. package/dist/auth/jwks-provider.d.ts.map +1 -0
  8. package/dist/auth/jwks-provider.js +56 -0
  9. package/dist/auth/jwks-provider.js.map +1 -0
  10. package/dist/auth/token-utils.d.ts +40 -0
  11. package/dist/auth/token-utils.d.ts.map +1 -0
  12. package/dist/auth/token-utils.js +162 -0
  13. package/dist/auth/token-utils.js.map +1 -0
  14. package/dist/client/MCPClient.js +5 -4
  15. package/dist/client/MCPClient.js.map +1 -1
  16. package/dist/config/auth-config.d.ts +16 -0
  17. package/dist/config/auth-config.d.ts.map +1 -0
  18. package/dist/config/auth-config.js +107 -0
  19. package/dist/config/auth-config.js.map +1 -0
  20. package/dist/constant/constant.d.ts +20 -0
  21. package/dist/constant/constant.d.ts.map +1 -0
  22. package/dist/constant/constant.js +24 -0
  23. package/dist/constant/constant.js.map +1 -0
  24. package/dist/database/async-datastore.d.ts +6 -0
  25. package/dist/database/async-datastore.d.ts.map +1 -0
  26. package/dist/database/async-datastore.js +15 -0
  27. package/dist/database/async-datastore.js.map +1 -0
  28. package/dist/database/database-utils.d.ts +6 -0
  29. package/dist/database/database-utils.d.ts.map +1 -0
  30. package/dist/database/database-utils.js +29 -0
  31. package/dist/database/database-utils.js.map +1 -0
  32. package/dist/database/datastore.d.ts +164 -0
  33. package/dist/database/datastore.d.ts.map +1 -0
  34. package/dist/{parsers/types/index.js → database/datastore.js} +1 -0
  35. package/dist/database/datastore.js.map +1 -0
  36. package/dist/database/factory.d.ts +4 -0
  37. package/dist/database/factory.d.ts.map +1 -0
  38. package/dist/database/factory.js +32 -0
  39. package/dist/database/factory.js.map +1 -0
  40. package/dist/database/jdbc-manager.d.ts +49 -0
  41. package/dist/database/jdbc-manager.d.ts.map +1 -0
  42. package/dist/database/jdbc-manager.js +50 -0
  43. package/dist/database/jdbc-manager.js.map +1 -0
  44. package/dist/database/sqlite-manager.d.ts +46 -44
  45. package/dist/database/sqlite-manager.d.ts.map +1 -1
  46. package/dist/database/sqlite-manager.js +492 -42
  47. package/dist/database/sqlite-manager.js.map +1 -1
  48. package/dist/database/supabase-manager.d.ts +58 -0
  49. package/dist/database/supabase-manager.d.ts.map +1 -0
  50. package/dist/database/supabase-manager.js +432 -0
  51. package/dist/database/supabase-manager.js.map +1 -0
  52. package/dist/generators/MCPServerGenerator.d.ts +103 -20
  53. package/dist/generators/MCPServerGenerator.d.ts.map +1 -1
  54. package/dist/generators/MCPServerGenerator.js +6930 -128
  55. package/dist/generators/MCPServerGenerator.js.map +1 -1
  56. package/dist/index.d.ts +0 -1
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +8 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/integrated-mcp-server-new.d.ts +14 -2
  61. package/dist/integrated-mcp-server-new.d.ts.map +1 -1
  62. package/dist/integrated-mcp-server-new.js +270 -180
  63. package/dist/integrated-mcp-server-new.js.map +1 -1
  64. package/dist/mcp-core/McpCoreService.d.ts +63 -0
  65. package/dist/mcp-core/McpCoreService.d.ts.map +1 -0
  66. package/dist/mcp-core/McpCoreService.js +492 -0
  67. package/dist/mcp-core/McpCoreService.js.map +1 -0
  68. package/dist/parsers/CsvParser.d.ts +1 -1
  69. package/dist/parsers/CsvParser.d.ts.map +1 -1
  70. package/dist/parsers/CsvParser.js +3 -2
  71. package/dist/parsers/CsvParser.js.map +1 -1
  72. package/dist/parsers/DatabaseParser.d.ts.map +1 -1
  73. package/dist/parsers/DatabaseParser.js +9 -8
  74. package/dist/parsers/DatabaseParser.js.map +1 -1
  75. package/dist/parsers/ExcelParser.d.ts +15 -0
  76. package/dist/parsers/ExcelParser.d.ts.map +1 -1
  77. package/dist/parsers/ExcelParser.js +287 -21
  78. package/dist/parsers/ExcelParser.js.map +1 -1
  79. package/dist/parsers/WebPageParser.d.ts +5 -0
  80. package/dist/parsers/WebPageParser.d.ts.map +1 -0
  81. package/dist/parsers/WebPageParser.js +35 -0
  82. package/dist/parsers/WebPageParser.js.map +1 -0
  83. package/dist/parsers/index.d.ts +3 -2
  84. package/dist/parsers/index.d.ts.map +1 -1
  85. package/dist/parsers/index.js +19 -16
  86. package/dist/parsers/index.js.map +1 -1
  87. package/dist/server/api/askApi.d.ts +41 -0
  88. package/dist/server/api/askApi.d.ts.map +1 -0
  89. package/dist/server/api/askApi.js +479 -0
  90. package/dist/server/api/askApi.js.map +1 -0
  91. package/dist/server/api/authApi.d.ts +101 -0
  92. package/dist/server/api/authApi.d.ts.map +1 -0
  93. package/dist/server/api/authApi.js +1472 -0
  94. package/dist/server/api/authApi.js.map +1 -0
  95. package/dist/server/api/authProperty.d.ts +18 -0
  96. package/dist/server/api/authProperty.d.ts.map +1 -0
  97. package/dist/server/api/authProperty.js +41 -0
  98. package/dist/server/api/authProperty.js.map +1 -0
  99. package/dist/server/api/configApi.d.ts +15 -0
  100. package/dist/server/api/configApi.d.ts.map +1 -0
  101. package/dist/server/api/configApi.js +42 -0
  102. package/dist/server/api/configApi.js.map +1 -0
  103. package/dist/server/api/databaseApi.d.ts +14 -0
  104. package/dist/server/api/databaseApi.d.ts.map +1 -0
  105. package/dist/server/api/databaseApi.js +111 -0
  106. package/dist/server/api/databaseApi.js.map +1 -0
  107. package/dist/server/api/directoryApi.d.ts +9 -0
  108. package/dist/server/api/directoryApi.d.ts.map +1 -0
  109. package/dist/server/api/directoryApi.js +103 -0
  110. package/dist/server/api/directoryApi.js.map +1 -0
  111. package/dist/server/api/generateApi.d.ts +24 -0
  112. package/dist/server/api/generateApi.d.ts.map +1 -0
  113. package/dist/server/api/generateApi.js +457 -0
  114. package/dist/server/api/generateApi.js.map +1 -0
  115. package/dist/server/api/healthApi.d.ts +9 -0
  116. package/dist/server/api/healthApi.d.ts.map +1 -0
  117. package/dist/server/api/healthApi.js +15 -0
  118. package/dist/server/api/healthApi.js.map +1 -0
  119. package/dist/server/api/indexApi.d.ts +21 -0
  120. package/dist/server/api/indexApi.d.ts.map +1 -0
  121. package/dist/server/api/indexApi.js +61 -0
  122. package/dist/server/api/indexApi.js.map +1 -0
  123. package/dist/server/api/logsApi.d.ts +12 -0
  124. package/dist/server/api/logsApi.d.ts.map +1 -0
  125. package/dist/server/api/logsApi.js +37 -0
  126. package/dist/server/api/logsApi.js.map +1 -0
  127. package/dist/server/api/mcpApi.d.ts +20 -0
  128. package/dist/server/api/mcpApi.d.ts.map +1 -0
  129. package/dist/server/api/mcpApi.js +120 -0
  130. package/dist/server/api/mcpApi.js.map +1 -0
  131. package/dist/server/api/nameApi.d.ts +21 -0
  132. package/dist/server/api/nameApi.d.ts.map +1 -0
  133. package/dist/server/api/nameApi.js +42 -0
  134. package/dist/server/api/nameApi.js.map +1 -0
  135. package/dist/server/api/parseApi.d.ts +9 -0
  136. package/dist/server/api/parseApi.d.ts.map +1 -0
  137. package/dist/server/api/parseApi.js +3245 -0
  138. package/dist/server/api/parseApi.js.map +1 -0
  139. package/dist/server/api/serverApi.d.ts +44 -0
  140. package/dist/server/api/serverApi.d.ts.map +1 -0
  141. package/dist/server/api/serverApi.js +417 -0
  142. package/dist/server/api/serverApi.js.map +1 -0
  143. package/dist/{dynamic-mcp-executor.d.ts → server/dynamic-mcp-executor.d.ts} +4 -5
  144. package/dist/server/dynamic-mcp-executor.d.ts.map +1 -0
  145. package/dist/server/dynamic-mcp-executor.js +62 -0
  146. package/dist/server/dynamic-mcp-executor.js.map +1 -0
  147. package/dist/server/port-utils.d.ts +14 -0
  148. package/dist/server/port-utils.d.ts.map +1 -0
  149. package/dist/server/port-utils.js +31 -0
  150. package/dist/server/port-utils.js.map +1 -0
  151. package/dist/server/server-utils.d.ts +13 -0
  152. package/dist/server/server-utils.d.ts.map +1 -0
  153. package/dist/server/server-utils.js +72 -0
  154. package/dist/server/server-utils.js.map +1 -0
  155. package/dist/{web → server}/server.d.ts +1 -0
  156. package/dist/server/server.d.ts.map +1 -0
  157. package/dist/server/server.js +535 -0
  158. package/dist/server/server.js.map +1 -0
  159. package/dist/server/tool-executer.d.ts +101 -0
  160. package/dist/server/tool-executer.d.ts.map +1 -0
  161. package/dist/server/tool-executer.js +6198 -0
  162. package/dist/server/tool-executer.js.map +1 -0
  163. package/dist/types/index.d.ts +1197 -4
  164. package/dist/types/index.d.ts.map +1 -1
  165. package/dist/types/index.js +1028 -0
  166. package/dist/types/index.js.map +1 -1
  167. package/dist/upload/upload-utils.d.ts +4 -0
  168. package/dist/upload/upload-utils.d.ts.map +1 -0
  169. package/dist/upload/upload-utils.js +29 -0
  170. package/dist/upload/upload-utils.js.map +1 -0
  171. package/dist/utils/deployment-util.d.ts +14 -0
  172. package/dist/utils/deployment-util.d.ts.map +1 -0
  173. package/dist/utils/deployment-util.js +46 -0
  174. package/dist/utils/deployment-util.js.map +1 -0
  175. package/dist/utils/logger.d.ts +15 -0
  176. package/dist/utils/logger.d.ts.map +1 -0
  177. package/dist/utils/logger.js +56 -0
  178. package/dist/utils/logger.js.map +1 -0
  179. package/package.json +18 -6
  180. package/quickmcp-direct-stdio.js +183 -187
  181. package/src/web/public/app.js +15370 -1471
  182. package/src/web/public/authorization.html +868 -0
  183. package/src/web/public/database-tables.html +283 -547
  184. package/src/web/public/how-to-use.html +446 -462
  185. package/src/web/public/how-to-use.js +4 -4
  186. package/src/web/public/images/app/activepieces.png +0 -0
  187. package/src/web/public/images/app/airtable.png +0 -0
  188. package/src/web/public/images/app/androidstudio.png +0 -0
  189. package/src/web/public/images/app/antigravity.png +0 -0
  190. package/src/web/public/images/app/applenotes.png +0 -0
  191. package/src/web/public/images/app/applereminders.png +0 -0
  192. package/src/web/public/images/app/asana.png +0 -0
  193. package/src/web/public/images/app/azureai.png +0 -0
  194. package/src/web/public/images/app/bash.png +0 -0
  195. package/src/web/public/images/app/bearnotes.png +0 -0
  196. package/src/web/public/images/app/bitbucket.png +0 -0
  197. package/src/web/public/images/app/claude.png +0 -0
  198. package/src/web/public/images/app/cli.png +0 -0
  199. package/src/web/public/images/app/clickup.png +0 -0
  200. package/src/web/public/images/app/cohere.png +0 -0
  201. package/src/web/public/images/app/confluence.png +0 -0
  202. package/src/web/public/images/app/confluence2.png +0 -0
  203. package/src/web/public/images/app/curl.png +0 -0
  204. package/src/web/public/images/app/curl_mini.png +0 -0
  205. package/src/web/public/images/app/cursor.png +0 -0
  206. package/src/web/public/images/app/db2.png +0 -0
  207. package/src/web/public/images/app/deepseek.png +0 -0
  208. package/src/web/public/images/app/discord.png +0 -0
  209. package/src/web/public/images/app/docker.png +0 -0
  210. package/src/web/public/images/app/dockerhub.png +0 -0
  211. package/src/web/public/images/app/dropbox.png +0 -0
  212. package/src/web/public/images/app/elasticsearch.png +0 -0
  213. package/src/web/public/images/app/facebook.png +0 -0
  214. package/src/web/public/images/app/falai.png +0 -0
  215. package/src/web/public/images/app/fireworks.png +0 -0
  216. package/src/web/public/images/app/gdrive.png +0 -0
  217. package/src/web/public/images/app/gemini.png +0 -0
  218. package/src/web/public/images/app/github.png +0 -0
  219. package/src/web/public/images/app/githubcopilot.png +0 -0
  220. package/src/web/public/images/app/gitlab.png +0 -0
  221. package/src/web/public/images/app/gmail.png +0 -0
  222. package/src/web/public/images/app/googlecalender.png +0 -0
  223. package/src/web/public/images/app/googledocs.png +0 -0
  224. package/src/web/public/images/app/googlesheets.png +0 -0
  225. package/src/web/public/images/app/gradle.png +0 -0
  226. package/src/web/public/images/app/grafana.png +0 -0
  227. package/src/web/public/images/app/graphql.png +0 -0
  228. package/src/web/public/images/app/grok.png +0 -0
  229. package/src/web/public/images/app/groq.png +0 -0
  230. package/src/web/public/images/app/hazelcast.png +0 -0
  231. package/src/web/public/images/app/huggingface.png +0 -0
  232. package/src/web/public/images/app/imessage.png +0 -0
  233. package/src/web/public/images/app/instagram.png +0 -0
  234. package/src/web/public/images/app/intellij.png +0 -0
  235. package/src/web/public/images/app/jenkins.png +0 -0
  236. package/src/web/public/images/app/jira.png +0 -0
  237. package/src/web/public/images/app/kafka.png +0 -0
  238. package/src/web/public/images/app/kubernetes.png +0 -0
  239. package/src/web/public/images/app/linear.png +0 -0
  240. package/src/web/public/images/app/linkedin.png +0 -0
  241. package/src/web/public/images/app/llama.png +0 -0
  242. package/src/web/public/images/app/make.png +0 -0
  243. package/src/web/public/images/app/maven.png +0 -0
  244. package/src/web/public/images/app/mcp.png +0 -0
  245. package/src/web/public/images/app/microsoftteams.png +0 -0
  246. package/src/web/public/images/app/mistral.png +0 -0
  247. package/src/web/public/images/app/monday.png +0 -0
  248. package/src/web/public/images/app/mongodb.png +0 -0
  249. package/src/web/public/images/app/mssql.png +0 -0
  250. package/src/web/public/images/app/mysql.png +0 -0
  251. package/src/web/public/images/app/n8n.png +0 -0
  252. package/src/web/public/images/app/notion.png +0 -0
  253. package/src/web/public/images/app/npm.png +0 -0
  254. package/src/web/public/images/app/nuget.png +0 -0
  255. package/src/web/public/images/app/obsidian.png +0 -0
  256. package/src/web/public/images/app/openai.png +0 -0
  257. package/src/web/public/images/app/openrouter.png +0 -0
  258. package/src/web/public/images/app/opensearch.png +0 -0
  259. package/src/web/public/images/app/openshift.png +0 -0
  260. package/src/web/public/images/app/oracle.png +0 -0
  261. package/src/web/public/images/app/perplexity.png +0 -0
  262. package/src/web/public/images/app/pipedream.png +0 -0
  263. package/src/web/public/images/app/postgresql.png +0 -0
  264. package/src/web/public/images/app/powershell.png +0 -0
  265. package/src/web/public/images/app/prometheus.png +0 -0
  266. package/src/web/public/images/app/reddit.png +0 -0
  267. package/src/web/public/images/app/redis.png +0 -0
  268. package/src/web/public/images/app/rss.png +0 -0
  269. package/src/web/public/images/app/signal.png +0 -0
  270. package/src/web/public/images/app/slack.png +0 -0
  271. package/src/web/public/images/app/soap.png +0 -0
  272. package/src/web/public/images/app/sqlite.png +0 -0
  273. package/src/web/public/images/app/supabase.png +0 -0
  274. package/src/web/public/images/app/telegram.png +0 -0
  275. package/src/web/public/images/app/things3.png +0 -0
  276. package/src/web/public/images/app/threads.png +0 -0
  277. package/src/web/public/images/app/tiktok.png +0 -0
  278. package/src/web/public/images/app/together.png +0 -0
  279. package/src/web/public/images/app/trello.png +0 -0
  280. package/src/web/public/images/app/vscode.png +0 -0
  281. package/src/web/public/images/app/webhook.png +0 -0
  282. package/src/web/public/images/app/webpage.png +0 -0
  283. package/src/web/public/images/app/whatsappbusiness.png +0 -0
  284. package/src/web/public/images/app/windsorf.png +0 -0
  285. package/src/web/public/images/app/x.png +0 -0
  286. package/src/web/public/images/app/youtube.png +0 -0
  287. package/src/web/public/images/app/zapier.png +0 -0
  288. package/src/web/public/images/app/zededitor.png +0 -0
  289. package/src/web/public/images/app/zoom.png +0 -0
  290. package/src/web/public/images/avatar-anon.svg +4 -0
  291. package/src/web/public/images/favicon.png +0 -0
  292. package/src/web/public/images/install/chatgpt-web/step0.png +0 -0
  293. package/src/web/public/images/install/chatgpt-web/step1.png +0 -0
  294. package/src/web/public/images/install/chatgpt-web/step2.png +0 -0
  295. package/src/web/public/images/install/chatgpt-web/step3.png +0 -0
  296. package/src/web/public/images/install/chatgpt-web/step4.png +0 -0
  297. package/src/web/public/images/install/chatgpt-web/step5.png +0 -0
  298. package/src/web/public/images/readme/1-generate-servers.png +0 -0
  299. package/src/web/public/images/readme/2-database-connection.png +0 -0
  300. package/src/web/public/images/readme/2-file-upload.png +0 -0
  301. package/src/web/public/images/readme/3-data-preview.png +0 -0
  302. package/src/web/public/images/readme/4-data-preview2.png +0 -0
  303. package/src/web/public/images/readme/5-server-configuration.png +0 -0
  304. package/src/web/public/images/readme/6-server-generated-modal.png +0 -0
  305. package/src/web/public/images/readme/7-generated-servers.png +0 -0
  306. package/src/web/public/images/readme/8-generated-servers-view-details.png +0 -0
  307. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.23.51.png +0 -0
  308. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.24.59.png +0 -0
  309. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.05.png +0 -0
  310. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.14.png +0 -0
  311. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.21.png +0 -0
  312. package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.36.png +0 -0
  313. package/src/web/public/index.html +4685 -488
  314. package/src/web/public/landing.html +1638 -0
  315. package/src/web/public/logger.js +31 -0
  316. package/src/web/public/login.html +372 -0
  317. package/src/web/public/manage-servers.html +121 -188
  318. package/src/web/public/pricing.html +537 -0
  319. package/src/web/public/quick-ask.html +133 -0
  320. package/src/web/public/quickmcp-styles.css +708 -0
  321. package/src/web/public/roles.html +177 -0
  322. package/src/web/public/shared.js +736 -3
  323. package/src/web/public/sidebar.js +414 -0
  324. package/src/web/public/test-servers.html +605 -221
  325. package/src/web/public/users.html +191 -0
  326. package/dist/client/MCPClientUnified.d.ts +0 -31
  327. package/dist/client/MCPClientUnified.d.ts.map +0 -1
  328. package/dist/client/MCPClientUnified.js +0 -275
  329. package/dist/client/MCPClientUnified.js.map +0 -1
  330. package/dist/client/MCPTestRunnerUnified.d.ts +0 -48
  331. package/dist/client/MCPTestRunnerUnified.d.ts.map +0 -1
  332. package/dist/client/MCPTestRunnerUnified.js +0 -183
  333. package/dist/client/MCPTestRunnerUnified.js.map +0 -1
  334. package/dist/database/json-manager.d.ts +0 -55
  335. package/dist/database/json-manager.d.ts.map +0 -1
  336. package/dist/database/json-manager.js +0 -128
  337. package/dist/database/json-manager.js.map +0 -1
  338. package/dist/dynamic-mcp-executor.d.ts.map +0 -1
  339. package/dist/dynamic-mcp-executor.js +0 -274
  340. package/dist/dynamic-mcp-executor.js.map +0 -1
  341. package/dist/generators/MCPServerGenerator-new.d.ts +0 -37
  342. package/dist/generators/MCPServerGenerator-new.d.ts.map +0 -1
  343. package/dist/generators/MCPServerGenerator-new.js +0 -287
  344. package/dist/generators/MCPServerGenerator-new.js.map +0 -1
  345. package/dist/generators/database/sqlite-manager.d.ts +0 -52
  346. package/dist/generators/database/sqlite-manager.js +0 -143
  347. package/dist/generators/generators/MCPServerGenerator.d.ts +0 -37
  348. package/dist/generators/generators/MCPServerGenerator.js +0 -396
  349. package/dist/integrated-mcp-server.d.ts +0 -25
  350. package/dist/integrated-mcp-server.d.ts.map +0 -1
  351. package/dist/integrated-mcp-server.js +0 -541
  352. package/dist/integrated-mcp-server.js.map +0 -1
  353. package/dist/mcp-inspector-server.d.ts +0 -3
  354. package/dist/mcp-inspector-server.d.ts.map +0 -1
  355. package/dist/mcp-inspector-server.js +0 -119
  356. package/dist/mcp-inspector-server.js.map +0 -1
  357. package/dist/mcp-sdk-server.d.ts +0 -3
  358. package/dist/mcp-sdk-server.d.ts.map +0 -1
  359. package/dist/mcp-sdk-server.js +0 -90
  360. package/dist/mcp-sdk-server.js.map +0 -1
  361. package/dist/mcp-server.d.ts +0 -3
  362. package/dist/mcp-server.d.ts.map +0 -1
  363. package/dist/mcp-server.js +0 -300
  364. package/dist/mcp-server.js.map +0 -1
  365. package/dist/parsers/parsers/ExcelParser.js +0 -118
  366. package/dist/quickmcp-unified-bridge.d.ts +0 -13
  367. package/dist/quickmcp-unified-bridge.d.ts.map +0 -1
  368. package/dist/quickmcp-unified-bridge.js +0 -176
  369. package/dist/quickmcp-unified-bridge.js.map +0 -1
  370. package/dist/sqlite-manager.js +0 -145
  371. package/dist/test-app.d.ts +0 -2
  372. package/dist/test-app.d.ts.map +0 -1
  373. package/dist/test-app.js +0 -119
  374. package/dist/test-app.js.map +0 -1
  375. package/dist/transport/base-transport.d.ts +0 -21
  376. package/dist/transport/base-transport.d.ts.map +0 -1
  377. package/dist/transport/base-transport.js +0 -16
  378. package/dist/transport/base-transport.js.map +0 -1
  379. package/dist/transport/index.d.ts +0 -10
  380. package/dist/transport/index.d.ts.map +0 -1
  381. package/dist/transport/index.js +0 -12
  382. package/dist/transport/index.js.map +0 -1
  383. package/dist/transport/sse-transport.d.ts +0 -13
  384. package/dist/transport/sse-transport.d.ts.map +0 -1
  385. package/dist/transport/sse-transport.js +0 -106
  386. package/dist/transport/sse-transport.js.map +0 -1
  387. package/dist/transport/stdio-transport.d.ts +0 -8
  388. package/dist/transport/stdio-transport.d.ts.map +0 -1
  389. package/dist/transport/stdio-transport.js +0 -53
  390. package/dist/transport/stdio-transport.js.map +0 -1
  391. package/dist/transport/streamable-http-transport.d.ts +0 -15
  392. package/dist/transport/streamable-http-transport.d.ts.map +0 -1
  393. package/dist/transport/streamable-http-transport.js +0 -151
  394. package/dist/transport/streamable-http-transport.js.map +0 -1
  395. package/dist/web/client/MCPClient.js +0 -348
  396. package/dist/web/client/MCPTestRunner.js +0 -317
  397. package/dist/web/database/json-manager.js +0 -124
  398. package/dist/web/database/sqlite-manager.js +0 -146
  399. package/dist/web/dynamic-mcp-executor.js +0 -443
  400. package/dist/web/generators/MCPServerGenerator-new.js +0 -284
  401. package/dist/web/generators/MCPServerGenerator.js +0 -566
  402. package/dist/web/integrated-mcp-server-new.js +0 -394
  403. package/dist/web/parsers/CsvParser.js +0 -144
  404. package/dist/web/parsers/DatabaseParser.js +0 -637
  405. package/dist/web/parsers/ExcelParser.js +0 -180
  406. package/dist/web/parsers/index.js +0 -152
  407. package/dist/web/server.d.ts.map +0 -1
  408. package/dist/web/server.js +0 -790
  409. package/dist/web/server.js.map +0 -1
  410. package/dist/web/types/index.js +0 -2
  411. package/dist/web/web/server.js +0 -860
  412. package/src/web/public/modern-styles.css +0 -946
  413. package/src/web/public/shared-styles.css +0 -2091
  414. /package/src/web/public/images/{1-claude-quickmcp-stdio.png → readme/1-claude-quickmcp-stdio.png} +0 -0
  415. /package/src/web/public/images/{2-claude-tools.png → readme/2-claude-tools.png} +0 -0
  416. /package/src/web/public/images/{3-claude-developer-settings.png → readme/3-claude-developer-settings.png} +0 -0
  417. /package/src/web/public/images/{4-claude-config.png → readme/4-claude-config.png} +0 -0
  418. /package/src/web/public/images/{5-claude-config-edit.png → readme/5-claude-config-edit.png} +0 -0
@@ -4,11 +4,70 @@ const path = require('path');
4
4
  const fs = require('fs');
5
5
  const os = require('os');
6
6
  const net = require('net');
7
+ let dotenv = null;
8
+ try {
9
+ dotenv = require('dotenv');
10
+ } catch (_) {
11
+ dotenv = null;
12
+ }
13
+
14
+ if (dotenv) {
15
+ // Load .env from script directory first (works with Claude Desktop custom CWD),
16
+ // then fallback to process CWD.
17
+ dotenv.config({ path: path.join(__dirname, '.env') });
18
+ dotenv.config();
19
+ }
20
+
21
+ let logger;
22
+ try {
23
+ ({ logger } = require('./dist/utils/logger.js'));
24
+ } catch (_) {
25
+ logger = {
26
+ trace: (...args) => console.error(...args),
27
+ debug: (...args) => console.error(...args),
28
+ info: (...args) => console.error(...args),
29
+ warn: (...args) => console.error(...args),
30
+ error: (...args) => console.error(...args)
31
+ };
32
+ }
33
+
34
+ // Secure default for direct-stdio: if caller does not provide auth/deploy mode,
35
+ // enforce ONPREM semantics (AUTH_MODE=LITE) so MCP token checks are active.
36
+ if (!process.env.AUTH_MODE && !process.env.DEPLOY_MODE) {
37
+ process.env.DEPLOY_MODE = 'ONPREM';
38
+ logger.error('[QuickMCP] AUTH_MODE/DEPLOY_MODE not provided, defaulting DEPLOY_MODE=ONPREM (AUTH_MODE=LITE)');
39
+ }
7
40
 
8
41
  // Use the current working directory provided by the caller.
9
42
  // Do not change directories; keep paths relative to this script.
10
43
 
11
- const { SQLiteManager } = require('./dist/database/sqlite-manager.js');
44
+ let safeCreateDataStore;
45
+ try {
46
+ ({ safeCreateDataStore } = require('./dist/database/database-utils.js'));
47
+ } catch (_) {
48
+ throw new Error('[QuickMCP] Missing dist/database/database-utils.js. Run `npm run build` before starting quickmcp-direct-stdio.js');
49
+ }
50
+
51
+ let resolveAuthMode;
52
+ try {
53
+ ({ resolveAuthMode } = require('./dist/config/auth-config.js'));
54
+ } catch (_) {
55
+ throw new Error('[QuickMCP] Missing dist/config/auth-config.js. Run `npm run build` before starting quickmcp-direct-stdio.js');
56
+ }
57
+
58
+ let DynamicMCPExecutor;
59
+ try {
60
+ ({ DynamicMCPExecutor } = require('./dist/server/dynamic-mcp-executor.js'));
61
+ } catch (_) {
62
+ throw new Error('[QuickMCP] Missing dist/server/dynamic-mcp-executor.js. Run `npm run build` before starting quickmcp-direct-stdio.js');
63
+ }
64
+
65
+ let McpCoreService;
66
+ try {
67
+ ({ McpCoreService } = require('./dist/mcp-core/McpCoreService.js'));
68
+ } catch (_) {
69
+ throw new Error('[QuickMCP] Missing dist/mcp-core/McpCoreService.js. Run `npm run build` before starting quickmcp-direct-stdio.js');
70
+ }
12
71
 
13
72
  // Parse CLI flags for convenience
14
73
  // Supported flags:
@@ -36,14 +95,44 @@ if (dataDirArg) {
36
95
  if (val) process.env.QUICKMCP_DATA_DIR = val;
37
96
  }
38
97
 
39
- // Create SQLite manager
40
- const sqliteManager = new SQLiteManager();
98
+ const dataStore = safeCreateDataStore({ logger: (...args) => logger.error(...args) });
99
+ const executor = new DynamicMCPExecutor();
100
+
101
+ const mcpAuthMode = resolveAuthMode();
102
+ const mcpTokenSecret = process.env.QUICKMCP_TOKEN_SECRET || process.env.AUTH_COOKIE_SECRET || 'change-me';
103
+ const mcpToken = (process.env.QUICKMCP_TOKEN || '').trim();
104
+ let startupAuthError = null;
105
+ let mcpCore;
106
+ try {
107
+ mcpCore = new McpCoreService({
108
+ executor,
109
+ authStore: dataStore,
110
+ authMode: mcpAuthMode,
111
+ tokenSecret: mcpTokenSecret,
112
+ defaultToken: mcpToken
113
+ });
114
+ } catch (error) {
115
+ startupAuthError = error && error.message ? String(error.message) : 'Invalid MCP token';
116
+ mcpCore = new McpCoreService({
117
+ executor,
118
+ authStore: dataStore,
119
+ authMode: mcpAuthMode,
120
+ tokenSecret: mcpTokenSecret,
121
+ defaultToken: ''
122
+ });
123
+ }
124
+
125
+ logger.error(`[QuickMCP] MCP auth mode: ${mcpAuthMode}`);
126
+ logger.error(`[QuickMCP] MCP token present: ${mcpToken ? 'yes' : 'no'}`);
127
+ if (startupAuthError) {
128
+ logger.error('[QuickMCP] Provided MCP token is invalid/revoked/expired for current workspace.');
129
+ }
41
130
 
42
131
  // Optionally start the Web UI (Express) like `npm run dev`
43
132
  // Enable by setting QUICKMCP_ENABLE_WEB=1 (and optionally PORT, QUICKMCP_DATA_DIR)
44
133
  if (process.env.QUICKMCP_ENABLE_WEB === '1') {
45
134
  try {
46
- console.error('[QuickMCP] QUICKMCP_ENABLE_WEB=1 -> starting Web UI server...');
135
+ logger.error('[QuickMCP] QUICKMCP_ENABLE_WEB=1 -> starting Web UI server...');
47
136
  // Ensure we run from a writable directory when invoked via npx (CWD may be '/')
48
137
  const canWrite = (dir) => {
49
138
  try { fs.accessSync(dir, fs.constants.W_OK); return true; } catch { return false; }
@@ -53,7 +142,10 @@ if (process.env.QUICKMCP_ENABLE_WEB === '1') {
53
142
  const home = os.homedir() || os.tmpdir();
54
143
  runDir = path.join(home, '.quickmcp');
55
144
  try { fs.mkdirSync(runDir, { recursive: true }); } catch {}
56
- try { process.chdir(runDir); } catch {}
145
+ // NOTE: Disabled intentionally.
146
+ // Do not change process CWD here; changing CWD causes SQLite/database path drift
147
+ // between different launch modes (dev, npx, stdio).
148
+ // try { process.chdir(runDir); } catch {}
57
149
  }
58
150
  // Prepare uploads directory and expose as env for newer builds
59
151
  const uploadsDir = path.join(runDir, 'uploads');
@@ -74,39 +166,39 @@ if (process.env.QUICKMCP_ENABLE_WEB === '1') {
74
166
  process.once('SIGTERM', () => { cleanup(); process.exit(0); });
75
167
  } catch (e) {
76
168
  if (e && e.code !== 'EEXIST') {
77
- console.error('[QuickMCP] UI lock error (continuing without UI):', e.message || e);
169
+ logger.error('[QuickMCP] UI lock error (continuing without UI):', e.message || e);
78
170
  }
79
171
  // Another process holds the UI lock; skip starting UI in this process
80
172
  }
81
173
 
82
174
  if (!hasLock) {
83
- return; // do not try to start UI
84
- }
85
-
86
- // Only start Web UI if preferred port is actually free.
87
- const probe = net.createServer();
88
- probe.once('error', (err) => {
89
- if (err && (err.code === 'EADDRINUSE' || err.code === 'EACCES')) {
90
- // Port is busy or not permitted; skip starting Web UI to avoid crashing Claude session
91
- try { fs.unlinkSync(lockPath); } catch {}
92
- return;
93
- }
94
- // For other errors, still try starting server; better to attempt than silently skip for unknown cases
95
- safeStartWebServer();
96
- });
97
- probe.once('listening', () => {
98
- probe.close(() => {
175
+ logger.error('[QuickMCP] UI lock held by another process; skipping Web UI in this process');
176
+ } else {
177
+ // Only start Web UI if preferred port is actually free.
178
+ const probe = net.createServer();
179
+ probe.once('error', (err) => {
180
+ if (err && (err.code === 'EADDRINUSE' || err.code === 'EACCES')) {
181
+ // Port is busy or not permitted; skip starting Web UI to avoid crashing Claude session
182
+ try { fs.unlinkSync(lockPath); } catch {}
183
+ return;
184
+ }
185
+ // For other errors, still try starting server; better to attempt than silently skip for unknown cases
99
186
  safeStartWebServer();
100
187
  });
101
- });
102
- try {
103
- // Probe on IPv6 unspecified to mirror Express default, falling back to IPv4 if needed
104
- probe.listen(preferredPort, '::');
105
- } catch (_e) {
106
- // If probing throws synchronously (rare), just skip UI
188
+ probe.once('listening', () => {
189
+ probe.close(() => {
190
+ safeStartWebServer();
191
+ });
192
+ });
193
+ try {
194
+ // Probe on IPv6 unspecified to mirror Express default, falling back to IPv4 if needed
195
+ probe.listen(preferredPort, '::');
196
+ } catch (_e) {
197
+ // If probing throws synchronously (rare), just skip UI
198
+ }
107
199
  }
108
200
  } catch (e) {
109
- console.error('[QuickMCP] Failed to start Web UI:', e && e.message);
201
+ logger.error('[QuickMCP] Failed to start Web UI:', e && e.message);
110
202
  }
111
203
  }
112
204
 
@@ -127,11 +219,11 @@ function safeStartWebServer() {
127
219
  // Install one-time handler to catch immediate async throw from Express
128
220
  process.prependOnceListener('uncaughtException', handler);
129
221
  try {
130
- require('./dist/web/server.js');
222
+ require('./dist/server/server.js');
131
223
  } catch (e) {
132
224
  // Synchronous load error
133
225
  process.removeListener('uncaughtException', handler);
134
- console.error('[QuickMCP] Failed to start Web UI:', e && e.message);
226
+ logger.error('[QuickMCP] Failed to start Web UI:', e && e.message);
135
227
  }
136
228
  // Remove handler on next tick if nothing happened, to avoid swallowing unrelated errors later
137
229
  setImmediate(() => {
@@ -143,21 +235,21 @@ function safeStartWebServer() {
143
235
 
144
236
  // Diagnostics: print environment and mssql details to help debug Claude Desktop
145
237
  try {
146
- const resolvedDynExec = require.resolve('./dist/dynamic-mcp-executor.js');
238
+ const resolvedDynExec = require.resolve('./dist/server/dynamic-mcp-executor.js');
147
239
  const mssql = require('mssql');
148
240
  const mssqlVersion = require('mssql/package.json').version;
149
- console.error('[QuickMCP] Node:', process.version);
150
- console.error('[QuickMCP] CWD:', process.cwd());
151
- console.error('[QuickMCP] Dynamic executor path:', resolvedDynExec);
152
- console.error('[QuickMCP] mssql version:', mssqlVersion);
153
- console.error('[QuickMCP] mssql exports:', {
241
+ logger.error('[QuickMCP] Node:', process.version);
242
+ logger.error('[QuickMCP] CWD:', process.cwd());
243
+ logger.error('[QuickMCP] Dynamic executor path:', resolvedDynExec);
244
+ logger.error('[QuickMCP] mssql version:', mssqlVersion);
245
+ logger.error('[QuickMCP] mssql exports:', {
154
246
  hasDefault: !!mssql.default,
155
247
  hasConnect: typeof mssql.connect,
156
248
  typeofConnectionPool: typeof (mssql.ConnectionPool),
157
249
  keys: Object.keys(mssql).slice(0, 10)
158
250
  });
159
251
  } catch (e) {
160
- console.error('[QuickMCP] Diagnostic init error:', e && e.message);
252
+ logger.error('[QuickMCP] Diagnostic init error:', e && e.message);
161
253
  }
162
254
 
163
255
  // Direct STDIO MCP implementation with LSP-style framing support
@@ -176,150 +268,51 @@ function sendMessage(message) {
176
268
  process.stdout.write(json + '\n');
177
269
  }
178
270
  } catch (e) {
179
- console.error('[QuickMCP] Failed to send message:', e && e.message);
271
+ logger.error('[QuickMCP] Failed to send message:', e && e.message);
180
272
  }
181
273
  }
182
274
 
183
275
  async function handleMessage(message) {
184
- console.error(`[QuickMCP] Received: ${message.method} (id: ${message.id})`);
185
-
186
- let response;
187
-
188
- switch (message.method) {
189
- case 'initialize':
190
- response = {
191
- jsonrpc: '2.0',
192
- id: message.id,
193
- result: {
194
- protocolVersion: '2024-11-05',
195
- serverInfo: { name: 'quickmcp-direct', version: '1.0.0' },
196
- capabilities: {
197
- tools: { listChanged: true },
198
- resources: { listChanged: true },
199
- prompts: { listChanged: true }
200
- }
201
- }
202
- };
203
- break;
204
-
205
- case 'tools/list':
206
- try {
207
- const tools = sqliteManager.getAllTools();
208
- console.error(`[QuickMCP] Got ${tools.length} tools from SQLite`);
209
- const formattedTools = tools.map(tool => ({
210
- name: `${tool.server_id}__${tool.name}`,
211
- description: `[${tool.server_id}] ${tool.description}`,
212
- inputSchema: typeof tool.inputSchema === 'string' ? JSON.parse(tool.inputSchema) : tool.inputSchema
213
- }));
214
- console.error(`[QuickMCP] Formatted ${formattedTools.length} tools`);
215
-
216
- response = {
217
- jsonrpc: '2.0',
218
- id: message.id,
219
- result: { tools: formattedTools }
220
- };
221
- } catch (error) {
222
- console.error('[QuickMCP] Error getting tools:', error);
223
- response = {
224
- jsonrpc: '2.0',
225
- id: message.id,
226
- result: { tools: [] }
227
- };
228
- }
229
- break;
230
-
231
- case 'resources/list':
232
- try {
233
- const resources = sqliteManager.getAllResources();
234
- const formattedResources = resources.map(resource => ({
235
- name: `${resource.server_id}__${resource.name}`,
236
- description: `[${resource.server_id}] ${resource.description}`,
237
- uri: resource.uri_template
238
- }));
239
-
240
- response = {
241
- jsonrpc: '2.0',
242
- id: message.id,
243
- result: { resources: formattedResources }
244
- };
245
- } catch (error) {
246
- console.error('[QuickMCP] Error getting resources:', error);
247
- response = {
248
- jsonrpc: '2.0',
249
- id: message.id,
250
- result: { resources: [] }
251
- };
252
- }
253
- break;
254
-
255
- case 'prompts/list':
256
- // Return empty prompts list for now
257
- response = {
258
- jsonrpc: '2.0',
259
- id: message.id,
260
- result: { prompts: [] }
261
- };
262
- break;
263
-
264
- case 'tools/call':
265
- try {
266
- console.error(`[QuickMCP] Executing tool: ${message.params.name}`);
267
- console.error(`[QuickMCP] Arguments:`, JSON.stringify(message.params.arguments));
268
-
269
- const { DynamicMCPExecutor } = require('./dist/dynamic-mcp-executor.js');
270
- const executor = new DynamicMCPExecutor();
271
-
272
- const timeoutPromise = new Promise((_, reject) => {
273
- setTimeout(() => reject(new Error('Tool execution timeout')), 10000);
274
- });
275
-
276
- const toolResult = await Promise.race([
277
- executor.executeTool(message.params.name, message.params.arguments || {}),
278
- timeoutPromise
279
- ]);
280
-
281
- console.error(`[QuickMCP] Tool result:`, JSON.stringify(toolResult, null, 2));
282
-
283
- response = {
284
- jsonrpc: '2.0',
285
- id: message.id,
286
- result: {
287
- content: [{
288
- type: 'text',
289
- text: JSON.stringify(toolResult, null, 2)
290
- }]
291
- }
292
- };
293
- } catch (error) {
294
- console.error(`[QuickMCP] Tool execution error:`, error);
295
- response = {
296
- jsonrpc: '2.0',
297
- id: message.id,
298
- error: {
299
- code: -32603,
300
- message: `Tool execution failed: ${error.message}`
301
- }
302
- };
303
- }
304
- break;
305
-
306
- case 'notifications/initialized':
307
- console.error('[QuickMCP] Client initialized');
308
- break;
309
-
310
- default:
311
- if (message.id) {
312
- response = {
313
- jsonrpc: '2.0',
314
- id: message.id,
315
- error: { code: -32601, message: `Method not found: ${message.method}` }
316
- };
276
+ logger.error(`[QuickMCP] Received: ${message.method} (id: ${message.id})`);
277
+
278
+ if (startupAuthError && message.method !== 'initialize' && message.method !== 'notifications/initialized') {
279
+ const authErrorResponse = {
280
+ jsonrpc: '2.0',
281
+ id: message.id,
282
+ error: {
283
+ code: -32001,
284
+ message: startupAuthError
317
285
  }
286
+ };
287
+ logger.error('[QuickMCP] Sending: auth-error');
288
+ sendMessage(authErrorResponse);
289
+ return;
318
290
  }
319
291
 
320
- if (response) {
321
- console.error(`[QuickMCP] Sending: ${response.result ? 'success' : 'error'}`);
322
- sendMessage(response);
292
+ try {
293
+ let authContext;
294
+ try {
295
+ authContext = await mcpCore.resolveAuthContextFromSources({});
296
+ } catch (authError) {
297
+ logger.error('[QuickMCP] Failed to resolve auth context:', authError && authError.message ? authError.message : String(authError));
298
+ authContext = { identity: null, tokenRecord: null };
299
+ }
300
+ const response = await mcpCore.processJsonRpcMessage(message, authContext);
301
+ if (response) {
302
+ logger.error(`[QuickMCP] Sending: ${response.result ? 'success' : 'error'}`);
303
+ sendMessage(response);
304
+ }
305
+ } catch (error) {
306
+ const errorResponse = {
307
+ jsonrpc: '2.0',
308
+ id: message.id,
309
+ error: {
310
+ code: -32603,
311
+ message: `Internal error: ${error && error.message ? error.message : 'Unknown error'}`
312
+ }
313
+ };
314
+ logger.error('[QuickMCP] Sending: error');
315
+ sendMessage(errorResponse);
323
316
  }
324
317
  }
325
318
 
@@ -353,7 +346,7 @@ process.stdin.on('data', async (data) => {
353
346
  const match = /Content-Length:\s*(\d+)/i.exec(header);
354
347
  if (!match) {
355
348
  // Invalid header; drop up to headerEnd+4
356
- console.error('[QuickMCP] Invalid header, dropping bytes');
349
+ logger.error('[QuickMCP] Invalid header, dropping bytes');
357
350
  stdinBuffer = Buffer.from(str.slice(headerEnd + 4), 'utf8');
358
351
  continue;
359
352
  }
@@ -367,12 +360,12 @@ process.stdin.on('data', async (data) => {
367
360
  try {
368
361
  if (useLspFraming === null) {
369
362
  useLspFraming = true;
370
- console.error('[QuickMCP] Detected LSP framing (Content-Length)');
363
+ logger.error('[QuickMCP] Detected LSP framing (Content-Length)');
371
364
  }
372
365
  const message = JSON.parse(body);
373
366
  await handleMessage(message);
374
367
  } catch (e) {
375
- console.error('[QuickMCP] Error parsing framed JSON:', e && e.message);
368
+ logger.error('[QuickMCP] Error parsing framed JSON:', e && e.message);
376
369
  }
377
370
  stdinBuffer = stdinBuffer.slice(totalLength);
378
371
  continue;
@@ -386,13 +379,13 @@ process.stdin.on('data', async (data) => {
386
379
  }
387
380
  if (useLspFraming === null) {
388
381
  useLspFraming = false;
389
- console.error('[QuickMCP] Detected newline-delimited JSON framing');
382
+ logger.error('[QuickMCP] Detected newline-delimited JSON framing');
390
383
  }
391
384
  for (const msg of messages) {
392
385
  try {
393
386
  await handleMessage(msg);
394
387
  } catch (e) {
395
- console.error('[QuickMCP] Error handling message:', e && e.message);
388
+ logger.error('[QuickMCP] Error handling message:', e && e.message);
396
389
  }
397
390
  }
398
391
  stdinBuffer = Buffer.from(str.slice(consumed), 'utf8');
@@ -400,22 +393,25 @@ process.stdin.on('data', async (data) => {
400
393
  });
401
394
 
402
395
  process.stdin.on('end', () => {
403
- console.error('[QuickMCP] STDIN ended');
404
- sqliteManager.close();
396
+ logger.error('[QuickMCP] STDIN ended');
397
+ try { executor.close && executor.close(); } catch (_) {}
398
+ try { dataStore.close && dataStore.close(); } catch (_) {}
405
399
  process.exit(0);
406
400
  });
407
401
 
408
402
  process.on('SIGINT', () => {
409
- console.error('[QuickMCP] Interrupted');
410
- sqliteManager.close();
403
+ logger.error('[QuickMCP] Interrupted');
404
+ try { executor.close && executor.close(); } catch (_) {}
405
+ try { dataStore.close && dataStore.close(); } catch (_) {}
411
406
  process.exit(0);
412
407
  });
413
408
 
414
409
  process.on('SIGTERM', () => {
415
- console.error('[QuickMCP] Terminated');
416
- sqliteManager.close();
410
+ logger.error('[QuickMCP] Terminated');
411
+ try { executor.close && executor.close(); } catch (_) {}
412
+ try { dataStore.close && dataStore.close(); } catch (_) {}
417
413
  process.exit(0);
418
414
  });
419
415
 
420
416
  process.stdin.resume();
421
- console.error('QuickMCP Direct STDIO Server started...');
417
+ logger.error('QuickMCP Direct STDIO Server started...');