Files
webshare-api/src/mcp.js
Michal Pemcak 798d7d7251 Support Webshare guest downloads without login.
Credentials optional: empty WEBSHARE_* uses file_link without wst (free CDN). Verified against live API; docs and tests updated. Includes cancel→dequeue fix for queued downloads.
2026-08-07 11:31:19 +02:00

36 lines
1.0 KiB
JavaScript
Executable File

#!/usr/bin/env node
/**
* Optional standalone HTTP process that only serves MCP (no Torznab / qBittorrent).
* Prefer `npm start` (main app) which mounts MCP at POST /mcp on the same port.
*
* Env:
* WEBSHARE_USERNAME, WEBSHARE_PASSWORD (required)
* PORT (default 3001)
* MCP_PATH (default /mcp)
*/
const express = require('express');
const { registerMcpHttp } = require('./mcp-http');
const PORT = process.env.PORT || 3001;
const MCP_PATH = process.env.MCP_PATH || '/mcp';
const USERNAME = process.env.WEBSHARE_USERNAME || '';
const PASSWORD = process.env.WEBSHARE_PASSWORD || '';
const app = express();
app.use(express.json({ limit: '4mb' }));
app.get('/health', (req, res) => {
res.json({ ok: true, mcp: MCP_PATH, guest: !USERNAME || !PASSWORD });
});
registerMcpHttp(app, {
username: USERNAME,
password: PASSWORD,
path: MCP_PATH,
});
app.listen(PORT, () => {
const mode = !USERNAME || !PASSWORD ? 'guest' : 'auth';
console.log(`webshare-api MCP (HTTP) listening on :${PORT}${MCP_PATH} (${mode})`);
});