@softtechai/quickmcp 1.0.16 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- 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 +183 -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
|
@@ -0,0 +1,537 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>QuickMCP Pricing</title>
|
|
7
|
+
<link rel="icon" type="image/png" href="/images/favicon.png">
|
|
8
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Newsreader:ital,wght@0,400;1,400&display=swap" rel="stylesheet">
|
|
11
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
|
12
|
+
<style>
|
|
13
|
+
:root {
|
|
14
|
+
--bg: #f3f7ff;
|
|
15
|
+
--card: #ffffff;
|
|
16
|
+
--line: #dbe6f7;
|
|
17
|
+
--text: #1f2937;
|
|
18
|
+
--muted: #64748b;
|
|
19
|
+
--accent: #2563eb;
|
|
20
|
+
--accent-bg: rgba(37, 99, 235, 0.08);
|
|
21
|
+
--shadow: 0 8px 32px rgba(15, 23, 42, 0.08);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
* {
|
|
25
|
+
box-sizing: border-box;
|
|
26
|
+
margin: 0;
|
|
27
|
+
padding: 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
body {
|
|
31
|
+
font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
|
|
32
|
+
background: var(--bg);
|
|
33
|
+
color: var(--text);
|
|
34
|
+
line-height: 1.5;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.container {
|
|
38
|
+
max-width: 1200px;
|
|
39
|
+
margin: 0 auto;
|
|
40
|
+
padding: 0 24px;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.nav {
|
|
44
|
+
display: flex;
|
|
45
|
+
align-items: center;
|
|
46
|
+
justify-content: space-between;
|
|
47
|
+
padding: 20px 0;
|
|
48
|
+
border-bottom: 1px solid var(--line);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.logo {
|
|
52
|
+
display: inline-flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
gap: 12px;
|
|
55
|
+
text-decoration: none;
|
|
56
|
+
color: var(--text);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.logo-icon {
|
|
60
|
+
width: 40px;
|
|
61
|
+
height: 40px;
|
|
62
|
+
background: var(--accent);
|
|
63
|
+
border-radius: 10px;
|
|
64
|
+
display: inline-flex;
|
|
65
|
+
align-items: center;
|
|
66
|
+
justify-content: center;
|
|
67
|
+
color: #fff;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.logo-text {
|
|
71
|
+
font-size: 22px;
|
|
72
|
+
font-weight: 800;
|
|
73
|
+
letter-spacing: -0.02em;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.nav-links {
|
|
77
|
+
display: flex;
|
|
78
|
+
align-items: center;
|
|
79
|
+
gap: 28px;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.nav-link {
|
|
83
|
+
text-decoration: none;
|
|
84
|
+
color: var(--muted);
|
|
85
|
+
font-size: 15px;
|
|
86
|
+
font-weight: 500;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.nav-link:hover,
|
|
90
|
+
.nav-link.active {
|
|
91
|
+
color: var(--text);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.nav-actions {
|
|
95
|
+
display: flex;
|
|
96
|
+
align-items: center;
|
|
97
|
+
gap: 12px;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.nav-menu-toggle,
|
|
101
|
+
.nav-mobile-menu {
|
|
102
|
+
display: none;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@media (min-width: 901px) {
|
|
106
|
+
.nav-menu-toggle,
|
|
107
|
+
.nav-mobile-menu {
|
|
108
|
+
display: none !important;
|
|
109
|
+
}
|
|
110
|
+
.nav-get-started-desktop {
|
|
111
|
+
display: inline-flex !important;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.btn {
|
|
116
|
+
border: 0;
|
|
117
|
+
border-radius: 10px;
|
|
118
|
+
padding: 11px 18px;
|
|
119
|
+
text-decoration: none;
|
|
120
|
+
font-size: 14px;
|
|
121
|
+
font-weight: 600;
|
|
122
|
+
display: inline-flex;
|
|
123
|
+
align-items: center;
|
|
124
|
+
justify-content: center;
|
|
125
|
+
gap: 8px;
|
|
126
|
+
cursor: pointer;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.btn-ghost {
|
|
130
|
+
color: var(--text);
|
|
131
|
+
background: transparent;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.btn-primary {
|
|
135
|
+
color: #fff;
|
|
136
|
+
background: var(--text);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.hero {
|
|
140
|
+
padding: 56px 0 26px;
|
|
141
|
+
text-align: center;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.hero h1 {
|
|
145
|
+
font-size: clamp(34px, 8vw, 62px);
|
|
146
|
+
line-height: 1.05;
|
|
147
|
+
letter-spacing: -0.03em;
|
|
148
|
+
margin-bottom: 12px;
|
|
149
|
+
font-weight: 800;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.hero h1 .serif {
|
|
153
|
+
font-family: "Newsreader", Georgia, serif;
|
|
154
|
+
font-style: italic;
|
|
155
|
+
font-weight: 400;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.hero p {
|
|
159
|
+
color: var(--muted);
|
|
160
|
+
font-size: 17px;
|
|
161
|
+
max-width: 660px;
|
|
162
|
+
margin: 0 auto;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.billing-toggle {
|
|
166
|
+
margin: 28px auto 16px;
|
|
167
|
+
width: fit-content;
|
|
168
|
+
padding: 6px;
|
|
169
|
+
border: 1px solid var(--line);
|
|
170
|
+
border-radius: 999px;
|
|
171
|
+
background: #fff;
|
|
172
|
+
display: flex;
|
|
173
|
+
gap: 6px;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.billing-option {
|
|
177
|
+
border: 0;
|
|
178
|
+
border-radius: 999px;
|
|
179
|
+
padding: 10px 16px;
|
|
180
|
+
font-size: 14px;
|
|
181
|
+
font-weight: 600;
|
|
182
|
+
color: var(--muted);
|
|
183
|
+
background: transparent;
|
|
184
|
+
cursor: pointer;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.billing-option.active {
|
|
188
|
+
background: var(--accent);
|
|
189
|
+
color: #fff;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.discount {
|
|
193
|
+
text-align: center;
|
|
194
|
+
color: #0f766e;
|
|
195
|
+
font-weight: 600;
|
|
196
|
+
margin-bottom: 34px;
|
|
197
|
+
font-size: 14px;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.pricing-grid {
|
|
201
|
+
display: grid;
|
|
202
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
203
|
+
gap: 20px;
|
|
204
|
+
padding-bottom: 80px;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.plan {
|
|
208
|
+
background: var(--card);
|
|
209
|
+
border: 1px solid var(--line);
|
|
210
|
+
border-radius: 18px;
|
|
211
|
+
padding: 24px;
|
|
212
|
+
box-shadow: var(--shadow);
|
|
213
|
+
display: flex;
|
|
214
|
+
flex-direction: column;
|
|
215
|
+
height: 100%;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.plan.featured {
|
|
219
|
+
border-color: rgba(37, 99, 235, 0.4);
|
|
220
|
+
box-shadow: 0 14px 36px rgba(37, 99, 235, 0.16);
|
|
221
|
+
position: relative;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.badge {
|
|
225
|
+
position: absolute;
|
|
226
|
+
top: 14px;
|
|
227
|
+
right: 14px;
|
|
228
|
+
font-size: 11px;
|
|
229
|
+
font-weight: 700;
|
|
230
|
+
letter-spacing: 0.04em;
|
|
231
|
+
padding: 6px 10px;
|
|
232
|
+
border-radius: 999px;
|
|
233
|
+
background: var(--accent-bg);
|
|
234
|
+
color: var(--accent);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.plan-name {
|
|
238
|
+
font-size: 24px;
|
|
239
|
+
letter-spacing: -0.02em;
|
|
240
|
+
margin-bottom: 8px;
|
|
241
|
+
font-weight: 700;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.plan-desc {
|
|
245
|
+
color: var(--muted);
|
|
246
|
+
font-size: 14px;
|
|
247
|
+
margin-bottom: 18px;
|
|
248
|
+
min-height: 42px;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.price-row {
|
|
252
|
+
display: flex;
|
|
253
|
+
align-items: baseline;
|
|
254
|
+
gap: 8px;
|
|
255
|
+
margin-bottom: 18px;
|
|
256
|
+
min-height: 50px;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.price {
|
|
260
|
+
font-size: 38px;
|
|
261
|
+
line-height: 1;
|
|
262
|
+
letter-spacing: -0.03em;
|
|
263
|
+
font-weight: 800;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.price-note {
|
|
267
|
+
color: var(--muted);
|
|
268
|
+
font-size: 13px;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.plan .btn {
|
|
272
|
+
width: 100%;
|
|
273
|
+
margin-top: 24px;
|
|
274
|
+
margin-bottom: 18px;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.plan ul {
|
|
278
|
+
list-style: none;
|
|
279
|
+
display: grid;
|
|
280
|
+
gap: 10px;
|
|
281
|
+
margin-top: auto;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
.plan li {
|
|
285
|
+
display: flex;
|
|
286
|
+
align-items: flex-start;
|
|
287
|
+
gap: 10px;
|
|
288
|
+
font-size: 14px;
|
|
289
|
+
color: #334155;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
.plan li i {
|
|
293
|
+
color: #16a34a;
|
|
294
|
+
margin-top: 2px;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.fine-note {
|
|
298
|
+
margin: 6px auto 72px;
|
|
299
|
+
max-width: 560px;
|
|
300
|
+
display: flex;
|
|
301
|
+
align-items: center;
|
|
302
|
+
justify-content: center;
|
|
303
|
+
gap: 10px;
|
|
304
|
+
padding: 12px 16px;
|
|
305
|
+
border: 1px solid var(--line);
|
|
306
|
+
border-radius: 999px;
|
|
307
|
+
background: #ffffff;
|
|
308
|
+
color: var(--muted);
|
|
309
|
+
font-size: 13px;
|
|
310
|
+
text-align: center;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
.fine-note i {
|
|
314
|
+
color: var(--accent);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
.fine-note a {
|
|
318
|
+
text-decoration: none;
|
|
319
|
+
font-weight: 700;
|
|
320
|
+
color: var(--accent);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
.fine-note a:hover {
|
|
324
|
+
text-decoration: underline;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
@media (max-width: 900px) {
|
|
328
|
+
.nav {
|
|
329
|
+
flex-wrap: wrap;
|
|
330
|
+
gap: 12px;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.nav-links {
|
|
334
|
+
display: none;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
.nav-actions {
|
|
338
|
+
margin-left: auto;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
.nav-actions .btn-ghost,
|
|
342
|
+
.nav-get-started-desktop {
|
|
343
|
+
display: none;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
.nav-menu-toggle {
|
|
347
|
+
display: inline-flex;
|
|
348
|
+
padding: 10px 12px;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
.nav-menu-toggle .label {
|
|
352
|
+
display: none;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
.nav-mobile-menu {
|
|
356
|
+
width: 100%;
|
|
357
|
+
border: 1px solid var(--line);
|
|
358
|
+
border-radius: 12px;
|
|
359
|
+
background: #fff;
|
|
360
|
+
padding: 10px 12px;
|
|
361
|
+
gap: 10px;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
.nav-mobile-menu.open {
|
|
365
|
+
display: grid;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
.nav-mobile-link {
|
|
369
|
+
text-decoration: none;
|
|
370
|
+
color: var(--muted);
|
|
371
|
+
font-size: 14px;
|
|
372
|
+
font-weight: 500;
|
|
373
|
+
padding: 6px 2px;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
.pricing-grid {
|
|
377
|
+
grid-template-columns: 1fr;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
</style>
|
|
381
|
+
</head>
|
|
382
|
+
<body>
|
|
383
|
+
<div class="container">
|
|
384
|
+
<nav class="nav">
|
|
385
|
+
<a href="/landing" class="logo">
|
|
386
|
+
<span class="logo-icon"><i class="fas fa-rocket"></i></span>
|
|
387
|
+
<span class="logo-text">QuickMCP</span>
|
|
388
|
+
</a>
|
|
389
|
+
|
|
390
|
+
<div class="nav-links">
|
|
391
|
+
<a href="/landing#prompts" class="nav-link">Use Cases</a>
|
|
392
|
+
<a href="/landing#how" class="nav-link">How It Works</a>
|
|
393
|
+
<a href="/landing#integrations" class="nav-link">Integrations</a>
|
|
394
|
+
<a href="/pricing" class="nav-link active">Pricing</a>
|
|
395
|
+
<a href="/landing#faq" class="nav-link">FAQ</a>
|
|
396
|
+
</div>
|
|
397
|
+
|
|
398
|
+
<div class="nav-actions">
|
|
399
|
+
<a href="/login" class="btn btn-ghost">Sign In</a>
|
|
400
|
+
<a href="/login" class="btn btn-primary nav-get-started-desktop">Get Started</a>
|
|
401
|
+
<button type="button" id="navMenuToggle" class="btn btn-primary nav-menu-toggle" aria-expanded="false" aria-controls="navMobileMenu">
|
|
402
|
+
<span class="label">Menu</span>
|
|
403
|
+
<i class="fas fa-bars"></i>
|
|
404
|
+
</button>
|
|
405
|
+
</div>
|
|
406
|
+
|
|
407
|
+
<div id="navMobileMenu" class="nav-mobile-menu">
|
|
408
|
+
<a href="/login" class="nav-mobile-link">Sign In</a>
|
|
409
|
+
<a href="/landing#prompts" class="nav-mobile-link">Use Cases</a>
|
|
410
|
+
<a href="/landing#how" class="nav-mobile-link">How It Works</a>
|
|
411
|
+
<a href="/landing#integrations" class="nav-mobile-link">Integrations</a>
|
|
412
|
+
<a href="/pricing" class="nav-mobile-link">Pricing</a>
|
|
413
|
+
<a href="/landing#faq" class="nav-mobile-link">FAQ</a>
|
|
414
|
+
</div>
|
|
415
|
+
</nav>
|
|
416
|
+
</div>
|
|
417
|
+
|
|
418
|
+
<main class="container">
|
|
419
|
+
<section class="hero">
|
|
420
|
+
<h1>Start free, <span class="serif">grow</span> as you go</h1>
|
|
421
|
+
<p>Flexible plans for teams building MCP-powered workflows across apps, APIs, databases, and enterprise systems.</p>
|
|
422
|
+
<div class="billing-toggle" role="tablist" aria-label="Billing period">
|
|
423
|
+
<button type="button" id="monthlyBtn" class="billing-option active" aria-selected="true">Monthly</button>
|
|
424
|
+
<button type="button" id="annualBtn" class="billing-option" aria-selected="false">Annually</button>
|
|
425
|
+
</div>
|
|
426
|
+
<div class="discount">20% Off on an annual subscription</div>
|
|
427
|
+
</section>
|
|
428
|
+
|
|
429
|
+
<section class="pricing-grid">
|
|
430
|
+
<article class="plan">
|
|
431
|
+
<h2 class="plan-name">Something</h2>
|
|
432
|
+
<p class="plan-desc">For individual builders and early experiments.</p>
|
|
433
|
+
<div class="price-row">
|
|
434
|
+
<div class="price">US$0</div>
|
|
435
|
+
<div class="price-note">/ month</div>
|
|
436
|
+
</div>
|
|
437
|
+
<ul>
|
|
438
|
+
<li><i class="fas fa-check"></i><span>10 free credits every month</span></li>
|
|
439
|
+
<li><i class="fas fa-check"></i><span>Access to core app connectors</span></li>
|
|
440
|
+
<li><i class="fas fa-check"></i><span>Community support</span></li>
|
|
441
|
+
</ul>
|
|
442
|
+
<a href="/login" class="btn btn-ghost" style="border:1px solid var(--line);">Get started for free</a>
|
|
443
|
+
</article>
|
|
444
|
+
|
|
445
|
+
<article class="plan featured">
|
|
446
|
+
<span class="badge">Most Popular</span>
|
|
447
|
+
<h2 class="plan-name">Anything</h2>
|
|
448
|
+
<p class="plan-desc">For growing teams shipping real automations.</p>
|
|
449
|
+
<div class="price-row">
|
|
450
|
+
<div class="price" id="proPrice">US$29</div>
|
|
451
|
+
<div class="price-note" id="proPriceNote">/ month</div>
|
|
452
|
+
</div>
|
|
453
|
+
<ul>
|
|
454
|
+
<li><i class="fas fa-check"></i><span><strong id="proCredits">2500</strong> monthly credits included</span></li>
|
|
455
|
+
<li><i class="fas fa-check"></i><span>All integrations and workflow tooling</span></li>
|
|
456
|
+
<li><i class="fas fa-check"></i><span>Priority support</span></li>
|
|
457
|
+
<li><i class="fas fa-check"></i><span>Usage analytics and team visibility</span></li>
|
|
458
|
+
</ul>
|
|
459
|
+
<a href="/login" class="btn btn-primary">Go Pro</a>
|
|
460
|
+
</article>
|
|
461
|
+
|
|
462
|
+
<article class="plan">
|
|
463
|
+
<h2 class="plan-name">Everything</h2>
|
|
464
|
+
<p class="plan-desc">For enterprise deployments and advanced governance.</p>
|
|
465
|
+
<div class="price-row">
|
|
466
|
+
<div class="price">Custom</div>
|
|
467
|
+
</div>
|
|
468
|
+
<ul>
|
|
469
|
+
<li><i class="fas fa-check"></i><span>Custom credit and volume packages</span></li>
|
|
470
|
+
<li><i class="fas fa-check"></i><span>SSO, RBAC, and enterprise controls</span></li>
|
|
471
|
+
<li><i class="fas fa-check"></i><span>Dedicated support and onboarding</span></li>
|
|
472
|
+
<li><i class="fas fa-check"></i><span>Private deployment options</span></li>
|
|
473
|
+
</ul>
|
|
474
|
+
<a href="mailto:quickmcp@gmail.com" class="btn btn-ghost" style="border:1px solid var(--line);">Contact us</a>
|
|
475
|
+
</article>
|
|
476
|
+
</section>
|
|
477
|
+
<p class="fine-note">
|
|
478
|
+
<i class="fas fa-envelope-open-text" aria-hidden="true"></i>
|
|
479
|
+
Need a tailored plan? Talk to us at <a href="mailto:quickmcp@gmail.com">quickmcp@gmail.com</a>
|
|
480
|
+
</p>
|
|
481
|
+
</main>
|
|
482
|
+
|
|
483
|
+
<script>
|
|
484
|
+
(() => {
|
|
485
|
+
const navMenuToggle = document.getElementById('navMenuToggle');
|
|
486
|
+
const navMobileMenu = document.getElementById('navMobileMenu');
|
|
487
|
+
if (navMenuToggle && navMobileMenu) {
|
|
488
|
+
navMenuToggle.addEventListener('click', () => {
|
|
489
|
+
const isOpen = navMobileMenu.classList.toggle('open');
|
|
490
|
+
navMenuToggle.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
|
|
491
|
+
});
|
|
492
|
+
|
|
493
|
+
navMobileMenu.querySelectorAll('a').forEach((link) => {
|
|
494
|
+
link.addEventListener('click', () => {
|
|
495
|
+
navMobileMenu.classList.remove('open');
|
|
496
|
+
navMenuToggle.setAttribute('aria-expanded', 'false');
|
|
497
|
+
});
|
|
498
|
+
});
|
|
499
|
+
|
|
500
|
+
window.addEventListener('resize', () => {
|
|
501
|
+
if (window.innerWidth > 900) {
|
|
502
|
+
navMobileMenu.classList.remove('open');
|
|
503
|
+
navMenuToggle.setAttribute('aria-expanded', 'false');
|
|
504
|
+
}
|
|
505
|
+
});
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
const monthlyBtn = document.getElementById('monthlyBtn');
|
|
509
|
+
const annualBtn = document.getElementById('annualBtn');
|
|
510
|
+
const proPrice = document.getElementById('proPrice');
|
|
511
|
+
const proPriceNote = document.getElementById('proPriceNote');
|
|
512
|
+
const proCredits = document.getElementById('proCredits');
|
|
513
|
+
|
|
514
|
+
const setBilling = (billing) => {
|
|
515
|
+
const isAnnual = billing === 'annual';
|
|
516
|
+
monthlyBtn.classList.toggle('active', !isAnnual);
|
|
517
|
+
annualBtn.classList.toggle('active', isAnnual);
|
|
518
|
+
monthlyBtn.setAttribute('aria-selected', isAnnual ? 'false' : 'true');
|
|
519
|
+
annualBtn.setAttribute('aria-selected', isAnnual ? 'true' : 'false');
|
|
520
|
+
|
|
521
|
+
if (isAnnual) {
|
|
522
|
+
proPrice.textContent = 'US$23';
|
|
523
|
+
proPriceNote.textContent = '/ month, billed yearly';
|
|
524
|
+
proCredits.textContent = '2500';
|
|
525
|
+
} else {
|
|
526
|
+
proPrice.textContent = 'US$29';
|
|
527
|
+
proPriceNote.textContent = '/ month';
|
|
528
|
+
proCredits.textContent = '2500';
|
|
529
|
+
}
|
|
530
|
+
};
|
|
531
|
+
|
|
532
|
+
monthlyBtn.addEventListener('click', () => setBilling('monthly'));
|
|
533
|
+
annualBtn.addEventListener('click', () => setBilling('annual'));
|
|
534
|
+
})();
|
|
535
|
+
</script>
|
|
536
|
+
</body>
|
|
537
|
+
</html>
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en" class="h-full">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>QuickMCP - Quick Ask</title>
|
|
8
|
+
|
|
9
|
+
<link rel="icon" type="image/png" href="/images/favicon.png">
|
|
10
|
+
<script src="https://cdn.tailwindcss.com"></script>
|
|
11
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
|
12
|
+
<link rel="stylesheet" href="quickmcp-styles.css">
|
|
13
|
+
<script>tailwind.config = { darkMode: 'class' };</script>
|
|
14
|
+
</head>
|
|
15
|
+
|
|
16
|
+
<body class="h-screen flex flex-col bg-gradient-to-br from-slate-50 to-slate-100 overflow-hidden text-slate-900">
|
|
17
|
+
<header class="backdrop-blur-sm bg-white/80 border-b border-slate-200/60 shadow-sm relative z-50 h-16 flex-shrink-0 flex items-center justify-between px-6 py-3">
|
|
18
|
+
<div class="flex items-center gap-6">
|
|
19
|
+
<div class="flex items-center gap-3">
|
|
20
|
+
<div class="w-9 h-9 rounded-lg bg-blue-600 text-white flex items-center justify-center shadow-lg shadow-blue-500/25">
|
|
21
|
+
<i class="fas fa-rocket text-lg"></i>
|
|
22
|
+
</div>
|
|
23
|
+
<div>
|
|
24
|
+
<h1 class="text-xl font-bold gradient-text leading-tight">QuickMCP</h1>
|
|
25
|
+
<p class="text-xs text-slate-500 font-medium">Quick Ask</p>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
<div class="h-8 w-px bg-gradient-to-b from-transparent via-slate-300 to-transparent hidden md:block"></div>
|
|
29
|
+
<div class="hidden md:flex items-center gap-2 text-sm font-medium text-slate-600">
|
|
30
|
+
<button id="headerNewServerBtn" onclick="window.location.href='/generate'" 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">
|
|
31
|
+
<i class="fas fa-plus"></i>
|
|
32
|
+
<span>New Server</span>
|
|
33
|
+
</button>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
<div class="flex items-center gap-3">
|
|
37
|
+
<div 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">
|
|
38
|
+
<div class="w-2 h-2 bg-green-500 rounded-full animate-pulse"></div>
|
|
39
|
+
<span>System Online</span>
|
|
40
|
+
</div>
|
|
41
|
+
<button class="p-2 rounded-lg hover:bg-slate-100 transition-colors relative text-slate-500 hover:text-slate-700">
|
|
42
|
+
<i class="fas fa-bell"></i>
|
|
43
|
+
<span class="absolute top-2 right-2 w-2 h-2 bg-red-500 rounded-full border-2 border-white"></span>
|
|
44
|
+
</button>
|
|
45
|
+
<div class="w-8 h-8 rounded-full bg-gradient-to-tr from-blue-500 to-purple-500 text-white flex items-center justify-center text-sm font-bold shadow-md" data-user-avatar>G</div>
|
|
46
|
+
<button id="openSidebar" class="lg:hidden p-2 rounded-lg hover:bg-slate-100 transition-colors text-slate-500">
|
|
47
|
+
<i class="fas fa-bars"></i>
|
|
48
|
+
</button>
|
|
49
|
+
</div>
|
|
50
|
+
</header>
|
|
51
|
+
|
|
52
|
+
<div class="app-main-layout flex flex-1 overflow-x-hidden" id="app">
|
|
53
|
+
<div id="sidebar" class="w-72 bg-white/95 backdrop-blur-sm border-r border-slate-200/60 flex flex-col flex-shrink-0 z-[60] fixed inset-y-0 left-0 transform -translate-x-full lg:translate-x-0 lg:top-0 lg:h-screen transition-transform duration-300 ease-in-out h-full pt-16 lg:pt-0"></div>
|
|
54
|
+
<div id="sidebarOverlay" class="fixed inset-0 bg-slate-900/50 backdrop-blur-sm z-30 lg:hidden opacity-0 invisible transition-all duration-300"></div>
|
|
55
|
+
|
|
56
|
+
<div class="flex-1 relative bg-slate-50/50 overflow-hidden flex flex-col min-w-0">
|
|
57
|
+
<div class="absolute inset-0 shadow-inner shadow-slate-200/30 pointer-events-none z-10"></div>
|
|
58
|
+
<main class="flex-1 overflow-y-auto scrollbar-modern p-8 relative z-0">
|
|
59
|
+
<div class="max-w-5xl mx-auto pb-20">
|
|
60
|
+
<section id="quickAskSection">
|
|
61
|
+
<div class="relative overflow-hidden rounded-2xl border border-slate-200 bg-gradient-to-br from-white to-slate-50 shadow-xl shadow-slate-200/60">
|
|
62
|
+
<div class="absolute -top-16 -right-14 h-48 w-48 rounded-full bg-blue-500/10 blur-3xl pointer-events-none"></div>
|
|
63
|
+
<div class="absolute -bottom-24 -left-16 h-56 w-56 rounded-full bg-cyan-400/10 blur-3xl pointer-events-none"></div>
|
|
64
|
+
<div class="relative p-6 md:p-7 space-y-4">
|
|
65
|
+
<div class="flex flex-col md:flex-row md:items-center md:justify-between gap-3">
|
|
66
|
+
<div>
|
|
67
|
+
<p class="text-xs uppercase tracking-[0.16em] text-blue-700 font-semibold">Quick Ask</p>
|
|
68
|
+
<h2 class="text-2xl font-bold text-slate-900">Ask Aria with your MCP tools</h2>
|
|
69
|
+
<p class="text-sm text-slate-600 mt-1">Choose your MCP context, send your prompt, get a focused answer.</p>
|
|
70
|
+
</div>
|
|
71
|
+
<div class="flex items-center gap-2">
|
|
72
|
+
<button id="quickAskNewChatBtn" type="button" class="inline-flex items-center gap-2 rounded-lg border border-slate-200 bg-white hover:bg-slate-50 px-3 py-1.5 text-xs font-semibold text-slate-700">
|
|
73
|
+
<i class="fas fa-plus text-[11px]"></i>
|
|
74
|
+
New chat
|
|
75
|
+
</button>
|
|
76
|
+
<span id="quickAskStatus" class="inline-flex items-center gap-2 px-3 py-1.5 rounded-full text-xs font-semibold bg-slate-100 text-slate-600 border border-slate-200">
|
|
77
|
+
<span class="h-2 w-2 rounded-full bg-slate-400"></span>
|
|
78
|
+
Initializing
|
|
79
|
+
</span>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
<div id="quickAskConversationWrap" class="hidden rounded-2xl border border-slate-200/80 bg-white/90 backdrop-blur shadow-inner shadow-slate-100 overflow-hidden">
|
|
84
|
+
<div class="px-4 py-3 border-b border-slate-200 bg-slate-50/70">
|
|
85
|
+
<p id="quickAskActiveChatTitle" class="text-sm font-semibold text-slate-800 truncate">New chat</p>
|
|
86
|
+
</div>
|
|
87
|
+
<div id="quickAskMessages" class="hidden h-[52vh] min-h-[320px] overflow-y-auto scrollbar-modern p-4 space-y-3"></div>
|
|
88
|
+
<div id="quickAskMessagesEmpty" class="h-[52vh] min-h-[320px] flex items-center justify-center p-6 text-center">
|
|
89
|
+
<div class="max-w-sm space-y-2">
|
|
90
|
+
<p class="text-sm font-semibold text-slate-700">Start a conversation</p>
|
|
91
|
+
<p class="text-xs text-slate-500">Your messages and Aria responses will appear here.</p>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
|
|
96
|
+
<div class="rounded-2xl border border-slate-200/80 bg-white/85 backdrop-blur p-3 md:p-4 shadow-inner shadow-slate-100">
|
|
97
|
+
<textarea id="quickAskInput" rows="2" class="w-full resize-none bg-transparent border-0 focus:outline-none text-[15px] leading-relaxed text-slate-800 placeholder:text-slate-400" placeholder="Message Aria..."></textarea>
|
|
98
|
+
<div class="mt-3 flex flex-wrap items-center justify-between gap-2">
|
|
99
|
+
<button id="quickAskOpenToolsBtn" type="button" class="inline-flex items-center gap-2 rounded-lg border border-slate-200 bg-slate-50 hover:bg-slate-100 px-3 py-2 text-xs font-semibold text-slate-700 transition-colors">
|
|
100
|
+
<i class="fas fa-sliders-h text-[11px]"></i>
|
|
101
|
+
Select MCP & Tools
|
|
102
|
+
<span id="quickAskSelectedCount" class="inline-flex items-center justify-center min-w-5 h-5 rounded-full bg-blue-100 text-blue-700 text-[11px] px-1">0</span>
|
|
103
|
+
</button>
|
|
104
|
+
<button id="quickAskSendBtn" type="button" class="inline-flex items-center gap-2 rounded-lg bg-slate-900 hover:bg-slate-800 text-white px-4 py-2 text-sm font-semibold transition-colors disabled:opacity-50 disabled:cursor-not-allowed">
|
|
105
|
+
<i class="fas fa-paper-plane text-xs"></i>
|
|
106
|
+
Ask
|
|
107
|
+
</button>
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
|
|
111
|
+
<div id="quickAskToolsPanel" class="hidden rounded-xl border border-slate-200 bg-white/90 p-4 space-y-3">
|
|
112
|
+
<div class="flex items-center justify-between">
|
|
113
|
+
<p class="text-sm font-semibold text-slate-800">Choose MCP servers and tools</p>
|
|
114
|
+
<button id="quickAskRefreshBtn" type="button" class="text-xs font-semibold text-blue-700 hover:text-blue-800">Refresh</button>
|
|
115
|
+
</div>
|
|
116
|
+
<div id="quickAskToolsList" class="max-h-72 overflow-auto space-y-2 pr-1"></div>
|
|
117
|
+
<p id="quickAskHint" class="text-xs text-slate-500"></p>
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
121
|
+
</section>
|
|
122
|
+
</div>
|
|
123
|
+
</main>
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
|
|
127
|
+
<script src="logger.js"></script>
|
|
128
|
+
<script src="shared.js"></script>
|
|
129
|
+
<script src="sidebar.js"></script>
|
|
130
|
+
<script src="app.js?v=20260311-qa-chat-ui-2"></script>
|
|
131
|
+
</body>
|
|
132
|
+
|
|
133
|
+
</html>
|