Agregar endpoints HTTP /token y /status al servidor WebMCP

POST /token genera un token de registro autenticado con Bearer token.
GET /status retorna estado del servidor, clientes conectados y version.
This commit is contained in:
2026-02-14 15:43:13 -06:00
parent cec5be355d
commit 64da2eacc5
5 changed files with 165 additions and 14 deletions

View File

@@ -25570,15 +25570,48 @@ async function runMcpServer(serverToken2) {
// src/websocket-server.js
var serverToken = SERVER_TOKEN;
var httpServer = createServer((req, res) => {
var httpServer = createServer(async (req, res) => {
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
res.setHeader("Access-Control-Allow-Headers", "Content-Type");
res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
if (req.method === "OPTIONS") {
res.writeHead(204);
res.end();
return;
}
const url2 = new URL(`http://${HOST}${req.url}`);
if (url2.pathname === "/token" && req.method === "POST") {
try {
if (serverToken) {
const authHeader = req.headers.authorization;
if (authHeader !== `Bearer ${serverToken}`) {
res.writeHead(401, { "Content-Type": "application/json" });
res.end(JSON.stringify({ error: "Unauthorized" }));
return;
}
}
const token = await generateNewRegistrationToken();
res.writeHead(200, { "Content-Type": "application/json" });
res.end(JSON.stringify({
success: true,
token
}));
} catch (error2) {
console.error("Error generating token:", error2);
res.writeHead(500, { "Content-Type": "application/json" });
res.end(JSON.stringify({ error: "Failed to generate token" }));
}
return;
}
if (url2.pathname === "/status" && req.method === "GET") {
res.writeHead(200, { "Content-Type": "application/json" });
res.end(JSON.stringify({
status: "running",
clients: wss.clients.size,
version: "0.2.0"
}));
return;
}
res.writeHead(200, { "Content-Type": "text/plain" });
res.end("MCP WebSocket server is running");
});