mcpmake 0.1.1 → 0.2.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.
Files changed (385) hide show
  1. package/README.md +88 -635
  2. package/dist/commands/bundle.d.ts +1 -0
  3. package/dist/commands/bundle.d.ts.map +1 -0
  4. package/dist/commands/bundle.js +5 -4
  5. package/dist/commands/bundle.js.map +1 -0
  6. package/dist/commands/ci.d.ts +1 -0
  7. package/dist/commands/ci.d.ts.map +1 -0
  8. package/dist/commands/ci.js +3 -2
  9. package/dist/commands/ci.js.map +1 -0
  10. package/dist/commands/deploy.d.ts +1 -0
  11. package/dist/commands/deploy.d.ts.map +1 -0
  12. package/dist/commands/deploy.js +4 -3
  13. package/dist/commands/deploy.js.map +1 -0
  14. package/dist/commands/diff.d.ts +1 -0
  15. package/dist/commands/diff.d.ts.map +1 -0
  16. package/dist/commands/diff.js +5 -4
  17. package/dist/commands/diff.js.map +1 -0
  18. package/dist/commands/from/describe.d.ts +1 -0
  19. package/dist/commands/from/describe.d.ts.map +1 -0
  20. package/dist/commands/from/describe.js +11 -10
  21. package/dist/commands/from/describe.js.map +1 -0
  22. package/dist/commands/from/har.d.ts +1 -0
  23. package/dist/commands/from/har.d.ts.map +1 -0
  24. package/dist/commands/from/har.js +14 -13
  25. package/dist/commands/from/har.js.map +1 -0
  26. package/dist/commands/from/openapi.d.ts +1 -0
  27. package/dist/commands/from/openapi.d.ts.map +1 -0
  28. package/dist/commands/from/openapi.js +17 -16
  29. package/dist/commands/from/openapi.js.map +1 -0
  30. package/dist/commands/from/postman.d.ts +1 -0
  31. package/dist/commands/from/postman.d.ts.map +1 -0
  32. package/dist/commands/from/postman.js +13 -12
  33. package/dist/commands/from/postman.js.map +1 -0
  34. package/dist/commands/from/stainless.d.ts +110 -0
  35. package/dist/commands/from/stainless.d.ts.map +1 -0
  36. package/dist/commands/from/stainless.js +272 -0
  37. package/dist/commands/from/stainless.js.map +1 -0
  38. package/dist/commands/from/target-support.d.ts +1 -0
  39. package/dist/commands/from/target-support.d.ts.map +1 -0
  40. package/dist/commands/from/target-support.js +2 -1
  41. package/dist/commands/from/target-support.js.map +1 -0
  42. package/dist/commands/from/url.d.ts +1 -0
  43. package/dist/commands/from/url.d.ts.map +1 -0
  44. package/dist/commands/from/url.js +14 -13
  45. package/dist/commands/from/url.js.map +1 -0
  46. package/dist/commands/from/website.d.ts +1 -0
  47. package/dist/commands/from/website.d.ts.map +1 -0
  48. package/dist/commands/from/website.js +17 -16
  49. package/dist/commands/from/website.js.map +1 -0
  50. package/dist/commands/lint.d.ts +1 -0
  51. package/dist/commands/lint.d.ts.map +1 -0
  52. package/dist/commands/lint.js +6 -5
  53. package/dist/commands/lint.js.map +1 -0
  54. package/dist/commands/merge.d.ts +1 -0
  55. package/dist/commands/merge.d.ts.map +1 -0
  56. package/dist/commands/merge.js +3 -2
  57. package/dist/commands/merge.js.map +1 -0
  58. package/dist/commands/publish.d.ts +1 -0
  59. package/dist/commands/publish.d.ts.map +1 -0
  60. package/dist/commands/publish.js +4 -3
  61. package/dist/commands/publish.js.map +1 -0
  62. package/dist/commands/rescan.d.ts +1 -0
  63. package/dist/commands/rescan.d.ts.map +1 -0
  64. package/dist/commands/rescan.js +12 -11
  65. package/dist/commands/rescan.js.map +1 -0
  66. package/dist/commands/update.d.ts +1 -0
  67. package/dist/commands/update.d.ts.map +1 -0
  68. package/dist/commands/update.js +10 -9
  69. package/dist/commands/update.js.map +1 -0
  70. package/dist/commands/verify.d.ts +1 -0
  71. package/dist/commands/verify.d.ts.map +1 -0
  72. package/dist/commands/verify.js +7 -6
  73. package/dist/commands/verify.js.map +1 -0
  74. package/dist/index.d.ts +1 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +23 -2
  77. package/dist/index.js.map +1 -0
  78. package/dist/registry/official-registry.d.ts +1 -0
  79. package/dist/registry/official-registry.d.ts.map +1 -0
  80. package/dist/registry/official-registry.js +1 -0
  81. package/dist/registry/official-registry.js.map +1 -0
  82. package/package.json +20 -46
  83. package/dist/analyzer/auth-detector.d.ts +0 -12
  84. package/dist/analyzer/auth-detector.js +0 -142
  85. package/dist/analyzer/dom-parser.d.ts +0 -10
  86. package/dist/analyzer/dom-parser.js +0 -259
  87. package/dist/analyzer/goal-crawler.d.ts +0 -25
  88. package/dist/analyzer/goal-crawler.js +0 -177
  89. package/dist/analyzer/hybrid-detector.d.ts +0 -28
  90. package/dist/analyzer/hybrid-detector.js +0 -96
  91. package/dist/analyzer/index.d.ts +0 -12
  92. package/dist/analyzer/index.js +0 -8
  93. package/dist/analyzer/screenshot-capture.d.ts +0 -29
  94. package/dist/analyzer/screenshot-capture.js +0 -42
  95. package/dist/analyzer/selector-builder.d.ts +0 -19
  96. package/dist/analyzer/selector-builder.js +0 -199
  97. package/dist/analyzer/semantic-analyzer.d.ts +0 -13
  98. package/dist/analyzer/semantic-analyzer.js +0 -145
  99. package/dist/analyzer/site-crawler.d.ts +0 -38
  100. package/dist/analyzer/site-crawler.js +0 -235
  101. package/dist/cloud/billing/billing-engine.d.ts +0 -44
  102. package/dist/cloud/billing/billing-engine.js +0 -81
  103. package/dist/cloud/billing/credit-store.d.ts +0 -64
  104. package/dist/cloud/billing/credit-store.js +0 -168
  105. package/dist/cloud/billing/index.d.ts +0 -4
  106. package/dist/cloud/billing/index.js +0 -2
  107. package/dist/cloud/billing/usage-store.d.ts +0 -42
  108. package/dist/cloud/billing/usage-store.js +0 -85
  109. package/dist/cloud/billing/usage-tracker.d.ts +0 -38
  110. package/dist/cloud/billing/usage-tracker.js +0 -95
  111. package/dist/cloud/build-pipeline.d.ts +0 -39
  112. package/dist/cloud/build-pipeline.js +0 -310
  113. package/dist/cloud/build-queue.d.ts +0 -30
  114. package/dist/cloud/build-queue.js +0 -70
  115. package/dist/cloud/caddy-manager.d.ts +0 -18
  116. package/dist/cloud/caddy-manager.js +0 -97
  117. package/dist/cloud/container-backend.d.ts +0 -62
  118. package/dist/cloud/container-backend.js +0 -59
  119. package/dist/cloud/container-manager.d.ts +0 -64
  120. package/dist/cloud/container-manager.js +0 -301
  121. package/dist/cloud/crypto.d.ts +0 -27
  122. package/dist/cloud/crypto.js +0 -63
  123. package/dist/cloud/db/index.d.ts +0 -27
  124. package/dist/cloud/db/index.js +0 -53
  125. package/dist/cloud/db/migrations.d.ts +0 -12
  126. package/dist/cloud/db/migrations.js +0 -329
  127. package/dist/cloud/db/pg-store.d.ts +0 -45
  128. package/dist/cloud/db/pg-store.js +0 -336
  129. package/dist/cloud/failure-tracker.d.ts +0 -51
  130. package/dist/cloud/failure-tracker.js +0 -102
  131. package/dist/cloud/idle-monitor.d.ts +0 -30
  132. package/dist/cloud/idle-monitor.js +0 -70
  133. package/dist/cloud/mailer.d.ts +0 -21
  134. package/dist/cloud/mailer.js +0 -193
  135. package/dist/cloud/mcp-proxy.d.ts +0 -58
  136. package/dist/cloud/mcp-proxy.js +0 -203
  137. package/dist/cloud/metric-samples.d.ts +0 -43
  138. package/dist/cloud/metric-samples.js +0 -85
  139. package/dist/cloud/metrics.d.ts +0 -26
  140. package/dist/cloud/metrics.js +0 -59
  141. package/dist/cloud/multipart.d.ts +0 -26
  142. package/dist/cloud/multipart.js +0 -132
  143. package/dist/cloud/observability.d.ts +0 -27
  144. package/dist/cloud/observability.js +0 -98
  145. package/dist/cloud/rate-limiter.d.ts +0 -31
  146. package/dist/cloud/rate-limiter.js +0 -58
  147. package/dist/cloud/request-security.d.ts +0 -5
  148. package/dist/cloud/request-security.js +0 -74
  149. package/dist/cloud/resource-monitor.d.ts +0 -69
  150. package/dist/cloud/resource-monitor.js +0 -130
  151. package/dist/cloud/secret-store.d.ts +0 -38
  152. package/dist/cloud/secret-store.js +0 -103
  153. package/dist/cloud/security.d.ts +0 -26
  154. package/dist/cloud/security.js +0 -142
  155. package/dist/cloud/server.d.ts +0 -21
  156. package/dist/cloud/server.js +0 -1079
  157. package/dist/cloud/shared-state.d.ts +0 -72
  158. package/dist/cloud/shared-state.js +0 -159
  159. package/dist/cloud/ssrf.d.ts +0 -43
  160. package/dist/cloud/ssrf.js +0 -150
  161. package/dist/cloud/store.d.ts +0 -41
  162. package/dist/cloud/store.js +0 -75
  163. package/dist/cloud/stripe.d.ts +0 -78
  164. package/dist/cloud/stripe.js +0 -317
  165. package/dist/cloud/telemetry-store.d.ts +0 -53
  166. package/dist/cloud/telemetry-store.js +0 -108
  167. package/dist/cloud/web/auth.d.ts +0 -225
  168. package/dist/cloud/web/auth.js +0 -555
  169. package/dist/cloud/web/charts.d.ts +0 -70
  170. package/dist/cloud/web/charts.js +0 -178
  171. package/dist/cloud/web/csrf.d.ts +0 -14
  172. package/dist/cloud/web/csrf.js +0 -22
  173. package/dist/cloud/web/docs.d.ts +0 -40
  174. package/dist/cloud/web/docs.js +0 -174
  175. package/dist/cloud/web/router.d.ts +0 -25
  176. package/dist/cloud/web/router.js +0 -1921
  177. package/dist/cloud/web/static/alpine.min.js +0 -5
  178. package/dist/cloud/web/static/favicon.svg +0 -4
  179. package/dist/cloud/web/static/htmx-sse.js +0 -290
  180. package/dist/cloud/web/static/htmx.min.js +0 -1
  181. package/dist/cloud/web/static/style.css +0 -2683
  182. package/dist/cloud/web/static-server.d.ts +0 -13
  183. package/dist/cloud/web/static-server.js +0 -73
  184. package/dist/cloud/web/template-engine.d.ts +0 -27
  185. package/dist/cloud/web/template-engine.js +0 -146
  186. package/dist/cloud/web/templates/layouts/admin.hbs +0 -57
  187. package/dist/cloud/web/templates/layouts/auth.hbs +0 -138
  188. package/dist/cloud/web/templates/layouts/base.hbs +0 -16
  189. package/dist/cloud/web/templates/layouts/dashboard.hbs +0 -39
  190. package/dist/cloud/web/templates/layouts/landing.hbs +0 -82
  191. package/dist/cloud/web/templates/pages/admin/overview.hbs +0 -123
  192. package/dist/cloud/web/templates/pages/admin/servers.hbs +0 -129
  193. package/dist/cloud/web/templates/pages/admin/telemetry.hbs +0 -39
  194. package/dist/cloud/web/templates/pages/admin/user-edit.hbs +0 -91
  195. package/dist/cloud/web/templates/pages/admin/users.hbs +0 -179
  196. package/dist/cloud/web/templates/pages/auth/forgot-password.hbs +0 -25
  197. package/dist/cloud/web/templates/pages/auth/login.hbs +0 -33
  198. package/dist/cloud/web/templates/pages/auth/register.hbs +0 -32
  199. package/dist/cloud/web/templates/pages/auth/reset-password.hbs +0 -34
  200. package/dist/cloud/web/templates/pages/dashboard/billing.hbs +0 -140
  201. package/dist/cloud/web/templates/pages/dashboard/create.hbs +0 -173
  202. package/dist/cloud/web/templates/pages/dashboard/index.hbs +0 -8
  203. package/dist/cloud/web/templates/pages/dashboard/server-detail.hbs +0 -280
  204. package/dist/cloud/web/templates/pages/dashboard/server-logs.hbs +0 -35
  205. package/dist/cloud/web/templates/pages/dashboard/server-metrics.hbs +0 -63
  206. package/dist/cloud/web/templates/pages/dashboard/servers-partial.hbs +0 -21
  207. package/dist/cloud/web/templates/pages/dashboard/servers.hbs +0 -44
  208. package/dist/cloud/web/templates/pages/docs/show.hbs +0 -16
  209. package/dist/cloud/web/templates/pages/errors/404.hbs +0 -9
  210. package/dist/cloud/web/templates/pages/errors/500.hbs +0 -8
  211. package/dist/cloud/web/templates/pages/landing/index.hbs +0 -223
  212. package/dist/cloud/web/templates/pages/legal/privacy.hbs +0 -71
  213. package/dist/cloud/web/templates/pages/legal/terms.hbs +0 -73
  214. package/dist/cloud/web/templates/partials/admin-stats.hbs +0 -52
  215. package/dist/cloud/web/templates/partials/flash-message.hbs +0 -6
  216. package/dist/cloud/web/templates/partials/pricing-table.hbs +0 -103
  217. package/dist/cloud/web/templates/partials/server-card.hbs +0 -19
  218. package/dist/cloud/web/templates/partials/status-badge.hbs +0 -1
  219. package/dist/config/configurable-command.d.ts +0 -13
  220. package/dist/config/configurable-command.js +0 -70
  221. package/dist/config/mcpmake-config.d.ts +0 -68
  222. package/dist/config/mcpmake-config.js +0 -207
  223. package/dist/docs/cli.md +0 -400
  224. package/dist/docs/mcp-2026-07-28-migration.md +0 -78
  225. package/dist/docs/migrate-from-stainless.md +0 -94
  226. package/dist/docs/quickstart.md +0 -166
  227. package/dist/docs/show-hn.md +0 -26
  228. package/dist/docs/website-servers.md +0 -169
  229. package/dist/emitter/code-writer.d.ts +0 -8
  230. package/dist/emitter/code-writer.js +0 -25
  231. package/dist/emitter/index.d.ts +0 -32
  232. package/dist/emitter/index.js +0 -280
  233. package/dist/emitter/mcpb-bundler.d.ts +0 -31
  234. package/dist/emitter/mcpb-bundler.js +0 -172
  235. package/dist/emitter/project-scaffolder.d.ts +0 -4
  236. package/dist/emitter/project-scaffolder.js +0 -89
  237. package/dist/emitter/python-template-loader.d.ts +0 -4
  238. package/dist/emitter/python-template-loader.js +0 -30
  239. package/dist/emitter/python-templates/dockerfile.hbs +0 -14
  240. package/dist/emitter/python-templates/env.example.hbs +0 -6
  241. package/dist/emitter/python-templates/requirements.txt.hbs +0 -4
  242. package/dist/emitter/python-templates/server.py.hbs +0 -77
  243. package/dist/emitter/site-scaffolder.d.ts +0 -13
  244. package/dist/emitter/site-scaffolder.js +0 -70
  245. package/dist/emitter/site-template-loader.d.ts +0 -5
  246. package/dist/emitter/site-template-loader.js +0 -47
  247. package/dist/emitter/site-templates/browser-manager.ts.hbs +0 -233
  248. package/dist/emitter/site-templates/config.ts.hbs +0 -28
  249. package/dist/emitter/site-templates/dockerfile.hbs +0 -31
  250. package/dist/emitter/site-templates/env.example.hbs +0 -19
  251. package/dist/emitter/site-templates/package.json.hbs +0 -26
  252. package/dist/emitter/site-templates/server-main-http.ts.hbs +0 -108
  253. package/dist/emitter/site-templates/server-main.ts.hbs +0 -23
  254. package/dist/emitter/site-templates/tool-handler-action.ts.hbs +0 -86
  255. package/dist/emitter/site-templates/tool-handler-form.ts.hbs +0 -116
  256. package/dist/emitter/site-templates/tool-handler-lifecycle.ts.hbs +0 -146
  257. package/dist/emitter/site-templates/tool-index.ts.hbs +0 -11
  258. package/dist/emitter/template-loader.d.ts +0 -1
  259. package/dist/emitter/template-loader.js +0 -27
  260. package/dist/emitter/templates/auth-provider.ts.hbs +0 -57
  261. package/dist/emitter/templates/config.ts.hbs +0 -63
  262. package/dist/emitter/templates/discovery.ts.hbs +0 -301
  263. package/dist/emitter/templates/dockerfile.hbs +0 -34
  264. package/dist/emitter/templates/env.example.hbs +0 -28
  265. package/dist/emitter/templates/gitignore.hbs +0 -5
  266. package/dist/emitter/templates/http-executor.ts.hbs +0 -117
  267. package/dist/emitter/templates/oauth.ts.hbs +0 -188
  268. package/dist/emitter/templates/package.json.hbs +0 -25
  269. package/dist/emitter/templates/prompts.ts.hbs +0 -22
  270. package/dist/emitter/templates/readme.md.hbs +0 -123
  271. package/dist/emitter/templates/resources.ts.hbs +0 -63
  272. package/dist/emitter/templates/server-main-http.ts.hbs +0 -407
  273. package/dist/emitter/templates/server-main.ts.hbs +0 -40
  274. package/dist/emitter/templates/task-handlers.ts.hbs +0 -189
  275. package/dist/emitter/templates/task-manager.ts.hbs +0 -139
  276. package/dist/emitter/templates/task-sse.ts.hbs +0 -105
  277. package/dist/emitter/templates/tool-handler.ts.hbs +0 -124
  278. package/dist/emitter/templates/tool-index.ts.hbs +0 -11
  279. package/dist/emitter/templates/tool-test.ts.hbs +0 -57
  280. package/dist/emitter/templates/trace.ts.hbs +0 -79
  281. package/dist/emitter/templates/tsconfig.json.hbs +0 -16
  282. package/dist/emitter/templates/types.ts.hbs +0 -5
  283. package/dist/emitter/worker-template-loader.d.ts +0 -5
  284. package/dist/emitter/worker-template-loader.js +0 -33
  285. package/dist/emitter/worker-templates/config.ts.hbs +0 -54
  286. package/dist/emitter/worker-templates/dev-vars.example.hbs +0 -10
  287. package/dist/emitter/worker-templates/gitignore.hbs +0 -6
  288. package/dist/emitter/worker-templates/package.json.hbs +0 -24
  289. package/dist/emitter/worker-templates/readme.md.hbs +0 -53
  290. package/dist/emitter/worker-templates/server.test.ts.hbs +0 -20
  291. package/dist/emitter/worker-templates/tool-handler.ts.hbs +0 -85
  292. package/dist/emitter/worker-templates/tool-index.ts.hbs +0 -28
  293. package/dist/emitter/worker-templates/tsconfig.json.hbs +0 -17
  294. package/dist/emitter/worker-templates/worker.ts.hbs +0 -242
  295. package/dist/emitter/worker-templates/wrangler.toml.hbs +0 -19
  296. package/dist/generator/spec-generator.d.ts +0 -6
  297. package/dist/generator/spec-generator.js +0 -50
  298. package/dist/parser/har-filter.d.ts +0 -8
  299. package/dist/parser/har-filter.js +0 -71
  300. package/dist/parser/har-loader.d.ts +0 -2
  301. package/dist/parser/har-loader.js +0 -14
  302. package/dist/parser/har-normalizer.d.ts +0 -20
  303. package/dist/parser/har-normalizer.js +0 -78
  304. package/dist/parser/index.d.ts +0 -10
  305. package/dist/parser/index.js +0 -6
  306. package/dist/parser/openapi-loader.d.ts +0 -6
  307. package/dist/parser/openapi-loader.js +0 -308
  308. package/dist/parser/operation-extractor.d.ts +0 -13
  309. package/dist/parser/operation-extractor.js +0 -155
  310. package/dist/parser/overlay-loader.d.ts +0 -10
  311. package/dist/parser/overlay-loader.js +0 -184
  312. package/dist/parser/postman-loader.d.ts +0 -9
  313. package/dist/parser/postman-loader.js +0 -106
  314. package/dist/parser/schema-converter.d.ts +0 -12
  315. package/dist/parser/schema-converter.js +0 -117
  316. package/dist/plugins/adapter.d.ts +0 -40
  317. package/dist/plugins/adapter.js +0 -15
  318. package/dist/plugins/loader.d.ts +0 -25
  319. package/dist/plugins/loader.js +0 -58
  320. package/dist/pricing.d.ts +0 -55
  321. package/dist/pricing.js +0 -133
  322. package/dist/providers/index.d.ts +0 -15
  323. package/dist/providers/index.js +0 -56
  324. package/dist/recorder/browser-recorder.d.ts +0 -22
  325. package/dist/recorder/browser-recorder.js +0 -205
  326. package/dist/rescan/diff-engine.d.ts +0 -5
  327. package/dist/rescan/diff-engine.js +0 -312
  328. package/dist/rescan/index.d.ts +0 -3
  329. package/dist/rescan/index.js +0 -2
  330. package/dist/rescan/rescan-runner.d.ts +0 -42
  331. package/dist/rescan/rescan-runner.js +0 -69
  332. package/dist/rescan/rescan-scheduler.d.ts +0 -41
  333. package/dist/rescan/rescan-scheduler.js +0 -179
  334. package/dist/site-transformer/browser-tools.d.ts +0 -10
  335. package/dist/site-transformer/browser-tools.js +0 -59
  336. package/dist/site-transformer/index.d.ts +0 -2
  337. package/dist/site-transformer/index.js +0 -2
  338. package/dist/site-transformer/selector-healer.d.ts +0 -8
  339. package/dist/site-transformer/selector-healer.js +0 -106
  340. package/dist/site-transformer/tool-generator.d.ts +0 -13
  341. package/dist/site-transformer/tool-generator.js +0 -245
  342. package/dist/transformer/auth-detector.d.ts +0 -13
  343. package/dist/transformer/auth-detector.js +0 -90
  344. package/dist/transformer/catalog-builder.d.ts +0 -18
  345. package/dist/transformer/catalog-builder.js +0 -56
  346. package/dist/transformer/client-compat.d.ts +0 -6
  347. package/dist/transformer/client-compat.js +0 -44
  348. package/dist/transformer/har-clusterer.d.ts +0 -9
  349. package/dist/transformer/har-clusterer.js +0 -27
  350. package/dist/transformer/har-dedup.d.ts +0 -10
  351. package/dist/transformer/har-dedup.js +0 -81
  352. package/dist/transformer/har-schema-inferrer.d.ts +0 -15
  353. package/dist/transformer/har-schema-inferrer.js +0 -90
  354. package/dist/transformer/har-to-operations.d.ts +0 -13
  355. package/dist/transformer/har-to-operations.js +0 -192
  356. package/dist/transformer/index.d.ts +0 -8
  357. package/dist/transformer/index.js +0 -6
  358. package/dist/transformer/llm-namer.d.ts +0 -6
  359. package/dist/transformer/llm-namer.js +0 -59
  360. package/dist/transformer/naming.d.ts +0 -4
  361. package/dist/transformer/naming.js +0 -30
  362. package/dist/transformer/operation-filter.d.ts +0 -13
  363. package/dist/transformer/operation-filter.js +0 -52
  364. package/dist/transformer/resource-builder.d.ts +0 -12
  365. package/dist/transformer/resource-builder.js +0 -80
  366. package/dist/transformer/schema-merger.d.ts +0 -14
  367. package/dist/transformer/schema-merger.js +0 -65
  368. package/dist/transformer/tool-builder.d.ts +0 -3
  369. package/dist/transformer/tool-builder.js +0 -114
  370. package/dist/types/index.d.ts +0 -131
  371. package/dist/types/index.js +0 -1
  372. package/dist/types/site.d.ts +0 -284
  373. package/dist/types/site.js +0 -8
  374. package/dist/utils/fail.d.ts +0 -48
  375. package/dist/utils/fail.js +0 -204
  376. package/dist/utils/fs.d.ts +0 -5
  377. package/dist/utils/fs.js +0 -28
  378. package/dist/utils/interactive.d.ts +0 -6
  379. package/dist/utils/interactive.js +0 -30
  380. package/dist/utils/logger.d.ts +0 -1
  381. package/dist/utils/logger.js +0 -2
  382. package/dist/utils/sanitize.d.ts +0 -28
  383. package/dist/utils/sanitize.js +0 -44
  384. package/dist/utils/watcher.d.ts +0 -11
  385. package/dist/utils/watcher.js +0 -36
@@ -1,166 +0,0 @@
1
- # mcpmake Cloud — Quickstart
2
-
3
- Turn any API or website into a hosted, authenticated MCP server in about a
4
- minute, then connect it to Claude, Cursor, or any MCP client.
5
-
6
- ---
7
-
8
- ## 1. Create an account
9
-
10
- 1. Go to the dashboard and **register** with your email.
11
- 2. **Verify your email** — we send a confirmation link. You must verify before
12
- you can deploy a server. (Need another link? Use **Resend** on the dashboard.)
13
-
14
- ## 2. Deploy a server
15
-
16
- From **Dashboard → New Server**, pick a source:
17
-
18
- | Source | What to provide | Result |
19
- | ---------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
20
- | **Upload file** | An OpenAPI/Swagger spec (`.yaml`/`.yml`/`.json`), a HAR recording (`.har`), or a Postman collection (`.json`) | A server with one tool per API operation |
21
- | **From URL → spec** | A URL to an OpenAPI spec | Same as upload, fetched for you |
22
- | **From URL → website** | Any website URL | A Playwright-driven server with tools for the site's interactive elements |
23
-
24
- Click **Deploy Server**. When the build finishes you land on the server's
25
- detail page, which shows your **endpoint** and a **one-time bearer token**.
26
-
27
- > **Save the token now.** It is shown only once. If you lose it, re-deploy the
28
- > server (the API re-deploy path rotates the token) or create a new server.
29
-
30
- ## 3. Connect your MCP client
31
-
32
- Your server is reachable at `https://<slug>.<domain>/mcp` and requires the
33
- bearer token on every request. Replace `YOUR_TOKEN` with the token you saved.
34
-
35
- ### Claude Desktop / Cursor
36
-
37
- Add to `claude_desktop_config.json` (Claude) or your MCP config (Cursor):
38
-
39
- ```json
40
- {
41
- "mcpServers": {
42
- "my-server": {
43
- "url": "https://my-server-a1b2.mcpmake.dev/mcp",
44
- "headers": {
45
- "Authorization": "Bearer YOUR_TOKEN"
46
- }
47
- }
48
- }
49
- }
50
- ```
51
-
52
- ### Claude Code (CLI)
53
-
54
- ```bash
55
- claude mcp add my-server https://my-server-a1b2.mcpmake.dev/mcp \
56
- --header "Authorization: Bearer YOUR_TOKEN"
57
- ```
58
-
59
- Requests without a valid token are rejected (`401`/`403`), so keep the token
60
- secret — treat it like a password.
61
-
62
- ## 3a. Keeping a website server fresh
63
-
64
- Website (`from website`) servers are generated against a snapshot of the site's
65
- DOM, so they can drift when the site changes. With the CLI you can re-crawl and
66
- self-heal an exported project locally:
67
-
68
- ```bash
69
- mcpmake rescan ./site-mcp # report drift + fragile selectors
70
- mcpmake rescan ./site-mcp --write # heal selectors and regenerate, then re-deploy
71
- ```
72
-
73
- See **[Website MCP servers](website-servers.md)** for the full workflow.
74
-
75
- ## 4. Add API secrets
76
-
77
- If your generated server calls an upstream API that needs credentials (an API
78
- key, bearer token, basic auth), add them as **Secrets** on the server detail
79
- page. Secrets are encrypted at rest and injected into the container as
80
- environment variables. After adding or changing a secret, **re-deploy** the
81
- server so it picks up the new value.
82
-
83
- Common secret names: `API_KEY`, `BEARER_TOKEN`, `BASIC_USERNAME` /
84
- `BASIC_PASSWORD`. The exact names your server expects are derived from its spec.
85
-
86
- ## 5. Limits and quotas
87
-
88
- Each plan includes:
89
-
90
- - a maximum number of **hosted servers**, and
91
- - a monthly **tool-call** allowance.
92
-
93
- When you hit a limit, server creation is blocked (with an upgrade prompt) and
94
- over-quota tool calls are rejected with `429 Too Many Requests`. Browser-driven
95
- (website) servers also consume **browser minutes**. See the **Billing** page for
96
- your current usage and remaining quota.
97
-
98
- Idle servers are paused automatically to save resources and resume on the next
99
- authorized request, so the first call after a quiet period may be slightly
100
- slower.
101
-
102
- ## 6. Pricing
103
-
104
- > The core product — the `mcpmake` CLI and CI sync — is what you pay for. See
105
- > the [Pricing](../README.md#pricing) section in the README for the full price
106
- > card. **Managed hosting (this page) is a convenience add-on**: it hosts code
107
- > you already own, and you can take it self-hosted at any time.
108
-
109
- Managed-hosting plans (priced in **Dashboard → Billing**):
110
-
111
- | Plan | Hosted servers | Tool calls / mo | Notes |
112
- | ---------------------------- | -------------- | --------------- | ---------------------------------- |
113
- | **Free** | 1 | ~1,000 | All input modes enabled |
114
- | **Hobbyist** | 3 | ~10,000 | |
115
- | **Pro** | 5 | ~100,000 | Secrets, dev/prod, overage billing |
116
- | **Team** | 20 | ~1,000,000 | |
117
- | **Enterprise / self-hosted** | Unlimited | Unlimited | BYO-infra, code ownership |
118
-
119
- Browser-driven (website) servers also consume **browser minutes**, metered
120
- separately — see the **Billing** page. Upgrade, downgrade, or cancel anytime
121
- from **Dashboard → Billing** (managed via Stripe). Cancellation takes effect at
122
- the end of the current period; access downgrades to Free afterward.
123
-
124
- ## CLI error reporting (telemetry)
125
-
126
- When a CLI command fails, mcpmake can send an **opt-in, redacted crash report**
127
- so we can fix the failures real users hit. It is strictly opt-in and never blocks
128
- or slows down the CLI.
129
-
130
- Control it with the global `telemetry` key in your `.mcpmake.yaml`:
131
-
132
- ```yaml
133
- # .mcpmake.yaml
134
- telemetry: prompt # prompt | auto | off (default: prompt)
135
- ```
136
-
137
- | Mode | Behaviour |
138
- | -------------------- | ------------------------------------------------------------------------------------ |
139
- | `prompt` _(default)_ | On a failure, shows you the exact (already-redacted) report and asks before sending. |
140
- | `auto` | Sends silently on failure. |
141
- | `off` | Never sends anything. |
142
-
143
- Regardless of the configured mode, telemetry **auto-degrades to `off` in CI or
144
- any non-interactive (non-TTY) environment**, so it can never hang a pipeline
145
- waiting for input.
146
-
147
- A crash report contains only: the command name (e.g. `from openapi`), the error
148
- message and stack trace, the CLI version, your OS/arch, and the Node version. It
149
- **never** includes file contents, environment variables, or secrets. Before
150
- sending, mcpmake redacts home-directory paths (`/Users/<you>/…` → `~`), bearer
151
- tokens, mcpmake `mf_…` tokens, and URL query strings, so credentials embedded in
152
- paths or URLs don't leak.
153
-
154
- ## Troubleshooting
155
-
156
- - **`401 Unauthorized`** — the `Authorization: Bearer` header is missing or
157
- malformed in your client config.
158
- - **`403 Forbidden`** — the token is wrong. Re-check it, or re-deploy to rotate.
159
- - **`429 Too Many Requests`** — you've hit your monthly tool-call quota; upgrade
160
- your plan or wait for the next period.
161
- - **`503 Server is not running`** — the server was paused or is rebuilding; try
162
- again, or open the server's **Logs** to investigate.
163
- - **Build failed** — check that your spec is valid and under 5 MB; the server's
164
- **Logs** page shows build output.
165
-
166
- Questions: support@mcpmake.dev
@@ -1,26 +0,0 @@
1
- # Show HN: mcpmake -- Turn any API or website into an MCP server in 30 seconds
2
-
3
- mcpmake generates fully functional MCP (Model Context Protocol) servers from OpenAPI specs, HAR files, Postman collections, live websites, or plain English descriptions.
4
-
5
- Unlike generic browser automation tools (Playwright MCP, Puppeteer MCP) that make the AI rediscover page structure on every call, mcpmake analyzes a website's DOM once and generates **site-specific tools** like `login(email, password)` instead of `click(selector)`.
6
-
7
- **What it does:**
8
-
9
- - `mcpmake from openapi ./spec.yaml` -- generates a TypeScript MCP server from any OpenAPI spec
10
- - `mcpmake from website https://app.example.com` -- analyzes HTML forms, buttons, links and generates Playwright-based MCP tools
11
- - `mcpmake from har ./recording.har` -- turns a browser recording into MCP tools
12
- - `mcpmake from describe "manage GitHub issues"` -- AI generates the spec, then the server
13
- - `mcpmake deploy ./spec.yaml` -- deploys to mcpmake.dev, returns a URL + bearer token
14
-
15
- **Key differentiators:**
16
-
17
- 1. **6 input adapters** -- OpenAPI, HAR, URL recording, website DOM, Postman, natural language. Competitors support 1.
18
- 2. **Website-to-MCP** -- the only tool that generates site-specific MCP tools from HTML analysis. No one else does this.
19
- 3. **91-97% token reduction** -- `--dynamic-discovery` mode for large APIs (50+ tools) uses 4 meta-tools instead of flooding the context window.
20
- 4. **Full MCP spec** -- Tools + Resources + Prompts + outputSchema + annotations. Most generators only emit tools.
21
- 5. **Editable output** -- clean TypeScript (or Python) you own and can modify. Not a black-box proxy.
22
- 6. **Cloud hosting** at mcpmake.dev -- upload a spec, get a running MCP server with HTTPS, auth, and metrics.
23
-
24
- **Live demo:** https://mcpmake.dev
25
-
26
- Built with Node.js, Playwright, Handlebars templates. Generated servers have 2 runtime deps (MCP SDK + Zod).
@@ -1,169 +0,0 @@
1
- # Website MCP servers — generate, run, and keep them fresh
2
-
3
- mcpmake can turn a **website with no API spec** into an MCP server in two ways.
4
- Both drive a real browser; the difference is what they capture.
5
-
6
- | Command | Captures | Generates | Runtime |
7
- | --- | --- | --- | --- |
8
- | `mcpmake from url` | the site's **network/API traffic** while it loads/you interact | an HTTP-fetch MCP server (one tool per API call) | `fetch` — no browser |
9
- | `mcpmake from website` | the site's **DOM** (forms, buttons, links) | a Playwright MCP server with site-specific tools | Playwright/Chromium |
10
-
11
- If the site is backed by a clean JSON API, prefer `from url` (or `from har`) —
12
- the output is a lightweight HTTP server. Use `from website` when the only way to
13
- drive the site is the page itself.
14
-
15
- > Requires `npx playwright install chromium` on first use of either command.
16
-
17
- ---
18
-
19
- ## `from url` — record API traffic
20
-
21
- Point mcpmake at a URL; it opens a browser, you click around, and on close it
22
- builds an MCP server from the captured API calls.
23
-
24
- ```bash
25
- mcpmake from url https://app.example.com -o ./app-mcp
26
- ```
27
-
28
- ### Headless / CI capture
29
-
30
- When no human can drive a window (CI, containers), run headless and list the
31
- same-origin paths to auto-visit. mcpmake loads each, captures its traffic, and
32
- exits — no manual interaction:
33
-
34
- ```bash
35
- mcpmake from url https://app.example.com -o ./app-mcp \
36
- --headless --navigate /dashboard,/orders,/settings
37
- ```
38
-
39
- - `--navigate` accepts absolute or relative URLs; **cross-origin targets are
40
- skipped** (logged as a warning).
41
- - If nothing is captured, mcpmake tells you to add `--navigate` paths that
42
- actually trigger API calls.
43
-
44
- `from url` also supports `-o/--output` (required), `-n/--name`, `--timeout`,
45
- `-t/--transport`, `--target` (`node`/`cloudflare`), `-i/--include`,
46
- `-e/--exclude`, `--improve-names`, `--interactive`, `-f/--force`, and
47
- `--dry-run` — see the [CLI reference](cli.md#mcpmake-from-url) for the full list.
48
-
49
- ---
50
-
51
- ## `from website` — generate site-specific tools
52
-
53
- ```bash
54
- mcpmake from website https://app.example.com -o ./site-mcp
55
- ```
56
-
57
- Unlike generic browser MCP servers (Playwright MCP, Puppeteer MCP) that make the
58
- model rediscover the page on every call, this analyzes the DOM **once** and emits
59
- named tools — `login(email, password)`, `search(query)` — plus lifecycle tools
60
- (`start_browser`, `stop_browser`, `take_screenshot`).
61
-
62
- Useful flags:
63
-
64
- | Flag | Effect |
65
- | --- | --- |
66
- | `--depth`, `--max-pages` | crawl bounds (default depth 2, 20 pages) |
67
- | `--timeout <seconds>` | idle timeout during analysis (default 300) |
68
- | `--goal "..."` | LLM-driven navigation toward a goal instead of BFS (needs `ANTHROPIC_API_KEY`) |
69
- | `--hybrid` | HTTP fetch for API-backed forms, Playwright for HTML-only forms |
70
- | `--improve-names` | LLM-inferred semantic tool names (needs `ANTHROPIC_API_KEY`) |
71
- | `--headless` | run the analysis browser headless |
72
- | `--max-sessions <n>` | max concurrent browser sessions in the generated server (default 10) |
73
- | `-t, --transport` | `stdio` (default) or `http` |
74
-
75
- Plus the usual `-o/--output` (required), `-n/--name`, `-f/--force`, and
76
- `--dry-run`. The `website` pipeline is `--target node` only. See the
77
- [CLI reference](cli.md#mcpmake-from-website) for the complete list.
78
-
79
- ### Resilient selectors at runtime
80
-
81
- Each generated tool stores a ranked **selector set** (data-testid > id >
82
- aria-label > name > CSS path > XPath), not just one selector. At runtime the
83
- tool tries the primary selector and then falls back through the rest, so a small
84
- DOM change doesn't immediately break the tool. This happens with no LLM and no
85
- network — pure Playwright in the generated server.
86
-
87
- ### What gets written
88
-
89
- The generated project includes two files that make rescans possible:
90
-
91
- - `src/site-descriptor.json` — the snapshot of pages/forms/selectors captured at
92
- generation time.
93
- - `mcpmake.site.json` — regeneration metadata (server name, transport, browser
94
- config, env vars) so a rescan can rebuild without re-specifying CLI flags.
95
-
96
- ---
97
-
98
- ## Keeping a website server fresh — `mcpmake rescan`
99
-
100
- Sites change. `rescan` is the website counterpart to `mcpmake update`: it
101
- re-crawls the live site, diffs it against the embedded snapshot, heals fragile
102
- selectors, and can regenerate the project in place.
103
-
104
- ```bash
105
- # Report what changed and which selectors are fragile (no writes)
106
- mcpmake rescan ./site-mcp
107
-
108
- # Heal low-confidence selectors from the live accessibility tree (needs ANTHROPIC_API_KEY)
109
- ANTHROPIC_API_KEY=... mcpmake rescan ./site-mcp
110
-
111
- # Regenerate the project in place from the fresh, healed snapshot
112
- mcpmake rescan ./site-mcp --write
113
-
114
- # Machine-readable diff (CI)
115
- mcpmake rescan ./site-mcp --format json
116
- ```
117
-
118
- ### What it does
119
-
120
- 1. Loads `src/site-descriptor.json` (old snapshot) and `mcpmake.site.json`
121
- (regeneration settings).
122
- 2. Re-crawls the site. Override the target with `--url`; crawl bounds default
123
- from the snapshot (with headroom so newly added pages are still found) and
124
- can be overridden with `--depth` / `--max-pages`.
125
- 3. **Diffs** old vs new and reports added / removed / modified pages, forms,
126
- fields, buttons, and links — plus any selectors that broke.
127
- 4. **Self-heals:** for each fragile (low-confidence) selector it asks Claude for
128
- a better selector based on the live accessibility tree, and applies it **only
129
- if it actually resolves on the page**. Healing is skipped (with a warning) if
130
- `ANTHROPIC_API_KEY` is unset; the diff/report still runs.
131
- 5. With `--write`, regenerates the project from the healed snapshot. Like
132
- `update`, this overwrites the generated files — commit first, then review the
133
- diff.
134
-
135
- ### Options
136
-
137
- ```
138
- mcpmake rescan <project> [options]
139
-
140
- --url <url> Override the base URL to rescan (default: from the snapshot)
141
- --depth <n> Crawl depth (default: from the snapshot)
142
- --max-pages <n> Max pages to crawl (default: snapshot page count + headroom)
143
- --no-heal Disable LLM selector healing
144
- --write Regenerate the project in place from the new snapshot
145
- --no-headless Run the crawl/heal browser with a visible window
146
- --format <fmt> "text" (default) or "json"
147
- ```
148
-
149
- ### In CI
150
-
151
- Use the JSON output to gate on drift — e.g. fail a scheduled job when selectors
152
- break so you can rescan-and-commit deliberately:
153
-
154
- ```bash
155
- mcpmake rescan ./site-mcp --format json > rescan.json
156
- # inspect .summary.brokenSelectors / .summary.totalChanges in your pipeline
157
- ```
158
-
159
- ---
160
-
161
- ## Security notes
162
-
163
- - Generated tool selectors, link hrefs, and field-name keys are derived from the
164
- (untrusted) crawled page; mcpmake escapes them when emitting code so a crafted
165
- page cannot inject code into the generated server.
166
- - LLM-healed selectors are validated and rejected if they contain characters
167
- that could break out of a generated string literal.
168
- - The generated HTTP transport enforces an exact-host `ALLOWED_ORIGIN` check
169
- (DNS-rebinding protection) in addition to the `MCP_AUTH_TOKEN` bearer check.
@@ -1,8 +0,0 @@
1
- export interface CodeUnit {
2
- filePath: string;
3
- content: string;
4
- }
5
- export declare function writeCodeUnits(units: CodeUnit[], outputDir: string, options: {
6
- force: boolean;
7
- dryRun: boolean;
8
- }): Promise<void>;
@@ -1,25 +0,0 @@
1
- import { resolve } from 'node:path';
2
- import { writeFileSafe } from '../utils/fs.js';
3
- import { logger } from '../utils/logger.js';
4
- export async function writeCodeUnits(units, outputDir, options) {
5
- const resolvedOutputDir = resolve(outputDir);
6
- for (const unit of units) {
7
- const absPath = resolve(outputDir, unit.filePath);
8
- if (!absPath.startsWith(resolvedOutputDir + '/') && absPath !== resolvedOutputDir) {
9
- throw new Error(`Path traversal detected: ${unit.filePath} resolves outside output directory`);
10
- }
11
- if (options.dryRun) {
12
- logger.info(`[dry-run] Would write: ${unit.filePath}`);
13
- continue;
14
- }
15
- const written = await writeFileSafe(absPath, unit.content, {
16
- force: options.force,
17
- });
18
- if (written) {
19
- logger.info(` ${unit.filePath}`);
20
- }
21
- else {
22
- logger.warn(` Skipped (exists): ${unit.filePath}`);
23
- }
24
- }
25
- }
@@ -1,32 +0,0 @@
1
- import type { ProjectManifest } from '../types/index.js';
2
- import type { SiteProjectManifest } from '../types/site.js';
3
- export interface EmitOptions {
4
- outputDir: string;
5
- force: boolean;
6
- dryRun: boolean;
7
- }
8
- export declare function emitProject(manifest: ProjectManifest, options: EmitOptions): Promise<void>;
9
- /**
10
- * Emit a Cloudflare Workers MCP server project (the `--target cloudflare` path).
11
- *
12
- * Workers is stateless and has no node:http server, so the SDK's
13
- * StreamableHTTPServerTransport cannot run there. The entry (`src/index.ts`) is a
14
- * hand-rolled JSON-RPC Fetch handler instead. The runtime-agnostic modules
15
- * (`http.ts`, `auth.ts`, `trace.ts`) are reused verbatim from the Node templates —
16
- * they only need `nodejs_compat`, which `wrangler.toml` enables.
17
- *
18
- * v1 scope is tools + initialize/ping/server-discover + bearer auth. Resources,
19
- * prompts, the Tasks extension and OAuth2 outbound auth are not emitted for this
20
- * target (a warning is logged and the user is pointed at `--target node`).
21
- */
22
- export declare function emitWorkerProject(manifest: ProjectManifest, options: EmitOptions): Promise<void>;
23
- /**
24
- * Emit a Playwright-based MCP server project from a SiteProjectManifest.
25
- * Parallel to emitProject() but uses site-specific templates.
26
- */
27
- export declare function emitSiteProject(manifest: SiteProjectManifest, options: EmitOptions): Promise<void>;
28
- /**
29
- * Emit a Python MCP server project.
30
- * Generates a single server.py file with all tools, plus requirements.txt.
31
- */
32
- export declare function emitPythonProject(manifest: ProjectManifest, options: EmitOptions): Promise<void>;