mcp-deploy 0.1.3 → 0.1.5

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 (103) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +6 -6
  3. package/.next/standalone/.next/build-manifest.json +2 -2
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/server/app/.well-known/oauth-authorization-server/route_client-reference-manifest.js +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page.js +2 -2
  7. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  9. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  19. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  20. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  21. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  22. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  23. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  24. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/.next/standalone/.next/server/app/api/cloudflare/setup/route_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/api/cloudflare/status/route_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/api/mcps/[slug]/deploy/route.js +1 -1
  29. package/.next/standalone/.next/server/app/api/mcps/[slug]/deploy/route_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/api/mcps/[slug]/remove/route.js +1 -1
  31. package/.next/standalone/.next/server/app/api/mcps/[slug]/remove/route_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/api/mcps/[slug]/route.js +1 -1
  33. package/.next/standalone/.next/server/app/api/mcps/[slug]/route_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/api/mcps/[slug]/secrets/route.js +1 -1
  35. package/.next/standalone/.next/server/app/api/mcps/[slug]/secrets/route_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/api/mcps/[slug]/status/route_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/api/mcps/[slug]/undeploy/route.js +1 -1
  38. package/.next/standalone/.next/server/app/api/mcps/[slug]/undeploy/route_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/api/mcps/add/route.js +1 -1
  40. package/.next/standalone/.next/server/app/api/mcps/add/route_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/api/mcps/check-updates/route_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/api/mcps/route.js +1 -1
  43. package/.next/standalone/.next/server/app/api/mcps/route_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/api/mcps/validate/route_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/api/oauth/approve/route_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/api/oauth/register/route_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/api/oauth/token/route_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/api/test-connection/route_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/index.html +2 -2
  50. package/.next/standalone/.next/server/app/index.rsc +2 -2
  51. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  52. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +2 -2
  53. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  54. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  55. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  56. package/.next/standalone/.next/server/app/mcps/[slug]/page.js +3 -3
  57. package/.next/standalone/.next/server/app/mcps/[slug]/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/oauth/authorize/page.js +1 -1
  59. package/.next/standalone/.next/server/app/oauth/authorize/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/oauth/authorize.html +2 -2
  61. package/.next/standalone/.next/server/app/oauth/authorize.rsc +2 -2
  62. package/.next/standalone/.next/server/app/oauth/authorize.segments/_full.segment.rsc +2 -2
  63. package/.next/standalone/.next/server/app/oauth/authorize.segments/_head.segment.rsc +1 -1
  64. package/.next/standalone/.next/server/app/oauth/authorize.segments/_index.segment.rsc +2 -2
  65. package/.next/standalone/.next/server/app/oauth/authorize.segments/_tree.segment.rsc +2 -2
  66. package/.next/standalone/.next/server/app/oauth/authorize.segments/oauth/authorize/__PAGE__.segment.rsc +1 -1
  67. package/.next/standalone/.next/server/app/oauth/authorize.segments/oauth/authorize.segment.rsc +1 -1
  68. package/.next/standalone/.next/server/app/oauth/authorize.segments/oauth.segment.rsc +1 -1
  69. package/.next/standalone/.next/server/app/page.js +2 -2
  70. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/setup/page.js +3 -3
  72. package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/setup.html +2 -2
  74. package/.next/standalone/.next/server/app/setup.rsc +2 -2
  75. package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +2 -2
  76. package/.next/standalone/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  77. package/.next/standalone/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  78. package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  79. package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +1 -1
  80. package/.next/standalone/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  81. package/.next/standalone/.next/server/app-paths-manifest.json +6 -6
  82. package/.next/standalone/.next/server/chunks/142.js +4 -4
  83. package/.next/standalone/.next/server/chunks/471.js +2 -2
  84. package/.next/standalone/.next/server/chunks/817.js +2 -2
  85. package/.next/standalone/.next/server/pages/404.html +2 -2
  86. package/.next/standalone/.next/server/pages/500.html +2 -2
  87. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  88. package/.next/{static/chunks/app/mcps/[slug]/page-8e0aa560f0622f11.js → standalone/.next/static/chunks/app/mcps/[slug]/page-c5385aeb25f58d99.js} +1 -1
  89. package/.next/{static/css/caae8cf5ba26c4c9.css → standalone/.next/static/css/c1d55b213e741a4a.css} +1 -1
  90. package/.next/standalone/package.json +1 -1
  91. package/.next/{standalone/.next/static/chunks/app/mcps/[slug]/page-8e0aa560f0622f11.js → static/chunks/app/mcps/[slug]/page-c5385aeb25f58d99.js} +1 -1
  92. package/.next/{standalone/.next/static/css/caae8cf5ba26c4c9.css → static/css/c1d55b213e741a4a.css} +1 -1
  93. package/package.json +1 -1
  94. package/src/app/api/mcps/[slug]/deploy/route.ts +20 -4
  95. package/src/app/api/mcps/[slug]/route.ts +4 -5
  96. package/src/app/api/mcps/route.ts +4 -5
  97. package/src/app/mcps/[slug]/page.tsx +14 -4
  98. package/src/lib/operations.ts +10 -0
  99. package/src/lib/store.ts +6 -0
  100. /package/.next/standalone/.next/static/{8v7FMKRjROJQw8iEA3azx → 2tKq_bTNyVhd6HGPRRssw}/_buildManifest.js +0 -0
  101. /package/.next/standalone/.next/static/{8v7FMKRjROJQw8iEA3azx → 2tKq_bTNyVhd6HGPRRssw}/_ssgManifest.js +0 -0
  102. /package/.next/static/{8v7FMKRjROJQw8iEA3azx → 2tKq_bTNyVhd6HGPRRssw}/_buildManifest.js +0 -0
  103. /package/.next/static/{8v7FMKRjROJQw8iEA3azx → 2tKq_bTNyVhd6HGPRRssw}/_ssgManifest.js +0 -0
@@ -7,8 +7,8 @@
7
7
  7:I[9322,["620","static/chunks/app/setup/page-b7c341350a2c629c.js"],"CloudflareSetup"]
8
8
  8:I[1777,["620","static/chunks/app/setup/page-b7c341350a2c629c.js"],"ThemeToggle"]
9
9
  b:I[7123,[],""]
10
- :HL["/_next/static/css/caae8cf5ba26c4c9.css","style"]
11
- 0:{"P":null,"b":"8v7FMKRjROJQw8iEA3azx","c":["","setup"],"q":"","i":false,"f":[[["",{"children":["setup",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/caae8cf5ba26c4c9.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","data-theme":"dark","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n(function(){\n var t = localStorage.getItem(\"mcp-deploy-theme\");\n if (t === \"light\" || t === \"system\") {\n document.documentElement.setAttribute(\"data-theme\", t);\n }\n})();\n"}}],false]}],["$","body",null,{"className":"bg-surface-page text-fg min-h-screen antialiased","children":["$","$L2",null,{"children":[["$","nav",null,{"className":"border-b border-edge bg-surface/50 backdrop-blur-sm fixed top-0 inset-x-0 z-50","children":["$","div",null,{"className":"max-w-5xl mx-auto px-6 py-4 flex items-center justify-between","children":[["$","$L3",null,{"href":"/","className":"text-lg font-semibold tracking-tight","children":[["$","span",null,{"className":"text-accent-fg","children":"MCP"}]," Deploy"]}],["$","$L4",null,{}]]}]}],["$","main",null,{"className":"max-w-5xl mx-auto px-6 py-8 pt-16","children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"className":"space-y-8","children":[["$","div",null,{"children":[["$","h1",null,{"className":"text-2xl font-bold mb-1","children":"Settings"}],["$","p",null,{"className":"text-fg-muted text-sm","children":"Configure your Cloudflare account and app preferences."}]]}],["$","$L7",null,{}],["$","section",null,{"className":"rounded-xl border border-edge bg-surface p-6 space-y-4","children":["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold","children":"Appearance"}],["$","p",null,{"className":"text-fg-muted text-sm mt-1","children":"Choose a color theme for the dashboard."}]]}],["$","$L8",null,{}]]}]}],["$","section",null,{"className":"rounded-xl border border-edge bg-surface p-6 space-y-4","children":[["$","h2",null,{"className":"text-lg font-semibold","children":"About"}],["$","dl",null,{"className":"grid grid-cols-[auto_1fr] gap-x-6 gap-y-2 text-sm","children":[["$","dt",null,{"className":"text-fg-muted","children":"Name"}],["$","dd",null,{"children":"mcp-deploy"}],["$","dt",null,{"className":"text-fg-muted","children":"Version"}],["$","dd",null,{"children":"0.1.3"}],["$","dt",null,{"className":"text-fg-muted","children":"Description"}],["$","dd",null,{"children":"Deploy and manage MCP (Model Context Protocol) servers on Cloudflare Workers"}],["$","dt",null,{"className":"text-fg-muted","children":"License"}],["$","dd",null,{"children":"GPL-3.0-only"}],["$","dt",null,{"className":"text-fg-muted","children":"Source"}],["$","dd",null,{"children":["$","a",null,{"href":"git+https://github.com/upascal/mcp-deploy","target":"_blank","rel":"noopener noreferrer","className":"text-accent-fg hover:underline","children":"git+github.com/upascal/mcp-deploy"}]}]]}]]}]]}],null,"$L9"]}],{},null,false,false]},null,false,false]},null,false,false],"$La",false]],"m":"$undefined","G":["$b",[]],"S":true}
10
+ :HL["/_next/static/css/c1d55b213e741a4a.css","style"]
11
+ 0:{"P":null,"b":"2tKq_bTNyVhd6HGPRRssw","c":["","setup"],"q":"","i":false,"f":[[["",{"children":["setup",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/c1d55b213e741a4a.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","data-theme":"dark","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n(function(){\n var t = localStorage.getItem(\"mcp-deploy-theme\");\n if (t === \"light\" || t === \"system\") {\n document.documentElement.setAttribute(\"data-theme\", t);\n }\n})();\n"}}],false]}],["$","body",null,{"className":"bg-surface-page text-fg min-h-screen antialiased","children":["$","$L2",null,{"children":[["$","nav",null,{"className":"border-b border-edge bg-surface/50 backdrop-blur-sm fixed top-0 inset-x-0 z-50","children":["$","div",null,{"className":"max-w-5xl mx-auto px-6 py-4 flex items-center justify-between","children":[["$","$L3",null,{"href":"/","className":"text-lg font-semibold tracking-tight","children":[["$","span",null,{"className":"text-accent-fg","children":"MCP"}]," Deploy"]}],["$","$L4",null,{}]]}]}],["$","main",null,{"className":"max-w-5xl mx-auto px-6 py-8 pt-16","children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"className":"space-y-8","children":[["$","div",null,{"children":[["$","h1",null,{"className":"text-2xl font-bold mb-1","children":"Settings"}],["$","p",null,{"className":"text-fg-muted text-sm","children":"Configure your Cloudflare account and app preferences."}]]}],["$","$L7",null,{}],["$","section",null,{"className":"rounded-xl border border-edge bg-surface p-6 space-y-4","children":["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold","children":"Appearance"}],["$","p",null,{"className":"text-fg-muted text-sm mt-1","children":"Choose a color theme for the dashboard."}]]}],["$","$L8",null,{}]]}]}],["$","section",null,{"className":"rounded-xl border border-edge bg-surface p-6 space-y-4","children":[["$","h2",null,{"className":"text-lg font-semibold","children":"About"}],["$","dl",null,{"className":"grid grid-cols-[auto_1fr] gap-x-6 gap-y-2 text-sm","children":[["$","dt",null,{"className":"text-fg-muted","children":"Name"}],["$","dd",null,{"children":"mcp-deploy"}],["$","dt",null,{"className":"text-fg-muted","children":"Version"}],["$","dd",null,{"children":"0.1.5"}],["$","dt",null,{"className":"text-fg-muted","children":"Description"}],["$","dd",null,{"children":"Deploy and manage MCP (Model Context Protocol) servers on Cloudflare Workers"}],["$","dt",null,{"className":"text-fg-muted","children":"License"}],["$","dd",null,{"children":"GPL-3.0-only"}],["$","dt",null,{"className":"text-fg-muted","children":"Source"}],["$","dd",null,{"children":["$","a",null,{"href":"git+https://github.com/upascal/mcp-deploy","target":"_blank","rel":"noopener noreferrer","className":"text-accent-fg hover:underline","children":"git+github.com/upascal/mcp-deploy"}]}]]}]]}]]}],null,"$L9"]}],{},null,false,false]},null,false,false]},null,false,false],"$La",false]],"m":"$undefined","G":["$b",[]],"S":true}
12
12
  c:I[484,[],"OutletBoundary"]
13
13
  d:"$Sreact.suspense"
14
14
  f:I[484,[],"ViewportBoundary"]
@@ -2,4 +2,4 @@
2
2
  2:I[484,[],"ViewportBoundary"]
3
3
  3:I[484,[],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
- 0:{"buildId":"8v7FMKRjROJQw8iEA3azx","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"MCP Deploy"}],["$","meta","1",{"name":"description","content":"Deploy and manage MCP servers on Cloudflare Workers"}]]}]}]}],null]}],"loading":null,"isPartial":false}
5
+ 0:{"buildId":"2tKq_bTNyVhd6HGPRRssw","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"MCP Deploy"}],["$","meta","1",{"name":"description","content":"Deploy and manage MCP servers on Cloudflare Workers"}]]}]}]}],null]}],"loading":null,"isPartial":false}
@@ -4,5 +4,5 @@
4
4
  4:I[2240,["500","static/chunks/500-5d45efbf86b8d36e.js","558","static/chunks/app/layout-16156b2dce91d181.js"],"NavLinks"]
5
5
  5:I[7121,[],""]
6
6
  6:I[4581,[],""]
7
- :HL["/_next/static/css/caae8cf5ba26c4c9.css","style"]
8
- 0:{"buildId":"8v7FMKRjROJQw8iEA3azx","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/caae8cf5ba26c4c9.css","precedence":"next"}]],["$","html",null,{"lang":"en","data-theme":"dark","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n(function(){\n var t = localStorage.getItem(\"mcp-deploy-theme\");\n if (t === \"light\" || t === \"system\") {\n document.documentElement.setAttribute(\"data-theme\", t);\n }\n})();\n"}}],false]}],["$","body",null,{"className":"bg-surface-page text-fg min-h-screen antialiased","children":["$","$L2",null,{"children":[["$","nav",null,{"className":"border-b border-edge bg-surface/50 backdrop-blur-sm fixed top-0 inset-x-0 z-50","children":["$","div",null,{"className":"max-w-5xl mx-auto px-6 py-4 flex items-center justify-between","children":[["$","$L3",null,{"href":"/","className":"text-lg font-semibold tracking-tight","children":[["$","span",null,{"className":"text-accent-fg","children":"MCP"}]," Deploy"]}],["$","$L4",null,{}]]}]}],["$","main",null,{"className":"max-w-5xl mx-auto px-6 py-8 pt-16","children":["$","$L5",null,{"parallelRouterKey":"children","template":["$","$L6",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}]}]]}]]}],"loading":null,"isPartial":false}
7
+ :HL["/_next/static/css/c1d55b213e741a4a.css","style"]
8
+ 0:{"buildId":"2tKq_bTNyVhd6HGPRRssw","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/c1d55b213e741a4a.css","precedence":"next"}]],["$","html",null,{"lang":"en","data-theme":"dark","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","script",null,{"dangerouslySetInnerHTML":{"__html":"\n(function(){\n var t = localStorage.getItem(\"mcp-deploy-theme\");\n if (t === \"light\" || t === \"system\") {\n document.documentElement.setAttribute(\"data-theme\", t);\n }\n})();\n"}}],false]}],["$","body",null,{"className":"bg-surface-page text-fg min-h-screen antialiased","children":["$","$L2",null,{"children":[["$","nav",null,{"className":"border-b border-edge bg-surface/50 backdrop-blur-sm fixed top-0 inset-x-0 z-50","children":["$","div",null,{"className":"max-w-5xl mx-auto px-6 py-4 flex items-center justify-between","children":[["$","$L3",null,{"href":"/","className":"text-lg font-semibold tracking-tight","children":[["$","span",null,{"className":"text-accent-fg","children":"MCP"}]," Deploy"]}],["$","$L4",null,{}]]}]}],["$","main",null,{"className":"max-w-5xl mx-auto px-6 py-8 pt-16","children":["$","$L5",null,{"parallelRouterKey":"children","template":["$","$L6",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}]}]]}]]}],"loading":null,"isPartial":false}
@@ -1,2 +1,2 @@
1
- :HL["/_next/static/css/caae8cf5ba26c4c9.css","style"]
2
- 0:{"buildId":"8v7FMKRjROJQw8iEA3azx","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"setup","paramType":null,"paramKey":"setup","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
1
+ :HL["/_next/static/css/c1d55b213e741a4a.css","style"]
2
+ 0:{"buildId":"2tKq_bTNyVhd6HGPRRssw","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"setup","paramType":null,"paramKey":"setup","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
@@ -3,5 +3,5 @@
3
3
  3:I[1777,["620","static/chunks/app/setup/page-b7c341350a2c629c.js"],"ThemeToggle"]
4
4
  4:I[484,[],"OutletBoundary"]
5
5
  5:"$Sreact.suspense"
6
- 0:{"buildId":"8v7FMKRjROJQw8iEA3azx","rsc":["$","$1","c",{"children":[["$","div",null,{"className":"space-y-8","children":[["$","div",null,{"children":[["$","h1",null,{"className":"text-2xl font-bold mb-1","children":"Settings"}],["$","p",null,{"className":"text-fg-muted text-sm","children":"Configure your Cloudflare account and app preferences."}]]}],["$","$L2",null,{}],["$","section",null,{"className":"rounded-xl border border-edge bg-surface p-6 space-y-4","children":["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold","children":"Appearance"}],["$","p",null,{"className":"text-fg-muted text-sm mt-1","children":"Choose a color theme for the dashboard."}]]}],["$","$L3",null,{}]]}]}],["$","section",null,{"className":"rounded-xl border border-edge bg-surface p-6 space-y-4","children":[["$","h2",null,{"className":"text-lg font-semibold","children":"About"}],["$","dl",null,{"className":"grid grid-cols-[auto_1fr] gap-x-6 gap-y-2 text-sm","children":[["$","dt",null,{"className":"text-fg-muted","children":"Name"}],["$","dd",null,{"children":"mcp-deploy"}],["$","dt",null,{"className":"text-fg-muted","children":"Version"}],["$","dd",null,{"children":"0.1.3"}],["$","dt",null,{"className":"text-fg-muted","children":"Description"}],["$","dd",null,{"children":"Deploy and manage MCP (Model Context Protocol) servers on Cloudflare Workers"}],["$","dt",null,{"className":"text-fg-muted","children":"License"}],["$","dd",null,{"children":"GPL-3.0-only"}],["$","dt",null,{"className":"text-fg-muted","children":"Source"}],["$","dd",null,{"children":["$","a",null,{"href":"git+https://github.com/upascal/mcp-deploy","target":"_blank","rel":"noopener noreferrer","className":"text-accent-fg hover:underline","children":"git+github.com/upascal/mcp-deploy"}]}]]}]]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],"loading":null,"isPartial":false}
6
+ 0:{"buildId":"2tKq_bTNyVhd6HGPRRssw","rsc":["$","$1","c",{"children":[["$","div",null,{"className":"space-y-8","children":[["$","div",null,{"children":[["$","h1",null,{"className":"text-2xl font-bold mb-1","children":"Settings"}],["$","p",null,{"className":"text-fg-muted text-sm","children":"Configure your Cloudflare account and app preferences."}]]}],["$","$L2",null,{}],["$","section",null,{"className":"rounded-xl border border-edge bg-surface p-6 space-y-4","children":["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold","children":"Appearance"}],["$","p",null,{"className":"text-fg-muted text-sm mt-1","children":"Choose a color theme for the dashboard."}]]}],["$","$L3",null,{}]]}]}],["$","section",null,{"className":"rounded-xl border border-edge bg-surface p-6 space-y-4","children":[["$","h2",null,{"className":"text-lg font-semibold","children":"About"}],["$","dl",null,{"className":"grid grid-cols-[auto_1fr] gap-x-6 gap-y-2 text-sm","children":[["$","dt",null,{"className":"text-fg-muted","children":"Name"}],["$","dd",null,{"children":"mcp-deploy"}],["$","dt",null,{"className":"text-fg-muted","children":"Version"}],["$","dd",null,{"children":"0.1.5"}],["$","dt",null,{"className":"text-fg-muted","children":"Description"}],["$","dd",null,{"children":"Deploy and manage MCP (Model Context Protocol) servers on Cloudflare Workers"}],["$","dt",null,{"className":"text-fg-muted","children":"License"}],["$","dd",null,{"children":"GPL-3.0-only"}],["$","dt",null,{"className":"text-fg-muted","children":"Source"}],["$","dd",null,{"children":["$","a",null,{"href":"git+https://github.com/upascal/mcp-deploy","target":"_blank","rel":"noopener noreferrer","className":"text-accent-fg hover:underline","children":"git+github.com/upascal/mcp-deploy"}]}]]}]]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],"loading":null,"isPartial":false}
7
7
  6:null
@@ -1,4 +1,4 @@
1
1
  1:"$Sreact.fragment"
2
2
  2:I[7121,[],""]
3
3
  3:I[4581,[],""]
4
- 0:{"buildId":"8v7FMKRjROJQw8iEA3azx","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}
4
+ 0:{"buildId":"2tKq_bTNyVhd6HGPRRssw","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}
@@ -1,23 +1,23 @@
1
1
  {
2
- "/_not-found/page": "app/_not-found/page.js",
3
- "/_global-error/page": "app/_global-error/page.js",
2
+ "/.well-known/oauth-authorization-server/route": "app/.well-known/oauth-authorization-server/route.js",
4
3
  "/api/cloudflare/setup/route": "app/api/cloudflare/setup/route.js",
5
4
  "/api/cloudflare/status/route": "app/api/cloudflare/status/route.js",
6
- "/api/mcps/[slug]/remove/route": "app/api/mcps/[slug]/remove/route.js",
7
5
  "/api/mcps/[slug]/deploy/route": "app/api/mcps/[slug]/deploy/route.js",
6
+ "/api/mcps/[slug]/remove/route": "app/api/mcps/[slug]/remove/route.js",
8
7
  "/api/mcps/[slug]/route": "app/api/mcps/[slug]/route.js",
9
8
  "/api/mcps/[slug]/secrets/route": "app/api/mcps/[slug]/secrets/route.js",
9
+ "/api/mcps/[slug]/status/route": "app/api/mcps/[slug]/status/route.js",
10
10
  "/api/mcps/[slug]/undeploy/route": "app/api/mcps/[slug]/undeploy/route.js",
11
- "/.well-known/oauth-authorization-server/route": "app/.well-known/oauth-authorization-server/route.js",
11
+ "/api/mcps/check-updates/route": "app/api/mcps/check-updates/route.js",
12
12
  "/api/mcps/add/route": "app/api/mcps/add/route.js",
13
- "/api/mcps/[slug]/status/route": "app/api/mcps/[slug]/status/route.js",
14
13
  "/api/mcps/route": "app/api/mcps/route.js",
15
14
  "/api/mcps/validate/route": "app/api/mcps/validate/route.js",
15
+ "/_not-found/page": "app/_not-found/page.js",
16
16
  "/api/oauth/approve/route": "app/api/oauth/approve/route.js",
17
+ "/_global-error/page": "app/_global-error/page.js",
17
18
  "/api/oauth/register/route": "app/api/oauth/register/route.js",
18
19
  "/api/oauth/token/route": "app/api/oauth/token/route.js",
19
20
  "/api/test-connection/route": "app/api/test-connection/route.js",
20
- "/api/mcps/check-updates/route": "app/api/mcps/check-updates/route.js",
21
21
  "/mcps/[slug]/page": "app/mcps/[slug]/page.js",
22
22
  "/oauth/authorize/page": "app/oauth/authorize/page.js",
23
23
  "/page": "app/page.js",
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=142,exports.ids=[142],exports.modules={3406:(a,b,c)=>{c.d(b,{Ux:()=>k,Oz:()=>l,Rj:()=>n,f4:()=>m,H7:()=>o});var d=c(3773),e=c(2629),f=c(8739);async function g(){let{loggedIn:a}=(0,f.iX)();return a}var h=c(4528),i=c(7416),j=c(5511);async function k(a,b="latest"){let c=(0,d.f6)(a);if(!c)throw Error("Invalid repository format. Use owner/repo or a GitHub URL.");let e=(0,h.aH)();if(e.some(a=>a.githubRepo===c))throw Error(`Repository ${c} is already added`);let{metadata:f,version:g,bundleUrl:i}=await (0,d.Og)(c,b),j=f.worker.name;if(e.some(a=>a.slug===j))throw Error(`"${f.name}" is already added`);return(0,h.Ux)({slug:j,githubRepo:c,releaseTag:b,addedAt:new Date().toISOString()}),(0,h.mS)(j,{metadata:f,bundleUrl:i,version:g}),{slug:j,name:f.name,version:g,githubRepo:c}}async function l(a,b){var c,d,k;let l,{authMode:m,secrets:n,config:o}=b,p=await (0,e.mo)(a);if(!p)throw Error("MCP not found");if(!g())throw Error("Not logged in to Cloudflare. Run `npx wrangler login` first, or use the Settings page.");let q=await (0,e.V9)(p),r={...(0,h.o_)(a)??{},...n},s=(0,h.i8)(a),t=!0===b.regenerateOAuthPassword,u=null;if("oauth"===m){if(process.env.OAUTH_PASSWORD?.trim())u=process.env.OAUTH_PASSWORD.trim();else if(!t&&s?.oauthPassword)try{u=(0,i.Y)(s.oauthPassword)}catch{u=null}u||(u=(0,j.randomBytes)(32).toString("hex"))}let v=!0===b.regenerateToken,w=null;if("open"!==m){if(!v&&s?.bearerToken)try{w=(0,i.Y)(s.bearerToken)}catch{w=null}w||(w=(0,j.randomBytes)(32).toString("hex"))}"oauth"===m?(c=q.durableObjectClassName,l=`
1
+ "use strict";exports.id=142,exports.ids=[142],exports.modules={1025:(a,b,c)=>{c.d(b,{Ux:()=>k,Oz:()=>l,Rj:()=>n,f4:()=>m,H7:()=>o});var d=c(3773),e=c(2629),f=c(8739);async function g(){let{loggedIn:a}=(0,f.iX)();return a}var h=c(4528),i=c(7416),j=c(5511);async function k(a,b="latest"){let c=(0,d.f6)(a);if(!c)throw Error("Invalid repository format. Use owner/repo or a GitHub URL.");let e=(0,h.aH)();if(e.some(a=>a.githubRepo===c))throw Error(`Repository ${c} is already added`);let{metadata:f,version:g,bundleUrl:i}=await (0,d.Og)(c,b),j=f.worker.name;if(e.some(a=>a.slug===j))throw Error(`"${f.name}" is already added`);return(0,h.Ux)({slug:j,githubRepo:c,releaseTag:b,addedAt:new Date().toISOString()}),(0,h.mS)(j,{metadata:f,bundleUrl:i,version:g}),{slug:j,name:f.name,version:g,githubRepo:c}}async function l(a,b){var c,d,k;let l,{authMode:m,secrets:n,config:o}=b,p=await (0,e.mo)(a);if(!p)throw Error("MCP not found");if(!g())throw Error("Not logged in to Cloudflare. Run `npx wrangler login` first, or use the Settings page.");let q=(0,h.Uu)(a),r=(0,h.ny)(a);q&&r&&q.latestVersion!==r.version&&(0,h.$D)(a);let s=await (0,e.V9)(p),t={...(0,h.o_)(a)??{},...n},u=(0,h.i8)(a),v=!0===b.regenerateOAuthPassword,w=null;if("oauth"===m){if(process.env.OAUTH_PASSWORD?.trim())w=process.env.OAUTH_PASSWORD.trim();else if(!v&&u?.oauthPassword)try{w=(0,i.Y)(u.oauthPassword)}catch{w=null}w||(w=(0,j.randomBytes)(32).toString("hex"))}let x=!0===b.regenerateToken,y=null;if("open"!==m){if(!x&&u?.bearerToken)try{y=(0,i.Y)(u.bearerToken)}catch{y=null}y||(y=(0,j.randomBytes)(32).toString("hex"))}"oauth"===m?(c=s.durableObjectClassName,l=`
2
2
  // ─── OAuth 2.1 Authorization Server + MCP Worker Wrapper ───
3
3
  // Auto-generated by mcp-deploy. Do not edit.
4
4
 
@@ -722,7 +722,7 @@ export default {
722
722
  );
723
723
  }
724
724
  };
725
- `.trim()):"open"===m?(d=q.durableObjectClassName,l=`
725
+ `.trim()):"open"===m?(d=s.durableObjectClassName,l=`
726
726
  // ─── Open (No Auth) Wrapper ───
727
727
  // Auto-generated by mcp-deploy. Do not edit.
728
728
 
@@ -757,7 +757,7 @@ export default {
757
757
  return OriginalWorker.fetch(request, env, ctx);
758
758
  },
759
759
  };
760
- `.trim()):(k=q.durableObjectClassName,l=`
760
+ `.trim()):(k=s.durableObjectClassName,l=`
761
761
  // ─── Bearer Token Authentication Wrapper ───
762
762
  // Auto-generated by mcp-deploy. Do not edit.
763
763
 
@@ -846,4 +846,4 @@ export default {
846
846
  return OriginalWorker.fetch(request, env, ctx);
847
847
  },
848
848
  };
849
- `.trim());let x=await (0,e.A1)(q),y="oauth"===m?await (0,f.JY)("mcp-deploy-oauth"):void 0,{url:z}=await (0,f.ER)(q,x,l,y),A={...r,...o};w&&(A.BEARER_TOKEN=w);let B=!1;"oauth"===m&&(A.OAUTH_JWT_SECRET=(0,j.randomBytes)(32).toString("hex"),u&&(A.OAUTH_PASSWORD=u),B=!0);try{await (0,f.sL)(q.workerName,A)}catch(a){console.error("[deploy] Failed to set secrets, cleaning up worker:",a);try{await (0,f.sp)(q.workerName)}catch(a){console.error("[deploy] Failed to delete worker during cleanup:",a)}throw a}let C=`${z}/mcp`,D=w?`${z}/mcp/t/${w}`:C;return(0,h.gT)({slug:a,status:"deployed",workerUrl:z,bearerToken:w?(0,i.w)(w):null,oauthPassword:u?(0,i.w)(u):null,authMode:m,deployedAt:new Date().toISOString(),version:q.version}),(0,h.el)(a,{...r,...o}),(0,h.OV)(a,q.version),{workerUrl:z,mcpUrl:C,mcpUrlWithToken:D,bearerToken:w,oauthPassword:u,authMode:m,oauthEnabled:B,version:q.version}}async function m(a){let b=(0,h.i8)(a);if(!b||"deployed"!==b.status)throw Error("MCP is not deployed");if(b.workerUrl){let b=await (0,e.mo)(a);if(b)try{let a=await (0,e.V9)(b);await (0,f.sp)(a.workerName)}catch(b){console.warn(`[undeploy] Failed to delete worker for "${a}":`,b)}}(0,h.f4)(a)}async function n(a){let b=(0,h.i8)(a);if(b?.workerUrl){let b=await (0,e.mo)(a);if(b)try{let a=await (0,e.V9)(b);await (0,f.sp)(a.workerName)}catch(b){console.warn(`[remove] Failed to delete worker for "${a}":`,b)}}(0,h.Rj)(a)}async function o(a,b,c=[]){let d=await (0,e.mo)(a);if(!d)throw Error("MCP not found");let i=await (0,e.V9)(d);if(!g())throw Error("Not logged in to Cloudflare. Run `npx wrangler login` first.");for(let a of c)await (0,f.e3)(i.workerName,a);await (0,f.sL)(i.workerName,b);let j={...(0,h.o_)(a)??{},...b};for(let a of c)delete j[a];return(0,h.el)(a,j),{updatedKeys:Object.keys(b),deletedKeys:c}}},8739:(a,b,c)=>{c.d(b,{ER:()=>q,JY:()=>t,Ns:()=>u,e3:()=>s,eS:()=>p,iX:()=>o,sL:()=>r,sp:()=>v});var d=c(9646),e=c(9021),f=c(3873),g=c(1820);let h=null;function i(a){return`${function(){if(h)return h;try{let a=(0,d.execSync)("which wrangler 2>/dev/null",{encoding:"utf-8",timeout:3e3}).trim();if(a)return h=a}catch{}try{let a=(0,d.execSync)("npx -y which wrangler 2>/dev/null",{encoding:"utf-8",timeout:15e3}).trim();if(a)return h=a}catch{}return h="npx -y wrangler"}()} ${a}`}let j=/^[a-zA-Z0-9_-]+$/,k=/^[a-zA-Z0-9_]+$/;function l(a){if(!j.test(a))throw Error(`Invalid worker name "${a}": must match ${j}`)}function m(a){if(!k.test(a))throw Error(`Invalid secret name "${a}": must match ${k}`)}let n=null;function o(){if(n&&Date.now()-n.timestamp<3e5)return n.result;try{let a=(0,d.execSync)(i("whoami 2>&1"),{encoding:"utf-8",timeout:15e3});if(a.includes("You are logged in")||a.includes("associated with")){let b=a.match(/associated with the email ([^\s!]+)/),c=b?b[1]:void 0,d={loggedIn:!0,account:c};return n={result:d,timestamp:Date.now()},d}let b={loggedIn:!1};return n={result:b,timestamp:Date.now()},b}catch{let a={loggedIn:!1};return n={result:a,timestamp:Date.now()},a}}async function p(){return n=null,new Promise(a=>{let b=(0,d.exec)(i("login"),{timeout:12e4}),c="";b.stdout?.on("data",a=>c+=a),b.stderr?.on("data",a=>c+=a),b.on("close",b=>{0===b?a({success:!0}):a({success:!1,error:"Cloudflare login failed. Please try again."})}),b.on("error",b=>{a({success:!1,error:b.message})})})}async function q(a,b,c,h){let j=(0,e.mkdtempSync)((0,f.join)((0,g.tmpdir)(),"mcp-deploy-"));try{let g=function(a){l(a);try{let b=(0,d.execSync)(i(`deployments list --name ${a} 2>&1`),{encoding:"utf-8",timeout:15e3});return!b.includes("no deployments")&&b.includes("Created on")}catch{return!1}}(a.workerName),k={name:a.workerName,main:"index.mjs",compatibility_date:a.compatibilityDate,compatibility_flags:a.compatibilityFlags,durable_objects:{bindings:[{name:a.durableObjectBinding,class_name:a.durableObjectClassName}]},...h&&{kv_namespaces:[{binding:"OAUTH_KV",id:h}]}};g?console.log("[wrangler] Existing worker, skipping migrations"):(k.migrations=[{tag:a.migrationTag,new_sqlite_classes:[a.durableObjectClassName]}],console.log("[wrangler] New worker, including migrations")),(0,e.writeFileSync)((0,f.join)(j,"wrangler.jsonc"),JSON.stringify(k,null,2)),(0,e.writeFileSync)((0,f.join)(j,"index.mjs"),c),(0,e.writeFileSync)((0,f.join)(j,"original.mjs"),b),console.log(`[wrangler] Deploying ${a.workerName} from ${j}...`);let m="";try{m=(0,d.execSync)(i("deploy 2>&1"),{cwd:j,encoding:"utf-8",timeout:12e4})}catch(d){let a=(d?.stdout??"").toString(),b=(d?.stderr??"").toString(),c=[a,b].filter(Boolean).join("\n").trim();throw Error(c?`wrangler deploy failed: ${c}`:`wrangler deploy failed: ${d instanceof Error?d.message:"unknown error"}`)}let n=m.match(/https:\/\/[^\s]+\.workers\.dev/);if(!n)throw Error("Deployed but could not find Worker URL in output. Check wrangler output.");return{url:n[0]}}finally{try{(0,e.rmSync)(j,{recursive:!0,force:!0})}catch{}}}async function r(a,b){l(a);let c={};for(let[a,d]of Object.entries(b))m(a),d&&(c[a]=d);if(0===Object.keys(c).length)return;let h=(0,e.mkdtempSync)((0,f.join)((0,g.tmpdir)(),"mcp-secrets-")),j=(0,f.join)(h,"secrets.json");try{(0,e.writeFileSync)(j,JSON.stringify(c)),console.log(`[wrangler] Setting ${Object.keys(c).length} secrets on ${a}...`),(0,d.execSync)(i(`secret bulk "${j}" --name ${a} 2>&1`),{encoding:"utf-8",timeout:3e4}),console.log("[wrangler] Secrets set successfully")}finally{try{(0,e.rmSync)(h,{recursive:!0,force:!0})}catch{}}}async function s(a,b){l(a),m(b);try{(0,d.execSync)(i(`secret delete ${b} --name ${a} --force 2>&1`),{encoding:"utf-8",timeout:15e3})}catch{}}async function t(a){try{let b=(0,d.execSync)(i("kv namespace list 2>&1"),{encoding:"utf-8",timeout:15e3}).match(/\[[\s\S]*\]/);if(b)try{let c=JSON.parse(b[0]).find(b=>b.title===a);if(c)return console.log(`[wrangler] KV namespace "${a}" already exists: ${c.id}`),c.id}catch{console.warn("[wrangler] Failed to parse KV namespace list, will attempt to create")}}catch{}console.log(`[wrangler] Creating KV namespace "${a}"...`);let b=(0,d.execSync)(i(`kv namespace create "${a}" 2>&1`),{encoding:"utf-8",timeout:15e3}),c=b.match(/id\s*=\s*"([^"]+)"/);if(!c)throw Error(`Failed to parse KV namespace ID from wrangler output: ${b}`);return console.log(`[wrangler] Created KV namespace "${a}": ${c[1]}`),c[1]}async function u(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),1e4),d=await fetch(a,{signal:b.signal});return clearTimeout(c),{healthy:d.ok,status:d.status}}catch(a){return{healthy:!1,error:a instanceof Error?a.message:"Unknown error"}}}async function v(a){l(a),(0,d.execSync)(i(`delete --name ${a} --force 2>&1`),{encoding:"utf-8",timeout:3e4})}},9526:(a,b,c)=>{function d(a){return"string"==typeof a&&!(a.length<1)&&!(a.length>100)&&/^[a-zA-Z0-9_-]+$/.test(a)}function e(a){return"string"==typeof a&&("latest"===a||!(a.length<1)&&!(a.length>100)&&/^v?[a-zA-Z0-9._-]+$/.test(a))}function f(a){return"string"==typeof a&&!(a.length<1)&&!(a.length>100)&&/^[A-Z0-9_]+$/.test(a)}function g(a){if("object"!=typeof a||null===a||Array.isArray(a))return!1;for(let[b,c]of Object.entries(a))if(!f(b)||!("string"==typeof c&&c.length>=1&&c.length<=1e4))return!1;return!0}c.d(b,{Ac:()=>d,SR:()=>e,fz:()=>g,y6:()=>f})}};
849
+ `.trim());let z=await (0,e.A1)(s),A="oauth"===m?await (0,f.JY)("mcp-deploy-oauth"):void 0,{url:B}=await (0,f.ER)(s,z,l,A),C={...t,...o};y&&(C.BEARER_TOKEN=y);let D=!1;"oauth"===m&&(C.OAUTH_JWT_SECRET=(0,j.randomBytes)(32).toString("hex"),w&&(C.OAUTH_PASSWORD=w),D=!0);try{await (0,f.sL)(s.workerName,C)}catch(a){console.error("[deploy] Failed to set secrets, cleaning up worker:",a);try{await (0,f.sp)(s.workerName)}catch(a){console.error("[deploy] Failed to delete worker during cleanup:",a)}throw a}let E=`${B}/mcp`,F=y?`${B}/mcp/t/${y}`:E;return(0,h.gT)({slug:a,status:"deployed",workerUrl:B,bearerToken:y?(0,i.w)(y):null,oauthPassword:w?(0,i.w)(w):null,authMode:m,deployedAt:new Date().toISOString(),version:s.version}),(0,h.el)(a,{...t,...o}),(0,h.OV)(a,s.version),{workerUrl:B,mcpUrl:E,mcpUrlWithToken:F,bearerToken:y,oauthPassword:w,authMode:m,oauthEnabled:D,version:s.version}}async function m(a){let b=(0,h.i8)(a);if(!b||"deployed"!==b.status)throw Error("MCP is not deployed");if(b.workerUrl){let b=await (0,e.mo)(a);if(b)try{let a=await (0,e.V9)(b);await (0,f.sp)(a.workerName)}catch(b){console.warn(`[undeploy] Failed to delete worker for "${a}":`,b)}}(0,h.f4)(a)}async function n(a){let b=(0,h.i8)(a);if(b?.workerUrl){let b=await (0,e.mo)(a);if(b)try{let a=await (0,e.V9)(b);await (0,f.sp)(a.workerName)}catch(b){console.warn(`[remove] Failed to delete worker for "${a}":`,b)}}(0,h.Rj)(a)}async function o(a,b,c=[]){let d=await (0,e.mo)(a);if(!d)throw Error("MCP not found");let i=await (0,e.V9)(d);if(!g())throw Error("Not logged in to Cloudflare. Run `npx wrangler login` first.");for(let a of c)await (0,f.e3)(i.workerName,a);await (0,f.sL)(i.workerName,b);let j={...(0,h.o_)(a)??{},...b};for(let a of c)delete j[a];return(0,h.el)(a,j),{updatedKeys:Object.keys(b),deletedKeys:c}}},8739:(a,b,c)=>{c.d(b,{ER:()=>q,JY:()=>t,Ns:()=>u,e3:()=>s,eS:()=>p,iX:()=>o,sL:()=>r,sp:()=>v});var d=c(9646),e=c(9021),f=c(3873),g=c(1820);let h=null;function i(a){return`${function(){if(h)return h;try{let a=(0,d.execSync)("which wrangler 2>/dev/null",{encoding:"utf-8",timeout:3e3}).trim();if(a)return h=a}catch{}try{let a=(0,d.execSync)("npx -y which wrangler 2>/dev/null",{encoding:"utf-8",timeout:15e3}).trim();if(a)return h=a}catch{}return h="npx -y wrangler"}()} ${a}`}let j=/^[a-zA-Z0-9_-]+$/,k=/^[a-zA-Z0-9_]+$/;function l(a){if(!j.test(a))throw Error(`Invalid worker name "${a}": must match ${j}`)}function m(a){if(!k.test(a))throw Error(`Invalid secret name "${a}": must match ${k}`)}let n=null;function o(){if(n&&Date.now()-n.timestamp<3e5)return n.result;try{let a=(0,d.execSync)(i("whoami 2>&1"),{encoding:"utf-8",timeout:15e3});if(a.includes("You are logged in")||a.includes("associated with")){let b=a.match(/associated with the email ([^\s!]+)/),c=b?b[1]:void 0,d={loggedIn:!0,account:c};return n={result:d,timestamp:Date.now()},d}let b={loggedIn:!1};return n={result:b,timestamp:Date.now()},b}catch{let a={loggedIn:!1};return n={result:a,timestamp:Date.now()},a}}async function p(){return n=null,new Promise(a=>{let b=(0,d.exec)(i("login"),{timeout:12e4}),c="";b.stdout?.on("data",a=>c+=a),b.stderr?.on("data",a=>c+=a),b.on("close",b=>{0===b?a({success:!0}):a({success:!1,error:"Cloudflare login failed. Please try again."})}),b.on("error",b=>{a({success:!1,error:b.message})})})}async function q(a,b,c,h){let j=(0,e.mkdtempSync)((0,f.join)((0,g.tmpdir)(),"mcp-deploy-"));try{let g=function(a){l(a);try{let b=(0,d.execSync)(i(`deployments list --name ${a} 2>&1`),{encoding:"utf-8",timeout:15e3});return!b.includes("no deployments")&&b.includes("Created on")}catch{return!1}}(a.workerName),k={name:a.workerName,main:"index.mjs",compatibility_date:a.compatibilityDate,compatibility_flags:a.compatibilityFlags,durable_objects:{bindings:[{name:a.durableObjectBinding,class_name:a.durableObjectClassName}]},...h&&{kv_namespaces:[{binding:"OAUTH_KV",id:h}]}};g?console.log("[wrangler] Existing worker, skipping migrations"):(k.migrations=[{tag:a.migrationTag,new_sqlite_classes:[a.durableObjectClassName]}],console.log("[wrangler] New worker, including migrations")),(0,e.writeFileSync)((0,f.join)(j,"wrangler.jsonc"),JSON.stringify(k,null,2)),(0,e.writeFileSync)((0,f.join)(j,"index.mjs"),c),(0,e.writeFileSync)((0,f.join)(j,"original.mjs"),b),console.log(`[wrangler] Deploying ${a.workerName} from ${j}...`);let m="";try{m=(0,d.execSync)(i("deploy 2>&1"),{cwd:j,encoding:"utf-8",timeout:12e4})}catch(d){let a=(d?.stdout??"").toString(),b=(d?.stderr??"").toString(),c=[a,b].filter(Boolean).join("\n").trim();throw Error(c?`wrangler deploy failed: ${c}`:`wrangler deploy failed: ${d instanceof Error?d.message:"unknown error"}`)}let n=m.match(/https:\/\/[^\s]+\.workers\.dev/);if(!n)throw Error("Deployed but could not find Worker URL in output. Check wrangler output.");return{url:n[0]}}finally{try{(0,e.rmSync)(j,{recursive:!0,force:!0})}catch{}}}async function r(a,b){l(a);let c={};for(let[a,d]of Object.entries(b))m(a),d&&(c[a]=d);if(0===Object.keys(c).length)return;let h=(0,e.mkdtempSync)((0,f.join)((0,g.tmpdir)(),"mcp-secrets-")),j=(0,f.join)(h,"secrets.json");try{(0,e.writeFileSync)(j,JSON.stringify(c)),console.log(`[wrangler] Setting ${Object.keys(c).length} secrets on ${a}...`),(0,d.execSync)(i(`secret bulk "${j}" --name ${a} 2>&1`),{encoding:"utf-8",timeout:3e4}),console.log("[wrangler] Secrets set successfully")}finally{try{(0,e.rmSync)(h,{recursive:!0,force:!0})}catch{}}}async function s(a,b){l(a),m(b);try{(0,d.execSync)(i(`secret delete ${b} --name ${a} --force 2>&1`),{encoding:"utf-8",timeout:15e3})}catch{}}async function t(a){try{let b=(0,d.execSync)(i("kv namespace list 2>&1"),{encoding:"utf-8",timeout:15e3}).match(/\[[\s\S]*\]/);if(b)try{let c=JSON.parse(b[0]).find(b=>b.title===a);if(c)return console.log(`[wrangler] KV namespace "${a}" already exists: ${c.id}`),c.id}catch{console.warn("[wrangler] Failed to parse KV namespace list, will attempt to create")}}catch{}console.log(`[wrangler] Creating KV namespace "${a}"...`);let b=(0,d.execSync)(i(`kv namespace create "${a}" 2>&1`),{encoding:"utf-8",timeout:15e3}),c=b.match(/id\s*=\s*"([^"]+)"/);if(!c)throw Error(`Failed to parse KV namespace ID from wrangler output: ${b}`);return console.log(`[wrangler] Created KV namespace "${a}": ${c[1]}`),c[1]}async function u(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),1e4),d=await fetch(a,{signal:b.signal});return clearTimeout(c),{healthy:d.ok,status:d.status}}catch(a){return{healthy:!1,error:a instanceof Error?a.message:"Unknown error"}}}async function v(a){l(a),(0,d.execSync)(i(`delete --name ${a} --force 2>&1`),{encoding:"utf-8",timeout:3e4})}},9526:(a,b,c)=>{function d(a){return"string"==typeof a&&!(a.length<1)&&!(a.length>100)&&/^[a-zA-Z0-9_-]+$/.test(a)}function e(a){return"string"==typeof a&&("latest"===a||!(a.length<1)&&!(a.length>100)&&/^v?[a-zA-Z0-9._-]+$/.test(a))}function f(a){return"string"==typeof a&&!(a.length<1)&&!(a.length>100)&&/^[A-Z0-9_]+$/.test(a)}function g(a){if("object"!=typeof a||null===a||Array.isArray(a))return!1;for(let[b,c]of Object.entries(a))if(!f(b)||!("string"==typeof c&&c.length>=1&&c.length<=1e4))return!1;return!0}c.d(b,{Ac:()=>d,SR:()=>e,fz:()=>g,y6:()=>f})}};