@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,302 +1,686 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
|
-
<html lang="en" class="h-full
|
|
2
|
+
<html lang="en" class="h-full">
|
|
3
|
+
|
|
3
4
|
<head>
|
|
4
5
|
<meta charset="UTF-8">
|
|
5
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>
|
|
7
|
+
<title>QuickMCP - Modern MCP Server Generator</title>
|
|
8
|
+
|
|
9
|
+
<link rel="icon" type="image/png" href="/images/favicon.png">
|
|
7
10
|
|
|
8
11
|
<!-- Tailwind CSS -->
|
|
9
12
|
<script src="https://cdn.tailwindcss.com"></script>
|
|
10
13
|
|
|
11
|
-
<!-- Font Awesome
|
|
14
|
+
<!-- Font Awesome -->
|
|
12
15
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
|
13
16
|
|
|
14
|
-
<!--
|
|
15
|
-
<link rel="
|
|
16
|
-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
17
|
-
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
|
|
17
|
+
<!-- Custom Archdraw Styles -->
|
|
18
|
+
<link rel="stylesheet" href="quickmcp-styles.css">
|
|
18
19
|
|
|
19
20
|
<style>
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.slide-in { animation: slideIn 0.3s ease-out; }
|
|
34
|
-
.fade-in { animation: fadeIn 0.5s ease-out; }
|
|
35
|
-
|
|
36
|
-
/* Custom scrollbar */
|
|
37
|
-
::-webkit-scrollbar { width: 6px; }
|
|
38
|
-
::-webkit-scrollbar-track { background: #f1f5f9; }
|
|
39
|
-
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
|
|
40
|
-
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }
|
|
41
|
-
|
|
42
|
-
/* Glassmorphism effect */
|
|
43
|
-
.glass {
|
|
44
|
-
backdrop-filter: blur(20px);
|
|
45
|
-
background: rgba(255, 255, 255, 0.8);
|
|
46
|
-
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.glass-dark {
|
|
50
|
-
backdrop-filter: blur(20px);
|
|
51
|
-
background: rgba(15, 23, 42, 0.8);
|
|
52
|
-
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
53
|
-
}
|
|
21
|
+
/* Collapsed sidebar icon layout (archdraw-like) */
|
|
22
|
+
#sidebar.collapsed .nav-item { padding: 0.5rem !important; gap: 0 !important; justify-content: center !important; }
|
|
23
|
+
#sidebar.collapsed .nav-item > .relative { display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; margin-left: auto; margin-right: auto; }
|
|
24
|
+
#sidebar.collapsed .nav-item > .relative > div { width: 2.5rem; height: 2.5rem; display: flex; align-items: center; justify-content: center; background: #fff; border: 1px solid #e2e8f0; border-radius: 0.5rem; }
|
|
25
|
+
#sidebar.collapsed .nav-item .flex-1 { display: none !important; }
|
|
26
|
+
#sidebar.collapsed #sidebarHeaderMain { display: none !important; }
|
|
27
|
+
#sidebar.collapsed #sidebarHeaderRow { justify-content: center !important; }
|
|
28
|
+
#sidebar.collapsed #sidebarCollapseBtn { display: inline-flex !important; }
|
|
29
|
+
#sidebar.collapsed #closeSidebar { display: none !important; }
|
|
30
|
+
#sidebar #sidebarCollapseBtn { width: 2.25rem; height: 2.25rem; align-items: center; justify-content: center; }
|
|
31
|
+
#sidebar #sidebarCollapseBtn i { font-size: 1rem; }
|
|
54
32
|
</style>
|
|
55
|
-
|
|
56
|
-
<!-- Tailwind Config -->
|
|
57
33
|
<script>
|
|
58
34
|
tailwind.config = {
|
|
35
|
+
darkMode: 'class',
|
|
59
36
|
theme: {
|
|
60
37
|
extend: {
|
|
61
38
|
colors: {
|
|
62
|
-
|
|
63
|
-
50: '#
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
39
|
+
slate: {
|
|
40
|
+
50: '#f8fafc',
|
|
41
|
+
100: '#f1f5f9',
|
|
42
|
+
200: '#e2e8f0',
|
|
43
|
+
300: '#cbd5e1',
|
|
44
|
+
400: '#94a3b8',
|
|
45
|
+
500: '#64748b',
|
|
46
|
+
600: '#475569',
|
|
47
|
+
700: '#334155',
|
|
48
|
+
800: '#1e293b',
|
|
49
|
+
900: '#0f172a',
|
|
68
50
|
}
|
|
69
|
-
},
|
|
70
|
-
animation: {
|
|
71
|
-
'bounce-slow': 'bounce 2s infinite',
|
|
72
|
-
'pulse-slow': 'pulse 3s infinite'
|
|
73
51
|
}
|
|
74
52
|
}
|
|
75
53
|
}
|
|
76
54
|
}
|
|
77
55
|
</script>
|
|
78
56
|
</head>
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
57
|
+
|
|
58
|
+
<body class="h-screen flex flex-col bg-gradient-to-br from-slate-50 to-slate-100 overflow-hidden text-slate-900">
|
|
59
|
+
|
|
60
|
+
<!-- Header -->
|
|
61
|
+
<header
|
|
62
|
+
class="backdrop-blur-sm bg-white/80 border-b border-slate-200/60 shadow-sm relative z-50 h-16 flex-shrink-0 flex items-center justify-between px-6 py-3">
|
|
63
|
+
<!-- Brand -->
|
|
64
|
+
<div class="flex items-center gap-6">
|
|
65
|
+
<div class="flex items-center gap-3">
|
|
66
|
+
<div
|
|
67
|
+
class="w-9 h-9 rounded-lg bg-blue-600 text-white flex items-center justify-center shadow-lg shadow-blue-500/25">
|
|
68
|
+
<i class="fas fa-rocket text-lg"></i>
|
|
69
|
+
</div>
|
|
70
|
+
<div>
|
|
71
|
+
<h1 class="text-xl font-bold gradient-text leading-tight">QuickMCP</h1>
|
|
72
|
+
<p class="text-xs text-slate-500 font-medium">Server Generator</p>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
<!-- Divider -->
|
|
76
|
+
<div class="h-8 w-px bg-gradient-to-b from-transparent via-slate-300 to-transparent hidden md:block"></div>
|
|
77
|
+
|
|
78
|
+
<!-- Header Action: New Server (left, common) -->
|
|
79
|
+
<div class="hidden md:flex items-center gap-2 text-sm font-medium text-slate-600">
|
|
80
|
+
<button id="headerNewServerBtn" onclick="window.location.href='/generate'"
|
|
81
|
+
class="md:inline-flex items-center gap-2 bg-white border border-slate-200 hover:border-blue-400 text-slate-700 hover:text-blue-600 px-4 py-2 rounded-lg font-medium transition-colors shadow-sm">
|
|
82
|
+
<i class="fas fa-plus"></i>
|
|
83
|
+
<span>New Server</span>
|
|
84
|
+
</button>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
<!-- Actions -->
|
|
89
|
+
<div class="flex items-center gap-3">
|
|
90
|
+
<div
|
|
91
|
+
class="hidden sm:flex items-center gap-2 bg-green-50 text-green-700 px-3 py-1.5 rounded-lg text-sm font-medium border border-green-200/50">
|
|
92
|
+
<div class="w-2 h-2 bg-green-500 rounded-full animate-pulse"></div>
|
|
93
|
+
<span>System Online</span>
|
|
94
|
+
</div>
|
|
95
|
+
<button
|
|
96
|
+
class="p-2 rounded-lg hover:bg-slate-100 transition-colors relative text-slate-500 hover:text-slate-700">
|
|
97
|
+
<i class="fas fa-bell"></i>
|
|
98
|
+
<span class="absolute top-2 right-2 w-2 h-2 bg-red-500 rounded-full border-2 border-white"></span>
|
|
99
|
+
</button>
|
|
100
|
+
<div
|
|
101
|
+
class="w-8 h-8 rounded-full bg-gradient-to-tr from-blue-500 to-purple-500 text-white flex items-center justify-center text-sm font-bold shadow-md" data-user-avatar>
|
|
102
|
+
G
|
|
103
|
+
</div>
|
|
104
|
+
<button id="openSidebar"
|
|
105
|
+
class="lg:hidden p-2 rounded-lg hover:bg-slate-100 transition-colors text-slate-500">
|
|
106
|
+
<i class="fas fa-bars"></i>
|
|
107
|
+
</button>
|
|
108
|
+
</div>
|
|
109
|
+
</header>
|
|
110
|
+
|
|
111
|
+
<!-- Main Body -->
|
|
112
|
+
<div class="app-main-layout flex flex-1 overflow-x-hidden" id="app">
|
|
113
|
+
|
|
114
|
+
<!-- Left Sidebar (Navigation) -->
|
|
115
|
+
<div id="sidebar"
|
|
116
|
+
class="w-72 bg-white/95 backdrop-blur-sm border-r border-slate-200/60 flex flex-col flex-shrink-0 z-[60] fixed inset-y-0 left-0 transform -translate-x-full lg:translate-x-0 lg:top-0 lg:h-screen transition-transform duration-300 ease-in-out h-full pt-16 lg:pt-0">
|
|
117
|
+
<!-- Sidebar Header -->
|
|
118
|
+
<div class="p-6 border-b border-slate-200/60 bg-gradient-to-r from-slate-50/50 to-white/50">
|
|
119
|
+
<div id="sidebarHeaderRow" class="flex items-center justify-between mb-2">
|
|
120
|
+
<div id="sidebarHeaderMain" class="flex items-center gap-3">
|
|
121
|
+
<div
|
|
122
|
+
class="w-8 h-8 flex items-center justify-center bg-gradient-to-br from-emerald-500 to-emerald-600 rounded-lg shadow-lg shadow-emerald-500/25">
|
|
123
|
+
<i class="fas fa-compass text-white"></i>
|
|
91
124
|
</div>
|
|
92
125
|
<div>
|
|
93
|
-
<
|
|
94
|
-
<p class="text-
|
|
126
|
+
<h2 class="text-slate-900 font-bold tracking-tight text-lg">Navigation</h2>
|
|
127
|
+
<p class="text-slate-500 text-xs leading-none font-medium">Application Pages</p>
|
|
95
128
|
</div>
|
|
96
129
|
</div>
|
|
97
|
-
<
|
|
98
|
-
<
|
|
99
|
-
|
|
130
|
+
<div class="flex items-center gap-2">
|
|
131
|
+
<button id="sidebarCollapseBtn" class="hidden lg:inline-flex text-slate-400 hover:text-slate-600" title="Collapse sidebar">
|
|
132
|
+
<i class="fas fa-angles-left"></i>
|
|
133
|
+
</button>
|
|
134
|
+
<button id="closeSidebar" class="lg:hidden text-slate-400 hover:text-slate-600">
|
|
135
|
+
<i class="fas fa-times"></i>
|
|
136
|
+
</button>
|
|
137
|
+
</div>
|
|
100
138
|
</div>
|
|
139
|
+
</div>
|
|
101
140
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
</a>
|
|
112
|
-
<a href="/test-servers" class="nav-item active flex items-center px-4 py-3 text-sm font-medium rounded-xl bg-gradient-to-r from-blue-50 to-cyan-50 text-blue-700 border border-blue-200">
|
|
113
|
-
<i class="fas fa-vial mr-3 text-blue-500"></i>
|
|
114
|
-
Test Servers
|
|
115
|
-
</a>
|
|
116
|
-
<a href="/how-to-use" class="nav-item flex items-center px-4 py-3 text-sm font-medium text-gray-700 rounded-xl hover:bg-gray-50 transition-all duration-200">
|
|
117
|
-
<i class="fas fa-book mr-3 text-gray-400"></i>
|
|
118
|
-
How to Use
|
|
119
|
-
</a>
|
|
120
|
-
</nav>
|
|
121
|
-
|
|
122
|
-
<!-- Sidebar Footer -->
|
|
123
|
-
<div class="p-4 border-t border-gray-200/50">
|
|
124
|
-
<div class="bg-gradient-to-r from-blue-50 to-cyan-50 p-4 rounded-xl border border-blue-100">
|
|
125
|
-
<div class="flex items-center space-x-3">
|
|
126
|
-
<div class="w-8 h-8 bg-gradient-to-r from-green-400 to-blue-500 rounded-full flex items-center justify-center">
|
|
127
|
-
<i class="fas fa-check text-white text-xs"></i>
|
|
128
|
-
</div>
|
|
129
|
-
<div>
|
|
130
|
-
<p class="text-sm font-medium text-gray-900">All systems online</p>
|
|
131
|
-
<p class="text-xs text-gray-500">Ready to test servers</p>
|
|
132
|
-
</div>
|
|
141
|
+
<!-- Navigation Links -->
|
|
142
|
+
<div id="sidebarNavList" class="p-4 overflow-y-auto flex-1 scrollbar-modern space-y-3">
|
|
143
|
+
|
|
144
|
+
<a href="/generate"
|
|
145
|
+
class="nav-item card card-hover group relative flex items-center gap-3 p-4 hover:border-blue-300 hover:shadow-blue-500/10 transition-all active">
|
|
146
|
+
<div class="relative">
|
|
147
|
+
<div
|
|
148
|
+
class="p-2.5 rounded-lg shadow-sm bg-slate-100 text-slate-600 group-hover:bg-blue-50 group-hover:text-blue-600 transition-colors">
|
|
149
|
+
<i class="fas fa-magic"></i>
|
|
133
150
|
</div>
|
|
134
151
|
</div>
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
152
|
+
<div class="flex-1 min-w-0">
|
|
153
|
+
<span
|
|
154
|
+
class="text-slate-700 font-semibold text-sm block group-hover:text-blue-700 transition-colors">Generate
|
|
155
|
+
Server</span>
|
|
156
|
+
<span class="text-slate-500 text-xs mt-0.5 block font-medium">Create new MCP servers</span>
|
|
157
|
+
</div>
|
|
158
|
+
</a>
|
|
138
159
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
<header class="bg-white/80 backdrop-blur-xl border-b border-gray-200/50 sticky top-0 z-30">
|
|
146
|
-
<div class="px-4 sm:px-6 lg:px-8">
|
|
147
|
-
<div class="flex justify-between items-center h-16">
|
|
148
|
-
<div class="flex items-center space-x-4">
|
|
149
|
-
<button id="openSidebar" class="lg:hidden p-2 rounded-lg hover:bg-gray-100 transition-colors">
|
|
150
|
-
<i class="fas fa-bars text-gray-600"></i>
|
|
151
|
-
</button>
|
|
152
|
-
<div>
|
|
153
|
-
<h2 class="text-2xl font-bold text-gray-900">Test Servers</h2>
|
|
154
|
-
<p class="text-sm text-gray-500">Run automated tests or create custom test scenarios</p>
|
|
155
|
-
</div>
|
|
160
|
+
<a href="/manage-servers"
|
|
161
|
+
class="nav-item card card-hover group relative flex items-center gap-3 p-4 hover:border-blue-300 hover:shadow-blue-500/10 transition-all">
|
|
162
|
+
<div class="relative">
|
|
163
|
+
<div
|
|
164
|
+
class="p-2.5 rounded-lg shadow-sm bg-slate-100 text-slate-600 group-hover:bg-blue-50 group-hover:text-blue-600 transition-colors">
|
|
165
|
+
<i class="fas fa-server"></i>
|
|
156
166
|
</div>
|
|
167
|
+
</div>
|
|
168
|
+
<div class="flex-1 min-w-0">
|
|
169
|
+
<span
|
|
170
|
+
class="text-slate-700 font-semibold text-sm block group-hover:text-blue-700 transition-colors">Manage
|
|
171
|
+
Servers</span>
|
|
172
|
+
<span class="text-slate-500 text-xs mt-0.5 block font-medium">Edit & Control</span>
|
|
173
|
+
</div>
|
|
174
|
+
</a>
|
|
157
175
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
<
|
|
164
|
-
<i class="fas fa-bell text-gray-600"></i>
|
|
165
|
-
<span class="absolute -top-1 -right-1 w-3 h-3 bg-red-500 rounded-full"></span>
|
|
166
|
-
</button>
|
|
176
|
+
<a href="/test-servers"
|
|
177
|
+
class="nav-item card card-hover group relative flex items-center gap-3 p-4 hover:border-blue-300 hover:shadow-blue-500/10 transition-all">
|
|
178
|
+
<div class="relative">
|
|
179
|
+
<div
|
|
180
|
+
class="p-2.5 rounded-lg shadow-sm bg-slate-100 text-slate-600 group-hover:bg-blue-50 group-hover:text-blue-600 transition-colors">
|
|
181
|
+
<i class="fas fa-vial"></i>
|
|
167
182
|
</div>
|
|
168
183
|
</div>
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
<div class="max-w-7xl mx-auto space-y-8">
|
|
175
|
-
<div class="text-center">
|
|
176
|
-
<h1 class="text-3xl font-bold text-gray-900 mb-4">Test Your Servers</h1>
|
|
177
|
-
<p class="text-gray-600">Run automated tests or create custom test scenarios for your MCP servers</p>
|
|
184
|
+
<div class="flex-1 min-w-0">
|
|
185
|
+
<span
|
|
186
|
+
class="text-slate-700 font-semibold text-sm block group-hover:text-blue-700 transition-colors">Test
|
|
187
|
+
Servers</span>
|
|
188
|
+
<span class="text-slate-500 text-xs mt-0.5 block font-medium">Verify functionality</span>
|
|
178
189
|
</div>
|
|
190
|
+
</a>
|
|
191
|
+
|
|
192
|
+
<a href="/how-to-use"
|
|
193
|
+
class="card card-hover group relative flex items-center gap-3 p-4 hover:border-blue-300 hover:shadow-blue-500/10 transition-all">
|
|
194
|
+
<div class="relative">
|
|
195
|
+
<div
|
|
196
|
+
class="p-2.5 rounded-lg shadow-sm bg-slate-100 text-slate-600 group-hover:bg-blue-50 group-hover:text-blue-600 transition-colors">
|
|
197
|
+
<i class="fas fa-book"></i>
|
|
198
|
+
</div>
|
|
199
|
+
</div>
|
|
200
|
+
<div class="flex-1 min-w-0">
|
|
201
|
+
<span
|
|
202
|
+
class="text-slate-700 font-semibold text-sm block group-hover:text-blue-700 transition-colors">How
|
|
203
|
+
to Use</span>
|
|
204
|
+
<span class="text-slate-500 text-xs mt-0.5 block font-medium">Documentation & Guide</span>
|
|
205
|
+
</div>
|
|
206
|
+
</a>
|
|
207
|
+
|
|
208
|
+
</div>
|
|
209
|
+
</div>
|
|
210
|
+
|
|
211
|
+
<!-- Sidebar Overlay -->
|
|
212
|
+
<div id="sidebarOverlay"
|
|
213
|
+
class="fixed inset-0 bg-slate-900/50 backdrop-blur-sm z-30 lg:hidden opacity-0 invisible transition-all duration-300">
|
|
214
|
+
</div>
|
|
215
|
+
|
|
216
|
+
<!-- Main Content Area -->
|
|
217
|
+
<div class="flex-1 relative bg-slate-50/50 overflow-hidden flex flex-col min-w-0">
|
|
218
|
+
<!-- Inner Shadow -->
|
|
219
|
+
<div class="absolute inset-0 shadow-inner shadow-slate-200/30 pointer-events-none z-10"></div>
|
|
220
|
+
|
|
221
|
+
<!-- Scrollable Content -->
|
|
222
|
+
<div class="flex-1 overflow-y-auto scrollbar-modern px-8 pt-0 pb-8 relative z-0">
|
|
223
|
+
<div class="max-w-6xl mx-auto space-y-8 pb-20">
|
|
179
224
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
225
|
+
<!-- Generate Server Tab -->
|
|
226
|
+
<div id="generate-tab" class="tab-content animate-fade-in">
|
|
227
|
+
|
|
228
|
+
<!-- Hero Section -->
|
|
229
|
+
<div class="text-center mb-10">
|
|
230
|
+
<div
|
|
231
|
+
class="inline-flex items-center space-x-2 bg-blue-50 text-blue-700 px-4 py-2 rounded-full text-xs font-bold uppercase tracking-wider mb-4 border border-blue-100">
|
|
232
|
+
<i class="fas fa-sparkles"></i>
|
|
233
|
+
<span>AI-Powered</span>
|
|
234
|
+
</div>
|
|
235
|
+
<h2 class="text-3xl font-bold text-slate-900 mb-3">Generate Your MCP Server</h2>
|
|
236
|
+
<p class="text-slate-600 max-w-2xl mx-auto">Transform your data into powerful MCP servers in
|
|
237
|
+
minutes. Follow our step-by-step wizard.</p>
|
|
238
|
+
</div>
|
|
239
|
+
|
|
240
|
+
<!-- Wizard Progress -->
|
|
241
|
+
<div class="card p-6 mb-8">
|
|
242
|
+
<div class="flex items-center justify-between">
|
|
243
|
+
<div class="flex-1">
|
|
244
|
+
<div class="flex items-center">
|
|
245
|
+
<div id="step-1-indicator"
|
|
246
|
+
class="flex items-center justify-center w-10 h-10 bg-blue-600 text-white rounded-lg shadow-lg shadow-blue-500/30 font-bold transition-all">
|
|
247
|
+
1</div>
|
|
248
|
+
<div class="flex-1 h-1 bg-slate-100 mx-4 rounded-full overflow-hidden">
|
|
249
|
+
<div id="progress-1-2"
|
|
250
|
+
class="h-full bg-blue-500 w-0 transition-all duration-500"></div>
|
|
251
|
+
</div>
|
|
187
252
|
</div>
|
|
188
|
-
<div>
|
|
189
|
-
<
|
|
190
|
-
<p class="text-
|
|
253
|
+
<div class="mt-3">
|
|
254
|
+
<p class="text-sm font-bold text-slate-900">Data Source</p>
|
|
255
|
+
<p class="text-xs text-slate-500">Connect data</p>
|
|
256
|
+
</div>
|
|
257
|
+
</div>
|
|
258
|
+
<div class="flex-1">
|
|
259
|
+
<div class="flex items-center">
|
|
260
|
+
<div id="step-2-indicator"
|
|
261
|
+
class="flex items-center justify-center w-10 h-10 bg-slate-100 text-slate-400 rounded-lg font-bold transition-all">
|
|
262
|
+
2</div>
|
|
263
|
+
<div class="flex-1 h-1 bg-slate-100 mx-4 rounded-full overflow-hidden">
|
|
264
|
+
<div id="progress-2-3"
|
|
265
|
+
class="h-full bg-blue-500 w-0 transition-all duration-500"></div>
|
|
266
|
+
</div>
|
|
267
|
+
</div>
|
|
268
|
+
<div class="mt-3">
|
|
269
|
+
<p class="text-sm font-bold text-slate-400">Preview</p>
|
|
270
|
+
<p class="text-xs text-slate-400">Validate data</p>
|
|
191
271
|
</div>
|
|
192
272
|
</div>
|
|
193
|
-
</div>
|
|
194
|
-
|
|
195
|
-
<div class="p-6 space-y-6">
|
|
196
273
|
<div>
|
|
197
|
-
<
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
274
|
+
<div class="flex items-center">
|
|
275
|
+
<div id="step-3-indicator"
|
|
276
|
+
class="flex items-center justify-center w-10 h-10 bg-slate-100 text-slate-400 rounded-lg font-bold transition-all">
|
|
277
|
+
3</div>
|
|
278
|
+
</div>
|
|
279
|
+
<div class="mt-3">
|
|
280
|
+
<p class="text-sm font-bold text-slate-400">Configure</p>
|
|
281
|
+
<p class="text-xs text-slate-400">Finalize</p>
|
|
282
|
+
</div>
|
|
201
283
|
</div>
|
|
284
|
+
</div>
|
|
285
|
+
</div>
|
|
202
286
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
<
|
|
210
|
-
|
|
211
|
-
<span id="fullTestText">Run Auto Tests</span>
|
|
212
|
-
</button>
|
|
287
|
+
<!-- Wizard Content -->
|
|
288
|
+
<div class="card overflow-hidden">
|
|
289
|
+
|
|
290
|
+
<!-- Step 1 -->
|
|
291
|
+
<div id="wizard-step-1" class="wizard-step">
|
|
292
|
+
<div class="bg-slate-50/50 p-6 border-b border-slate-200/60">
|
|
293
|
+
<h3 class="text-lg font-bold text-slate-900">Choose Data Source</h3>
|
|
294
|
+
<p class="text-sm text-slate-500">Select how you want to import your data.</p>
|
|
213
295
|
</div>
|
|
296
|
+
<div class="p-8 space-y-8">
|
|
297
|
+
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
298
|
+
<label class="cursor-pointer group">
|
|
299
|
+
<input type="radio" name="dataSourceType" value="csv" class="peer sr-only">
|
|
300
|
+
<div
|
|
301
|
+
class="p-6 rounded-xl border-2 border-slate-200 hover:border-blue-400 peer-checked:border-blue-600 peer-checked:bg-blue-50/30 transition-all h-full">
|
|
302
|
+
<div
|
|
303
|
+
class="w-12 h-12 rounded-lg bg-green-100 text-green-600 flex items-center justify-center mb-4 group-hover:scale-110 transition-transform">
|
|
304
|
+
<i class="fas fa-file-csv text-2xl"></i>
|
|
305
|
+
</div>
|
|
306
|
+
<h4 class="font-bold text-slate-900 mb-1">CSV File</h4>
|
|
307
|
+
<p class="text-xs text-slate-500">Upload a comma-separated values file.
|
|
308
|
+
</p>
|
|
309
|
+
</div>
|
|
310
|
+
</label>
|
|
311
|
+
<label class="cursor-pointer group">
|
|
312
|
+
<input type="radio" name="dataSourceType" value="excel"
|
|
313
|
+
class="peer sr-only">
|
|
314
|
+
<div
|
|
315
|
+
class="p-6 rounded-xl border-2 border-slate-200 hover:border-blue-400 peer-checked:border-blue-600 peer-checked:bg-blue-50/30 transition-all h-full">
|
|
316
|
+
<div
|
|
317
|
+
class="w-12 h-12 rounded-lg bg-emerald-100 text-emerald-600 flex items-center justify-center mb-4 group-hover:scale-110 transition-transform">
|
|
318
|
+
<i class="fas fa-file-excel text-2xl"></i>
|
|
319
|
+
</div>
|
|
320
|
+
<h4 class="font-bold text-slate-900 mb-1">Excel File</h4>
|
|
321
|
+
<p class="text-xs text-slate-500">Upload an Excel spreadsheet (.xlsx).
|
|
322
|
+
</p>
|
|
323
|
+
</div>
|
|
324
|
+
</label>
|
|
325
|
+
<label class="cursor-pointer group">
|
|
326
|
+
<input type="radio" name="dataSourceType" value="database"
|
|
327
|
+
class="peer sr-only">
|
|
328
|
+
<div
|
|
329
|
+
class="p-6 rounded-xl border-2 border-slate-200 hover:border-blue-400 peer-checked:border-blue-600 peer-checked:bg-blue-50/30 transition-all h-full">
|
|
330
|
+
<div
|
|
331
|
+
class="w-12 h-12 rounded-lg bg-blue-100 text-blue-600 flex items-center justify-center mb-4 group-hover:scale-110 transition-transform">
|
|
332
|
+
<i class="fas fa-database text-2xl"></i>
|
|
333
|
+
</div>
|
|
334
|
+
<h4 class="font-bold text-slate-900 mb-1">Database</h4>
|
|
335
|
+
<p class="text-xs text-slate-500">Connect to SQL, MySQL, or Postgres.
|
|
336
|
+
</p>
|
|
337
|
+
</div>
|
|
338
|
+
</label>
|
|
339
|
+
</div>
|
|
214
340
|
|
|
215
|
-
|
|
216
|
-
<div
|
|
217
|
-
<div
|
|
218
|
-
|
|
341
|
+
<!-- File Upload -->
|
|
342
|
+
<div id="file-upload-section" class="hidden animate-fade-in">
|
|
343
|
+
<div id="fileUpload"
|
|
344
|
+
class="border-2 border-dashed border-slate-300 rounded-xl p-10 text-center hover:border-blue-500 hover:bg-blue-50/30 transition-all cursor-pointer">
|
|
345
|
+
<div
|
|
346
|
+
class="w-16 h-16 mx-auto bg-slate-100 rounded-full flex items-center justify-center mb-4 text-slate-400">
|
|
347
|
+
<i class="fas fa-cloud-upload-alt text-3xl"></i>
|
|
348
|
+
</div>
|
|
349
|
+
<h4 class="text-lg font-bold text-slate-900">Click or Drag file here</h4>
|
|
350
|
+
<p class="text-sm text-slate-500 mt-1">Supports .csv and .xlsx files up to
|
|
351
|
+
10MB</p>
|
|
352
|
+
<input type="file" id="fileInput" accept=".csv,.xlsx,.xls" class="hidden">
|
|
353
|
+
</div>
|
|
219
354
|
</div>
|
|
220
|
-
</div>
|
|
221
355
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
356
|
+
<!-- Database Config -->
|
|
357
|
+
<div id="database-section" class="hidden animate-fade-in space-y-6">
|
|
358
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
|
359
|
+
<div>
|
|
360
|
+
<label
|
|
361
|
+
class="block text-xs font-bold text-slate-700 uppercase mb-2">Database
|
|
362
|
+
Type</label>
|
|
363
|
+
<select id="dbType" class="input">
|
|
364
|
+
<option value="mssql">SQL Server</option>
|
|
365
|
+
<option value="mysql">MySQL</option>
|
|
366
|
+
<option value="postgresql">PostgreSQL</option>
|
|
367
|
+
<option value="sqlite">SQLite</option>
|
|
368
|
+
</select>
|
|
369
|
+
</div>
|
|
370
|
+
<div>
|
|
371
|
+
<label
|
|
372
|
+
class="block text-xs font-bold text-slate-700 uppercase mb-2">Host</label>
|
|
373
|
+
<input type="text" id="dbHost" placeholder="localhost" class="input">
|
|
374
|
+
</div>
|
|
375
|
+
<div>
|
|
376
|
+
<label
|
|
377
|
+
class="block text-xs font-bold text-slate-700 uppercase mb-2">Port</label>
|
|
378
|
+
<input type="number" id="dbPort" placeholder="3306" class="input">
|
|
379
|
+
</div>
|
|
380
|
+
<div>
|
|
381
|
+
<label
|
|
382
|
+
class="block text-xs font-bold text-slate-700 uppercase mb-2">Database
|
|
383
|
+
Name</label>
|
|
384
|
+
<input type="text" id="dbName" placeholder="my_database" class="input">
|
|
385
|
+
</div>
|
|
386
|
+
<div>
|
|
387
|
+
<label
|
|
388
|
+
class="block text-xs font-bold text-slate-700 uppercase mb-2">Username</label>
|
|
389
|
+
<input type="text" id="dbUser" placeholder="root" class="input">
|
|
390
|
+
</div>
|
|
391
|
+
<div>
|
|
392
|
+
<label
|
|
393
|
+
class="block text-xs font-bold text-slate-700 uppercase mb-2">Password</label>
|
|
394
|
+
<input type="password" id="dbPassword" placeholder="••••••••"
|
|
395
|
+
class="input">
|
|
396
|
+
</div>
|
|
397
|
+
</div>
|
|
398
|
+
</div>
|
|
225
399
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
<
|
|
400
|
+
<!-- Loading/Error -->
|
|
401
|
+
<div id="parse-loading" class="hidden text-center py-8">
|
|
402
|
+
<div
|
|
403
|
+
class="w-8 h-8 border-4 border-blue-600 border-t-transparent rounded-full animate-spin mx-auto mb-3">
|
|
404
|
+
</div>
|
|
405
|
+
<p class="text-sm font-medium text-blue-600">Analyzing data structure...</p>
|
|
232
406
|
</div>
|
|
233
|
-
<div
|
|
234
|
-
|
|
235
|
-
|
|
407
|
+
<div id="parse-error"
|
|
408
|
+
class="hidden p-4 bg-red-50 text-red-700 rounded-lg text-sm border border-red-200">
|
|
409
|
+
</div>
|
|
410
|
+
|
|
411
|
+
<!-- Navigation -->
|
|
412
|
+
<div class="flex justify-end pt-4 border-t border-slate-100">
|
|
413
|
+
<button id="next-to-step-2"
|
|
414
|
+
class="bg-blue-600 hover:bg-blue-700 text-white px-6 py-2.5 rounded-lg font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed shadow-lg shadow-blue-500/30"
|
|
415
|
+
disabled>
|
|
416
|
+
Next Step <i class="fas fa-arrow-right ml-2"></i>
|
|
417
|
+
</button>
|
|
236
418
|
</div>
|
|
237
419
|
</div>
|
|
238
420
|
</div>
|
|
239
421
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
<
|
|
246
|
-
<
|
|
247
|
-
|
|
248
|
-
<option value="prompts/get">Prompt Get</option>
|
|
249
|
-
</select>
|
|
422
|
+
<!-- Step 2 -->
|
|
423
|
+
<div id="wizard-step-2" class="wizard-step hidden">
|
|
424
|
+
<div
|
|
425
|
+
class="bg-slate-50/50 p-6 border-b border-slate-200/60 flex justify-between items-center">
|
|
426
|
+
<div>
|
|
427
|
+
<h3 class="text-lg font-bold text-slate-900">Data Preview</h3>
|
|
428
|
+
<p class="text-sm text-slate-500">Review the detected schema and data.</p>
|
|
429
|
+
</div>
|
|
250
430
|
</div>
|
|
431
|
+
<div class="p-8 space-y-6">
|
|
432
|
+
<div id="data-preview" class="space-y-4"></div>
|
|
251
433
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
434
|
+
<div class="flex justify-between pt-4 border-t border-slate-100">
|
|
435
|
+
<button id="back-to-step-1"
|
|
436
|
+
class="text-slate-600 hover:text-slate-900 font-medium px-4 py-2">
|
|
437
|
+
<i class="fas fa-arrow-left mr-2"></i> Back
|
|
438
|
+
</button>
|
|
439
|
+
<button id="next-to-step-3"
|
|
440
|
+
class="bg-blue-600 hover:bg-blue-700 text-white px-6 py-2.5 rounded-lg font-medium transition-colors shadow-lg shadow-blue-500/30">
|
|
441
|
+
Configure Server <i class="fas fa-arrow-right ml-2"></i>
|
|
442
|
+
</button>
|
|
256
443
|
</div>
|
|
257
444
|
</div>
|
|
445
|
+
</div>
|
|
258
446
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
447
|
+
<!-- Step 3 -->
|
|
448
|
+
<div id="wizard-step-3" class="wizard-step hidden">
|
|
449
|
+
<div class="bg-slate-50/50 p-6 border-b border-slate-200/60">
|
|
450
|
+
<h3 class="text-lg font-bold text-slate-900">Final Configuration</h3>
|
|
451
|
+
<p class="text-sm text-slate-500">Set your server details and generate.</p>
|
|
452
|
+
</div>
|
|
453
|
+
<div class="p-8 space-y-6">
|
|
454
|
+
<div>
|
|
455
|
+
<label class="block text-xs font-bold text-slate-700 uppercase mb-2">Server
|
|
456
|
+
Name</label>
|
|
457
|
+
<input type="text" id="serverName" placeholder="my-mcp-server" class="input">
|
|
458
|
+
<div id="name-validation" class="mt-1 text-xs"></div>
|
|
459
|
+
</div>
|
|
460
|
+
<div>
|
|
461
|
+
<label
|
|
462
|
+
class="block text-xs font-bold text-slate-700 uppercase mb-2">Description</label>
|
|
463
|
+
<textarea id="serverDescription" rows="3"
|
|
464
|
+
placeholder="What does this server do?"
|
|
465
|
+
class="input resize-none"></textarea>
|
|
466
|
+
</div>
|
|
467
|
+
<div>
|
|
468
|
+
<label
|
|
469
|
+
class="block text-xs font-bold text-slate-700 uppercase mb-2">Version</label>
|
|
470
|
+
<input type="text" id="serverVersion" value="1.0.0" class="input">
|
|
471
|
+
</div>
|
|
472
|
+
|
|
473
|
+
<div id="generate-loading" class="hidden text-center py-8">
|
|
474
|
+
<div
|
|
475
|
+
class="w-8 h-8 border-4 border-purple-600 border-t-transparent rounded-full animate-spin mx-auto mb-3">
|
|
476
|
+
</div>
|
|
477
|
+
<p class="text-sm font-medium text-purple-600">Generating server code...</p>
|
|
478
|
+
</div>
|
|
479
|
+
<div id="generate-success"
|
|
480
|
+
class="hidden p-4 bg-green-50 text-green-700 rounded-lg text-sm border border-green-200">
|
|
481
|
+
</div>
|
|
482
|
+
<div id="generate-error"
|
|
483
|
+
class="hidden p-4 bg-red-50 text-red-700 rounded-lg text-sm border border-red-200">
|
|
484
|
+
</div>
|
|
485
|
+
|
|
486
|
+
<div class="flex justify-between pt-4 border-t border-slate-100">
|
|
487
|
+
<button id="back-to-step-2"
|
|
488
|
+
class="text-slate-600 hover:text-slate-900 font-medium px-4 py-2">
|
|
489
|
+
<i class="fas fa-arrow-left mr-2"></i> Back
|
|
490
|
+
</button>
|
|
491
|
+
<button id="generateBtn"
|
|
492
|
+
class="bg-gradient-to-r from-blue-600 to-purple-600 hover:from-blue-700 hover:to-purple-700 text-white px-8 py-3 rounded-lg font-bold transition-all shadow-lg shadow-purple-500/30 transform hover:-translate-y-0.5 disabled:opacity-50 disabled:cursor-not-allowed">
|
|
493
|
+
<i class="fas fa-rocket mr-2"></i> Generate Server
|
|
494
|
+
</button>
|
|
495
|
+
</div>
|
|
262
496
|
</div>
|
|
497
|
+
</div>
|
|
263
498
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
499
|
+
</div>
|
|
500
|
+
</div>
|
|
501
|
+
|
|
502
|
+
<!-- Manage Servers Tab -->
|
|
503
|
+
<div id="manage-tab" class="tab-content hidden animate-fade-in">
|
|
504
|
+
<div class="flex justify-between items-center mb-8">
|
|
505
|
+
<div>
|
|
506
|
+
<h2 class="text-3xl font-bold text-slate-900">Manage Servers</h2>
|
|
507
|
+
<p class="text-slate-600 mt-1">View and control your generated servers.</p>
|
|
268
508
|
</div>
|
|
509
|
+
<button onclick="window.location.href='/generate'"
|
|
510
|
+
class="bg-white border border-slate-200 hover:border-blue-400 text-slate-700 hover:text-blue-600 px-4 py-2 rounded-lg font-medium transition-colors shadow-sm">
|
|
511
|
+
<i class="fas fa-plus mr-2"></i> New Server
|
|
512
|
+
</button>
|
|
513
|
+
</div>
|
|
514
|
+
<div id="server-list" class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
515
|
+
<!-- Server cards populated by JS -->
|
|
269
516
|
</div>
|
|
270
517
|
</div>
|
|
271
518
|
|
|
272
|
-
<!-- Test
|
|
273
|
-
<div
|
|
274
|
-
<div class="
|
|
275
|
-
<
|
|
276
|
-
|
|
277
|
-
|
|
519
|
+
<!-- Test Servers Tab -->
|
|
520
|
+
<div id="test-tab" class="tab-content hidden animate-fade-in">
|
|
521
|
+
<div class="text-center mb-10">
|
|
522
|
+
<h2 class="text-3xl font-bold text-slate-900">Test Suite</h2>
|
|
523
|
+
<p class="text-slate-600">Verify your server functionality.</p>
|
|
524
|
+
</div>
|
|
525
|
+
|
|
526
|
+
<div class="card mb-6 p-0 overflow-hidden">
|
|
527
|
+
<div class="border-b border-slate-200 bg-slate-50/80">
|
|
528
|
+
<div class="px-5 pt-4">
|
|
529
|
+
<nav class="flex items-end gap-1" aria-label="Test Suite tabs">
|
|
530
|
+
<button data-test-mode-tab="automated" class="px-4 py-2.5 rounded-t-lg text-sm font-semibold border border-slate-200 border-b-white bg-white text-slate-900 -mb-px">
|
|
531
|
+
Automated Testing
|
|
532
|
+
</button>
|
|
533
|
+
<button data-test-mode-tab="custom" class="px-4 py-2.5 rounded-t-lg text-sm font-semibold border border-transparent text-slate-600 hover:text-blue-700 hover:bg-white/70">
|
|
534
|
+
Custom Request
|
|
535
|
+
</button>
|
|
536
|
+
<button data-test-mode-tab="e2e" data-test-mode-locked="true" disabled aria-disabled="true" title="E2E Testing yakında aktif olacak" class="px-4 py-2.5 rounded-t-lg text-sm font-semibold border border-transparent text-slate-400 cursor-not-allowed">
|
|
537
|
+
<i class="fas fa-lock mr-2 text-xs"></i>E2E Testing
|
|
538
|
+
</button>
|
|
539
|
+
</nav>
|
|
278
540
|
</div>
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
541
|
+
</div>
|
|
542
|
+
|
|
543
|
+
<div class="p-6" data-test-mode-panel="automated">
|
|
544
|
+
<div class="grid grid-cols-1 md:grid-cols-[minmax(0,1fr)_220px_auto] gap-3 items-end">
|
|
545
|
+
<div>
|
|
546
|
+
<label class="block text-xs font-bold text-slate-700 uppercase mb-2">Select Server</label>
|
|
547
|
+
<select id="autoTestServerSelect" class="input"></select>
|
|
548
|
+
</div>
|
|
549
|
+
<div>
|
|
550
|
+
<label class="block text-xs font-bold text-slate-700 uppercase mb-2">Type</label>
|
|
551
|
+
<select id="autoTestType" class="input">
|
|
552
|
+
<option value="quick">Quick Test</option>
|
|
553
|
+
<option value="full">Full Test</option>
|
|
554
|
+
</select>
|
|
555
|
+
</div>
|
|
556
|
+
<div class="flex">
|
|
557
|
+
<button id="runAutoTestsBtn"
|
|
558
|
+
class="w-full md:w-auto bg-blue-600 hover:bg-blue-700 text-white px-4 py-2.5 rounded-lg font-medium transition-colors shadow-md whitespace-nowrap">
|
|
559
|
+
<i id="autoTestRunIcon" class="fas fa-play mr-2"></i><span id="autoTestRunText">Run</span>
|
|
560
|
+
</button>
|
|
561
|
+
</div>
|
|
562
|
+
</div>
|
|
563
|
+
</div>
|
|
564
|
+
|
|
565
|
+
<div class="p-6 hidden" data-test-mode-panel="custom">
|
|
566
|
+
<div class="space-y-4">
|
|
567
|
+
<div>
|
|
568
|
+
<label class="block text-xs font-bold text-slate-700 uppercase mb-2">Select Server</label>
|
|
569
|
+
<select id="customTestServerSelect" class="input"></select>
|
|
570
|
+
</div>
|
|
571
|
+
<div class="grid grid-cols-2 gap-4">
|
|
572
|
+
<div>
|
|
573
|
+
<label class="block text-xs font-bold text-slate-700 uppercase mb-2">Type</label>
|
|
574
|
+
<select id="testType" class="input">
|
|
575
|
+
<option value="tools/call">Tool Call</option>
|
|
576
|
+
<option value="resources/list">Resource List</option>
|
|
577
|
+
<option value="prompts/list">Prompt List</option>
|
|
578
|
+
</select>
|
|
579
|
+
</div>
|
|
580
|
+
<div>
|
|
581
|
+
<label class="block text-xs font-bold text-slate-700 uppercase mb-2">Name</label>
|
|
582
|
+
<div id="testNameContainer">
|
|
583
|
+
<input type="text" id="testName" placeholder="tool_name" class="input">
|
|
584
|
+
</div>
|
|
585
|
+
</div>
|
|
586
|
+
</div>
|
|
587
|
+
<div>
|
|
588
|
+
<label class="block text-xs font-bold text-slate-700 uppercase mb-2">Params (JSON)</label>
|
|
589
|
+
<textarea id="testParams" rows="3" class="input font-mono text-xs"
|
|
590
|
+
placeholder="{}"></textarea>
|
|
591
|
+
</div>
|
|
592
|
+
<button id="runCustomTestBtn"
|
|
593
|
+
class="w-full bg-purple-600 hover:bg-purple-700 text-white px-4 py-2.5 rounded-lg font-medium transition-colors shadow-md">
|
|
594
|
+
Send Request
|
|
595
|
+
</button>
|
|
596
|
+
</div>
|
|
597
|
+
</div>
|
|
598
|
+
|
|
599
|
+
<div class="p-6 hidden" data-test-mode-panel="e2e">
|
|
600
|
+
<div class="grid grid-cols-1 md:grid-cols-[minmax(0,1fr)_220px_auto] gap-3 items-end">
|
|
601
|
+
<div>
|
|
602
|
+
<label class="block text-xs font-bold text-slate-700 uppercase mb-2">Select Server</label>
|
|
603
|
+
<select id="transportTestServerSelect" class="input"></select>
|
|
604
|
+
</div>
|
|
605
|
+
<div>
|
|
606
|
+
<label class="block text-xs font-bold text-slate-700 uppercase mb-2">Transport</label>
|
|
607
|
+
<select id="transportType" class="input">
|
|
608
|
+
<option value="all">All</option>
|
|
609
|
+
<option value="stdio">STDIO</option>
|
|
610
|
+
<option value="sse">SSE</option>
|
|
611
|
+
<option value="streamable-http">Streamable HTTP</option>
|
|
612
|
+
<option value="websocket">WebSocket</option>
|
|
613
|
+
</select>
|
|
614
|
+
</div>
|
|
615
|
+
<div class="flex">
|
|
616
|
+
<button id="runTransportTestBtn"
|
|
617
|
+
class="w-full md:w-auto bg-emerald-600 hover:bg-emerald-700 text-white px-4 py-2.5 rounded-lg font-medium transition-colors shadow-md whitespace-nowrap">
|
|
618
|
+
<i class="fas fa-network-wired mr-2"></i> Run Transport Test
|
|
619
|
+
</button>
|
|
620
|
+
</div>
|
|
282
621
|
</div>
|
|
283
622
|
</div>
|
|
284
623
|
</div>
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
624
|
+
|
|
625
|
+
<div id="test-loading" class="hidden text-center text-sm text-blue-600 py-2">Running...</div>
|
|
626
|
+
<div id="test-error" class="hidden text-sm text-red-600 bg-red-50 p-3 rounded"></div>
|
|
627
|
+
|
|
628
|
+
<!-- Results -->
|
|
629
|
+
<div class="card mt-8">
|
|
630
|
+
<div
|
|
631
|
+
class="p-4 border-b border-slate-200/60 bg-slate-50/50 flex justify-between items-center">
|
|
632
|
+
<h3 class="font-bold text-slate-900">Results</h3>
|
|
633
|
+
<span class="text-xs text-slate-500 font-mono">JSON Output</span>
|
|
634
|
+
</div>
|
|
635
|
+
<div class="p-0">
|
|
636
|
+
<pre id="test-results"
|
|
637
|
+
class="hidden bg-white dark:bg-slate-900 text-slate-800 dark:text-blue-300 p-6 text-xs font-mono overflow-auto max-h-96 border border-slate-200 dark:border-slate-700 rounded-lg whitespace-pre-wrap"></pre>
|
|
638
|
+
<div id="no-results" class="p-12 text-center text-slate-400">
|
|
639
|
+
<i class="fas fa-terminal text-3xl mb-3 opacity-50"></i>
|
|
640
|
+
<p>No results to display</p>
|
|
641
|
+
</div>
|
|
290
642
|
</div>
|
|
291
643
|
</div>
|
|
292
644
|
</div>
|
|
645
|
+
|
|
646
|
+
</div>
|
|
647
|
+
</div>
|
|
648
|
+
</div>
|
|
649
|
+
</div>
|
|
650
|
+
|
|
651
|
+
<!-- Success Modal -->
|
|
652
|
+
<div id="success-modal"
|
|
653
|
+
class="fixed inset-0 bg-slate-900/60 backdrop-blur-sm z-50 opacity-0 invisible transition-all duration-300 flex items-center justify-center p-4">
|
|
654
|
+
<div
|
|
655
|
+
class="bg-white rounded-2xl shadow-2xl max-w-md w-full transform scale-95 transition-transform duration-300 overflow-hidden">
|
|
656
|
+
<div class="p-8 text-center">
|
|
657
|
+
<div
|
|
658
|
+
class="w-20 h-20 bg-green-100 rounded-full flex items-center justify-center mx-auto mb-6 animate-bounce-slow">
|
|
659
|
+
<i class="fas fa-check text-green-500 text-4xl"></i>
|
|
293
660
|
</div>
|
|
294
|
-
|
|
661
|
+
<h3 class="text-2xl font-bold text-slate-900 mb-2">Server Generated!</h3>
|
|
662
|
+
<p id="success-message" class="text-slate-600 mb-8">Your MCP server is ready to use.</p>
|
|
663
|
+
<div class="flex flex-col gap-3">
|
|
664
|
+
<button
|
|
665
|
+
class="w-full bg-blue-600 hover:bg-blue-700 text-white px-4 py-3 rounded-xl font-bold transition-colors shadow-lg shadow-blue-500/30"
|
|
666
|
+
onclick="goToManageServers()">
|
|
667
|
+
<i class="fas fa-server mr-2"></i> Manage Servers
|
|
668
|
+
</button>
|
|
669
|
+
<button
|
|
670
|
+
class="w-full bg-slate-100 hover:bg-slate-200 text-slate-700 px-4 py-3 rounded-xl font-bold transition-colors"
|
|
671
|
+
onclick="closeSuccessModal()">
|
|
672
|
+
<i class="fas fa-plus mr-2"></i> Create Another
|
|
673
|
+
</button>
|
|
674
|
+
</div>
|
|
675
|
+
</div>
|
|
295
676
|
</div>
|
|
296
677
|
</div>
|
|
297
678
|
|
|
298
679
|
<!-- Scripts -->
|
|
299
|
-
<script src="
|
|
680
|
+
<script src="logger.js"></script>
|
|
681
|
+
<script src="shared.js"></script>
|
|
682
|
+
<script src="sidebar.js"></script>
|
|
300
683
|
<script src="app.js"></script>
|
|
301
684
|
</body>
|
|
302
|
-
|
|
685
|
+
|
|
686
|
+
</html>
|