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:
@@ -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");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user