create-skybridge 0.0.0-dev.6258547 → 0.0.0-dev.6270d36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/template/node_modules/.bin/mcp-inspector +2 -2
- package/template/node_modules/.bin/sb +2 -2
- package/template/node_modules/.bin/skybridge +2 -2
- package/template/node_modules/.bin/vite +2 -2
- package/template/nodemon.json +5 -0
- package/template/package.json +7 -7
- package/template/server/src/index.ts +42 -0
- package/template/server/src/middleware.ts +54 -0
- package/template/web/src/index.css +4 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-skybridge",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.6270d36",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Alpic",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"typescript": "^5.9.3",
|
|
26
|
-
"vitest": "^4.0.
|
|
26
|
+
"vitest": "^4.0.18"
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
29
29
|
"build": "tsc",
|
|
@@ -10,9 +10,9 @@ case `uname` in
|
|
|
10
10
|
esac
|
|
11
11
|
|
|
12
12
|
if [ -z "$NODE_PATH" ]; then
|
|
13
|
-
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/@modelcontextprotocol+inspector@0.
|
|
13
|
+
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/@modelcontextprotocol+inspector@0.19.0_@types+node@24.10.9_@types+react-dom@19.2.3_@typ_41033ef40504844615e138b3524ee95a/node_modules/@modelcontextprotocol/inspector/cli/build/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/@modelcontextprotocol+inspector@0.19.0_@types+node@24.10.9_@types+react-dom@19.2.3_@typ_41033ef40504844615e138b3524ee95a/node_modules/@modelcontextprotocol/inspector/cli/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/@modelcontextprotocol+inspector@0.19.0_@types+node@24.10.9_@types+react-dom@19.2.3_@typ_41033ef40504844615e138b3524ee95a/node_modules/@modelcontextprotocol/inspector/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/@modelcontextprotocol+inspector@0.19.0_@types+node@24.10.9_@types+react-dom@19.2.3_@typ_41033ef40504844615e138b3524ee95a/node_modules/@modelcontextprotocol/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/@modelcontextprotocol+inspector@0.19.0_@types+node@24.10.9_@types+react-dom@19.2.3_@typ_41033ef40504844615e138b3524ee95a/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/node_modules"
|
|
14
14
|
else
|
|
15
|
-
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/@modelcontextprotocol+inspector@0.
|
|
15
|
+
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/@modelcontextprotocol+inspector@0.19.0_@types+node@24.10.9_@types+react-dom@19.2.3_@typ_41033ef40504844615e138b3524ee95a/node_modules/@modelcontextprotocol/inspector/cli/build/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/@modelcontextprotocol+inspector@0.19.0_@types+node@24.10.9_@types+react-dom@19.2.3_@typ_41033ef40504844615e138b3524ee95a/node_modules/@modelcontextprotocol/inspector/cli/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/@modelcontextprotocol+inspector@0.19.0_@types+node@24.10.9_@types+react-dom@19.2.3_@typ_41033ef40504844615e138b3524ee95a/node_modules/@modelcontextprotocol/inspector/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/@modelcontextprotocol+inspector@0.19.0_@types+node@24.10.9_@types+react-dom@19.2.3_@typ_41033ef40504844615e138b3524ee95a/node_modules/@modelcontextprotocol/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/@modelcontextprotocol+inspector@0.19.0_@types+node@24.10.9_@types+react-dom@19.2.3_@typ_41033ef40504844615e138b3524ee95a/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/node_modules:$NODE_PATH"
|
|
16
16
|
fi
|
|
17
17
|
if [ -x "$basedir/node" ]; then
|
|
18
18
|
exec "$basedir/node" "$basedir/../@modelcontextprotocol/inspector/cli/build/cli.js" "$@"
|
|
@@ -10,9 +10,9 @@ case `uname` in
|
|
|
10
10
|
esac
|
|
11
11
|
|
|
12
12
|
if [ -z "$NODE_PATH" ]; then
|
|
13
|
-
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.
|
|
13
|
+
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.3_hono@4.11.3_zod@4.3.6__@types+node@24_c7270a9cc4659e222f0fb854cace474f/node_modules/skybridge/bin/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.3_hono@4.11.3_zod@4.3.6__@types+node@24_c7270a9cc4659e222f0fb854cace474f/node_modules/skybridge/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.3_hono@4.11.3_zod@4.3.6__@types+node@24_c7270a9cc4659e222f0fb854cace474f/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/node_modules"
|
|
14
14
|
else
|
|
15
|
-
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.
|
|
15
|
+
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.3_hono@4.11.3_zod@4.3.6__@types+node@24_c7270a9cc4659e222f0fb854cace474f/node_modules/skybridge/bin/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.3_hono@4.11.3_zod@4.3.6__@types+node@24_c7270a9cc4659e222f0fb854cace474f/node_modules/skybridge/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.3_hono@4.11.3_zod@4.3.6__@types+node@24_c7270a9cc4659e222f0fb854cace474f/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/node_modules:$NODE_PATH"
|
|
16
16
|
fi
|
|
17
17
|
if [ -x "$basedir/node" ]; then
|
|
18
18
|
exec "$basedir/node" "$basedir/../skybridge/bin/run.js" "$@"
|
|
@@ -10,9 +10,9 @@ case `uname` in
|
|
|
10
10
|
esac
|
|
11
11
|
|
|
12
12
|
if [ -z "$NODE_PATH" ]; then
|
|
13
|
-
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.
|
|
13
|
+
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.3_hono@4.11.3_zod@4.3.6__@types+node@24_c7270a9cc4659e222f0fb854cace474f/node_modules/skybridge/bin/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.3_hono@4.11.3_zod@4.3.6__@types+node@24_c7270a9cc4659e222f0fb854cace474f/node_modules/skybridge/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.3_hono@4.11.3_zod@4.3.6__@types+node@24_c7270a9cc4659e222f0fb854cace474f/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/node_modules"
|
|
14
14
|
else
|
|
15
|
-
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.
|
|
15
|
+
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.3_hono@4.11.3_zod@4.3.6__@types+node@24_c7270a9cc4659e222f0fb854cace474f/node_modules/skybridge/bin/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.3_hono@4.11.3_zod@4.3.6__@types+node@24_c7270a9cc4659e222f0fb854cace474f/node_modules/skybridge/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/skybridge@0.26.1_@modelcontextprotocol+sdk@1.25.3_hono@4.11.3_zod@4.3.6__@types+node@24_c7270a9cc4659e222f0fb854cace474f/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/node_modules:$NODE_PATH"
|
|
16
16
|
fi
|
|
17
17
|
if [ -x "$basedir/node" ]; then
|
|
18
18
|
exec "$basedir/node" "$basedir/../skybridge/bin/run.js" "$@"
|
|
@@ -10,9 +10,9 @@ case `uname` in
|
|
|
10
10
|
esac
|
|
11
11
|
|
|
12
12
|
if [ -z "$NODE_PATH" ]; then
|
|
13
|
-
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/vite@7.3.1_@types+node@
|
|
13
|
+
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/vite@7.3.1_@types+node@24.10.9_jiti@2.6.1_lightningcss@1.30.2_terser@5.44.1_tsx@4.21.0_yaml@2.8.2/node_modules/vite/bin/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/vite@7.3.1_@types+node@24.10.9_jiti@2.6.1_lightningcss@1.30.2_terser@5.44.1_tsx@4.21.0_yaml@2.8.2/node_modules/vite/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/vite@7.3.1_@types+node@24.10.9_jiti@2.6.1_lightningcss@1.30.2_terser@5.44.1_tsx@4.21.0_yaml@2.8.2/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/node_modules"
|
|
14
14
|
else
|
|
15
|
-
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/vite@7.3.1_@types+node@
|
|
15
|
+
export NODE_PATH="/home/runner/work/skybridge/skybridge/node_modules/.pnpm/vite@7.3.1_@types+node@24.10.9_jiti@2.6.1_lightningcss@1.30.2_terser@5.44.1_tsx@4.21.0_yaml@2.8.2/node_modules/vite/bin/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/vite@7.3.1_@types+node@24.10.9_jiti@2.6.1_lightningcss@1.30.2_terser@5.44.1_tsx@4.21.0_yaml@2.8.2/node_modules/vite/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/vite@7.3.1_@types+node@24.10.9_jiti@2.6.1_lightningcss@1.30.2_terser@5.44.1_tsx@4.21.0_yaml@2.8.2/node_modules:/home/runner/work/skybridge/skybridge/node_modules/.pnpm/node_modules:$NODE_PATH"
|
|
16
16
|
fi
|
|
17
17
|
if [ -x "$basedir/node" ]; then
|
|
18
18
|
exec "$basedir/node" "$basedir/../vite/bin/vite.js" "$@"
|
package/template/package.json
CHANGED
|
@@ -11,21 +11,21 @@
|
|
|
11
11
|
"inspector": "mcp-inspector http://localhost:3000/mcp"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@modelcontextprotocol/sdk": "^1.25.
|
|
15
|
-
"cors": "^2.8.
|
|
14
|
+
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
15
|
+
"cors": "^2.8.6",
|
|
16
16
|
"express": "^5.2.1",
|
|
17
|
-
"react": "^19.2.
|
|
18
|
-
"react-dom": "^19.2.
|
|
17
|
+
"react": "^19.2.4",
|
|
18
|
+
"react-dom": "^19.2.4",
|
|
19
19
|
"skybridge": ">=0.26.1 <1.0.0",
|
|
20
20
|
"vite": "^7.3.1",
|
|
21
|
-
"zod": "^4.3.
|
|
21
|
+
"zod": "^4.3.6"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@modelcontextprotocol/inspector": "^0.
|
|
24
|
+
"@modelcontextprotocol/inspector": "^0.19.0",
|
|
25
25
|
"@skybridge/devtools": ">=0.26.1 <1.0.0",
|
|
26
26
|
"@types/cors": "^2.8.19",
|
|
27
27
|
"@types/express": "^5.0.6",
|
|
28
|
-
"@types/react": "^19.2.
|
|
28
|
+
"@types/react": "^19.2.10",
|
|
29
29
|
"@types/react-dom": "^19.2.3",
|
|
30
30
|
"@vitejs/plugin-react": "^5.1.2",
|
|
31
31
|
"nodemon": "^3.1.11",
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
import cors from "cors";
|
|
4
|
+
import express, { type Express } from "express";
|
|
5
|
+
import { widgetsDevServer } from "skybridge/server";
|
|
6
|
+
import type { ViteDevServer } from "vite";
|
|
7
|
+
import { mcp } from "./middleware.js";
|
|
8
|
+
import server from "./server.js";
|
|
9
|
+
|
|
10
|
+
const app = express() as Express & { vite: ViteDevServer };
|
|
11
|
+
|
|
12
|
+
app.use(express.json());
|
|
13
|
+
|
|
14
|
+
app.use(mcp(server));
|
|
15
|
+
|
|
16
|
+
const env = process.env.NODE_ENV || "development";
|
|
17
|
+
|
|
18
|
+
if (env !== "production") {
|
|
19
|
+
const { devtoolsStaticServer } = await import("@skybridge/devtools");
|
|
20
|
+
app.use(await devtoolsStaticServer());
|
|
21
|
+
app.use(await widgetsDevServer());
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (env === "production") {
|
|
25
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
26
|
+
const __dirname = path.dirname(__filename);
|
|
27
|
+
|
|
28
|
+
app.use("/assets", cors());
|
|
29
|
+
app.use("/assets", express.static(path.join(__dirname, "assets")));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
app.listen(3000, (error) => {
|
|
33
|
+
if (error) {
|
|
34
|
+
console.error("Failed to start server:", error);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
process.on("SIGINT", async () => {
|
|
40
|
+
console.log("Server shutdown complete");
|
|
41
|
+
process.exit(0);
|
|
42
|
+
});
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
2
|
+
import type { NextFunction, Request, Response } from "express";
|
|
3
|
+
|
|
4
|
+
import type { McpServer } from "skybridge/server";
|
|
5
|
+
|
|
6
|
+
export const mcp =
|
|
7
|
+
(server: McpServer) =>
|
|
8
|
+
async (req: Request, res: Response, next: NextFunction) => {
|
|
9
|
+
// Only handle requests to the /mcp path
|
|
10
|
+
if (req.path !== "/mcp") {
|
|
11
|
+
return next();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
if (req.method === "POST") {
|
|
15
|
+
try {
|
|
16
|
+
const transport = new StreamableHTTPServerTransport({
|
|
17
|
+
sessionIdGenerator: undefined,
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
res.on("close", () => {
|
|
21
|
+
transport.close();
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
await server.connect(transport);
|
|
25
|
+
|
|
26
|
+
await transport.handleRequest(req, res, req.body);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
console.error("Error handling MCP request:", error);
|
|
29
|
+
if (!res.headersSent) {
|
|
30
|
+
res.status(500).json({
|
|
31
|
+
jsonrpc: "2.0",
|
|
32
|
+
error: {
|
|
33
|
+
code: -32603,
|
|
34
|
+
message: "Internal server error",
|
|
35
|
+
},
|
|
36
|
+
id: null,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
} else if (req.method === "GET" || req.method === "DELETE") {
|
|
41
|
+
res.writeHead(405).end(
|
|
42
|
+
JSON.stringify({
|
|
43
|
+
jsonrpc: "2.0",
|
|
44
|
+
error: {
|
|
45
|
+
code: -32000,
|
|
46
|
+
message: "Method not allowed.",
|
|
47
|
+
},
|
|
48
|
+
id: null,
|
|
49
|
+
}),
|
|
50
|
+
);
|
|
51
|
+
} else {
|
|
52
|
+
next();
|
|
53
|
+
}
|
|
54
|
+
};
|