@softtechai/quickmcp 1.0.16 → 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 +176 -187
  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
@@ -4,11 +4,63 @@ const path = require('path');
4
4
  const fs = require('fs');
5
5
  const os = require('os');
6
6
  const net = require('net');
7
+ const dotenv = require('dotenv');
8
+
9
+ // Load .env from script directory first (works with Claude Desktop custom CWD),
10
+ // then fallback to process CWD.
11
+ dotenv.config({ path: path.join(__dirname, '.env') });
12
+ dotenv.config();
13
+
14
+ let logger;
15
+ try {
16
+ ({ logger } = require('./dist/utils/logger.js'));
17
+ } catch (_) {
18
+ logger = {
19
+ trace: (...args) => console.error(...args),
20
+ debug: (...args) => console.error(...args),
21
+ info: (...args) => console.error(...args),
22
+ warn: (...args) => console.error(...args),
23
+ error: (...args) => console.error(...args)
24
+ };
25
+ }
26
+
27
+ // Secure default for direct-stdio: if caller does not provide auth/deploy mode,
28
+ // enforce ONPREM semantics (AUTH_MODE=LITE) so MCP token checks are active.
29
+ if (!process.env.AUTH_MODE && !process.env.DEPLOY_MODE) {
30
+ process.env.DEPLOY_MODE = 'ONPREM';
31
+ logger.error('[QuickMCP] AUTH_MODE/DEPLOY_MODE not provided, defaulting DEPLOY_MODE=ONPREM (AUTH_MODE=LITE)');
32
+ }
7
33
 
8
34
  // Use the current working directory provided by the caller.
9
35
  // Do not change directories; keep paths relative to this script.
10
36
 
11
- const { SQLiteManager } = require('./dist/database/sqlite-manager.js');
37
+ let safeCreateDataStore;
38
+ try {
39
+ ({ safeCreateDataStore } = require('./dist/database/database-utils.js'));
40
+ } catch (_) {
41
+ throw new Error('[QuickMCP] Missing dist/database/database-utils.js. Run `npm run build` before starting quickmcp-direct-stdio.js');
42
+ }
43
+
44
+ let resolveAuthMode;
45
+ try {
46
+ ({ resolveAuthMode } = require('./dist/config/auth-config.js'));
47
+ } catch (_) {
48
+ throw new Error('[QuickMCP] Missing dist/config/auth-config.js. Run `npm run build` before starting quickmcp-direct-stdio.js');
49
+ }
50
+
51
+ let DynamicMCPExecutor;
52
+ try {
53
+ ({ DynamicMCPExecutor } = require('./dist/server/dynamic-mcp-executor.js'));
54
+ } catch (_) {
55
+ throw new Error('[QuickMCP] Missing dist/server/dynamic-mcp-executor.js. Run `npm run build` before starting quickmcp-direct-stdio.js');
56
+ }
57
+
58
+ let McpCoreService;
59
+ try {
60
+ ({ McpCoreService } = require('./dist/mcp-core/McpCoreService.js'));
61
+ } catch (_) {
62
+ throw new Error('[QuickMCP] Missing dist/mcp-core/McpCoreService.js. Run `npm run build` before starting quickmcp-direct-stdio.js');
63
+ }
12
64
 
13
65
  // Parse CLI flags for convenience
14
66
  // Supported flags:
@@ -36,14 +88,44 @@ if (dataDirArg) {
36
88
  if (val) process.env.QUICKMCP_DATA_DIR = val;
37
89
  }
38
90
 
39
- // Create SQLite manager
40
- const sqliteManager = new SQLiteManager();
91
+ const dataStore = safeCreateDataStore({ logger: (...args) => logger.error(...args) });
92
+ const executor = new DynamicMCPExecutor();
93
+
94
+ const mcpAuthMode = resolveAuthMode();
95
+ const mcpTokenSecret = process.env.QUICKMCP_TOKEN_SECRET || process.env.AUTH_COOKIE_SECRET || 'change-me';
96
+ const mcpToken = (process.env.QUICKMCP_TOKEN || '').trim();
97
+ let startupAuthError = null;
98
+ let mcpCore;
99
+ try {
100
+ mcpCore = new McpCoreService({
101
+ executor,
102
+ authStore: dataStore,
103
+ authMode: mcpAuthMode,
104
+ tokenSecret: mcpTokenSecret,
105
+ defaultToken: mcpToken
106
+ });
107
+ } catch (error) {
108
+ startupAuthError = error && error.message ? String(error.message) : 'Invalid MCP token';
109
+ mcpCore = new McpCoreService({
110
+ executor,
111
+ authStore: dataStore,
112
+ authMode: mcpAuthMode,
113
+ tokenSecret: mcpTokenSecret,
114
+ defaultToken: ''
115
+ });
116
+ }
117
+
118
+ logger.error(`[QuickMCP] MCP auth mode: ${mcpAuthMode}`);
119
+ logger.error(`[QuickMCP] MCP token present: ${mcpToken ? 'yes' : 'no'}`);
120
+ if (startupAuthError) {
121
+ logger.error('[QuickMCP] Provided MCP token is invalid/revoked/expired for current workspace.');
122
+ }
41
123
 
42
124
  // Optionally start the Web UI (Express) like `npm run dev`
43
125
  // Enable by setting QUICKMCP_ENABLE_WEB=1 (and optionally PORT, QUICKMCP_DATA_DIR)
44
126
  if (process.env.QUICKMCP_ENABLE_WEB === '1') {
45
127
  try {
46
- console.error('[QuickMCP] QUICKMCP_ENABLE_WEB=1 -> starting Web UI server...');
128
+ logger.error('[QuickMCP] QUICKMCP_ENABLE_WEB=1 -> starting Web UI server...');
47
129
  // Ensure we run from a writable directory when invoked via npx (CWD may be '/')
48
130
  const canWrite = (dir) => {
49
131
  try { fs.accessSync(dir, fs.constants.W_OK); return true; } catch { return false; }
@@ -53,7 +135,10 @@ if (process.env.QUICKMCP_ENABLE_WEB === '1') {
53
135
  const home = os.homedir() || os.tmpdir();
54
136
  runDir = path.join(home, '.quickmcp');
55
137
  try { fs.mkdirSync(runDir, { recursive: true }); } catch {}
56
- try { process.chdir(runDir); } catch {}
138
+ // NOTE: Disabled intentionally.
139
+ // Do not change process CWD here; changing CWD causes SQLite/database path drift
140
+ // between different launch modes (dev, npx, stdio).
141
+ // try { process.chdir(runDir); } catch {}
57
142
  }
58
143
  // Prepare uploads directory and expose as env for newer builds
59
144
  const uploadsDir = path.join(runDir, 'uploads');
@@ -74,39 +159,39 @@ if (process.env.QUICKMCP_ENABLE_WEB === '1') {
74
159
  process.once('SIGTERM', () => { cleanup(); process.exit(0); });
75
160
  } catch (e) {
76
161
  if (e && e.code !== 'EEXIST') {
77
- console.error('[QuickMCP] UI lock error (continuing without UI):', e.message || e);
162
+ logger.error('[QuickMCP] UI lock error (continuing without UI):', e.message || e);
78
163
  }
79
164
  // Another process holds the UI lock; skip starting UI in this process
80
165
  }
81
166
 
82
167
  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(() => {
168
+ logger.error('[QuickMCP] UI lock held by another process; skipping Web UI in this process');
169
+ } else {
170
+ // Only start Web UI if preferred port is actually free.
171
+ const probe = net.createServer();
172
+ probe.once('error', (err) => {
173
+ if (err && (err.code === 'EADDRINUSE' || err.code === 'EACCES')) {
174
+ // Port is busy or not permitted; skip starting Web UI to avoid crashing Claude session
175
+ try { fs.unlinkSync(lockPath); } catch {}
176
+ return;
177
+ }
178
+ // For other errors, still try starting server; better to attempt than silently skip for unknown cases
99
179
  safeStartWebServer();
100
180
  });
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
181
+ probe.once('listening', () => {
182
+ probe.close(() => {
183
+ safeStartWebServer();
184
+ });
185
+ });
186
+ try {
187
+ // Probe on IPv6 unspecified to mirror Express default, falling back to IPv4 if needed
188
+ probe.listen(preferredPort, '::');
189
+ } catch (_e) {
190
+ // If probing throws synchronously (rare), just skip UI
191
+ }
107
192
  }
108
193
  } catch (e) {
109
- console.error('[QuickMCP] Failed to start Web UI:', e && e.message);
194
+ logger.error('[QuickMCP] Failed to start Web UI:', e && e.message);
110
195
  }
111
196
  }
112
197
 
@@ -127,11 +212,11 @@ function safeStartWebServer() {
127
212
  // Install one-time handler to catch immediate async throw from Express
128
213
  process.prependOnceListener('uncaughtException', handler);
129
214
  try {
130
- require('./dist/web/server.js');
215
+ require('./dist/server/server.js');
131
216
  } catch (e) {
132
217
  // Synchronous load error
133
218
  process.removeListener('uncaughtException', handler);
134
- console.error('[QuickMCP] Failed to start Web UI:', e && e.message);
219
+ logger.error('[QuickMCP] Failed to start Web UI:', e && e.message);
135
220
  }
136
221
  // Remove handler on next tick if nothing happened, to avoid swallowing unrelated errors later
137
222
  setImmediate(() => {
@@ -143,21 +228,21 @@ function safeStartWebServer() {
143
228
 
144
229
  // Diagnostics: print environment and mssql details to help debug Claude Desktop
145
230
  try {
146
- const resolvedDynExec = require.resolve('./dist/dynamic-mcp-executor.js');
231
+ const resolvedDynExec = require.resolve('./dist/server/dynamic-mcp-executor.js');
147
232
  const mssql = require('mssql');
148
233
  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:', {
234
+ logger.error('[QuickMCP] Node:', process.version);
235
+ logger.error('[QuickMCP] CWD:', process.cwd());
236
+ logger.error('[QuickMCP] Dynamic executor path:', resolvedDynExec);
237
+ logger.error('[QuickMCP] mssql version:', mssqlVersion);
238
+ logger.error('[QuickMCP] mssql exports:', {
154
239
  hasDefault: !!mssql.default,
155
240
  hasConnect: typeof mssql.connect,
156
241
  typeofConnectionPool: typeof (mssql.ConnectionPool),
157
242
  keys: Object.keys(mssql).slice(0, 10)
158
243
  });
159
244
  } catch (e) {
160
- console.error('[QuickMCP] Diagnostic init error:', e && e.message);
245
+ logger.error('[QuickMCP] Diagnostic init error:', e && e.message);
161
246
  }
162
247
 
163
248
  // Direct STDIO MCP implementation with LSP-style framing support
@@ -176,150 +261,51 @@ function sendMessage(message) {
176
261
  process.stdout.write(json + '\n');
177
262
  }
178
263
  } catch (e) {
179
- console.error('[QuickMCP] Failed to send message:', e && e.message);
264
+ logger.error('[QuickMCP] Failed to send message:', e && e.message);
180
265
  }
181
266
  }
182
267
 
183
268
  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
- };
269
+ logger.error(`[QuickMCP] Received: ${message.method} (id: ${message.id})`);
270
+
271
+ if (startupAuthError && message.method !== 'initialize' && message.method !== 'notifications/initialized') {
272
+ const authErrorResponse = {
273
+ jsonrpc: '2.0',
274
+ id: message.id,
275
+ error: {
276
+ code: -32001,
277
+ message: startupAuthError
317
278
  }
279
+ };
280
+ logger.error('[QuickMCP] Sending: auth-error');
281
+ sendMessage(authErrorResponse);
282
+ return;
318
283
  }
319
284
 
320
- if (response) {
321
- console.error(`[QuickMCP] Sending: ${response.result ? 'success' : 'error'}`);
322
- sendMessage(response);
285
+ try {
286
+ let authContext;
287
+ try {
288
+ authContext = await mcpCore.resolveAuthContextFromSources({});
289
+ } catch (authError) {
290
+ logger.error('[QuickMCP] Failed to resolve auth context:', authError && authError.message ? authError.message : String(authError));
291
+ authContext = { identity: null, tokenRecord: null };
292
+ }
293
+ const response = await mcpCore.processJsonRpcMessage(message, authContext);
294
+ if (response) {
295
+ logger.error(`[QuickMCP] Sending: ${response.result ? 'success' : 'error'}`);
296
+ sendMessage(response);
297
+ }
298
+ } catch (error) {
299
+ const errorResponse = {
300
+ jsonrpc: '2.0',
301
+ id: message.id,
302
+ error: {
303
+ code: -32603,
304
+ message: `Internal error: ${error && error.message ? error.message : 'Unknown error'}`
305
+ }
306
+ };
307
+ logger.error('[QuickMCP] Sending: error');
308
+ sendMessage(errorResponse);
323
309
  }
324
310
  }
325
311
 
@@ -353,7 +339,7 @@ process.stdin.on('data', async (data) => {
353
339
  const match = /Content-Length:\s*(\d+)/i.exec(header);
354
340
  if (!match) {
355
341
  // Invalid header; drop up to headerEnd+4
356
- console.error('[QuickMCP] Invalid header, dropping bytes');
342
+ logger.error('[QuickMCP] Invalid header, dropping bytes');
357
343
  stdinBuffer = Buffer.from(str.slice(headerEnd + 4), 'utf8');
358
344
  continue;
359
345
  }
@@ -367,12 +353,12 @@ process.stdin.on('data', async (data) => {
367
353
  try {
368
354
  if (useLspFraming === null) {
369
355
  useLspFraming = true;
370
- console.error('[QuickMCP] Detected LSP framing (Content-Length)');
356
+ logger.error('[QuickMCP] Detected LSP framing (Content-Length)');
371
357
  }
372
358
  const message = JSON.parse(body);
373
359
  await handleMessage(message);
374
360
  } catch (e) {
375
- console.error('[QuickMCP] Error parsing framed JSON:', e && e.message);
361
+ logger.error('[QuickMCP] Error parsing framed JSON:', e && e.message);
376
362
  }
377
363
  stdinBuffer = stdinBuffer.slice(totalLength);
378
364
  continue;
@@ -386,13 +372,13 @@ process.stdin.on('data', async (data) => {
386
372
  }
387
373
  if (useLspFraming === null) {
388
374
  useLspFraming = false;
389
- console.error('[QuickMCP] Detected newline-delimited JSON framing');
375
+ logger.error('[QuickMCP] Detected newline-delimited JSON framing');
390
376
  }
391
377
  for (const msg of messages) {
392
378
  try {
393
379
  await handleMessage(msg);
394
380
  } catch (e) {
395
- console.error('[QuickMCP] Error handling message:', e && e.message);
381
+ logger.error('[QuickMCP] Error handling message:', e && e.message);
396
382
  }
397
383
  }
398
384
  stdinBuffer = Buffer.from(str.slice(consumed), 'utf8');
@@ -400,22 +386,25 @@ process.stdin.on('data', async (data) => {
400
386
  });
401
387
 
402
388
  process.stdin.on('end', () => {
403
- console.error('[QuickMCP] STDIN ended');
404
- sqliteManager.close();
389
+ logger.error('[QuickMCP] STDIN ended');
390
+ try { executor.close && executor.close(); } catch (_) {}
391
+ try { dataStore.close && dataStore.close(); } catch (_) {}
405
392
  process.exit(0);
406
393
  });
407
394
 
408
395
  process.on('SIGINT', () => {
409
- console.error('[QuickMCP] Interrupted');
410
- sqliteManager.close();
396
+ logger.error('[QuickMCP] Interrupted');
397
+ try { executor.close && executor.close(); } catch (_) {}
398
+ try { dataStore.close && dataStore.close(); } catch (_) {}
411
399
  process.exit(0);
412
400
  });
413
401
 
414
402
  process.on('SIGTERM', () => {
415
- console.error('[QuickMCP] Terminated');
416
- sqliteManager.close();
403
+ logger.error('[QuickMCP] Terminated');
404
+ try { executor.close && executor.close(); } catch (_) {}
405
+ try { dataStore.close && dataStore.close(); } catch (_) {}
417
406
  process.exit(0);
418
407
  });
419
408
 
420
409
  process.stdin.resume();
421
- console.error('QuickMCP Direct STDIO Server started...');
410
+ logger.error('QuickMCP Direct STDIO Server started...');