* I've noticed that on a new version of the inspector, I have to go to the browser's devtools panel and clear site data then reload the page. * The assets are hashed and immutable, so caching should be allowed for them * The index.html file is the problem, because if cached, it will point to old assets, and therefore needs to have caching turned forf * This PR adds appropriate headers to the index.html and assets that are served.
58 lines
1.4 KiB
JavaScript
Executable File
58 lines
1.4 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
import { join, dirname } from "path";
|
|
import { fileURLToPath } from "url";
|
|
import handler from "serve-handler";
|
|
import http from "http";
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
const distPath = join(__dirname, "../dist");
|
|
|
|
const server = http.createServer((request, response) => {
|
|
const handlerOptions = {
|
|
public: distPath,
|
|
rewrites: [{ source: "/**", destination: "/index.html" }],
|
|
headers: [
|
|
{
|
|
// Ensure index.html is never cached
|
|
source: "index.html",
|
|
headers: [
|
|
{
|
|
key: "Cache-Control",
|
|
value: "no-cache, no-store, max-age=0",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
// Allow long-term caching for hashed assets
|
|
source: "assets/**",
|
|
headers: [
|
|
{
|
|
key: "Cache-Control",
|
|
value: "public, max-age=31536000, immutable",
|
|
},
|
|
],
|
|
},
|
|
],
|
|
};
|
|
|
|
return handler(request, response, handlerOptions);
|
|
});
|
|
|
|
const port = process.env.PORT || 6274;
|
|
server.on("listening", () => {
|
|
console.log(
|
|
`🔍 MCP Inspector is up and running at http://127.0.0.1:${port} 🚀`,
|
|
);
|
|
});
|
|
server.on("error", (err) => {
|
|
if (err.message.includes(`EADDRINUSE`)) {
|
|
console.error(
|
|
`❌ MCP Inspector PORT IS IN USE at http://127.0.0.1:${port} ❌ `,
|
|
);
|
|
} else {
|
|
throw err;
|
|
}
|
|
});
|
|
server.listen(port);
|