UNPKG

feishu-user-token-mcp-v2

Version:

A Model Context Protocol (MCP) server for Feishu user token management and authentication

66 lines (65 loc) 2.24 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/streamableHttp.js"); const express_1 = __importDefault(require("express")); const server_js_1 = require("./server.js"); const config_js_1 = require("./utils/config.js"); async function main() { const config = await (0, config_js_1.loadConfig)(); const app = (0, express_1.default)(); app.use(express_1.default.json()); const server = (0, server_js_1.createServer)(config); const transport = new streamableHttp_js_1.StreamableHTTPServerTransport({ sessionIdGenerator: undefined, }); server.connect(transport); app.post('/mcp', async (req, res) => { console.log('Received MCP request:', req.body); try { await transport.handleRequest(req, res, req.body); } catch (error) { console.error('Error handling MCP request:', error); if (!res.headersSent) { res.status(500).json({ jsonrpc: '2.0', error: { code: -32603, message: 'Internal server error', }, id: null, }); } } }); app.get('/mcp', async (req, res) => { console.log('Received GET MCP request'); res.writeHead(405).end(JSON.stringify({ jsonrpc: "2.0", error: { code: -32000, message: "Method not allowed." }, id: null })); }); app.delete('/mcp', async (req, res) => { console.log('Received DELETE MCP request'); res.writeHead(405).end(JSON.stringify({ jsonrpc: "2.0", error: { code: -32000, message: "Method not allowed." }, id: null })); }); const port = process.env.PORT || 3000; app.listen(port, () => { console.log(`Server listening on port ${port}`); }); } main();