UNPKG

@seliseblocks/mcp-server

Version:

A Model Context Protocol (MCP) server for managing schemas in SELISE Blocks platform, built with TypeScript.

59 lines 2.38 kB
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js'; async function generateToken() { const username = process.env.USERNAME; const passkey = process.env.PASSKEY; const blocksKey = process.env.BLOCKS_KEY; const apiBaseUrl = process.env.API_BASE_URL; if (!username || !passkey || !blocksKey || !apiBaseUrl) { const missingFields = []; if (!username) missingFields.push('username'); if (!passkey) missingFields.push('passkey'); if (!blocksKey) missingFields.push('blocksKey'); if (!apiBaseUrl) missingFields.push('apiBaseUrl'); throw new McpError(ErrorCode.InvalidParams, `Missing required parameters: ${missingFields.join(', ')}`); } const formData = new URLSearchParams(); formData.append('grant_type', 'password'); formData.append('username', username); formData.append('password', passkey); const headers = { 'Content-Type': 'application/x-www-form-urlencoded', 'x-blocks-key': blocksKey }; const tokenUrl = `${apiBaseUrl}/authentication/v1/OAuth/Token`; try { const response = await fetch(tokenUrl, { method: 'POST', headers, body: formData.toString(), }); const responseText = await response.text(); let responseData; try { responseData = JSON.parse(responseText); } catch (parseError) { const errorMessage = parseError instanceof Error ? parseError.message : 'Unknown parse error'; throw new Error('Invalid JSON response from token endpoint'); } if (!response.ok) { throw new Error(`Token generation failed: HTTP ${response.status}`); } const token = responseData.access_token || responseData.token || responseData.bearerToken; if (!token) { throw new Error('No token found in API response'); } return token; } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Unknown error'; const errorStack = error instanceof Error ? error.stack : undefined; throw new McpError(ErrorCode.InternalError, `Failed to generate token: ${errorMessage}`); } } export default generateToken; //# sourceMappingURL=authService.js.map