@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.
- package/dist/auth/auth-utils.d.ts +130 -0
- package/dist/auth/auth-utils.d.ts.map +1 -0
- package/dist/auth/auth-utils.js +600 -0
- package/dist/auth/auth-utils.js.map +1 -0
- package/dist/auth/jwks-provider.d.ts +9 -0
- package/dist/auth/jwks-provider.d.ts.map +1 -0
- package/dist/auth/jwks-provider.js +56 -0
- package/dist/auth/jwks-provider.js.map +1 -0
- package/dist/auth/token-utils.d.ts +40 -0
- package/dist/auth/token-utils.d.ts.map +1 -0
- package/dist/auth/token-utils.js +162 -0
- package/dist/auth/token-utils.js.map +1 -0
- package/dist/client/MCPClient.js +5 -4
- package/dist/client/MCPClient.js.map +1 -1
- package/dist/config/auth-config.d.ts +16 -0
- package/dist/config/auth-config.d.ts.map +1 -0
- package/dist/config/auth-config.js +107 -0
- package/dist/config/auth-config.js.map +1 -0
- package/dist/constant/constant.d.ts +20 -0
- package/dist/constant/constant.d.ts.map +1 -0
- package/dist/constant/constant.js +24 -0
- package/dist/constant/constant.js.map +1 -0
- package/dist/database/async-datastore.d.ts +6 -0
- package/dist/database/async-datastore.d.ts.map +1 -0
- package/dist/database/async-datastore.js +15 -0
- package/dist/database/async-datastore.js.map +1 -0
- package/dist/database/database-utils.d.ts +6 -0
- package/dist/database/database-utils.d.ts.map +1 -0
- package/dist/database/database-utils.js +29 -0
- package/dist/database/database-utils.js.map +1 -0
- package/dist/database/datastore.d.ts +164 -0
- package/dist/database/datastore.d.ts.map +1 -0
- package/dist/{parsers/types/index.js → database/datastore.js} +1 -0
- package/dist/database/datastore.js.map +1 -0
- package/dist/database/factory.d.ts +4 -0
- package/dist/database/factory.d.ts.map +1 -0
- package/dist/database/factory.js +32 -0
- package/dist/database/factory.js.map +1 -0
- package/dist/database/jdbc-manager.d.ts +49 -0
- package/dist/database/jdbc-manager.d.ts.map +1 -0
- package/dist/database/jdbc-manager.js +50 -0
- package/dist/database/jdbc-manager.js.map +1 -0
- package/dist/database/sqlite-manager.d.ts +46 -44
- package/dist/database/sqlite-manager.d.ts.map +1 -1
- package/dist/database/sqlite-manager.js +492 -42
- package/dist/database/sqlite-manager.js.map +1 -1
- package/dist/database/supabase-manager.d.ts +58 -0
- package/dist/database/supabase-manager.d.ts.map +1 -0
- package/dist/database/supabase-manager.js +432 -0
- package/dist/database/supabase-manager.js.map +1 -0
- package/dist/generators/MCPServerGenerator.d.ts +103 -20
- package/dist/generators/MCPServerGenerator.d.ts.map +1 -1
- package/dist/generators/MCPServerGenerator.js +6930 -128
- package/dist/generators/MCPServerGenerator.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/integrated-mcp-server-new.d.ts +14 -2
- package/dist/integrated-mcp-server-new.d.ts.map +1 -1
- package/dist/integrated-mcp-server-new.js +270 -180
- package/dist/integrated-mcp-server-new.js.map +1 -1
- package/dist/mcp-core/McpCoreService.d.ts +63 -0
- package/dist/mcp-core/McpCoreService.d.ts.map +1 -0
- package/dist/mcp-core/McpCoreService.js +492 -0
- package/dist/mcp-core/McpCoreService.js.map +1 -0
- package/dist/parsers/CsvParser.d.ts +1 -1
- package/dist/parsers/CsvParser.d.ts.map +1 -1
- package/dist/parsers/CsvParser.js +3 -2
- package/dist/parsers/CsvParser.js.map +1 -1
- package/dist/parsers/DatabaseParser.d.ts.map +1 -1
- package/dist/parsers/DatabaseParser.js +9 -8
- package/dist/parsers/DatabaseParser.js.map +1 -1
- package/dist/parsers/ExcelParser.d.ts +15 -0
- package/dist/parsers/ExcelParser.d.ts.map +1 -1
- package/dist/parsers/ExcelParser.js +287 -21
- package/dist/parsers/ExcelParser.js.map +1 -1
- package/dist/parsers/WebPageParser.d.ts +5 -0
- package/dist/parsers/WebPageParser.d.ts.map +1 -0
- package/dist/parsers/WebPageParser.js +35 -0
- package/dist/parsers/WebPageParser.js.map +1 -0
- package/dist/parsers/index.d.ts +3 -2
- package/dist/parsers/index.d.ts.map +1 -1
- package/dist/parsers/index.js +19 -16
- package/dist/parsers/index.js.map +1 -1
- package/dist/server/api/askApi.d.ts +41 -0
- package/dist/server/api/askApi.d.ts.map +1 -0
- package/dist/server/api/askApi.js +479 -0
- package/dist/server/api/askApi.js.map +1 -0
- package/dist/server/api/authApi.d.ts +101 -0
- package/dist/server/api/authApi.d.ts.map +1 -0
- package/dist/server/api/authApi.js +1472 -0
- package/dist/server/api/authApi.js.map +1 -0
- package/dist/server/api/authProperty.d.ts +18 -0
- package/dist/server/api/authProperty.d.ts.map +1 -0
- package/dist/server/api/authProperty.js +41 -0
- package/dist/server/api/authProperty.js.map +1 -0
- package/dist/server/api/configApi.d.ts +15 -0
- package/dist/server/api/configApi.d.ts.map +1 -0
- package/dist/server/api/configApi.js +42 -0
- package/dist/server/api/configApi.js.map +1 -0
- package/dist/server/api/databaseApi.d.ts +14 -0
- package/dist/server/api/databaseApi.d.ts.map +1 -0
- package/dist/server/api/databaseApi.js +111 -0
- package/dist/server/api/databaseApi.js.map +1 -0
- package/dist/server/api/directoryApi.d.ts +9 -0
- package/dist/server/api/directoryApi.d.ts.map +1 -0
- package/dist/server/api/directoryApi.js +103 -0
- package/dist/server/api/directoryApi.js.map +1 -0
- package/dist/server/api/generateApi.d.ts +24 -0
- package/dist/server/api/generateApi.d.ts.map +1 -0
- package/dist/server/api/generateApi.js +457 -0
- package/dist/server/api/generateApi.js.map +1 -0
- package/dist/server/api/healthApi.d.ts +9 -0
- package/dist/server/api/healthApi.d.ts.map +1 -0
- package/dist/server/api/healthApi.js +15 -0
- package/dist/server/api/healthApi.js.map +1 -0
- package/dist/server/api/indexApi.d.ts +21 -0
- package/dist/server/api/indexApi.d.ts.map +1 -0
- package/dist/server/api/indexApi.js +61 -0
- package/dist/server/api/indexApi.js.map +1 -0
- package/dist/server/api/logsApi.d.ts +12 -0
- package/dist/server/api/logsApi.d.ts.map +1 -0
- package/dist/server/api/logsApi.js +37 -0
- package/dist/server/api/logsApi.js.map +1 -0
- package/dist/server/api/mcpApi.d.ts +20 -0
- package/dist/server/api/mcpApi.d.ts.map +1 -0
- package/dist/server/api/mcpApi.js +120 -0
- package/dist/server/api/mcpApi.js.map +1 -0
- package/dist/server/api/nameApi.d.ts +21 -0
- package/dist/server/api/nameApi.d.ts.map +1 -0
- package/dist/server/api/nameApi.js +42 -0
- package/dist/server/api/nameApi.js.map +1 -0
- package/dist/server/api/parseApi.d.ts +9 -0
- package/dist/server/api/parseApi.d.ts.map +1 -0
- package/dist/server/api/parseApi.js +3245 -0
- package/dist/server/api/parseApi.js.map +1 -0
- package/dist/server/api/serverApi.d.ts +44 -0
- package/dist/server/api/serverApi.d.ts.map +1 -0
- package/dist/server/api/serverApi.js +417 -0
- package/dist/server/api/serverApi.js.map +1 -0
- package/dist/{dynamic-mcp-executor.d.ts → server/dynamic-mcp-executor.d.ts} +4 -5
- package/dist/server/dynamic-mcp-executor.d.ts.map +1 -0
- package/dist/server/dynamic-mcp-executor.js +62 -0
- package/dist/server/dynamic-mcp-executor.js.map +1 -0
- package/dist/server/port-utils.d.ts +14 -0
- package/dist/server/port-utils.d.ts.map +1 -0
- package/dist/server/port-utils.js +31 -0
- package/dist/server/port-utils.js.map +1 -0
- package/dist/server/server-utils.d.ts +13 -0
- package/dist/server/server-utils.d.ts.map +1 -0
- package/dist/server/server-utils.js +72 -0
- package/dist/server/server-utils.js.map +1 -0
- package/dist/{web → server}/server.d.ts +1 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +535 -0
- package/dist/server/server.js.map +1 -0
- package/dist/server/tool-executer.d.ts +101 -0
- package/dist/server/tool-executer.d.ts.map +1 -0
- package/dist/server/tool-executer.js +6198 -0
- package/dist/server/tool-executer.js.map +1 -0
- package/dist/types/index.d.ts +1197 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1028 -0
- package/dist/types/index.js.map +1 -1
- package/dist/upload/upload-utils.d.ts +4 -0
- package/dist/upload/upload-utils.d.ts.map +1 -0
- package/dist/upload/upload-utils.js +29 -0
- package/dist/upload/upload-utils.js.map +1 -0
- package/dist/utils/deployment-util.d.ts +14 -0
- package/dist/utils/deployment-util.d.ts.map +1 -0
- package/dist/utils/deployment-util.js +46 -0
- package/dist/utils/deployment-util.js.map +1 -0
- package/dist/utils/logger.d.ts +15 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +56 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +18 -6
- package/quickmcp-direct-stdio.js +176 -187
- package/src/web/public/app.js +15370 -1471
- package/src/web/public/authorization.html +868 -0
- package/src/web/public/database-tables.html +283 -547
- package/src/web/public/how-to-use.html +446 -462
- package/src/web/public/how-to-use.js +4 -4
- package/src/web/public/images/app/activepieces.png +0 -0
- package/src/web/public/images/app/airtable.png +0 -0
- package/src/web/public/images/app/androidstudio.png +0 -0
- package/src/web/public/images/app/antigravity.png +0 -0
- package/src/web/public/images/app/applenotes.png +0 -0
- package/src/web/public/images/app/applereminders.png +0 -0
- package/src/web/public/images/app/asana.png +0 -0
- package/src/web/public/images/app/azureai.png +0 -0
- package/src/web/public/images/app/bash.png +0 -0
- package/src/web/public/images/app/bearnotes.png +0 -0
- package/src/web/public/images/app/bitbucket.png +0 -0
- package/src/web/public/images/app/claude.png +0 -0
- package/src/web/public/images/app/cli.png +0 -0
- package/src/web/public/images/app/clickup.png +0 -0
- package/src/web/public/images/app/cohere.png +0 -0
- package/src/web/public/images/app/confluence.png +0 -0
- package/src/web/public/images/app/confluence2.png +0 -0
- package/src/web/public/images/app/curl.png +0 -0
- package/src/web/public/images/app/curl_mini.png +0 -0
- package/src/web/public/images/app/cursor.png +0 -0
- package/src/web/public/images/app/db2.png +0 -0
- package/src/web/public/images/app/deepseek.png +0 -0
- package/src/web/public/images/app/discord.png +0 -0
- package/src/web/public/images/app/docker.png +0 -0
- package/src/web/public/images/app/dockerhub.png +0 -0
- package/src/web/public/images/app/dropbox.png +0 -0
- package/src/web/public/images/app/elasticsearch.png +0 -0
- package/src/web/public/images/app/facebook.png +0 -0
- package/src/web/public/images/app/falai.png +0 -0
- package/src/web/public/images/app/fireworks.png +0 -0
- package/src/web/public/images/app/gdrive.png +0 -0
- package/src/web/public/images/app/gemini.png +0 -0
- package/src/web/public/images/app/github.png +0 -0
- package/src/web/public/images/app/githubcopilot.png +0 -0
- package/src/web/public/images/app/gitlab.png +0 -0
- package/src/web/public/images/app/gmail.png +0 -0
- package/src/web/public/images/app/googlecalender.png +0 -0
- package/src/web/public/images/app/googledocs.png +0 -0
- package/src/web/public/images/app/googlesheets.png +0 -0
- package/src/web/public/images/app/gradle.png +0 -0
- package/src/web/public/images/app/grafana.png +0 -0
- package/src/web/public/images/app/graphql.png +0 -0
- package/src/web/public/images/app/grok.png +0 -0
- package/src/web/public/images/app/groq.png +0 -0
- package/src/web/public/images/app/hazelcast.png +0 -0
- package/src/web/public/images/app/huggingface.png +0 -0
- package/src/web/public/images/app/imessage.png +0 -0
- package/src/web/public/images/app/instagram.png +0 -0
- package/src/web/public/images/app/intellij.png +0 -0
- package/src/web/public/images/app/jenkins.png +0 -0
- package/src/web/public/images/app/jira.png +0 -0
- package/src/web/public/images/app/kafka.png +0 -0
- package/src/web/public/images/app/kubernetes.png +0 -0
- package/src/web/public/images/app/linear.png +0 -0
- package/src/web/public/images/app/linkedin.png +0 -0
- package/src/web/public/images/app/llama.png +0 -0
- package/src/web/public/images/app/make.png +0 -0
- package/src/web/public/images/app/maven.png +0 -0
- package/src/web/public/images/app/mcp.png +0 -0
- package/src/web/public/images/app/microsoftteams.png +0 -0
- package/src/web/public/images/app/mistral.png +0 -0
- package/src/web/public/images/app/monday.png +0 -0
- package/src/web/public/images/app/mongodb.png +0 -0
- package/src/web/public/images/app/mssql.png +0 -0
- package/src/web/public/images/app/mysql.png +0 -0
- package/src/web/public/images/app/n8n.png +0 -0
- package/src/web/public/images/app/notion.png +0 -0
- package/src/web/public/images/app/npm.png +0 -0
- package/src/web/public/images/app/nuget.png +0 -0
- package/src/web/public/images/app/obsidian.png +0 -0
- package/src/web/public/images/app/openai.png +0 -0
- package/src/web/public/images/app/openrouter.png +0 -0
- package/src/web/public/images/app/opensearch.png +0 -0
- package/src/web/public/images/app/openshift.png +0 -0
- package/src/web/public/images/app/oracle.png +0 -0
- package/src/web/public/images/app/perplexity.png +0 -0
- package/src/web/public/images/app/pipedream.png +0 -0
- package/src/web/public/images/app/postgresql.png +0 -0
- package/src/web/public/images/app/powershell.png +0 -0
- package/src/web/public/images/app/prometheus.png +0 -0
- package/src/web/public/images/app/reddit.png +0 -0
- package/src/web/public/images/app/redis.png +0 -0
- package/src/web/public/images/app/rss.png +0 -0
- package/src/web/public/images/app/signal.png +0 -0
- package/src/web/public/images/app/slack.png +0 -0
- package/src/web/public/images/app/soap.png +0 -0
- package/src/web/public/images/app/sqlite.png +0 -0
- package/src/web/public/images/app/supabase.png +0 -0
- package/src/web/public/images/app/telegram.png +0 -0
- package/src/web/public/images/app/things3.png +0 -0
- package/src/web/public/images/app/threads.png +0 -0
- package/src/web/public/images/app/tiktok.png +0 -0
- package/src/web/public/images/app/together.png +0 -0
- package/src/web/public/images/app/trello.png +0 -0
- package/src/web/public/images/app/vscode.png +0 -0
- package/src/web/public/images/app/webhook.png +0 -0
- package/src/web/public/images/app/webpage.png +0 -0
- package/src/web/public/images/app/whatsappbusiness.png +0 -0
- package/src/web/public/images/app/windsorf.png +0 -0
- package/src/web/public/images/app/x.png +0 -0
- package/src/web/public/images/app/youtube.png +0 -0
- package/src/web/public/images/app/zapier.png +0 -0
- package/src/web/public/images/app/zededitor.png +0 -0
- package/src/web/public/images/app/zoom.png +0 -0
- package/src/web/public/images/avatar-anon.svg +4 -0
- package/src/web/public/images/favicon.png +0 -0
- package/src/web/public/images/install/chatgpt-web/step0.png +0 -0
- package/src/web/public/images/install/chatgpt-web/step1.png +0 -0
- package/src/web/public/images/install/chatgpt-web/step2.png +0 -0
- package/src/web/public/images/install/chatgpt-web/step3.png +0 -0
- package/src/web/public/images/install/chatgpt-web/step4.png +0 -0
- package/src/web/public/images/install/chatgpt-web/step5.png +0 -0
- package/src/web/public/images/readme/1-generate-servers.png +0 -0
- package/src/web/public/images/readme/2-database-connection.png +0 -0
- package/src/web/public/images/readme/2-file-upload.png +0 -0
- package/src/web/public/images/readme/3-data-preview.png +0 -0
- package/src/web/public/images/readme/4-data-preview2.png +0 -0
- package/src/web/public/images/readme/5-server-configuration.png +0 -0
- package/src/web/public/images/readme/6-server-generated-modal.png +0 -0
- package/src/web/public/images/readme/7-generated-servers.png +0 -0
- package/src/web/public/images/readme/8-generated-servers-view-details.png +0 -0
- package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.23.51.png +0 -0
- package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.24.59.png +0 -0
- package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.05.png +0 -0
- package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.14.png +0 -0
- package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.21.png +0 -0
- package/src/web/public/images/readme/Screenshot 2025-10-09 at 20.25.36.png +0 -0
- package/src/web/public/index.html +4685 -488
- package/src/web/public/landing.html +1638 -0
- package/src/web/public/logger.js +31 -0
- package/src/web/public/login.html +372 -0
- package/src/web/public/manage-servers.html +121 -188
- package/src/web/public/pricing.html +537 -0
- package/src/web/public/quick-ask.html +133 -0
- package/src/web/public/quickmcp-styles.css +708 -0
- package/src/web/public/roles.html +177 -0
- package/src/web/public/shared.js +736 -3
- package/src/web/public/sidebar.js +414 -0
- package/src/web/public/test-servers.html +605 -221
- package/src/web/public/users.html +191 -0
- package/dist/client/MCPClientUnified.d.ts +0 -31
- package/dist/client/MCPClientUnified.d.ts.map +0 -1
- package/dist/client/MCPClientUnified.js +0 -275
- package/dist/client/MCPClientUnified.js.map +0 -1
- package/dist/client/MCPTestRunnerUnified.d.ts +0 -48
- package/dist/client/MCPTestRunnerUnified.d.ts.map +0 -1
- package/dist/client/MCPTestRunnerUnified.js +0 -183
- package/dist/client/MCPTestRunnerUnified.js.map +0 -1
- package/dist/database/json-manager.d.ts +0 -55
- package/dist/database/json-manager.d.ts.map +0 -1
- package/dist/database/json-manager.js +0 -128
- package/dist/database/json-manager.js.map +0 -1
- package/dist/dynamic-mcp-executor.d.ts.map +0 -1
- package/dist/dynamic-mcp-executor.js +0 -274
- package/dist/dynamic-mcp-executor.js.map +0 -1
- package/dist/generators/MCPServerGenerator-new.d.ts +0 -37
- package/dist/generators/MCPServerGenerator-new.d.ts.map +0 -1
- package/dist/generators/MCPServerGenerator-new.js +0 -287
- package/dist/generators/MCPServerGenerator-new.js.map +0 -1
- package/dist/generators/database/sqlite-manager.d.ts +0 -52
- package/dist/generators/database/sqlite-manager.js +0 -143
- package/dist/generators/generators/MCPServerGenerator.d.ts +0 -37
- package/dist/generators/generators/MCPServerGenerator.js +0 -396
- package/dist/integrated-mcp-server.d.ts +0 -25
- package/dist/integrated-mcp-server.d.ts.map +0 -1
- package/dist/integrated-mcp-server.js +0 -541
- package/dist/integrated-mcp-server.js.map +0 -1
- package/dist/mcp-inspector-server.d.ts +0 -3
- package/dist/mcp-inspector-server.d.ts.map +0 -1
- package/dist/mcp-inspector-server.js +0 -119
- package/dist/mcp-inspector-server.js.map +0 -1
- package/dist/mcp-sdk-server.d.ts +0 -3
- package/dist/mcp-sdk-server.d.ts.map +0 -1
- package/dist/mcp-sdk-server.js +0 -90
- package/dist/mcp-sdk-server.js.map +0 -1
- package/dist/mcp-server.d.ts +0 -3
- package/dist/mcp-server.d.ts.map +0 -1
- package/dist/mcp-server.js +0 -300
- package/dist/mcp-server.js.map +0 -1
- package/dist/parsers/parsers/ExcelParser.js +0 -118
- package/dist/quickmcp-unified-bridge.d.ts +0 -13
- package/dist/quickmcp-unified-bridge.d.ts.map +0 -1
- package/dist/quickmcp-unified-bridge.js +0 -176
- package/dist/quickmcp-unified-bridge.js.map +0 -1
- package/dist/sqlite-manager.js +0 -145
- package/dist/test-app.d.ts +0 -2
- package/dist/test-app.d.ts.map +0 -1
- package/dist/test-app.js +0 -119
- package/dist/test-app.js.map +0 -1
- package/dist/transport/base-transport.d.ts +0 -21
- package/dist/transport/base-transport.d.ts.map +0 -1
- package/dist/transport/base-transport.js +0 -16
- package/dist/transport/base-transport.js.map +0 -1
- package/dist/transport/index.d.ts +0 -10
- package/dist/transport/index.d.ts.map +0 -1
- package/dist/transport/index.js +0 -12
- package/dist/transport/index.js.map +0 -1
- package/dist/transport/sse-transport.d.ts +0 -13
- package/dist/transport/sse-transport.d.ts.map +0 -1
- package/dist/transport/sse-transport.js +0 -106
- package/dist/transport/sse-transport.js.map +0 -1
- package/dist/transport/stdio-transport.d.ts +0 -8
- package/dist/transport/stdio-transport.d.ts.map +0 -1
- package/dist/transport/stdio-transport.js +0 -53
- package/dist/transport/stdio-transport.js.map +0 -1
- package/dist/transport/streamable-http-transport.d.ts +0 -15
- package/dist/transport/streamable-http-transport.d.ts.map +0 -1
- package/dist/transport/streamable-http-transport.js +0 -151
- package/dist/transport/streamable-http-transport.js.map +0 -1
- package/dist/web/client/MCPClient.js +0 -348
- package/dist/web/client/MCPTestRunner.js +0 -317
- package/dist/web/database/json-manager.js +0 -124
- package/dist/web/database/sqlite-manager.js +0 -146
- package/dist/web/dynamic-mcp-executor.js +0 -443
- package/dist/web/generators/MCPServerGenerator-new.js +0 -284
- package/dist/web/generators/MCPServerGenerator.js +0 -566
- package/dist/web/integrated-mcp-server-new.js +0 -394
- package/dist/web/parsers/CsvParser.js +0 -144
- package/dist/web/parsers/DatabaseParser.js +0 -637
- package/dist/web/parsers/ExcelParser.js +0 -180
- package/dist/web/parsers/index.js +0 -152
- package/dist/web/server.d.ts.map +0 -1
- package/dist/web/server.js +0 -790
- package/dist/web/server.js.map +0 -1
- package/dist/web/types/index.js +0 -2
- package/dist/web/web/server.js +0 -860
- package/src/web/public/modern-styles.css +0 -946
- package/src/web/public/shared-styles.css +0 -2091
- /package/src/web/public/images/{1-claude-quickmcp-stdio.png → readme/1-claude-quickmcp-stdio.png} +0 -0
- /package/src/web/public/images/{2-claude-tools.png → readme/2-claude-tools.png} +0 -0
- /package/src/web/public/images/{3-claude-developer-settings.png → readme/3-claude-developer-settings.png} +0 -0
- /package/src/web/public/images/{4-claude-config.png → readme/4-claude-config.png} +0 -0
- /package/src/web/public/images/{5-claude-config-edit.png → readme/5-claude-config-edit.png} +0 -0
|
@@ -1,566 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
24
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
-
function step(op) {
|
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
-
switch (op[0]) {
|
|
32
|
-
case 0: case 1: t = op; break;
|
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
-
default:
|
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
-
if (t[2]) _.ops.pop();
|
|
42
|
-
_.trys.pop(); continue;
|
|
43
|
-
}
|
|
44
|
-
op = body.call(thisArg, _);
|
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
exports.MCPServerGenerator = void 0;
|
|
51
|
-
var sqlite_manager_js_1 = require("../database/sqlite-manager.js");
|
|
52
|
-
var MCPServerGenerator = /** @class */ (function () {
|
|
53
|
-
function MCPServerGenerator() {
|
|
54
|
-
this.sqliteManager = new sqlite_manager_js_1.SQLiteManager();
|
|
55
|
-
}
|
|
56
|
-
MCPServerGenerator.prototype.generateServer = function (serverId, serverName, parsedData, dbConfig, selectedTables) {
|
|
57
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
58
|
-
var serverConfig, tools, resources;
|
|
59
|
-
return __generator(this, function (_a) {
|
|
60
|
-
try {
|
|
61
|
-
console.log("\uD83D\uDE80 Generating virtual MCP server: ".concat(serverId));
|
|
62
|
-
// Create server config
|
|
63
|
-
console.log("\uD83D\uDCDD Creating server config with serverId: \"".concat(serverId, "\", serverName: \"").concat(serverName, "\""));
|
|
64
|
-
serverConfig = {
|
|
65
|
-
id: serverId,
|
|
66
|
-
name: serverName,
|
|
67
|
-
dbConfig: dbConfig,
|
|
68
|
-
createdAt: new Date().toISOString()
|
|
69
|
-
};
|
|
70
|
-
console.log('📄 Server config created:', JSON.stringify(serverConfig, null, 2));
|
|
71
|
-
// Save server to SQLite database only
|
|
72
|
-
this.sqliteManager.saveServer(serverConfig);
|
|
73
|
-
console.log("\u2705 Server config saved to SQLite database: ".concat(serverId));
|
|
74
|
-
tools = this.generateToolsForData(serverId, parsedData, dbConfig, selectedTables);
|
|
75
|
-
if (tools.length > 0) {
|
|
76
|
-
this.sqliteManager.saveTools(tools);
|
|
77
|
-
console.log("\u2705 Generated ".concat(tools.length, " tools for server ").concat(serverId));
|
|
78
|
-
}
|
|
79
|
-
resources = this.generateResourcesForData(serverId, parsedData, dbConfig);
|
|
80
|
-
if (resources.length > 0) {
|
|
81
|
-
this.sqliteManager.saveResources(resources);
|
|
82
|
-
console.log("\u2705 Generated ".concat(resources.length, " resources for server ").concat(serverId));
|
|
83
|
-
}
|
|
84
|
-
return [2 /*return*/, {
|
|
85
|
-
success: true,
|
|
86
|
-
message: "Virtual MCP server '".concat(serverId, "' created successfully with ").concat(tools.length, " tools and ").concat(resources.length, " resources")
|
|
87
|
-
}];
|
|
88
|
-
}
|
|
89
|
-
catch (error) {
|
|
90
|
-
console.error("\u274C Error generating server ".concat(serverId, ":"), error);
|
|
91
|
-
return [2 /*return*/, {
|
|
92
|
-
success: false,
|
|
93
|
-
message: "Failed to generate server: ".concat(error instanceof Error ? error.message : 'Unknown error')
|
|
94
|
-
}];
|
|
95
|
-
}
|
|
96
|
-
return [2 /*return*/];
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
};
|
|
100
|
-
MCPServerGenerator.prototype.generateToolsForData = function (serverId, parsedData, dbConfig, selectedTables) {
|
|
101
|
-
var _this = this;
|
|
102
|
-
var tools = [];
|
|
103
|
-
console.log('🔍 generateToolsForData called with selectedTables:', selectedTables);
|
|
104
|
-
var _loop_1 = function (tableName, rows) {
|
|
105
|
-
if (!rows || rows.length === 0)
|
|
106
|
-
return "continue";
|
|
107
|
-
// Find table configuration in selectedTables
|
|
108
|
-
var tableIndex = Object.keys(parsedData).indexOf(tableName);
|
|
109
|
-
var tableConfig = selectedTables === null || selectedTables === void 0 ? void 0 : selectedTables.find(function (config) { return config.index === tableIndex; });
|
|
110
|
-
// Skip table if not selected
|
|
111
|
-
if (selectedTables && selectedTables.length > 0 && !tableConfig) {
|
|
112
|
-
console.log("\uD83D\uDD0D Skipping table ".concat(tableName, " - not selected"));
|
|
113
|
-
return "continue";
|
|
114
|
-
}
|
|
115
|
-
console.log("\uD83D\uDD0D Processing table ".concat(tableName, " with config:"), tableConfig === null || tableConfig === void 0 ? void 0 : tableConfig.tools);
|
|
116
|
-
var columns = this_1.analyzeColumns(rows);
|
|
117
|
-
var cleanTableName = this_1.sanitizeName(tableName);
|
|
118
|
-
// Get tools configuration (default all true if no config)
|
|
119
|
-
var toolsConfig = (tableConfig === null || tableConfig === void 0 ? void 0 : tableConfig.tools) || {
|
|
120
|
-
get: true, create: true, update: true, delete: true, count: true,
|
|
121
|
-
min: true, max: true, sum: true, avg: true
|
|
122
|
-
};
|
|
123
|
-
// GET tool
|
|
124
|
-
if (toolsConfig.get) {
|
|
125
|
-
tools.push({
|
|
126
|
-
server_id: serverId,
|
|
127
|
-
name: "get_".concat(cleanTableName),
|
|
128
|
-
description: "Get records from ".concat(tableName, " table"),
|
|
129
|
-
inputSchema: {
|
|
130
|
-
type: 'object',
|
|
131
|
-
properties: __assign({ limit: {
|
|
132
|
-
type: 'number',
|
|
133
|
-
description: 'Maximum number of records to return',
|
|
134
|
-
default: 100,
|
|
135
|
-
minimum: 1,
|
|
136
|
-
maximum: 1000
|
|
137
|
-
}, offset: {
|
|
138
|
-
type: 'number',
|
|
139
|
-
description: 'Number of records to skip',
|
|
140
|
-
default: 0,
|
|
141
|
-
minimum: 0
|
|
142
|
-
} }, this_1.generateFilterProperties(columns)),
|
|
143
|
-
required: []
|
|
144
|
-
},
|
|
145
|
-
sqlQuery: this_1.generateSelectQuery(tableName, columns, dbConfig.type),
|
|
146
|
-
operation: 'SELECT'
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
// CREATE tool
|
|
150
|
-
if (toolsConfig.create && columns.length > 0) {
|
|
151
|
-
tools.push({
|
|
152
|
-
server_id: serverId,
|
|
153
|
-
name: "create_".concat(cleanTableName),
|
|
154
|
-
description: "Create a new record in ".concat(tableName, " table"),
|
|
155
|
-
inputSchema: {
|
|
156
|
-
type: 'object',
|
|
157
|
-
properties: this_1.generateInputProperties(columns, true),
|
|
158
|
-
required: columns.filter(function (col) { return !col.nullable && col.name.toLowerCase() !== 'id'; }).map(function (col) { return col.name; })
|
|
159
|
-
},
|
|
160
|
-
sqlQuery: this_1.generateInsertQuery(tableName, columns, dbConfig.type),
|
|
161
|
-
operation: 'INSERT'
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
// UPDATE tool
|
|
165
|
-
if (toolsConfig.update && columns.some(function (col) { return col.name.toLowerCase() === 'id'; })) {
|
|
166
|
-
tools.push({
|
|
167
|
-
server_id: serverId,
|
|
168
|
-
name: "update_".concat(cleanTableName),
|
|
169
|
-
description: "Update a record in ".concat(tableName, " table"),
|
|
170
|
-
inputSchema: {
|
|
171
|
-
type: 'object',
|
|
172
|
-
properties: __assign({ id: {
|
|
173
|
-
type: ['string', 'number'],
|
|
174
|
-
description: 'ID of the record to update'
|
|
175
|
-
} }, this_1.generateInputProperties(columns, false)),
|
|
176
|
-
required: ['id']
|
|
177
|
-
},
|
|
178
|
-
sqlQuery: this_1.generateUpdateQuery(tableName, columns, dbConfig.type),
|
|
179
|
-
operation: 'UPDATE'
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
// DELETE tool
|
|
183
|
-
if (toolsConfig.delete && columns.some(function (col) { return col.name.toLowerCase() === 'id'; })) {
|
|
184
|
-
tools.push({
|
|
185
|
-
server_id: serverId,
|
|
186
|
-
name: "delete_".concat(cleanTableName),
|
|
187
|
-
description: "Delete a record from ".concat(tableName, " table"),
|
|
188
|
-
inputSchema: {
|
|
189
|
-
type: 'object',
|
|
190
|
-
properties: {
|
|
191
|
-
id: {
|
|
192
|
-
type: ['string', 'number'],
|
|
193
|
-
description: 'ID of the record to delete'
|
|
194
|
-
}
|
|
195
|
-
},
|
|
196
|
-
required: ['id']
|
|
197
|
-
},
|
|
198
|
-
sqlQuery: this_1.generateDeleteQuery(tableName, dbConfig.type),
|
|
199
|
-
operation: 'DELETE'
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
// COUNT tool
|
|
203
|
-
if (toolsConfig.count) {
|
|
204
|
-
tools.push({
|
|
205
|
-
server_id: serverId,
|
|
206
|
-
name: "count_".concat(cleanTableName),
|
|
207
|
-
description: "Get total count of records in ".concat(tableName, " table"),
|
|
208
|
-
inputSchema: {
|
|
209
|
-
type: 'object',
|
|
210
|
-
properties: this_1.generateFilterProperties(columns),
|
|
211
|
-
required: []
|
|
212
|
-
},
|
|
213
|
-
sqlQuery: this_1.generateCountQuery(tableName, columns, dbConfig.type),
|
|
214
|
-
operation: 'SELECT'
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
// Get numeric columns for aggregate functions
|
|
218
|
-
//console.log(`🔍 Table ${tableName} columns:`, columns.map(col => ({ name: col.name, type: col.type })));
|
|
219
|
-
var numericColumns = columns.filter(function (col) {
|
|
220
|
-
var type = col.type.toLowerCase();
|
|
221
|
-
return type.includes('int') || type.includes('float') || type.includes('decimal') ||
|
|
222
|
-
type.includes('numeric') || type.includes('real') || type.includes('double') ||
|
|
223
|
-
type === 'number';
|
|
224
|
-
});
|
|
225
|
-
//console.log(`🔍 Numeric columns found in ${tableName}:`, numericColumns.map(col => ({ name: col.name, type: col.type })));
|
|
226
|
-
if (numericColumns.length > 0) {
|
|
227
|
-
// MIN tools for each numeric column
|
|
228
|
-
if (toolsConfig.min) {
|
|
229
|
-
numericColumns.forEach(function (col) {
|
|
230
|
-
var toolName = "min_".concat(cleanTableName, "_").concat(_this.sanitizeName(col.name));
|
|
231
|
-
console.log("\uD83D\uDD0D Creating MIN tool: ".concat(toolName, " for column ").concat(col.name));
|
|
232
|
-
tools.push({
|
|
233
|
-
server_id: serverId,
|
|
234
|
-
name: toolName,
|
|
235
|
-
description: "Get minimum value of ".concat(col.name, " in ").concat(tableName, " table"),
|
|
236
|
-
inputSchema: {
|
|
237
|
-
type: 'object',
|
|
238
|
-
properties: _this.generateFilterProperties(columns),
|
|
239
|
-
required: []
|
|
240
|
-
},
|
|
241
|
-
sqlQuery: _this.generateMinQuery(tableName, col.name, columns, dbConfig.type),
|
|
242
|
-
operation: 'SELECT'
|
|
243
|
-
});
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
|
-
// MAX tools for each numeric column
|
|
247
|
-
if (toolsConfig.max) {
|
|
248
|
-
numericColumns.forEach(function (col) {
|
|
249
|
-
var toolName = "max_".concat(cleanTableName, "_").concat(_this.sanitizeName(col.name));
|
|
250
|
-
tools.push({
|
|
251
|
-
server_id: serverId,
|
|
252
|
-
name: toolName,
|
|
253
|
-
description: "Get maximum value of ".concat(col.name, " in ").concat(tableName, " table"),
|
|
254
|
-
inputSchema: {
|
|
255
|
-
type: 'object',
|
|
256
|
-
properties: _this.generateFilterProperties(columns),
|
|
257
|
-
required: []
|
|
258
|
-
},
|
|
259
|
-
sqlQuery: _this.generateMaxQuery(tableName, col.name, columns, dbConfig.type),
|
|
260
|
-
operation: 'SELECT'
|
|
261
|
-
});
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
// SUM tools for each numeric column
|
|
265
|
-
if (toolsConfig.sum) {
|
|
266
|
-
numericColumns.forEach(function (col) {
|
|
267
|
-
var toolName = "sum_".concat(cleanTableName, "_").concat(_this.sanitizeName(col.name));
|
|
268
|
-
tools.push({
|
|
269
|
-
server_id: serverId,
|
|
270
|
-
name: toolName,
|
|
271
|
-
description: "Get sum of all values of ".concat(col.name, " in ").concat(tableName, " table"),
|
|
272
|
-
inputSchema: {
|
|
273
|
-
type: 'object',
|
|
274
|
-
properties: _this.generateFilterProperties(columns),
|
|
275
|
-
required: []
|
|
276
|
-
},
|
|
277
|
-
sqlQuery: _this.generateSumQuery(tableName, col.name, columns, dbConfig.type),
|
|
278
|
-
operation: 'SELECT'
|
|
279
|
-
});
|
|
280
|
-
});
|
|
281
|
-
}
|
|
282
|
-
// AVG tools for each numeric column
|
|
283
|
-
if (toolsConfig.avg) {
|
|
284
|
-
numericColumns.forEach(function (col) {
|
|
285
|
-
var toolName = "avg_".concat(cleanTableName, "_").concat(_this.sanitizeName(col.name));
|
|
286
|
-
tools.push({
|
|
287
|
-
server_id: serverId,
|
|
288
|
-
name: toolName,
|
|
289
|
-
description: "Get average value of ".concat(col.name, " in ").concat(tableName, " table"),
|
|
290
|
-
inputSchema: {
|
|
291
|
-
type: 'object',
|
|
292
|
-
properties: _this.generateFilterProperties(columns),
|
|
293
|
-
required: []
|
|
294
|
-
},
|
|
295
|
-
sqlQuery: _this.generateAvgQuery(tableName, col.name, columns, dbConfig.type),
|
|
296
|
-
operation: 'SELECT'
|
|
297
|
-
});
|
|
298
|
-
});
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
};
|
|
302
|
-
var this_1 = this;
|
|
303
|
-
for (var _i = 0, _a = Object.entries(parsedData); _i < _a.length; _i++) {
|
|
304
|
-
var _b = _a[_i], tableName = _b[0], rows = _b[1];
|
|
305
|
-
_loop_1(tableName, rows);
|
|
306
|
-
}
|
|
307
|
-
//console.log(`🔍 Total tools created: ${tools.length}`);
|
|
308
|
-
//console.log(`🔍 Tool names:`, tools.map(tool => tool.name));
|
|
309
|
-
return tools;
|
|
310
|
-
};
|
|
311
|
-
MCPServerGenerator.prototype.generateResourcesForData = function (serverId, parsedData, dbConfig) {
|
|
312
|
-
var resources = [];
|
|
313
|
-
for (var _i = 0, _a = Object.entries(parsedData); _i < _a.length; _i++) {
|
|
314
|
-
var _b = _a[_i], tableName = _b[0], rows = _b[1];
|
|
315
|
-
if (!rows || rows.length === 0)
|
|
316
|
-
continue;
|
|
317
|
-
var cleanTableName = this.sanitizeName(tableName);
|
|
318
|
-
resources.push({
|
|
319
|
-
server_id: serverId,
|
|
320
|
-
name: "".concat(cleanTableName, "_list"),
|
|
321
|
-
description: "List all records from ".concat(tableName, " table"),
|
|
322
|
-
uri_template: "".concat(cleanTableName, "://list"),
|
|
323
|
-
sqlQuery: this.generateSelectQuery(tableName, this.analyzeColumns(rows), dbConfig.type, false)
|
|
324
|
-
});
|
|
325
|
-
}
|
|
326
|
-
return resources;
|
|
327
|
-
};
|
|
328
|
-
MCPServerGenerator.prototype.analyzeColumns = function (rows) {
|
|
329
|
-
if (!rows || rows.length === 0)
|
|
330
|
-
return [];
|
|
331
|
-
var firstRow = rows[0];
|
|
332
|
-
var columns = [];
|
|
333
|
-
var _loop_2 = function (key, value) {
|
|
334
|
-
var type = 'string';
|
|
335
|
-
if (typeof value === 'number') {
|
|
336
|
-
type = Number.isInteger(value) ? 'integer' : 'number';
|
|
337
|
-
}
|
|
338
|
-
else if (typeof value === 'boolean') {
|
|
339
|
-
type = 'boolean';
|
|
340
|
-
}
|
|
341
|
-
else if (value instanceof Date) {
|
|
342
|
-
type = 'string'; // Dates are handled as strings in JSON
|
|
343
|
-
}
|
|
344
|
-
else if (value === null || value === undefined) {
|
|
345
|
-
// Check other rows to determine type
|
|
346
|
-
for (var i = 1; i < Math.min(rows.length, 10); i++) {
|
|
347
|
-
var otherValue = rows[i][key];
|
|
348
|
-
if (otherValue !== null && otherValue !== undefined) {
|
|
349
|
-
if (typeof otherValue === 'number') {
|
|
350
|
-
type = Number.isInteger(otherValue) ? 'integer' : 'number';
|
|
351
|
-
}
|
|
352
|
-
else if (typeof otherValue === 'boolean') {
|
|
353
|
-
type = 'boolean';
|
|
354
|
-
}
|
|
355
|
-
break;
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
columns.push({
|
|
360
|
-
name: key,
|
|
361
|
-
type: type,
|
|
362
|
-
nullable: rows.some(function (row) { return row[key] === null || row[key] === undefined; })
|
|
363
|
-
});
|
|
364
|
-
};
|
|
365
|
-
for (var _i = 0, _a = Object.entries(firstRow); _i < _a.length; _i++) {
|
|
366
|
-
var _b = _a[_i], key = _b[0], value = _b[1];
|
|
367
|
-
_loop_2(key, value);
|
|
368
|
-
}
|
|
369
|
-
return columns;
|
|
370
|
-
};
|
|
371
|
-
MCPServerGenerator.prototype.generateFilterProperties = function (columns) {
|
|
372
|
-
var properties = {};
|
|
373
|
-
for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {
|
|
374
|
-
var column = columns_1[_i];
|
|
375
|
-
var baseType = column.type === 'integer' ? 'number' : column.type;
|
|
376
|
-
properties["filter_".concat(column.name)] = {
|
|
377
|
-
type: baseType,
|
|
378
|
-
description: "Filter by ".concat(column.name)
|
|
379
|
-
};
|
|
380
|
-
}
|
|
381
|
-
return properties;
|
|
382
|
-
};
|
|
383
|
-
MCPServerGenerator.prototype.generateInputProperties = function (columns, isCreate) {
|
|
384
|
-
var properties = {};
|
|
385
|
-
for (var _i = 0, columns_2 = columns; _i < columns_2.length; _i++) {
|
|
386
|
-
var column = columns_2[_i];
|
|
387
|
-
// Skip ID field for create operations
|
|
388
|
-
if (isCreate && column.name.toLowerCase() === 'id')
|
|
389
|
-
continue;
|
|
390
|
-
var baseType = column.type === 'integer' ? 'number' : column.type;
|
|
391
|
-
properties[column.name] = {
|
|
392
|
-
type: baseType,
|
|
393
|
-
description: "".concat(column.name, " field")
|
|
394
|
-
};
|
|
395
|
-
// For nullable fields, make them not required instead of using union types
|
|
396
|
-
if (column.nullable && !isCreate) {
|
|
397
|
-
// Optional field - will not be added to required array
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
return properties;
|
|
401
|
-
};
|
|
402
|
-
MCPServerGenerator.prototype.generateSelectQuery = function (tableName, columns, dbType, withParams) {
|
|
403
|
-
if (withParams === void 0) { withParams = true; }
|
|
404
|
-
var columnList = columns.map(function (col) { return "[".concat(col.name, "]"); }).join(', ');
|
|
405
|
-
var query = "SELECT ".concat(columnList, " FROM [").concat(tableName, "]");
|
|
406
|
-
if (withParams) {
|
|
407
|
-
// Filter out problematic columns for WHERE clause (e.g., ntext columns in SQL Server)
|
|
408
|
-
var filterableColumns = columns.filter(function (col) {
|
|
409
|
-
// For SQL Server, exclude large text columns that can't be compared
|
|
410
|
-
if (dbType === 'mssql') {
|
|
411
|
-
// Skip columns that might be ntext, text, or image types
|
|
412
|
-
// These are typically identified by their string type and large content
|
|
413
|
-
return true; // We'll handle this at parameter level instead
|
|
414
|
-
}
|
|
415
|
-
return true;
|
|
416
|
-
});
|
|
417
|
-
var whereConditions = filterableColumns.map(function (col) {
|
|
418
|
-
return "(@filter_".concat(col.name, " IS NULL OR [").concat(col.name, "] = @filter_").concat(col.name, ")");
|
|
419
|
-
}).join(' AND ');
|
|
420
|
-
query += " WHERE ".concat(whereConditions);
|
|
421
|
-
// Add ORDER BY clause for consistent pagination
|
|
422
|
-
// Find the first suitable column for ordering (prefer id, created_at, or first column)
|
|
423
|
-
var orderColumn = columns.find(function (col) {
|
|
424
|
-
return col.name.toLowerCase() === 'id' ||
|
|
425
|
-
col.name.toLowerCase().includes('created') ||
|
|
426
|
-
col.name.toLowerCase().includes('timestamp');
|
|
427
|
-
}) || columns[0];
|
|
428
|
-
if (orderColumn) {
|
|
429
|
-
query += " ORDER BY [".concat(orderColumn.name, "]");
|
|
430
|
-
}
|
|
431
|
-
if (dbType === 'mssql') {
|
|
432
|
-
// Use OFFSET/FETCH for proper pagination with ORDER BY
|
|
433
|
-
query += ' OFFSET @offset ROWS FETCH NEXT @limit ROWS ONLY';
|
|
434
|
-
}
|
|
435
|
-
else {
|
|
436
|
-
query += ' LIMIT @limit OFFSET @offset';
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
return query;
|
|
440
|
-
};
|
|
441
|
-
MCPServerGenerator.prototype.generateInsertQuery = function (tableName, columns, dbType) {
|
|
442
|
-
var insertColumns = columns.filter(function (col) { return col.name.toLowerCase() !== 'id'; });
|
|
443
|
-
var columnNames = insertColumns.map(function (col) { return "[".concat(col.name, "]"); }).join(', ');
|
|
444
|
-
var paramNames = insertColumns.map(function (col) { return "@".concat(col.name); }).join(', ');
|
|
445
|
-
return "INSERT INTO [".concat(tableName, "] (").concat(columnNames, ") VALUES (").concat(paramNames, ")");
|
|
446
|
-
};
|
|
447
|
-
MCPServerGenerator.prototype.generateUpdateQuery = function (tableName, columns, dbType) {
|
|
448
|
-
var updateColumns = columns.filter(function (col) { return col.name.toLowerCase() !== 'id'; });
|
|
449
|
-
var setClause = updateColumns.map(function (col) { return "[".concat(col.name, "] = @").concat(col.name); }).join(', ');
|
|
450
|
-
return "UPDATE [".concat(tableName, "] SET ").concat(setClause, " WHERE [Id] = @id");
|
|
451
|
-
};
|
|
452
|
-
MCPServerGenerator.prototype.generateDeleteQuery = function (tableName, dbType) {
|
|
453
|
-
return "DELETE FROM [".concat(tableName, "] WHERE [Id] = @id");
|
|
454
|
-
};
|
|
455
|
-
MCPServerGenerator.prototype.generateCountQuery = function (tableName, columns, dbType) {
|
|
456
|
-
var query = "SELECT COUNT(*) as total_count FROM [".concat(tableName, "]");
|
|
457
|
-
// Filter out problematic columns for WHERE clause (e.g., ntext columns in SQL Server)
|
|
458
|
-
var filterableColumns = columns.filter(function (col) {
|
|
459
|
-
// For SQL Server, exclude large text columns that can't be compared
|
|
460
|
-
if (dbType === 'mssql') {
|
|
461
|
-
// Skip columns that might be ntext, text, or image types
|
|
462
|
-
// These are typically identified by their string type and large content
|
|
463
|
-
return true; // We'll handle this at parameter level instead
|
|
464
|
-
}
|
|
465
|
-
return true;
|
|
466
|
-
});
|
|
467
|
-
var whereConditions = filterableColumns.map(function (col) {
|
|
468
|
-
return "(@filter_".concat(col.name, " IS NULL OR [").concat(col.name, "] = @filter_").concat(col.name, ")");
|
|
469
|
-
}).join(' AND ');
|
|
470
|
-
query += " WHERE ".concat(whereConditions);
|
|
471
|
-
return query;
|
|
472
|
-
};
|
|
473
|
-
MCPServerGenerator.prototype.generateMinQuery = function (tableName, columnName, columns, dbType) {
|
|
474
|
-
var query = "SELECT MIN([".concat(columnName, "]) as min_value FROM [").concat(tableName, "]");
|
|
475
|
-
var filterableColumns = columns.filter(function (col) {
|
|
476
|
-
if (dbType === 'mssql') {
|
|
477
|
-
return true; // We'll handle this at parameter level instead
|
|
478
|
-
}
|
|
479
|
-
return true;
|
|
480
|
-
});
|
|
481
|
-
var whereConditions = filterableColumns.map(function (col) {
|
|
482
|
-
return "(@filter_".concat(col.name, " IS NULL OR [").concat(col.name, "] = @filter_").concat(col.name, ")");
|
|
483
|
-
}).join(' AND ');
|
|
484
|
-
query += " WHERE ".concat(whereConditions);
|
|
485
|
-
return query;
|
|
486
|
-
};
|
|
487
|
-
MCPServerGenerator.prototype.generateMaxQuery = function (tableName, columnName, columns, dbType) {
|
|
488
|
-
var query = "SELECT MAX([".concat(columnName, "]) as max_value FROM [").concat(tableName, "]");
|
|
489
|
-
var filterableColumns = columns.filter(function (col) {
|
|
490
|
-
if (dbType === 'mssql') {
|
|
491
|
-
return true; // We'll handle this at parameter level instead
|
|
492
|
-
}
|
|
493
|
-
return true;
|
|
494
|
-
});
|
|
495
|
-
var whereConditions = filterableColumns.map(function (col) {
|
|
496
|
-
return "(@filter_".concat(col.name, " IS NULL OR [").concat(col.name, "] = @filter_").concat(col.name, ")");
|
|
497
|
-
}).join(' AND ');
|
|
498
|
-
query += " WHERE ".concat(whereConditions);
|
|
499
|
-
return query;
|
|
500
|
-
};
|
|
501
|
-
MCPServerGenerator.prototype.generateSumQuery = function (tableName, columnName, columns, dbType) {
|
|
502
|
-
var query = "SELECT SUM([".concat(columnName, "]) as sum_value FROM [").concat(tableName, "]");
|
|
503
|
-
var filterableColumns = columns.filter(function (col) {
|
|
504
|
-
if (dbType === 'mssql') {
|
|
505
|
-
return true; // We'll handle this at parameter level instead
|
|
506
|
-
}
|
|
507
|
-
return true;
|
|
508
|
-
});
|
|
509
|
-
var whereConditions = filterableColumns.map(function (col) {
|
|
510
|
-
return "(@filter_".concat(col.name, " IS NULL OR [").concat(col.name, "] = @filter_").concat(col.name, ")");
|
|
511
|
-
}).join(' AND ');
|
|
512
|
-
query += " WHERE ".concat(whereConditions);
|
|
513
|
-
return query;
|
|
514
|
-
};
|
|
515
|
-
MCPServerGenerator.prototype.generateAvgQuery = function (tableName, columnName, columns, dbType) {
|
|
516
|
-
var query = "SELECT AVG(CAST([".concat(columnName, "] AS FLOAT)) as avg_value FROM [").concat(tableName, "]");
|
|
517
|
-
var filterableColumns = columns.filter(function (col) {
|
|
518
|
-
if (dbType === 'mssql') {
|
|
519
|
-
return true; // We'll handle this at parameter level instead
|
|
520
|
-
}
|
|
521
|
-
return true;
|
|
522
|
-
});
|
|
523
|
-
var whereConditions = filterableColumns.map(function (col) {
|
|
524
|
-
return "(@filter_".concat(col.name, " IS NULL OR [").concat(col.name, "] = @filter_").concat(col.name, ")");
|
|
525
|
-
}).join(' AND ');
|
|
526
|
-
query += " WHERE ".concat(whereConditions);
|
|
527
|
-
return query;
|
|
528
|
-
};
|
|
529
|
-
MCPServerGenerator.prototype.sanitizeName = function (name) {
|
|
530
|
-
return name.toLowerCase()
|
|
531
|
-
.replace(/[^a-z0-9]/g, '_')
|
|
532
|
-
.replace(/_{2,}/g, '_')
|
|
533
|
-
.replace(/^_|_$/g, '');
|
|
534
|
-
};
|
|
535
|
-
// Public methods for management
|
|
536
|
-
MCPServerGenerator.prototype.getAllServers = function () {
|
|
537
|
-
return this.sqliteManager.getAllServers();
|
|
538
|
-
};
|
|
539
|
-
MCPServerGenerator.prototype.getServer = function (serverId) {
|
|
540
|
-
return this.sqliteManager.getServer(serverId);
|
|
541
|
-
};
|
|
542
|
-
MCPServerGenerator.prototype.deleteServer = function (serverId) {
|
|
543
|
-
this.sqliteManager.deleteServer(serverId);
|
|
544
|
-
console.log("\uD83D\uDDD1\uFE0F Deleted server from SQLite database: ".concat(serverId));
|
|
545
|
-
};
|
|
546
|
-
MCPServerGenerator.prototype.getAllTools = function () {
|
|
547
|
-
return this.sqliteManager.getAllTools();
|
|
548
|
-
};
|
|
549
|
-
MCPServerGenerator.prototype.getToolsForServer = function (serverId) {
|
|
550
|
-
return this.sqliteManager.getToolsForServer(serverId);
|
|
551
|
-
};
|
|
552
|
-
MCPServerGenerator.prototype.getAllResources = function () {
|
|
553
|
-
return this.sqliteManager.getAllResources();
|
|
554
|
-
};
|
|
555
|
-
MCPServerGenerator.prototype.getResourcesForServer = function (serverId) {
|
|
556
|
-
return this.sqliteManager.getResourcesForServer(serverId);
|
|
557
|
-
};
|
|
558
|
-
MCPServerGenerator.prototype.getStats = function () {
|
|
559
|
-
return this.sqliteManager.getStats();
|
|
560
|
-
};
|
|
561
|
-
MCPServerGenerator.prototype.close = function () {
|
|
562
|
-
this.sqliteManager.close();
|
|
563
|
-
};
|
|
564
|
-
return MCPServerGenerator;
|
|
565
|
-
}());
|
|
566
|
-
exports.MCPServerGenerator = MCPServerGenerator;
|