mcpmake 0.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/README.md +691 -0
- package/bin/mcpmake.mjs +2 -0
- package/dist/analyzer/auth-detector.d.ts +12 -0
- package/dist/analyzer/auth-detector.js +142 -0
- package/dist/analyzer/dom-parser.d.ts +10 -0
- package/dist/analyzer/dom-parser.js +259 -0
- package/dist/analyzer/goal-crawler.d.ts +25 -0
- package/dist/analyzer/goal-crawler.js +177 -0
- package/dist/analyzer/hybrid-detector.d.ts +28 -0
- package/dist/analyzer/hybrid-detector.js +96 -0
- package/dist/analyzer/index.d.ts +12 -0
- package/dist/analyzer/index.js +8 -0
- package/dist/analyzer/screenshot-capture.d.ts +29 -0
- package/dist/analyzer/screenshot-capture.js +42 -0
- package/dist/analyzer/selector-builder.d.ts +19 -0
- package/dist/analyzer/selector-builder.js +199 -0
- package/dist/analyzer/semantic-analyzer.d.ts +13 -0
- package/dist/analyzer/semantic-analyzer.js +145 -0
- package/dist/analyzer/site-crawler.d.ts +38 -0
- package/dist/analyzer/site-crawler.js +235 -0
- package/dist/cloud/billing/billing-engine.d.ts +44 -0
- package/dist/cloud/billing/billing-engine.js +81 -0
- package/dist/cloud/billing/credit-store.d.ts +64 -0
- package/dist/cloud/billing/credit-store.js +168 -0
- package/dist/cloud/billing/index.d.ts +4 -0
- package/dist/cloud/billing/index.js +2 -0
- package/dist/cloud/billing/usage-store.d.ts +42 -0
- package/dist/cloud/billing/usage-store.js +85 -0
- package/dist/cloud/billing/usage-tracker.d.ts +38 -0
- package/dist/cloud/billing/usage-tracker.js +95 -0
- package/dist/cloud/build-pipeline.d.ts +39 -0
- package/dist/cloud/build-pipeline.js +310 -0
- package/dist/cloud/build-queue.d.ts +30 -0
- package/dist/cloud/build-queue.js +70 -0
- package/dist/cloud/caddy-manager.d.ts +18 -0
- package/dist/cloud/caddy-manager.js +97 -0
- package/dist/cloud/container-backend.d.ts +62 -0
- package/dist/cloud/container-backend.js +59 -0
- package/dist/cloud/container-manager.d.ts +64 -0
- package/dist/cloud/container-manager.js +301 -0
- package/dist/cloud/crypto.d.ts +27 -0
- package/dist/cloud/crypto.js +63 -0
- package/dist/cloud/db/index.d.ts +27 -0
- package/dist/cloud/db/index.js +53 -0
- package/dist/cloud/db/migrations.d.ts +12 -0
- package/dist/cloud/db/migrations.js +329 -0
- package/dist/cloud/db/pg-store.d.ts +45 -0
- package/dist/cloud/db/pg-store.js +336 -0
- package/dist/cloud/failure-tracker.d.ts +51 -0
- package/dist/cloud/failure-tracker.js +102 -0
- package/dist/cloud/idle-monitor.d.ts +30 -0
- package/dist/cloud/idle-monitor.js +70 -0
- package/dist/cloud/mailer.d.ts +21 -0
- package/dist/cloud/mailer.js +193 -0
- package/dist/cloud/mcp-proxy.d.ts +58 -0
- package/dist/cloud/mcp-proxy.js +203 -0
- package/dist/cloud/metric-samples.d.ts +43 -0
- package/dist/cloud/metric-samples.js +85 -0
- package/dist/cloud/metrics.d.ts +26 -0
- package/dist/cloud/metrics.js +59 -0
- package/dist/cloud/multipart.d.ts +26 -0
- package/dist/cloud/multipart.js +132 -0
- package/dist/cloud/observability.d.ts +27 -0
- package/dist/cloud/observability.js +98 -0
- package/dist/cloud/rate-limiter.d.ts +31 -0
- package/dist/cloud/rate-limiter.js +58 -0
- package/dist/cloud/request-security.d.ts +5 -0
- package/dist/cloud/request-security.js +74 -0
- package/dist/cloud/resource-monitor.d.ts +69 -0
- package/dist/cloud/resource-monitor.js +130 -0
- package/dist/cloud/secret-store.d.ts +38 -0
- package/dist/cloud/secret-store.js +103 -0
- package/dist/cloud/security.d.ts +26 -0
- package/dist/cloud/security.js +142 -0
- package/dist/cloud/server.d.ts +21 -0
- package/dist/cloud/server.js +1079 -0
- package/dist/cloud/shared-state.d.ts +72 -0
- package/dist/cloud/shared-state.js +159 -0
- package/dist/cloud/ssrf.d.ts +43 -0
- package/dist/cloud/ssrf.js +150 -0
- package/dist/cloud/store.d.ts +41 -0
- package/dist/cloud/store.js +75 -0
- package/dist/cloud/stripe.d.ts +78 -0
- package/dist/cloud/stripe.js +317 -0
- package/dist/cloud/telemetry-store.d.ts +53 -0
- package/dist/cloud/telemetry-store.js +108 -0
- package/dist/cloud/web/auth.d.ts +225 -0
- package/dist/cloud/web/auth.js +555 -0
- package/dist/cloud/web/charts.d.ts +70 -0
- package/dist/cloud/web/charts.js +178 -0
- package/dist/cloud/web/csrf.d.ts +14 -0
- package/dist/cloud/web/csrf.js +22 -0
- package/dist/cloud/web/docs.d.ts +40 -0
- package/dist/cloud/web/docs.js +174 -0
- package/dist/cloud/web/router.d.ts +25 -0
- package/dist/cloud/web/router.js +1921 -0
- package/dist/cloud/web/static/alpine.min.js +5 -0
- package/dist/cloud/web/static/favicon.svg +4 -0
- package/dist/cloud/web/static/htmx-sse.js +290 -0
- package/dist/cloud/web/static/htmx.min.js +1 -0
- package/dist/cloud/web/static/style.css +2683 -0
- package/dist/cloud/web/static-server.d.ts +13 -0
- package/dist/cloud/web/static-server.js +73 -0
- package/dist/cloud/web/template-engine.d.ts +27 -0
- package/dist/cloud/web/template-engine.js +146 -0
- package/dist/cloud/web/templates/layouts/admin.hbs +57 -0
- package/dist/cloud/web/templates/layouts/auth.hbs +138 -0
- package/dist/cloud/web/templates/layouts/base.hbs +16 -0
- package/dist/cloud/web/templates/layouts/dashboard.hbs +39 -0
- package/dist/cloud/web/templates/layouts/landing.hbs +82 -0
- package/dist/cloud/web/templates/pages/admin/overview.hbs +123 -0
- package/dist/cloud/web/templates/pages/admin/servers.hbs +129 -0
- package/dist/cloud/web/templates/pages/admin/telemetry.hbs +39 -0
- package/dist/cloud/web/templates/pages/admin/user-edit.hbs +91 -0
- package/dist/cloud/web/templates/pages/admin/users.hbs +179 -0
- package/dist/cloud/web/templates/pages/auth/forgot-password.hbs +25 -0
- package/dist/cloud/web/templates/pages/auth/login.hbs +33 -0
- package/dist/cloud/web/templates/pages/auth/register.hbs +32 -0
- package/dist/cloud/web/templates/pages/auth/reset-password.hbs +34 -0
- package/dist/cloud/web/templates/pages/dashboard/billing.hbs +140 -0
- package/dist/cloud/web/templates/pages/dashboard/create.hbs +173 -0
- package/dist/cloud/web/templates/pages/dashboard/index.hbs +8 -0
- package/dist/cloud/web/templates/pages/dashboard/server-detail.hbs +280 -0
- package/dist/cloud/web/templates/pages/dashboard/server-logs.hbs +35 -0
- package/dist/cloud/web/templates/pages/dashboard/server-metrics.hbs +63 -0
- package/dist/cloud/web/templates/pages/dashboard/servers-partial.hbs +21 -0
- package/dist/cloud/web/templates/pages/dashboard/servers.hbs +44 -0
- package/dist/cloud/web/templates/pages/docs/show.hbs +16 -0
- package/dist/cloud/web/templates/pages/errors/404.hbs +9 -0
- package/dist/cloud/web/templates/pages/errors/500.hbs +8 -0
- package/dist/cloud/web/templates/pages/landing/index.hbs +223 -0
- package/dist/cloud/web/templates/pages/legal/privacy.hbs +71 -0
- package/dist/cloud/web/templates/pages/legal/terms.hbs +73 -0
- package/dist/cloud/web/templates/partials/admin-stats.hbs +52 -0
- package/dist/cloud/web/templates/partials/flash-message.hbs +6 -0
- package/dist/cloud/web/templates/partials/pricing-table.hbs +103 -0
- package/dist/cloud/web/templates/partials/server-card.hbs +19 -0
- package/dist/cloud/web/templates/partials/status-badge.hbs +1 -0
- package/dist/commands/bundle.d.ts +18 -0
- package/dist/commands/bundle.js +82 -0
- package/dist/commands/ci.d.ts +25 -0
- package/dist/commands/ci.js +149 -0
- package/dist/commands/deploy.d.ts +24 -0
- package/dist/commands/deploy.js +145 -0
- package/dist/commands/diff.d.ts +18 -0
- package/dist/commands/diff.js +185 -0
- package/dist/commands/from/describe.d.ts +65 -0
- package/dist/commands/from/describe.js +173 -0
- package/dist/commands/from/har.d.ts +81 -0
- package/dist/commands/from/har.js +255 -0
- package/dist/commands/from/openapi.d.ts +105 -0
- package/dist/commands/from/openapi.js +302 -0
- package/dist/commands/from/postman.d.ts +51 -0
- package/dist/commands/from/postman.js +146 -0
- package/dist/commands/from/target-support.d.ts +11 -0
- package/dist/commands/from/target-support.js +33 -0
- package/dist/commands/from/url.d.ts +75 -0
- package/dist/commands/from/url.js +244 -0
- package/dist/commands/from/website.d.ts +75 -0
- package/dist/commands/from/website.js +284 -0
- package/dist/commands/lint.d.ts +24 -0
- package/dist/commands/lint.js +184 -0
- package/dist/commands/merge.d.ts +18 -0
- package/dist/commands/merge.js +161 -0
- package/dist/commands/publish.d.ts +27 -0
- package/dist/commands/publish.js +334 -0
- package/dist/commands/rescan.d.ts +40 -0
- package/dist/commands/rescan.js +255 -0
- package/dist/commands/update.d.ts +14 -0
- package/dist/commands/update.js +87 -0
- package/dist/commands/verify.d.ts +14 -0
- package/dist/commands/verify.js +71 -0
- package/dist/config/configurable-command.d.ts +13 -0
- package/dist/config/configurable-command.js +70 -0
- package/dist/config/mcpmake-config.d.ts +68 -0
- package/dist/config/mcpmake-config.js +207 -0
- package/dist/docs/cli.md +400 -0
- package/dist/docs/mcp-2026-07-28-migration.md +78 -0
- package/dist/docs/migrate-from-stainless.md +94 -0
- package/dist/docs/quickstart.md +166 -0
- package/dist/docs/show-hn.md +26 -0
- package/dist/docs/website-servers.md +169 -0
- package/dist/emitter/code-writer.d.ts +8 -0
- package/dist/emitter/code-writer.js +25 -0
- package/dist/emitter/index.d.ts +32 -0
- package/dist/emitter/index.js +280 -0
- package/dist/emitter/mcpb-bundler.d.ts +31 -0
- package/dist/emitter/mcpb-bundler.js +172 -0
- package/dist/emitter/project-scaffolder.d.ts +4 -0
- package/dist/emitter/project-scaffolder.js +89 -0
- package/dist/emitter/python-template-loader.d.ts +4 -0
- package/dist/emitter/python-template-loader.js +30 -0
- package/dist/emitter/python-templates/dockerfile.hbs +14 -0
- package/dist/emitter/python-templates/env.example.hbs +6 -0
- package/dist/emitter/python-templates/requirements.txt.hbs +4 -0
- package/dist/emitter/python-templates/server.py.hbs +77 -0
- package/dist/emitter/site-scaffolder.d.ts +13 -0
- package/dist/emitter/site-scaffolder.js +70 -0
- package/dist/emitter/site-template-loader.d.ts +5 -0
- package/dist/emitter/site-template-loader.js +47 -0
- package/dist/emitter/site-templates/browser-manager.ts.hbs +233 -0
- package/dist/emitter/site-templates/config.ts.hbs +28 -0
- package/dist/emitter/site-templates/dockerfile.hbs +31 -0
- package/dist/emitter/site-templates/env.example.hbs +19 -0
- package/dist/emitter/site-templates/package.json.hbs +26 -0
- package/dist/emitter/site-templates/server-main-http.ts.hbs +108 -0
- package/dist/emitter/site-templates/server-main.ts.hbs +23 -0
- package/dist/emitter/site-templates/tool-handler-action.ts.hbs +86 -0
- package/dist/emitter/site-templates/tool-handler-form.ts.hbs +116 -0
- package/dist/emitter/site-templates/tool-handler-lifecycle.ts.hbs +146 -0
- package/dist/emitter/site-templates/tool-index.ts.hbs +11 -0
- package/dist/emitter/template-loader.d.ts +1 -0
- package/dist/emitter/template-loader.js +27 -0
- package/dist/emitter/templates/auth-provider.ts.hbs +57 -0
- package/dist/emitter/templates/config.ts.hbs +63 -0
- package/dist/emitter/templates/discovery.ts.hbs +301 -0
- package/dist/emitter/templates/dockerfile.hbs +34 -0
- package/dist/emitter/templates/env.example.hbs +28 -0
- package/dist/emitter/templates/gitignore.hbs +5 -0
- package/dist/emitter/templates/http-executor.ts.hbs +117 -0
- package/dist/emitter/templates/oauth.ts.hbs +188 -0
- package/dist/emitter/templates/package.json.hbs +25 -0
- package/dist/emitter/templates/prompts.ts.hbs +22 -0
- package/dist/emitter/templates/readme.md.hbs +123 -0
- package/dist/emitter/templates/resources.ts.hbs +63 -0
- package/dist/emitter/templates/server-main-http.ts.hbs +407 -0
- package/dist/emitter/templates/server-main.ts.hbs +40 -0
- package/dist/emitter/templates/task-handlers.ts.hbs +189 -0
- package/dist/emitter/templates/task-manager.ts.hbs +139 -0
- package/dist/emitter/templates/task-sse.ts.hbs +105 -0
- package/dist/emitter/templates/tool-handler.ts.hbs +124 -0
- package/dist/emitter/templates/tool-index.ts.hbs +11 -0
- package/dist/emitter/templates/tool-test.ts.hbs +57 -0
- package/dist/emitter/templates/trace.ts.hbs +79 -0
- package/dist/emitter/templates/tsconfig.json.hbs +16 -0
- package/dist/emitter/templates/types.ts.hbs +5 -0
- package/dist/emitter/worker-template-loader.d.ts +5 -0
- package/dist/emitter/worker-template-loader.js +33 -0
- package/dist/emitter/worker-templates/config.ts.hbs +54 -0
- package/dist/emitter/worker-templates/dev-vars.example.hbs +10 -0
- package/dist/emitter/worker-templates/gitignore.hbs +6 -0
- package/dist/emitter/worker-templates/package.json.hbs +24 -0
- package/dist/emitter/worker-templates/readme.md.hbs +53 -0
- package/dist/emitter/worker-templates/server.test.ts.hbs +20 -0
- package/dist/emitter/worker-templates/tool-handler.ts.hbs +85 -0
- package/dist/emitter/worker-templates/tool-index.ts.hbs +28 -0
- package/dist/emitter/worker-templates/tsconfig.json.hbs +17 -0
- package/dist/emitter/worker-templates/worker.ts.hbs +242 -0
- package/dist/emitter/worker-templates/wrangler.toml.hbs +19 -0
- package/dist/generator/spec-generator.d.ts +6 -0
- package/dist/generator/spec-generator.js +50 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +64 -0
- package/dist/parser/har-filter.d.ts +8 -0
- package/dist/parser/har-filter.js +71 -0
- package/dist/parser/har-loader.d.ts +2 -0
- package/dist/parser/har-loader.js +14 -0
- package/dist/parser/har-normalizer.d.ts +20 -0
- package/dist/parser/har-normalizer.js +78 -0
- package/dist/parser/index.d.ts +10 -0
- package/dist/parser/index.js +6 -0
- package/dist/parser/openapi-loader.d.ts +6 -0
- package/dist/parser/openapi-loader.js +308 -0
- package/dist/parser/operation-extractor.d.ts +13 -0
- package/dist/parser/operation-extractor.js +155 -0
- package/dist/parser/overlay-loader.d.ts +10 -0
- package/dist/parser/overlay-loader.js +184 -0
- package/dist/parser/postman-loader.d.ts +9 -0
- package/dist/parser/postman-loader.js +106 -0
- package/dist/parser/schema-converter.d.ts +12 -0
- package/dist/parser/schema-converter.js +117 -0
- package/dist/plugins/adapter.d.ts +40 -0
- package/dist/plugins/adapter.js +15 -0
- package/dist/plugins/loader.d.ts +25 -0
- package/dist/plugins/loader.js +58 -0
- package/dist/pricing.d.ts +55 -0
- package/dist/pricing.js +133 -0
- package/dist/providers/index.d.ts +15 -0
- package/dist/providers/index.js +56 -0
- package/dist/recorder/browser-recorder.d.ts +22 -0
- package/dist/recorder/browser-recorder.js +205 -0
- package/dist/registry/official-registry.d.ts +90 -0
- package/dist/registry/official-registry.js +129 -0
- package/dist/rescan/diff-engine.d.ts +5 -0
- package/dist/rescan/diff-engine.js +312 -0
- package/dist/rescan/index.d.ts +3 -0
- package/dist/rescan/index.js +2 -0
- package/dist/rescan/rescan-runner.d.ts +42 -0
- package/dist/rescan/rescan-runner.js +69 -0
- package/dist/rescan/rescan-scheduler.d.ts +41 -0
- package/dist/rescan/rescan-scheduler.js +179 -0
- package/dist/site-transformer/browser-tools.d.ts +10 -0
- package/dist/site-transformer/browser-tools.js +59 -0
- package/dist/site-transformer/index.d.ts +2 -0
- package/dist/site-transformer/index.js +2 -0
- package/dist/site-transformer/selector-healer.d.ts +8 -0
- package/dist/site-transformer/selector-healer.js +106 -0
- package/dist/site-transformer/tool-generator.d.ts +13 -0
- package/dist/site-transformer/tool-generator.js +245 -0
- package/dist/transformer/auth-detector.d.ts +13 -0
- package/dist/transformer/auth-detector.js +90 -0
- package/dist/transformer/catalog-builder.d.ts +18 -0
- package/dist/transformer/catalog-builder.js +56 -0
- package/dist/transformer/client-compat.d.ts +6 -0
- package/dist/transformer/client-compat.js +44 -0
- package/dist/transformer/har-clusterer.d.ts +9 -0
- package/dist/transformer/har-clusterer.js +27 -0
- package/dist/transformer/har-dedup.d.ts +10 -0
- package/dist/transformer/har-dedup.js +81 -0
- package/dist/transformer/har-schema-inferrer.d.ts +15 -0
- package/dist/transformer/har-schema-inferrer.js +90 -0
- package/dist/transformer/har-to-operations.d.ts +13 -0
- package/dist/transformer/har-to-operations.js +192 -0
- package/dist/transformer/index.d.ts +8 -0
- package/dist/transformer/index.js +6 -0
- package/dist/transformer/llm-namer.d.ts +6 -0
- package/dist/transformer/llm-namer.js +59 -0
- package/dist/transformer/naming.d.ts +4 -0
- package/dist/transformer/naming.js +30 -0
- package/dist/transformer/operation-filter.d.ts +13 -0
- package/dist/transformer/operation-filter.js +52 -0
- package/dist/transformer/resource-builder.d.ts +12 -0
- package/dist/transformer/resource-builder.js +80 -0
- package/dist/transformer/schema-merger.d.ts +14 -0
- package/dist/transformer/schema-merger.js +65 -0
- package/dist/transformer/tool-builder.d.ts +3 -0
- package/dist/transformer/tool-builder.js +114 -0
- package/dist/types/index.d.ts +131 -0
- package/dist/types/index.js +1 -0
- package/dist/types/site.d.ts +284 -0
- package/dist/types/site.js +8 -0
- package/dist/utils/fail.d.ts +48 -0
- package/dist/utils/fail.js +204 -0
- package/dist/utils/fs.d.ts +5 -0
- package/dist/utils/fs.js +28 -0
- package/dist/utils/interactive.d.ts +6 -0
- package/dist/utils/interactive.js +30 -0
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.js +2 -0
- package/dist/utils/sanitize.d.ts +28 -0
- package/dist/utils/sanitize.js +44 -0
- package/dist/utils/watcher.d.ts +11 -0
- package/dist/utils/watcher.js +36 -0
- package/package.json +65 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<div class="dashboard-header">
|
|
2
|
+
<div class="dashboard-header-left">
|
|
3
|
+
<a href="/dashboard" class="breadcrumb-link">Servers</a>
|
|
4
|
+
<span class="breadcrumb-sep">/</span>
|
|
5
|
+
<a href="/dashboard/servers/{{server.slug}}" class="breadcrumb-link">{{server.slug}}</a>
|
|
6
|
+
<span class="breadcrumb-sep">/</span>
|
|
7
|
+
<h1>Logs</h1>
|
|
8
|
+
</div>
|
|
9
|
+
<div class="dashboard-header-actions">
|
|
10
|
+
<a href="/dashboard/servers/{{server.slug}}" class="btn btn-sm btn-secondary">Back to server</a>
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
<div class="log-viewer-wrapper">
|
|
15
|
+
<div class="log-viewer"
|
|
16
|
+
hx-ext="sse"
|
|
17
|
+
sse-connect="/api/servers/{{server.slug}}/logs"
|
|
18
|
+
sse-swap="message"
|
|
19
|
+
hx-swap="beforeend"
|
|
20
|
+
id="log-output">
|
|
21
|
+
<p class="log-connecting">Connecting to log stream...</p>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<script>
|
|
26
|
+
// Auto-scroll log viewer to bottom as new entries arrive
|
|
27
|
+
(function() {
|
|
28
|
+
const viewer = document.getElementById('log-output');
|
|
29
|
+
if (!viewer) return;
|
|
30
|
+
const observer = new MutationObserver(function() {
|
|
31
|
+
viewer.scrollTop = viewer.scrollHeight;
|
|
32
|
+
});
|
|
33
|
+
observer.observe(viewer, { childList: true, subtree: true });
|
|
34
|
+
})();
|
|
35
|
+
</script>
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<div class="dashboard-header">
|
|
2
|
+
<div class="dashboard-header-left">
|
|
3
|
+
<a href="/dashboard" class="breadcrumb-link">Servers</a>
|
|
4
|
+
<span class="breadcrumb-sep">/</span>
|
|
5
|
+
<a href="/dashboard/servers/{{server.slug}}" class="breadcrumb-link">{{server.slug}}</a>
|
|
6
|
+
<span class="breadcrumb-sep">/</span>
|
|
7
|
+
<h1>Metrics</h1>
|
|
8
|
+
</div>
|
|
9
|
+
<div class="dashboard-header-actions">
|
|
10
|
+
<a href="/dashboard/servers/{{server.slug}}" class="btn btn-sm btn-secondary">Back to server</a>
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
<div class="detail-grid">
|
|
15
|
+
<div class="detail-card">
|
|
16
|
+
<h3>Total Requests</h3>
|
|
17
|
+
<p class="detail-value detail-value-lg">{{totalRequests}}</p>
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
<div class="detail-card">
|
|
21
|
+
<h3>Last Active</h3>
|
|
22
|
+
<p class="detail-value">{{formatDate lastActiveAt}}</p>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
{{#if topTools.length}}
|
|
27
|
+
<div class="detail-section">
|
|
28
|
+
<h2>Top Tools</h2>
|
|
29
|
+
|
|
30
|
+
<div class="bar-chart">
|
|
31
|
+
{{#each topTools}}
|
|
32
|
+
<div class="bar-chart-row">
|
|
33
|
+
<span class="bar-chart-label">{{tool}}</span>
|
|
34
|
+
<div class="bar-chart-track">
|
|
35
|
+
<div class="bar" style="width: {{percentage}}%"></div>
|
|
36
|
+
</div>
|
|
37
|
+
<span class="bar-chart-value">{{calls}}</span>
|
|
38
|
+
</div>
|
|
39
|
+
{{/each}}
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<table class="metrics-table">
|
|
43
|
+
<thead>
|
|
44
|
+
<tr>
|
|
45
|
+
<th>Tool</th>
|
|
46
|
+
<th>Calls</th>
|
|
47
|
+
</tr>
|
|
48
|
+
</thead>
|
|
49
|
+
<tbody>
|
|
50
|
+
{{#each topTools}}
|
|
51
|
+
<tr>
|
|
52
|
+
<td>{{tool}}</td>
|
|
53
|
+
<td>{{calls}}</td>
|
|
54
|
+
</tr>
|
|
55
|
+
{{/each}}
|
|
56
|
+
</tbody>
|
|
57
|
+
</table>
|
|
58
|
+
</div>
|
|
59
|
+
{{else}}
|
|
60
|
+
<div class="empty-state" style="margin-top: 2rem;">
|
|
61
|
+
<p>No tool usage data recorded yet.</p>
|
|
62
|
+
</div>
|
|
63
|
+
{{/if}}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{{#if servers.length}}
|
|
2
|
+
<div class="server-grid">
|
|
3
|
+
{{#each servers}}
|
|
4
|
+
{{> server-card this}}
|
|
5
|
+
{{/each}}
|
|
6
|
+
</div>
|
|
7
|
+
{{else}}
|
|
8
|
+
<div class="empty-state">
|
|
9
|
+
<div class="empty-state-icon">
|
|
10
|
+
<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
11
|
+
<rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect>
|
|
12
|
+
<rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect>
|
|
13
|
+
<line x1="6" y1="6" x2="6.01" y2="6"></line>
|
|
14
|
+
<line x1="6" y1="18" x2="6.01" y2="18"></line>
|
|
15
|
+
</svg>
|
|
16
|
+
</div>
|
|
17
|
+
<h2>No servers yet</h2>
|
|
18
|
+
<p>Deploy your first MCP server from an OpenAPI spec or HAR file.</p>
|
|
19
|
+
<a href="/dashboard/create" class="btn btn-primary">Deploy your first server</a>
|
|
20
|
+
</div>
|
|
21
|
+
{{/if}}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{{> flash-message}}
|
|
2
|
+
|
|
3
|
+
{{#if showVerifyBanner}}
|
|
4
|
+
<div class="flash-message flash-error" role="alert" style="display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;">
|
|
5
|
+
<span><strong>Verify your email</strong> to deploy servers. We sent a link to {{user.email}}.</span>
|
|
6
|
+
<form method="POST" action="/dashboard/resend-verification" style="margin:0;">
|
|
7
|
+
<input type="hidden" name="_csrf" value="{{csrfToken}}">
|
|
8
|
+
<button type="submit" class="btn btn-sm btn-secondary">Resend link</button>
|
|
9
|
+
</form>
|
|
10
|
+
</div>
|
|
11
|
+
{{/if}}
|
|
12
|
+
|
|
13
|
+
<div class="dashboard-header">
|
|
14
|
+
<h1>Your Servers</h1>
|
|
15
|
+
<a href="/dashboard/create" class="btn btn-primary btn-sm">New Server</a>
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
<div id="server-list"
|
|
19
|
+
hx-get="/dashboard/_servers"
|
|
20
|
+
hx-trigger="every 10s"
|
|
21
|
+
hx-swap="innerHTML"
|
|
22
|
+
aria-live="polite">
|
|
23
|
+
{{#if servers.length}}
|
|
24
|
+
<div class="server-grid">
|
|
25
|
+
{{#each servers}}
|
|
26
|
+
{{> server-card this}}
|
|
27
|
+
{{/each}}
|
|
28
|
+
</div>
|
|
29
|
+
{{else}}
|
|
30
|
+
<div class="empty-state">
|
|
31
|
+
<div class="empty-state-icon" aria-hidden="true">
|
|
32
|
+
<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
33
|
+
<rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect>
|
|
34
|
+
<rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect>
|
|
35
|
+
<line x1="6" y1="6" x2="6.01" y2="6"></line>
|
|
36
|
+
<line x1="6" y1="18" x2="6.01" y2="18"></line>
|
|
37
|
+
</svg>
|
|
38
|
+
</div>
|
|
39
|
+
<h2>No servers yet</h2>
|
|
40
|
+
<p>Deploy your first MCP server from an OpenAPI spec or HAR file.</p>
|
|
41
|
+
<a href="/dashboard/create" class="btn btn-primary">Deploy your first server</a>
|
|
42
|
+
</div>
|
|
43
|
+
{{/if}}
|
|
44
|
+
</div>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<div class="docs-layout">
|
|
2
|
+
<aside class="docs-sidebar" aria-label="Documentation navigation">
|
|
3
|
+
<a href="/docs" class="docs-sidebar-home{{#if isIndex}} active{{/if}}">Overview</a>
|
|
4
|
+
{{#each docGroups}}
|
|
5
|
+
<div class="docs-sidebar-group">
|
|
6
|
+
<span class="docs-sidebar-cat">{{category}}</span>
|
|
7
|
+
{{#each items}}
|
|
8
|
+
<a href="/docs/{{slug}}" class="docs-sidebar-link{{#if active}} active{{/if}}">{{title}}</a>
|
|
9
|
+
{{/each}}
|
|
10
|
+
</div>
|
|
11
|
+
{{/each}}
|
|
12
|
+
</aside>
|
|
13
|
+
<article class="docs-content prose">
|
|
14
|
+
{{{docHtml}}}
|
|
15
|
+
</article>
|
|
16
|
+
</div>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<div class="error-page">
|
|
2
|
+
<h1>404</h1>
|
|
3
|
+
<h2>Page not found</h2>
|
|
4
|
+
<p>The page you were looking for does not exist or has been moved.</p>
|
|
5
|
+
<div class="error-actions">
|
|
6
|
+
<a href="/" class="btn btn-primary">Back to home</a>
|
|
7
|
+
<a href="/dashboard" class="btn btn-secondary">Go to dashboard</a>
|
|
8
|
+
</div>
|
|
9
|
+
</div>
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
<!-- ============================== Hero ============================== -->
|
|
2
|
+
<section class="hero" id="hero">
|
|
3
|
+
<div class="hero-inner">
|
|
4
|
+
<h1>Any API or website, as an MCP server in 30 seconds</h1>
|
|
5
|
+
<p class="hero-sub">Upload an OpenAPI spec, HAR file, or point us at any website. We generate and host the MCP server. Connect it to Claude, Cursor, or any MCP client.</p>
|
|
6
|
+
<div class="hero-ctas">
|
|
7
|
+
<a href="/register" class="btn btn-primary">Deploy free</a>
|
|
8
|
+
<a href="#how-it-works" class="btn btn-secondary">Learn more</a>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<div class="terminal">
|
|
12
|
+
<div class="terminal-titlebar">
|
|
13
|
+
<span class="terminal-dot terminal-dot--red"></span>
|
|
14
|
+
<span class="terminal-dot terminal-dot--yellow"></span>
|
|
15
|
+
<span class="terminal-dot terminal-dot--green"></span>
|
|
16
|
+
<span class="terminal-title">Terminal</span>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="terminal-body">
|
|
19
|
+
<pre><code><span class="terminal-prompt">$</span> mcpmake deploy stripe-api.yaml
|
|
20
|
+
|
|
21
|
+
<span class="terminal-muted">Building MCP server...</span>
|
|
22
|
+
<span class="terminal-success">Server running at:</span> https://stripe-api-a1b2.mcpmake.io/mcp
|
|
23
|
+
<span class="terminal-success">Bearer token:</span> mf_xxxxxxxxxxxx
|
|
24
|
+
|
|
25
|
+
<span class="terminal-muted">Claude Desktop config:</span>
|
|
26
|
+
{
|
|
27
|
+
"mcpServers": {
|
|
28
|
+
"stripe-api": {
|
|
29
|
+
"url": "https://stripe-api-a1b2.mcpmake.io/mcp",
|
|
30
|
+
"headers": { "Authorization": "Bearer mf_xxxxxxxxxxxx" }
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}</code></pre>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</section>
|
|
38
|
+
|
|
39
|
+
<!-- ========================= Social Proof ========================== -->
|
|
40
|
+
<section class="social-proof" id="social-proof">
|
|
41
|
+
<div class="social-proof-inner">
|
|
42
|
+
<div class="social-proof-stat">
|
|
43
|
+
<span class="social-proof-number">2,400+</span>
|
|
44
|
+
<span class="social-proof-label">Servers deployed</span>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="social-proof-divider"></div>
|
|
47
|
+
<div class="social-proof-stat">
|
|
48
|
+
<span class="social-proof-number">1.2M+</span>
|
|
49
|
+
<span class="social-proof-label">Tool calls served</span>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="social-proof-divider"></div>
|
|
52
|
+
<div class="social-proof-stat">
|
|
53
|
+
<span class="social-proof-number">6</span>
|
|
54
|
+
<span class="social-proof-label">Input adapters</span>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</section>
|
|
58
|
+
|
|
59
|
+
<!-- ======================== How It Works =========================== -->
|
|
60
|
+
<section class="section" id="how-it-works">
|
|
61
|
+
<h2>How it works</h2>
|
|
62
|
+
<div class="steps">
|
|
63
|
+
<div class="step">
|
|
64
|
+
<div class="step-icon" aria-hidden="true">
|
|
65
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/></svg>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="step-num">1</div>
|
|
68
|
+
<h3>Upload your spec or URL</h3>
|
|
69
|
+
<p>OpenAPI spec, HAR file, Postman collection, or just a website URL. We handle the rest.</p>
|
|
70
|
+
</div>
|
|
71
|
+
<div class="step">
|
|
72
|
+
<div class="step-icon" aria-hidden="true">
|
|
73
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg>
|
|
74
|
+
</div>
|
|
75
|
+
<div class="step-num">2</div>
|
|
76
|
+
<h3>We generate & host</h3>
|
|
77
|
+
<p>mcpmake generates a TypeScript MCP server, builds it, and deploys it instantly.</p>
|
|
78
|
+
</div>
|
|
79
|
+
<div class="step">
|
|
80
|
+
<div class="step-icon" aria-hidden="true">
|
|
81
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg>
|
|
82
|
+
</div>
|
|
83
|
+
<div class="step-num">3</div>
|
|
84
|
+
<h3>Connect to Claude</h3>
|
|
85
|
+
<p>Copy the config snippet into Claude Desktop, Cursor, or any MCP client.</p>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
</section>
|
|
89
|
+
|
|
90
|
+
<!-- ========================= Features ============================== -->
|
|
91
|
+
<section class="section section--dark" id="features">
|
|
92
|
+
<h2>Built for production</h2>
|
|
93
|
+
<div class="bento-grid">
|
|
94
|
+
<article class="bento-card">
|
|
95
|
+
<div class="bento-icon" aria-hidden="true">
|
|
96
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"/><polyline points="13 2 13 9 20 9"/></svg>
|
|
97
|
+
</div>
|
|
98
|
+
<h3>Any input format</h3>
|
|
99
|
+
<p>OpenAPI, HAR, Postman, website URL, or natural language. Works with APIs and HTML sites.</p>
|
|
100
|
+
</article>
|
|
101
|
+
<article class="bento-card">
|
|
102
|
+
<div class="bento-icon" aria-hidden="true">
|
|
103
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg>
|
|
104
|
+
</div>
|
|
105
|
+
<h3>Fully generated TypeScript</h3>
|
|
106
|
+
<p>Clean, editable code you own. Not a black box proxy. Inspect, customize, extend.</p>
|
|
107
|
+
</article>
|
|
108
|
+
<article class="bento-card">
|
|
109
|
+
<div class="bento-icon" aria-hidden="true">
|
|
110
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 2L11 13"/><polygon points="22 2 15 22 11 13 2 9 22 2"/></svg>
|
|
111
|
+
</div>
|
|
112
|
+
<h3>One-click deploy</h3>
|
|
113
|
+
<p>Upload spec, get a URL. Zero infrastructure to manage. Live in under a minute.</p>
|
|
114
|
+
</article>
|
|
115
|
+
<article class="bento-card">
|
|
116
|
+
<div class="bento-icon" aria-hidden="true">
|
|
117
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
|
|
118
|
+
</div>
|
|
119
|
+
<h3>Production hardened</h3>
|
|
120
|
+
<p>Retries, rate limiting, auth detection, structured errors. Battle-tested defaults.</p>
|
|
121
|
+
</article>
|
|
122
|
+
<article class="bento-card">
|
|
123
|
+
<div class="bento-icon" aria-hidden="true">
|
|
124
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>
|
|
125
|
+
</div>
|
|
126
|
+
<h3>Security first</h3>
|
|
127
|
+
<p>Read-only containers, non-root, capability-dropped, automated code auditing.</p>
|
|
128
|
+
</article>
|
|
129
|
+
<article class="bento-card">
|
|
130
|
+
<div class="bento-icon" aria-hidden="true">
|
|
131
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49"/><line x1="12" y1="2" x2="12" y2="6"/><line x1="12" y1="18" x2="12" y2="22"/></svg>
|
|
132
|
+
</div>
|
|
133
|
+
<h3>Full MCP compliance</h3>
|
|
134
|
+
<p>Tools, Resources, Prompts. outputSchema, annotations, sessions. The full spec.</p>
|
|
135
|
+
</article>
|
|
136
|
+
<article class="bento-card">
|
|
137
|
+
<div class="bento-icon" aria-hidden="true">
|
|
138
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"/><line x1="3" y1="9" x2="21" y2="9"/><line x1="9" y1="21" x2="9" y2="9"/></svg>
|
|
139
|
+
</div>
|
|
140
|
+
<h3>Website to MCP</h3>
|
|
141
|
+
<p>Point at any website and get site-specific tools like <code>login(email, password)</code> instead of generic <code>click(selector)</code>. Powered by Playwright.</p>
|
|
142
|
+
</article>
|
|
143
|
+
<article class="bento-card">
|
|
144
|
+
<div class="bento-icon" aria-hidden="true">
|
|
145
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>
|
|
146
|
+
</div>
|
|
147
|
+
<h3>TypeScript or Python</h3>
|
|
148
|
+
<p>Generate in your language of choice. TypeScript with Zod schemas, or Python with the mcp SDK.</p>
|
|
149
|
+
</article>
|
|
150
|
+
<article class="bento-card">
|
|
151
|
+
<div class="bento-icon" aria-hidden="true">
|
|
152
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="4" y1="21" x2="4" y2="14"/><line x1="4" y1="10" x2="4" y2="3"/><line x1="12" y1="21" x2="12" y2="12"/><line x1="12" y1="8" x2="12" y2="3"/><line x1="20" y1="21" x2="20" y2="16"/><line x1="20" y1="12" x2="20" y2="3"/></svg>
|
|
153
|
+
</div>
|
|
154
|
+
<h3>91-97% token reduction</h3>
|
|
155
|
+
<p>Dynamic discovery mode for large APIs. 4 meta-tools instead of flooding the context window with 100+ tool definitions.</p>
|
|
156
|
+
</article>
|
|
157
|
+
<article class="bento-card">
|
|
158
|
+
<div class="bento-icon" aria-hidden="true">
|
|
159
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/></svg>
|
|
160
|
+
</div>
|
|
161
|
+
<h3>One-click install</h3>
|
|
162
|
+
<p>Generate <code>.mcpb</code> bundles for instant Claude Desktop installation. No terminal required.</p>
|
|
163
|
+
</article>
|
|
164
|
+
</div>
|
|
165
|
+
</section>
|
|
166
|
+
|
|
167
|
+
<!-- ====================== Comparison =============================== -->
|
|
168
|
+
<section class="section" id="comparison">
|
|
169
|
+
<h2>Why mcpmake?</h2>
|
|
170
|
+
<div class="comparison-wrapper">
|
|
171
|
+
<table class="comparison-table">
|
|
172
|
+
<thead>
|
|
173
|
+
<tr>
|
|
174
|
+
<th>Platform</th>
|
|
175
|
+
<th>Approach</th>
|
|
176
|
+
<th>Limitation</th>
|
|
177
|
+
</tr>
|
|
178
|
+
</thead>
|
|
179
|
+
<tbody>
|
|
180
|
+
<tr>
|
|
181
|
+
<td class="comparison-name">Smithery</td>
|
|
182
|
+
<td>Registry only</td>
|
|
183
|
+
<td>Can't host your custom API</td>
|
|
184
|
+
</tr>
|
|
185
|
+
<tr>
|
|
186
|
+
<td class="comparison-name">Composio</td>
|
|
187
|
+
<td>Pre-built integrations</td>
|
|
188
|
+
<td>No bring-your-own-spec</td>
|
|
189
|
+
</tr>
|
|
190
|
+
<tr>
|
|
191
|
+
<td class="comparison-name">Speakeasy</td>
|
|
192
|
+
<td>Enterprise SDK gen</td>
|
|
193
|
+
<td>$250+/month. Enterprise only.</td>
|
|
194
|
+
</tr>
|
|
195
|
+
<tr>
|
|
196
|
+
<td class="comparison-name">Playwright MCP</td>
|
|
197
|
+
<td>Generic browser automation</td>
|
|
198
|
+
<td>AI rediscovers page structure every call</td>
|
|
199
|
+
</tr>
|
|
200
|
+
<tr class="comparison-highlight">
|
|
201
|
+
<td class="comparison-name"><strong>mcpmake</strong></td>
|
|
202
|
+
<td><strong>APIs + websites, any format</strong></td>
|
|
203
|
+
<td><strong>Free to start.</strong></td>
|
|
204
|
+
</tr>
|
|
205
|
+
</tbody>
|
|
206
|
+
</table>
|
|
207
|
+
</div>
|
|
208
|
+
</section>
|
|
209
|
+
|
|
210
|
+
<!-- ========================= Pricing =============================== -->
|
|
211
|
+
<section class="section section--dark" id="pricing">
|
|
212
|
+
<h2>Simple, transparent pricing</h2>
|
|
213
|
+
{{> pricing-table}}
|
|
214
|
+
</section>
|
|
215
|
+
|
|
216
|
+
<!-- ============================ CTA ================================ -->
|
|
217
|
+
<section class="cta-section" id="get-started">
|
|
218
|
+
<div class="cta-inner">
|
|
219
|
+
<h2>Ready to connect your API or website to AI?</h2>
|
|
220
|
+
<p class="cta-sub">Upload a spec, paste a URL, or point at any website. Running MCP server in 30 seconds. No credit card required.</p>
|
|
221
|
+
<a href="/register" class="btn btn-primary btn-lg">Deploy free</a>
|
|
222
|
+
</div>
|
|
223
|
+
</section>
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{{!--
|
|
2
|
+
Privacy Policy. Plain boilerplate suitable for launch — have a lawyer review
|
|
3
|
+
before relying on it for anything material.
|
|
4
|
+
--}}
|
|
5
|
+
<article class="legal-page" style="max-width: 760px; margin: 0 auto; padding: 2rem 1.25rem; line-height: 1.65;">
|
|
6
|
+
<h1>Privacy Policy</h1>
|
|
7
|
+
<p class="form-hint">Last updated: June 2026</p>
|
|
8
|
+
|
|
9
|
+
<p>This Privacy Policy explains what information mcpmake ("we", "us") collects, how we
|
|
10
|
+
use it, and your choices. It applies to the mcpmake hosting service (the "Service").</p>
|
|
11
|
+
|
|
12
|
+
<h2>1. Information we collect</h2>
|
|
13
|
+
<ul>
|
|
14
|
+
<li><strong>Account data:</strong> your email address, a hashed password, and your
|
|
15
|
+
plan. Passwords are stored only as salted scrypt hashes.</li>
|
|
16
|
+
<li><strong>Content you provide:</strong> API specifications, recordings, website
|
|
17
|
+
URLs, and API credentials ("secrets") you upload to generate and run servers.
|
|
18
|
+
Secrets are encrypted at rest.</li>
|
|
19
|
+
<li><strong>Usage data:</strong> request and tool-call counts, timestamps, and
|
|
20
|
+
server metadata used for metering, quotas, and abuse prevention.</li>
|
|
21
|
+
<li><strong>Payment data:</strong> handled by our payment processor, Stripe. We do
|
|
22
|
+
not store full card numbers; we store a Stripe customer identifier to manage your
|
|
23
|
+
subscription.</li>
|
|
24
|
+
<li><strong>Technical data:</strong> IP address and request logs, used for security,
|
|
25
|
+
rate limiting, and debugging.</li>
|
|
26
|
+
</ul>
|
|
27
|
+
|
|
28
|
+
<h2>2. How we use information</h2>
|
|
29
|
+
<p>We use your information to provide and operate the Service, authenticate you, meter
|
|
30
|
+
usage and enforce quotas, process payments, send transactional email (verification and
|
|
31
|
+
password reset), prevent abuse, and comply with legal obligations.</p>
|
|
32
|
+
|
|
33
|
+
<h2>3. Cookies and sessions</h2>
|
|
34
|
+
<p>We use a single first-party, HttpOnly session cookie to keep you signed in and to
|
|
35
|
+
protect against cross-site request forgery. We do not use third-party advertising or
|
|
36
|
+
tracking cookies.</p>
|
|
37
|
+
|
|
38
|
+
<h2>4. Sharing</h2>
|
|
39
|
+
<p>We share information only with service providers that help us run the Service —
|
|
40
|
+
notably Stripe (payments), our hosting/infrastructure provider, and, if you configure
|
|
41
|
+
one, your email (SMTP) provider. We do not sell your personal information. We may
|
|
42
|
+
disclose information if required by law or to protect our rights and users.</p>
|
|
43
|
+
|
|
44
|
+
<h2>5. The servers you deploy</h2>
|
|
45
|
+
<p>Servers you create make outbound requests to the third-party APIs or websites you
|
|
46
|
+
target, using the credentials you supply. Those third parties have their own privacy
|
|
47
|
+
practices, which we do not control.</p>
|
|
48
|
+
|
|
49
|
+
<h2>6. Data retention and deletion</h2>
|
|
50
|
+
<p>We retain account and usage data while your account is active and as needed for
|
|
51
|
+
billing, security, and legal compliance. You can delete your servers and secrets at any
|
|
52
|
+
time from the dashboard. To delete your account and associated data, contact us.</p>
|
|
53
|
+
|
|
54
|
+
<h2>7. Security</h2>
|
|
55
|
+
<p>We use encryption for stored secrets, hashed credentials, network isolation for
|
|
56
|
+
tenant containers, and access controls. No system is perfectly secure, but we work to
|
|
57
|
+
protect your data and to limit what each component can access.</p>
|
|
58
|
+
|
|
59
|
+
<h2>8. International users</h2>
|
|
60
|
+
<p>We may process and store data in countries other than your own. By using the Service
|
|
61
|
+
you consent to such processing consistent with this Policy.</p>
|
|
62
|
+
|
|
63
|
+
<h2>9. Changes</h2>
|
|
64
|
+
<p>We may update this Policy from time to time. Material changes will be posted here
|
|
65
|
+
with an updated date.</p>
|
|
66
|
+
|
|
67
|
+
<h2>10. Contact</h2>
|
|
68
|
+
<p>Privacy questions or data requests: <a href="mailto:support@mcpmake.dev">support@mcpmake.dev</a>.</p>
|
|
69
|
+
|
|
70
|
+
<p style="margin-top: 2rem;"><a href="/">← Back to home</a></p>
|
|
71
|
+
</article>
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{{!--
|
|
2
|
+
Terms of Service. Plain boilerplate suitable for launch — have a lawyer
|
|
3
|
+
review before relying on it for anything material.
|
|
4
|
+
--}}
|
|
5
|
+
<article class="legal-page" style="max-width: 760px; margin: 0 auto; padding: 2rem 1.25rem; line-height: 1.65;">
|
|
6
|
+
<h1>Terms of Service</h1>
|
|
7
|
+
<p class="form-hint">Last updated: June 2026</p>
|
|
8
|
+
|
|
9
|
+
<p>These Terms of Service ("Terms") govern your access to and use of the mcpmake
|
|
10
|
+
hosting service (the "Service") operated by mcpmake ("we", "us"). By creating an
|
|
11
|
+
account or using the Service you agree to these Terms. If you do not agree, do not
|
|
12
|
+
use the Service.</p>
|
|
13
|
+
|
|
14
|
+
<h2>1. The Service</h2>
|
|
15
|
+
<p>mcpmake generates and hosts Model Context Protocol (MCP) servers from API
|
|
16
|
+
specifications, recordings, or websites you provide. We host the generated servers
|
|
17
|
+
on subdomains of our domain and expose them to MCP clients you authorize.</p>
|
|
18
|
+
|
|
19
|
+
<h2>2. Accounts</h2>
|
|
20
|
+
<p>You must provide a valid email address and verify it before deploying servers.
|
|
21
|
+
You are responsible for keeping your password and bearer tokens confidential and for
|
|
22
|
+
all activity under your account. Notify us promptly of any unauthorized use.</p>
|
|
23
|
+
|
|
24
|
+
<h2>3. Acceptable use</h2>
|
|
25
|
+
<p>You agree not to use the Service to: (a) violate any law or third-party right;
|
|
26
|
+
(b) generate servers that target APIs or websites you are not authorized to access;
|
|
27
|
+
(c) attempt to gain unauthorized access to our systems, other tenants, or
|
|
28
|
+
infrastructure; (d) run cryptocurrency miners, send spam, or distribute malware;
|
|
29
|
+
(e) exceed or circumvent the resource, request, or rate limits of your plan. We may
|
|
30
|
+
suspend or terminate accounts that violate this section.</p>
|
|
31
|
+
|
|
32
|
+
<h2>4. Your content and credentials</h2>
|
|
33
|
+
<p>You retain ownership of the specifications, recordings, and API credentials you
|
|
34
|
+
upload ("Your Content"). You grant us a limited license to process and host Your
|
|
35
|
+
Content solely to provide the Service. API secrets you store are encrypted at rest.
|
|
36
|
+
You are responsible for ensuring you have the right to use any credentials you
|
|
37
|
+
provide and for the behavior of the servers you deploy.</p>
|
|
38
|
+
|
|
39
|
+
<h2>5. Plans, billing, and refunds</h2>
|
|
40
|
+
<p>Paid plans are billed in advance on a recurring monthly basis through our payment
|
|
41
|
+
processor, Stripe. Prices and plan limits are shown on our pricing page and may
|
|
42
|
+
change with notice. Usage above your plan's included limits may be billed as
|
|
43
|
+
overage or may be blocked, depending on your plan.</p>
|
|
44
|
+
<p>You may cancel at any time from your billing portal; cancellation takes effect at
|
|
45
|
+
the end of the current billing period and you retain access until then. Except where
|
|
46
|
+
required by law, payments are non-refundable, but if you believe you were charged in
|
|
47
|
+
error, contact us within 30 days and we will review the charge in good faith.</p>
|
|
48
|
+
|
|
49
|
+
<h2>6. Service availability</h2>
|
|
50
|
+
<p>We aim for high availability but do not guarantee uninterrupted service. We may
|
|
51
|
+
modify, suspend, or discontinue parts of the Service, and may stop idle containers to
|
|
52
|
+
conserve resources; they restart on the next authorized request.</p>
|
|
53
|
+
|
|
54
|
+
<h2>7. Termination</h2>
|
|
55
|
+
<p>You may stop using the Service and delete your servers at any time. We may suspend
|
|
56
|
+
or terminate your access for violation of these Terms or to comply with law. On
|
|
57
|
+
termination we may delete your servers and associated data.</p>
|
|
58
|
+
|
|
59
|
+
<h2>8. Disclaimers and limitation of liability</h2>
|
|
60
|
+
<p>The Service is provided "as is" without warranties of any kind. To the maximum
|
|
61
|
+
extent permitted by law, we are not liable for indirect, incidental, or consequential
|
|
62
|
+
damages, and our total liability for any claim is limited to the amount you paid us in
|
|
63
|
+
the three months preceding the claim.</p>
|
|
64
|
+
|
|
65
|
+
<h2>9. Changes</h2>
|
|
66
|
+
<p>We may update these Terms from time to time. Material changes will be posted here
|
|
67
|
+
with an updated date. Continued use after changes constitutes acceptance.</p>
|
|
68
|
+
|
|
69
|
+
<h2>10. Contact</h2>
|
|
70
|
+
<p>Questions about these Terms: <a href="mailto:support@mcpmake.dev">support@mcpmake.dev</a>.</p>
|
|
71
|
+
|
|
72
|
+
<p style="margin-top: 2rem;"><a href="/">← Back to home</a></p>
|
|
73
|
+
</article>
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<div class="admin-stats">
|
|
2
|
+
<div class="stat-card">
|
|
3
|
+
<span class="stat-card-value">{{stats.totalServers}}</span>
|
|
4
|
+
<span class="stat-card-label">Total Servers</span>
|
|
5
|
+
</div>
|
|
6
|
+
<div class="stat-card">
|
|
7
|
+
<span class="stat-card-value status-green">{{stats.runningServers}}</span>
|
|
8
|
+
<span class="stat-card-label">Running</span>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="stat-card">
|
|
11
|
+
<span class="stat-card-value">{{stats.totalUsers}}</span>
|
|
12
|
+
<span class="stat-card-label">Total Users</span>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="stat-card">
|
|
15
|
+
<span class="stat-card-value">{{stats.portsAllocated}}</span>
|
|
16
|
+
<span class="stat-card-label">Ports Allocated</span>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
<div class="system-info">
|
|
21
|
+
<h2>System Info</h2>
|
|
22
|
+
<dl class="system-info-list">
|
|
23
|
+
<div class="system-info-row">
|
|
24
|
+
<dt>Memory (RSS)</dt>
|
|
25
|
+
<dd>{{systemInfo.memoryRss}} MB</dd>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="system-info-row">
|
|
28
|
+
<dt>Memory (Heap Used)</dt>
|
|
29
|
+
<dd>{{systemInfo.memoryHeapUsed}} MB</dd>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="system-info-row">
|
|
32
|
+
<dt>Uptime</dt>
|
|
33
|
+
<dd>{{systemInfo.uptime}}</dd>
|
|
34
|
+
</div>
|
|
35
|
+
<div class="system-info-row">
|
|
36
|
+
<dt>Node.js</dt>
|
|
37
|
+
<dd>{{systemInfo.nodeVersion}}</dd>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="system-info-row">
|
|
40
|
+
<dt>Platform</dt>
|
|
41
|
+
<dd>{{systemInfo.platform}}</dd>
|
|
42
|
+
</div>
|
|
43
|
+
<div class="system-info-row">
|
|
44
|
+
<dt>Total System Memory</dt>
|
|
45
|
+
<dd>{{systemInfo.totalMem}} MB</dd>
|
|
46
|
+
</div>
|
|
47
|
+
<div class="system-info-row">
|
|
48
|
+
<dt>Free System Memory</dt>
|
|
49
|
+
<dd>{{systemInfo.freeMem}} MB</dd>
|
|
50
|
+
</div>
|
|
51
|
+
</dl>
|
|
52
|
+
</div>
|