@superblocksteam/mcp-server 2.0.101-next.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 (291) hide show
  1. package/LICENSE.txt +87 -0
  2. package/README.md +264 -0
  3. package/dist/application/commit-history.d.ts +27 -0
  4. package/dist/application/commit-history.d.ts.map +1 -0
  5. package/dist/application/commit-history.js +36 -0
  6. package/dist/application/commit-history.js.map +1 -0
  7. package/dist/application/directory-tree.d.ts +11 -0
  8. package/dist/application/directory-tree.d.ts.map +1 -0
  9. package/dist/application/directory-tree.js +37 -0
  10. package/dist/application/directory-tree.js.map +1 -0
  11. package/dist/application/materialize-application.d.ts +16 -0
  12. package/dist/application/materialize-application.d.ts.map +1 -0
  13. package/dist/application/materialize-application.js +47 -0
  14. package/dist/application/materialize-application.js.map +1 -0
  15. package/dist/application/summary.d.ts +25 -0
  16. package/dist/application/summary.d.ts.map +1 -0
  17. package/dist/application/summary.js +42 -0
  18. package/dist/application/summary.js.map +1 -0
  19. package/dist/auth/commands.d.ts +3 -0
  20. package/dist/auth/commands.d.ts.map +1 -0
  21. package/dist/auth/commands.js +84 -0
  22. package/dist/auth/commands.js.map +1 -0
  23. package/dist/auth/resolve-auth.d.ts +14 -0
  24. package/dist/auth/resolve-auth.d.ts.map +1 -0
  25. package/dist/auth/resolve-auth.js +56 -0
  26. package/dist/auth/resolve-auth.js.map +1 -0
  27. package/dist/auth/store.d.ts +16 -0
  28. package/dist/auth/store.d.ts.map +1 -0
  29. package/dist/auth/store.js +63 -0
  30. package/dist/auth/store.js.map +1 -0
  31. package/dist/http.d.ts +9 -0
  32. package/dist/http.d.ts.map +1 -0
  33. package/dist/http.js +404 -0
  34. package/dist/http.js.map +1 -0
  35. package/dist/index.d.ts +8 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +68 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/profile.d.ts +3 -0
  40. package/dist/profile.d.ts.map +1 -0
  41. package/dist/profile.js +7 -0
  42. package/dist/profile.js.map +1 -0
  43. package/dist/sdk/create-sdk.d.ts +3 -0
  44. package/dist/sdk/create-sdk.d.ts.map +1 -0
  45. package/dist/sdk/create-sdk.js +6 -0
  46. package/dist/sdk/create-sdk.js.map +1 -0
  47. package/dist/target/resolve-app-target.d.ts +87 -0
  48. package/dist/target/resolve-app-target.d.ts.map +1 -0
  49. package/dist/target/resolve-app-target.js +150 -0
  50. package/dist/target/resolve-app-target.js.map +1 -0
  51. package/dist/target/resolve-base-url-target.d.ts +102 -0
  52. package/dist/target/resolve-base-url-target.d.ts.map +1 -0
  53. package/dist/target/resolve-base-url-target.js +94 -0
  54. package/dist/target/resolve-base-url-target.js.map +1 -0
  55. package/dist/target/resolve-organization-target.d.ts +22 -0
  56. package/dist/target/resolve-organization-target.d.ts.map +1 -0
  57. package/dist/target/resolve-organization-target.js +50 -0
  58. package/dist/target/resolve-organization-target.js.map +1 -0
  59. package/dist/tool-call-result.d.ts +12 -0
  60. package/dist/tool-call-result.d.ts.map +1 -0
  61. package/dist/tool-call-result.js +28 -0
  62. package/dist/tool-call-result.js.map +1 -0
  63. package/dist/tools/assign-builder-seat.d.ts +3 -0
  64. package/dist/tools/assign-builder-seat.d.ts.map +1 -0
  65. package/dist/tools/assign-builder-seat.js +45 -0
  66. package/dist/tools/assign-builder-seat.js.map +1 -0
  67. package/dist/tools/check-promo.d.ts +3 -0
  68. package/dist/tools/check-promo.d.ts.map +1 -0
  69. package/dist/tools/check-promo.js +45 -0
  70. package/dist/tools/check-promo.js.map +1 -0
  71. package/dist/tools/checkout-application.d.ts +3 -0
  72. package/dist/tools/checkout-application.d.ts.map +1 -0
  73. package/dist/tools/checkout-application.js +65 -0
  74. package/dist/tools/checkout-application.js.map +1 -0
  75. package/dist/tools/contact-sales.d.ts +3 -0
  76. package/dist/tools/contact-sales.d.ts.map +1 -0
  77. package/dist/tools/contact-sales.js +46 -0
  78. package/dist/tools/contact-sales.js.map +1 -0
  79. package/dist/tools/create-application.d.ts +3 -0
  80. package/dist/tools/create-application.d.ts.map +1 -0
  81. package/dist/tools/create-application.js +52 -0
  82. package/dist/tools/create-application.js.map +1 -0
  83. package/dist/tools/create-billing-intent.d.ts +3 -0
  84. package/dist/tools/create-billing-intent.d.ts.map +1 -0
  85. package/dist/tools/create-billing-intent.js +42 -0
  86. package/dist/tools/create-billing-intent.js.map +1 -0
  87. package/dist/tools/create-checkout-session.d.ts +3 -0
  88. package/dist/tools/create-checkout-session.d.ts.map +1 -0
  89. package/dist/tools/create-checkout-session.js +44 -0
  90. package/dist/tools/create-checkout-session.js.map +1 -0
  91. package/dist/tools/create-folder.d.ts +3 -0
  92. package/dist/tools/create-folder.d.ts.map +1 -0
  93. package/dist/tools/create-folder.js +39 -0
  94. package/dist/tools/create-folder.js.map +1 -0
  95. package/dist/tools/create-integration.d.ts +3 -0
  96. package/dist/tools/create-integration.d.ts.map +1 -0
  97. package/dist/tools/create-integration.js +39 -0
  98. package/dist/tools/create-integration.js.map +1 -0
  99. package/dist/tools/delete-folder.d.ts +3 -0
  100. package/dist/tools/delete-folder.d.ts.map +1 -0
  101. package/dist/tools/delete-folder.js +42 -0
  102. package/dist/tools/delete-folder.js.map +1 -0
  103. package/dist/tools/delete-integration.d.ts +3 -0
  104. package/dist/tools/delete-integration.d.ts.map +1 -0
  105. package/dist/tools/delete-integration.js +39 -0
  106. package/dist/tools/delete-integration.js.map +1 -0
  107. package/dist/tools/deploy-application.d.ts +3 -0
  108. package/dist/tools/deploy-application.d.ts.map +1 -0
  109. package/dist/tools/deploy-application.js +79 -0
  110. package/dist/tools/deploy-application.js.map +1 -0
  111. package/dist/tools/downgrade-plan.d.ts +3 -0
  112. package/dist/tools/downgrade-plan.d.ts.map +1 -0
  113. package/dist/tools/downgrade-plan.js +42 -0
  114. package/dist/tools/downgrade-plan.js.map +1 -0
  115. package/dist/tools/find-apps-by-package.d.ts +3 -0
  116. package/dist/tools/find-apps-by-package.d.ts.map +1 -0
  117. package/dist/tools/find-apps-by-package.js +124 -0
  118. package/dist/tools/find-apps-by-package.js.map +1 -0
  119. package/dist/tools/get-app-activity-report.d.ts +3 -0
  120. package/dist/tools/get-app-activity-report.d.ts.map +1 -0
  121. package/dist/tools/get-app-activity-report.js +88 -0
  122. package/dist/tools/get-app-activity-report.js.map +1 -0
  123. package/dist/tools/get-application-access.d.ts +3 -0
  124. package/dist/tools/get-application-access.d.ts.map +1 -0
  125. package/dist/tools/get-application-access.js +35 -0
  126. package/dist/tools/get-application-access.js.map +1 -0
  127. package/dist/tools/get-application-commit-history.d.ts +3 -0
  128. package/dist/tools/get-application-commit-history.d.ts.map +1 -0
  129. package/dist/tools/get-application-commit-history.js +55 -0
  130. package/dist/tools/get-application-commit-history.js.map +1 -0
  131. package/dist/tools/get-application-dependencies.d.ts +3 -0
  132. package/dist/tools/get-application-dependencies.d.ts.map +1 -0
  133. package/dist/tools/get-application-dependencies.js +109 -0
  134. package/dist/tools/get-application-dependencies.js.map +1 -0
  135. package/dist/tools/get-application-structure.d.ts +3 -0
  136. package/dist/tools/get-application-structure.d.ts.map +1 -0
  137. package/dist/tools/get-application-structure.js +98 -0
  138. package/dist/tools/get-application-structure.js.map +1 -0
  139. package/dist/tools/get-application-summary.d.ts +3 -0
  140. package/dist/tools/get-application-summary.d.ts.map +1 -0
  141. package/dist/tools/get-application-summary.js +46 -0
  142. package/dist/tools/get-application-summary.js.map +1 -0
  143. package/dist/tools/get-audit-entities.d.ts +3 -0
  144. package/dist/tools/get-audit-entities.d.ts.map +1 -0
  145. package/dist/tools/get-audit-entities.js +37 -0
  146. package/dist/tools/get-audit-entities.js.map +1 -0
  147. package/dist/tools/get-audit-events.d.ts +3 -0
  148. package/dist/tools/get-audit-events.d.ts.map +1 -0
  149. package/dist/tools/get-audit-events.js +49 -0
  150. package/dist/tools/get-audit-events.js.map +1 -0
  151. package/dist/tools/get-audit-logs.d.ts +3 -0
  152. package/dist/tools/get-audit-logs.d.ts.map +1 -0
  153. package/dist/tools/get-audit-logs.js +52 -0
  154. package/dist/tools/get-audit-logs.js.map +1 -0
  155. package/dist/tools/get-auth-status.d.ts +3 -0
  156. package/dist/tools/get-auth-status.d.ts.map +1 -0
  157. package/dist/tools/get-auth-status.js +34 -0
  158. package/dist/tools/get-auth-status.js.map +1 -0
  159. package/dist/tools/get-billing-plan-summary.d.ts +3 -0
  160. package/dist/tools/get-billing-plan-summary.d.ts.map +1 -0
  161. package/dist/tools/get-billing-plan-summary.js +32 -0
  162. package/dist/tools/get-billing-plan-summary.js.map +1 -0
  163. package/dist/tools/get-billing-usage-daily.d.ts +3 -0
  164. package/dist/tools/get-billing-usage-daily.d.ts.map +1 -0
  165. package/dist/tools/get-billing-usage-daily.js +37 -0
  166. package/dist/tools/get-billing-usage-daily.js.map +1 -0
  167. package/dist/tools/get-billing-usage-records.d.ts +3 -0
  168. package/dist/tools/get-billing-usage-records.d.ts.map +1 -0
  169. package/dist/tools/get-billing-usage-records.js +46 -0
  170. package/dist/tools/get-billing-usage-records.js.map +1 -0
  171. package/dist/tools/get-current-user.d.ts +3 -0
  172. package/dist/tools/get-current-user.d.ts.map +1 -0
  173. package/dist/tools/get-current-user.js +38 -0
  174. package/dist/tools/get-current-user.js.map +1 -0
  175. package/dist/tools/get-git-fresh-token.d.ts +3 -0
  176. package/dist/tools/get-git-fresh-token.d.ts.map +1 -0
  177. package/dist/tools/get-git-fresh-token.js +42 -0
  178. package/dist/tools/get-git-fresh-token.js.map +1 -0
  179. package/dist/tools/get-integration-access.d.ts +3 -0
  180. package/dist/tools/get-integration-access.d.ts.map +1 -0
  181. package/dist/tools/get-integration-access.js +41 -0
  182. package/dist/tools/get-integration-access.js.map +1 -0
  183. package/dist/tools/get-integration.d.ts +3 -0
  184. package/dist/tools/get-integration.d.ts.map +1 -0
  185. package/dist/tools/get-integration.js +39 -0
  186. package/dist/tools/get-integration.js.map +1 -0
  187. package/dist/tools/get-job-access.d.ts +3 -0
  188. package/dist/tools/get-job-access.d.ts.map +1 -0
  189. package/dist/tools/get-job-access.js +41 -0
  190. package/dist/tools/get-job-access.js.map +1 -0
  191. package/dist/tools/get-knowledge.d.ts +3 -0
  192. package/dist/tools/get-knowledge.d.ts.map +1 -0
  193. package/dist/tools/get-knowledge.js +48 -0
  194. package/dist/tools/get-knowledge.js.map +1 -0
  195. package/dist/tools/get-organization-summary.d.ts +3 -0
  196. package/dist/tools/get-organization-summary.d.ts.map +1 -0
  197. package/dist/tools/get-organization-summary.js +48 -0
  198. package/dist/tools/get-organization-summary.js.map +1 -0
  199. package/dist/tools/get-workflow-access.d.ts +3 -0
  200. package/dist/tools/get-workflow-access.d.ts.map +1 -0
  201. package/dist/tools/get-workflow-access.js +41 -0
  202. package/dist/tools/get-workflow-access.js.map +1 -0
  203. package/dist/tools/grant-resource-access.d.ts +3 -0
  204. package/dist/tools/grant-resource-access.d.ts.map +1 -0
  205. package/dist/tools/grant-resource-access.js +62 -0
  206. package/dist/tools/grant-resource-access.js.map +1 -0
  207. package/dist/tools/index.d.ts +6 -0
  208. package/dist/tools/index.d.ts.map +1 -0
  209. package/dist/tools/index.js +112 -0
  210. package/dist/tools/index.js.map +1 -0
  211. package/dist/tools/list-applications.d.ts +3 -0
  212. package/dist/tools/list-applications.d.ts.map +1 -0
  213. package/dist/tools/list-applications.js +82 -0
  214. package/dist/tools/list-applications.js.map +1 -0
  215. package/dist/tools/list-builder-seats.d.ts +3 -0
  216. package/dist/tools/list-builder-seats.d.ts.map +1 -0
  217. package/dist/tools/list-builder-seats.js +42 -0
  218. package/dist/tools/list-builder-seats.js.map +1 -0
  219. package/dist/tools/list-folders.d.ts +3 -0
  220. package/dist/tools/list-folders.d.ts.map +1 -0
  221. package/dist/tools/list-folders.js +39 -0
  222. package/dist/tools/list-folders.js.map +1 -0
  223. package/dist/tools/list-integrations.d.ts +3 -0
  224. package/dist/tools/list-integrations.d.ts.map +1 -0
  225. package/dist/tools/list-integrations.js +41 -0
  226. package/dist/tools/list-integrations.js.map +1 -0
  227. package/dist/tools/list-knowledge.d.ts +3 -0
  228. package/dist/tools/list-knowledge.d.ts.map +1 -0
  229. package/dist/tools/list-knowledge.js +56 -0
  230. package/dist/tools/list-knowledge.js.map +1 -0
  231. package/dist/tools/list-organization-agents.d.ts +3 -0
  232. package/dist/tools/list-organization-agents.d.ts.map +1 -0
  233. package/dist/tools/list-organization-agents.js +46 -0
  234. package/dist/tools/list-organization-agents.js.map +1 -0
  235. package/dist/tools/list-rbac-assignments.d.ts +3 -0
  236. package/dist/tools/list-rbac-assignments.d.ts.map +1 -0
  237. package/dist/tools/list-rbac-assignments.js +57 -0
  238. package/dist/tools/list-rbac-assignments.js.map +1 -0
  239. package/dist/tools/map-rbac-assignments.d.ts +35 -0
  240. package/dist/tools/map-rbac-assignments.d.ts.map +1 -0
  241. package/dist/tools/map-rbac-assignments.js +22 -0
  242. package/dist/tools/map-rbac-assignments.js.map +1 -0
  243. package/dist/tools/registry.d.ts +26 -0
  244. package/dist/tools/registry.d.ts.map +1 -0
  245. package/dist/tools/registry.js +25 -0
  246. package/dist/tools/registry.js.map +1 -0
  247. package/dist/tools/revoke-resource-access.d.ts +3 -0
  248. package/dist/tools/revoke-resource-access.d.ts.map +1 -0
  249. package/dist/tools/revoke-resource-access.js +39 -0
  250. package/dist/tools/revoke-resource-access.js.map +1 -0
  251. package/dist/tools/schemas.d.ts +115 -0
  252. package/dist/tools/schemas.d.ts.map +1 -0
  253. package/dist/tools/schemas.js +783 -0
  254. package/dist/tools/schemas.js.map +1 -0
  255. package/dist/tools/server-api.d.ts +12 -0
  256. package/dist/tools/server-api.d.ts.map +1 -0
  257. package/dist/tools/server-api.js +59 -0
  258. package/dist/tools/server-api.js.map +1 -0
  259. package/dist/tools/submit-payment.d.ts +3 -0
  260. package/dist/tools/submit-payment.d.ts.map +1 -0
  261. package/dist/tools/submit-payment.js +44 -0
  262. package/dist/tools/submit-payment.js.map +1 -0
  263. package/dist/tools/unassign-builder-seat.d.ts +3 -0
  264. package/dist/tools/unassign-builder-seat.d.ts.map +1 -0
  265. package/dist/tools/unassign-builder-seat.js +44 -0
  266. package/dist/tools/unassign-builder-seat.js.map +1 -0
  267. package/dist/tools/update-folder.d.ts +3 -0
  268. package/dist/tools/update-folder.d.ts.map +1 -0
  269. package/dist/tools/update-folder.js +42 -0
  270. package/dist/tools/update-folder.js.map +1 -0
  271. package/dist/tools/update-integration.d.ts +3 -0
  272. package/dist/tools/update-integration.d.ts.map +1 -0
  273. package/dist/tools/update-integration.js +40 -0
  274. package/dist/tools/update-integration.js.map +1 -0
  275. package/dist/tools/update-resource-access.d.ts +3 -0
  276. package/dist/tools/update-resource-access.d.ts.map +1 -0
  277. package/dist/tools/update-resource-access.js +44 -0
  278. package/dist/tools/update-resource-access.js.map +1 -0
  279. package/dist/tools/update-subscription.d.ts +3 -0
  280. package/dist/tools/update-subscription.d.ts.map +1 -0
  281. package/dist/tools/update-subscription.js +44 -0
  282. package/dist/tools/update-subscription.js.map +1 -0
  283. package/dist/tools/validation.d.ts +3 -0
  284. package/dist/tools/validation.d.ts.map +1 -0
  285. package/dist/tools/validation.js +10 -0
  286. package/dist/tools/validation.js.map +1 -0
  287. package/dist/urls.d.ts +4 -0
  288. package/dist/urls.d.ts.map +1 -0
  289. package/dist/urls.js +33 -0
  290. package/dist/urls.js.map +1 -0
  291. package/package.json +58 -0
package/dist/http.js ADDED
@@ -0,0 +1,404 @@
1
+ import { createHmac, randomUUID, timingSafeEqual } from "node:crypto";
2
+ import { createServer, } from "node:http";
3
+ import { McpError } from "@modelcontextprotocol/sdk/types.js";
4
+ import pkg from "../package.json" with { type: "json" };
5
+ import { resolveProfile } from "./profile.js";
6
+ import { executeToolCall } from "./tool-call-result.js";
7
+ import { buildToolRegistry, toolDefinitions, } from "./tools/index.js";
8
+ const MAX_BODY_BYTES = 1_000_000;
9
+ function collectBody(req) {
10
+ return new Promise((resolve, reject) => {
11
+ const chunks = [];
12
+ let totalBytes = 0;
13
+ let settled = false;
14
+ const finalizeReject = (error) => {
15
+ if (settled) {
16
+ return;
17
+ }
18
+ settled = true;
19
+ reject(error);
20
+ };
21
+ const finalizeResolve = (body) => {
22
+ if (settled) {
23
+ return;
24
+ }
25
+ settled = true;
26
+ resolve(body);
27
+ };
28
+ req.on("data", (chunk) => {
29
+ if (settled) {
30
+ return;
31
+ }
32
+ totalBytes += chunk.length;
33
+ if (totalBytes > MAX_BODY_BYTES) {
34
+ // Stop processing the request stream as soon as we know it is too large.
35
+ req.pause();
36
+ finalizeReject(new Error("Request body too large"));
37
+ return;
38
+ }
39
+ chunks.push(chunk);
40
+ });
41
+ req.on("end", () => {
42
+ finalizeResolve(Buffer.concat(chunks).toString("utf-8"));
43
+ });
44
+ req.on("error", (error) => {
45
+ finalizeReject(error instanceof Error ? error : new Error(String(error)));
46
+ });
47
+ });
48
+ }
49
+ function isJsonRpcRequest(value) {
50
+ return (typeof value === "object" &&
51
+ value !== null &&
52
+ "jsonrpc" in value &&
53
+ value.jsonrpc === "2.0" &&
54
+ "method" in value &&
55
+ typeof value.method === "string");
56
+ }
57
+ function invalidRequestResponse() {
58
+ return {
59
+ jsonrpc: "2.0",
60
+ id: null,
61
+ error: { code: -32600, message: "Invalid Request" },
62
+ };
63
+ }
64
+ function constantTimeTokenEquals(expected, provided) {
65
+ // Hash both inputs first so timingSafeEqual always compares fixed-length data.
66
+ const key = "superblocks-mcp-http-auth-compare-v1";
67
+ const expectedDigest = createHmac("sha256", key).update(expected).digest();
68
+ const providedDigest = createHmac("sha256", key).update(provided).digest();
69
+ return timingSafeEqual(expectedDigest, providedDigest);
70
+ }
71
+ export async function startHttpServer(options = {}) {
72
+ const port = options.port ?? 8484;
73
+ const profile = options.profile ?? resolveProfile();
74
+ const waitUntilClose = options.waitUntilClose ?? false;
75
+ const authToken = options.authToken ?? process.env.SUPERBLOCKS_MCP_HTTP_TOKEN;
76
+ if (!authToken) {
77
+ throw new Error("HTTP transport requires auth token. Pass authToken option or set SUPERBLOCKS_MCP_HTTP_TOKEN.");
78
+ }
79
+ const registry = buildToolRegistry(toolDefinitions, profile);
80
+ async function handleJsonRpc(request) {
81
+ const hasRequestId = Object.keys(request).includes("id");
82
+ const maybeRespond = (response) => hasRequestId ? response : null;
83
+ let id = null;
84
+ try {
85
+ id = hasRequestId ? (request.id ?? null) : null;
86
+ switch (request.method) {
87
+ case "initialize": {
88
+ return maybeRespond({
89
+ jsonrpc: "2.0",
90
+ id,
91
+ result: {
92
+ protocolVersion: "2025-03-26",
93
+ capabilities: { tools: {} },
94
+ serverInfo: {
95
+ name: "superblocks-mcp",
96
+ version: pkg.version,
97
+ },
98
+ },
99
+ });
100
+ }
101
+ case "tools/list": {
102
+ return maybeRespond({
103
+ jsonrpc: "2.0",
104
+ id,
105
+ result: { tools: registry.listTools() },
106
+ });
107
+ }
108
+ case "tools/call": {
109
+ const params = request.params;
110
+ if (!params?.name) {
111
+ return maybeRespond({
112
+ jsonrpc: "2.0",
113
+ id,
114
+ error: { code: -32602, message: "Missing tool name" },
115
+ });
116
+ }
117
+ try {
118
+ const result = await executeToolCall(params.name, params.arguments, registry);
119
+ return maybeRespond({
120
+ jsonrpc: "2.0",
121
+ id,
122
+ result,
123
+ });
124
+ }
125
+ catch (error) {
126
+ if (error instanceof McpError) {
127
+ return maybeRespond({
128
+ jsonrpc: "2.0",
129
+ id,
130
+ error: { code: error.code, message: error.message },
131
+ });
132
+ }
133
+ return maybeRespond({
134
+ jsonrpc: "2.0",
135
+ id,
136
+ error: {
137
+ code: -32603,
138
+ message: error instanceof Error
139
+ ? error.message
140
+ : "Internal server error",
141
+ },
142
+ });
143
+ }
144
+ }
145
+ case "notifications/initialized": {
146
+ return null;
147
+ }
148
+ case "ping": {
149
+ return maybeRespond({ jsonrpc: "2.0", id, result: {} });
150
+ }
151
+ default: {
152
+ return maybeRespond({
153
+ jsonrpc: "2.0",
154
+ id,
155
+ error: {
156
+ code: -32601,
157
+ message: `Method not found: ${request.method}`,
158
+ },
159
+ });
160
+ }
161
+ }
162
+ }
163
+ catch (error) {
164
+ return maybeRespond({
165
+ jsonrpc: "2.0",
166
+ id,
167
+ error: {
168
+ code: -32603,
169
+ message: error instanceof Error ? error.message : "Internal server error",
170
+ },
171
+ });
172
+ }
173
+ }
174
+ const ALLOWED_ORIGINS = new Set([
175
+ "http://localhost",
176
+ "http://127.0.0.1",
177
+ "https://localhost",
178
+ "https://127.0.0.1",
179
+ ]);
180
+ function corsOrigin(req) {
181
+ const origin = req.headers.origin;
182
+ if (!origin)
183
+ return undefined;
184
+ try {
185
+ const { protocol, hostname } = new URL(origin);
186
+ const base = `${protocol}//${hostname}`;
187
+ return ALLOWED_ORIGINS.has(base) ? origin : undefined;
188
+ }
189
+ catch {
190
+ return undefined;
191
+ }
192
+ }
193
+ function isAuthorized(req) {
194
+ const authorization = req.headers.authorization;
195
+ if (!authorization?.startsWith("Bearer ")) {
196
+ return false;
197
+ }
198
+ const providedToken = authorization.slice("Bearer ".length);
199
+ return constantTimeTokenEquals(authToken, providedToken);
200
+ }
201
+ function resolveSessionId(req) {
202
+ const header = req.headers["mcp-session-id"];
203
+ if (typeof header === "string" && header.length > 0) {
204
+ return header;
205
+ }
206
+ if (Array.isArray(header) &&
207
+ typeof header[0] === "string" &&
208
+ header[0].length > 0) {
209
+ return header[0];
210
+ }
211
+ return randomUUID();
212
+ }
213
+ const httpServer = createServer((req, res) => {
214
+ void (async () => {
215
+ const requestUrl = new URL(req.url ?? "", "http://127.0.0.1");
216
+ const allowed = corsOrigin(req);
217
+ if (allowed) {
218
+ res.setHeader("Access-Control-Allow-Origin", allowed);
219
+ res.setHeader("Vary", "Origin");
220
+ res.setHeader("Access-Control-Allow-Headers", "Authorization, Content-Type, Mcp-Session-Id");
221
+ res.setHeader("Access-Control-Expose-Headers", "Mcp-Session-Id");
222
+ res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
223
+ }
224
+ if (requestUrl.pathname !== "/mcp") {
225
+ res.writeHead(404, { "Content-Type": "application/json" });
226
+ res.end(JSON.stringify({ error: "Not found" }));
227
+ return;
228
+ }
229
+ if (req.method === "OPTIONS") {
230
+ if (!allowed) {
231
+ res.writeHead(403, { "Content-Type": "application/json" });
232
+ res.end(JSON.stringify({ error: "Origin not allowed" }));
233
+ return;
234
+ }
235
+ res.writeHead(204);
236
+ res.end();
237
+ return;
238
+ }
239
+ if (!isAuthorized(req)) {
240
+ res.writeHead(401, { "Content-Type": "application/json" });
241
+ res.end(JSON.stringify({ error: "Unauthorized" }));
242
+ return;
243
+ }
244
+ if (req.method === "POST") {
245
+ let body;
246
+ try {
247
+ body = await collectBody(req);
248
+ }
249
+ catch (error) {
250
+ if (error instanceof Error &&
251
+ error.message === "Request body too large") {
252
+ res.writeHead(413, {
253
+ "Content-Type": "application/json",
254
+ Connection: "close",
255
+ });
256
+ res.end(JSON.stringify({ error: "Request body too large" }), () => {
257
+ if (!req.destroyed) {
258
+ req.destroy();
259
+ }
260
+ });
261
+ return;
262
+ }
263
+ throw error;
264
+ }
265
+ let parsed;
266
+ try {
267
+ parsed = JSON.parse(body);
268
+ }
269
+ catch {
270
+ res.writeHead(400, { "Content-Type": "application/json" });
271
+ res.end(JSON.stringify({ error: "Invalid JSON" }));
272
+ return;
273
+ }
274
+ const sessionId = resolveSessionId(req);
275
+ if (Array.isArray(parsed)) {
276
+ if (parsed.length === 0) {
277
+ res.writeHead(200, {
278
+ "Content-Type": "application/json",
279
+ "Mcp-Session-Id": sessionId,
280
+ });
281
+ res.end(JSON.stringify(invalidRequestResponse()));
282
+ return;
283
+ }
284
+ const results = (await Promise.all(parsed.map((r) => isJsonRpcRequest(r)
285
+ ? handleJsonRpc(r)
286
+ : Promise.resolve(invalidRequestResponse())))).filter((r) => r !== null);
287
+ if (results.length === 0) {
288
+ res.writeHead(202);
289
+ res.end();
290
+ }
291
+ else {
292
+ res.writeHead(200, {
293
+ "Content-Type": "application/json",
294
+ "Mcp-Session-Id": sessionId,
295
+ });
296
+ res.end(JSON.stringify(results));
297
+ }
298
+ }
299
+ else {
300
+ const result = isJsonRpcRequest(parsed)
301
+ ? await handleJsonRpc(parsed)
302
+ : invalidRequestResponse();
303
+ if (result === null) {
304
+ res.writeHead(202);
305
+ res.end();
306
+ }
307
+ else {
308
+ res.writeHead(200, {
309
+ "Content-Type": "application/json",
310
+ "Mcp-Session-Id": sessionId,
311
+ });
312
+ res.end(JSON.stringify(result));
313
+ }
314
+ }
315
+ return;
316
+ }
317
+ if (req.method === "GET") {
318
+ // Placeholder SSE endpoint for MCP Streamable HTTP compatibility.
319
+ // This endpoint currently sends heartbeat frames only.
320
+ const sessionId = resolveSessionId(req);
321
+ let closed = false;
322
+ const cleanup = () => {
323
+ if (closed) {
324
+ return;
325
+ }
326
+ closed = true;
327
+ clearInterval(heartbeat);
328
+ if (!res.writableEnded) {
329
+ res.end();
330
+ }
331
+ };
332
+ res.writeHead(200, {
333
+ "Content-Type": "text/event-stream",
334
+ "Cache-Control": "no-cache",
335
+ Connection: "keep-alive",
336
+ "Mcp-Session-Id": sessionId,
337
+ });
338
+ res.write(":\n\n");
339
+ const heartbeat = setInterval(() => {
340
+ if (closed || res.destroyed || res.writableEnded) {
341
+ cleanup();
342
+ return;
343
+ }
344
+ try {
345
+ res.write(":\n\n");
346
+ }
347
+ catch (error) {
348
+ console.error("SSE heartbeat write failed:", error);
349
+ cleanup();
350
+ }
351
+ }, 30_000);
352
+ req.on("close", cleanup);
353
+ req.on("aborted", cleanup);
354
+ res.on("close", cleanup);
355
+ res.on("error", (error) => {
356
+ console.error("SSE response stream error:", error);
357
+ cleanup();
358
+ });
359
+ return;
360
+ }
361
+ if (req.method === "DELETE") {
362
+ res.writeHead(200, { "Content-Type": "application/json" });
363
+ res.end(JSON.stringify({ ok: true }));
364
+ return;
365
+ }
366
+ res.writeHead(405, { "Content-Type": "application/json" });
367
+ res.end(JSON.stringify({ error: "Method not allowed" }));
368
+ })().catch((err) => {
369
+ console.error("Unhandled error in MCP HTTP handler:", err);
370
+ if (res.headersSent) {
371
+ if (!res.writableEnded) {
372
+ res.end();
373
+ }
374
+ return;
375
+ }
376
+ res.writeHead(500, { "Content-Type": "application/json" });
377
+ res.end(JSON.stringify({ error: "Internal server error" }));
378
+ });
379
+ });
380
+ return new Promise((resolve, reject) => {
381
+ const onRuntimeError = (error) => {
382
+ console.error("MCP HTTP server runtime error:", error);
383
+ };
384
+ const onError = (error) => reject(error);
385
+ httpServer.once("error", onError);
386
+ httpServer.listen(port, "127.0.0.1", () => {
387
+ httpServer.off("error", onError);
388
+ httpServer.on("error", onRuntimeError);
389
+ console.error(`superblocks-mcp HTTP server started on http://127.0.0.1:${port}/mcp (profile: ${profile}, tools: ${registry.listTools().length})`);
390
+ if (!waitUntilClose) {
391
+ resolve();
392
+ return;
393
+ }
394
+ httpServer.once("close", () => {
395
+ httpServer.off("error", onRuntimeError);
396
+ resolve();
397
+ });
398
+ httpServer.once("error", (error) => {
399
+ reject(error);
400
+ });
401
+ });
402
+ });
403
+ }
404
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ import { type Profile } from "./tools/index.js";
3
+ export { resolveProfile } from "./profile.js";
4
+ export type ServerOptions = {
5
+ profile?: Profile;
6
+ };
7
+ export declare function startServer(options?: ServerOptions): Promise<void>;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAeA,OAAO,EAGL,KAAK,OAAO,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAsB,WAAW,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC5E"}
package/dist/index.js ADDED
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env node
2
+ import { realpathSync } from "node:fs";
3
+ import { pathToFileURL } from "node:url";
4
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
5
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
6
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
7
+ import pkg from "../package.json" with { type: "json" };
8
+ import { getMcpUsageText, maybeRunAuthCommand } from "./auth/commands.js";
9
+ import { resolveProfile } from "./profile.js";
10
+ import { executeToolCall } from "./tool-call-result.js";
11
+ import { buildToolRegistry, toolDefinitions, } from "./tools/index.js";
12
+ export { resolveProfile } from "./profile.js";
13
+ export async function startServer(options = {}) {
14
+ const profile = options.profile ?? resolveProfile();
15
+ const registry = buildToolRegistry(toolDefinitions, profile);
16
+ const server = new McpServer({
17
+ name: "superblocks-mcp",
18
+ version: pkg.version,
19
+ });
20
+ server.server.registerCapabilities({
21
+ tools: {
22
+ listChanged: true,
23
+ },
24
+ });
25
+ server.server.setRequestHandler(ListToolsRequestSchema, () => ({
26
+ tools: registry.listTools(),
27
+ }));
28
+ server.server.setRequestHandler(CallToolRequestSchema, async (request) => {
29
+ return executeToolCall(request.params.name, request.params.arguments, registry);
30
+ });
31
+ const transport = new StdioServerTransport();
32
+ await server.connect(transport);
33
+ console.error(`superblocks-mcp server started (profile: ${profile}, tools: ${registry.listTools().length})`);
34
+ }
35
+ async function main() {
36
+ const args = process.argv.slice(2);
37
+ if (args.length > 0 &&
38
+ (args[0] === "help" || args[0] === "--help" || args[0] === "-h")) {
39
+ console.log(getMcpUsageText());
40
+ return;
41
+ }
42
+ if (await maybeRunAuthCommand(args)) {
43
+ return;
44
+ }
45
+ if (args.length > 0) {
46
+ throw new Error(`Unknown command '${args.join(" ")}'.\n\n${getMcpUsageText()}`);
47
+ }
48
+ await startServer();
49
+ }
50
+ const isDirectRun = (() => {
51
+ const argvPath = process.argv[1];
52
+ if (!argvPath) {
53
+ return false;
54
+ }
55
+ try {
56
+ return import.meta.url === pathToFileURL(realpathSync(argvPath)).href;
57
+ }
58
+ catch {
59
+ return false;
60
+ }
61
+ })();
62
+ if (isDirectRun) {
63
+ main().catch((error) => {
64
+ console.error(error instanceof Error ? error.message : String(error));
65
+ process.exit(1);
66
+ });
67
+ }
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Profile } from "./tools/index.js";
2
+ export declare function resolveProfile(): Profile;
3
+ //# sourceMappingURL=profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,wBAAgB,cAAc,IAAI,OAAO,CAKxC"}
@@ -0,0 +1,7 @@
1
+ export function resolveProfile() {
2
+ if (process.env.SUPERBLOCKS_MCP_PROFILE === "internal") {
3
+ return "internal";
4
+ }
5
+ return "customer";
6
+ }
7
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc;IAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,UAAU,EAAE,CAAC;QACvD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { SuperblocksSdk } from "@superblocksteam/sdk";
2
+ export declare function createSdk(token: string, baseUrl: string): SuperblocksSdk;
3
+ //# sourceMappingURL=create-sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-sdk.d.ts","sourceRoot":"","sources":["../../src/sdk/create-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAExE"}
@@ -0,0 +1,6 @@
1
+ import { SuperblocksSdk } from "@superblocksteam/sdk";
2
+ import pkg from "../../package.json" with { type: "json" };
3
+ export function createSdk(token, baseUrl) {
4
+ return new SuperblocksSdk(token, baseUrl, pkg.version);
5
+ }
6
+ //# sourceMappingURL=create-sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-sdk.js","sourceRoot":"","sources":["../../src/sdk/create-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE3D,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,OAAe;IACtD,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,87 @@
1
+ import { z } from "zod";
2
+ import { type SuperblocksEnvironment } from "../urls.js";
3
+ export declare const appTargetInputSchema: z.ZodUnion<readonly [z.ZodObject<{
4
+ app_url: z.ZodString;
5
+ branch: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strict>, z.ZodObject<{
7
+ application_id: z.ZodString;
8
+ base_url: z.ZodString;
9
+ branch: z.ZodOptional<z.ZodString>;
10
+ }, z.core.$strict>]>;
11
+ export declare const checkoutInputSchema: z.ZodUnion<readonly [z.ZodObject<{
12
+ destination_path: z.ZodOptional<z.ZodString>;
13
+ app_url: z.ZodString;
14
+ branch: z.ZodOptional<z.ZodString>;
15
+ }, z.core.$strict>, z.ZodObject<{
16
+ destination_path: z.ZodOptional<z.ZodString>;
17
+ application_id: z.ZodString;
18
+ base_url: z.ZodString;
19
+ branch: z.ZodOptional<z.ZodString>;
20
+ }, z.core.$strict>, z.ZodObject<{
21
+ commit_id: z.ZodString;
22
+ destination_path: z.ZodOptional<z.ZodString>;
23
+ app_url: z.ZodString;
24
+ branch: z.ZodOptional<z.ZodString>;
25
+ }, z.core.$strict>, z.ZodObject<{
26
+ commit_id: z.ZodString;
27
+ destination_path: z.ZodOptional<z.ZodString>;
28
+ application_id: z.ZodString;
29
+ base_url: z.ZodString;
30
+ branch: z.ZodOptional<z.ZodString>;
31
+ }, z.core.$strict>]>;
32
+ export declare const getApplicationStructureInputSchema: z.ZodUnion<readonly [z.ZodObject<{
33
+ max_entries: z.ZodOptional<z.ZodNumber>;
34
+ app_url: z.ZodString;
35
+ branch: z.ZodOptional<z.ZodString>;
36
+ }, z.core.$strict>, z.ZodObject<{
37
+ max_entries: z.ZodOptional<z.ZodNumber>;
38
+ application_id: z.ZodString;
39
+ base_url: z.ZodString;
40
+ branch: z.ZodOptional<z.ZodString>;
41
+ }, z.core.$strict>]>;
42
+ export declare const getApplicationCommitHistoryInputSchema: z.ZodUnion<readonly [z.ZodObject<{
43
+ limit: z.ZodOptional<z.ZodNumber>;
44
+ offset: z.ZodOptional<z.ZodNumber>;
45
+ app_url: z.ZodString;
46
+ branch: z.ZodOptional<z.ZodString>;
47
+ }, z.core.$strict>, z.ZodObject<{
48
+ limit: z.ZodOptional<z.ZodNumber>;
49
+ offset: z.ZodOptional<z.ZodNumber>;
50
+ application_id: z.ZodString;
51
+ base_url: z.ZodString;
52
+ branch: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strict>]>;
54
+ export declare const authStatusInputSchema: z.ZodUnion<readonly [z.ZodObject<{
55
+ app_url: z.ZodString;
56
+ }, z.core.$strict>, z.ZodObject<{
57
+ base_url: z.ZodString;
58
+ }, z.core.$strict>]>;
59
+ export type AppTargetInput = z.infer<typeof appTargetInputSchema>;
60
+ export type CheckoutInput = z.infer<typeof checkoutInputSchema>;
61
+ export type GetApplicationStructureInput = z.infer<typeof getApplicationStructureInputSchema>;
62
+ export type GetApplicationCommitHistoryInput = z.infer<typeof getApplicationCommitHistoryInputSchema>;
63
+ export type AuthStatusInput = z.infer<typeof authStatusInputSchema>;
64
+ export type ResolvedAppTarget = {
65
+ applicationId: string;
66
+ baseUrl: string;
67
+ branch: string;
68
+ environment: SuperblocksEnvironment;
69
+ resolvedFrom: "app_url" | "application_id";
70
+ };
71
+ export type ResolvedOriginTarget = {
72
+ baseUrl: string;
73
+ environment: SuperblocksEnvironment;
74
+ resolvedFrom: "app_url" | "base_url";
75
+ };
76
+ export declare const createApplicationInputSchema: z.ZodObject<{
77
+ base_url: z.ZodString;
78
+ name: z.ZodString;
79
+ organization_id: z.ZodString;
80
+ code_mode: z.ZodOptional<z.ZodBoolean>;
81
+ template_name: z.ZodOptional<z.ZodString>;
82
+ folder_id: z.ZodOptional<z.ZodString>;
83
+ }, z.core.$strict>;
84
+ export type CreateApplicationInput = z.infer<typeof createApplicationInputSchema>;
85
+ export declare function resolveAppTarget(input: AppTargetInput): ResolvedAppTarget;
86
+ export declare function resolveOriginTarget(input: AuthStatusInput): ResolvedOriginTarget;
87
+ //# sourceMappingURL=resolve-app-target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-app-target.d.ts","sourceRoot":"","sources":["../../src/target/resolve-app-target.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,YAAY,CAAC;AAgCpB,eAAO,MAAM,oBAAoB;;;;;;;oBAG/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;oBA2B9B,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;oBAa7C,CAAC;AAEH,eAAO,MAAM,sCAAsC;;;;;;;;;;;oBAejD,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;oBAGhC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,kCAAkC,CAC1C,CAAC;AACF,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CACpD,OAAO,sCAAsC,CAC9C,CAAC;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,sBAAsB,CAAC;IACpC,YAAY,EAAE,SAAS,GAAG,gBAAgB,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,sBAAsB,CAAC;IACpC,YAAY,EAAE,SAAS,GAAG,UAAU,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,4BAA4B;;;;;;;kBAS9B,CAAC;AAEZ,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,iBAAiB,CA8BzE;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,eAAe,GACrB,oBAAoB,CAgBtB"}