UNPKG

falcon-mcp-server

Version:

MCP server for Honeycomb Falcon Insurance API integration

91 lines (90 loc) 3.23 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js"); const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js"); const zod_1 = require("zod"); const policyService_1 = require("./policyService"); // Create an MCP server const server = new mcp_js_1.McpServer({ name: "falcon-mcp", version: "1.0.0", }); server.tool("getPolicy", { policyID: zod_1.z.string(), authToken: zod_1.z.string() }, async ({ policyID, authToken }) => { console.error(`[Falcon MCP] getPolicy called with policyID: "${policyID}"`); try { // Configuration for the Honeycomb Falcon API const config = { baseURL: process.env.FALCON_API_BASE_URL || 'https://sandbox-api-falcon.honeycombinsurance.com', authToken, reduced: false, timeout: 30000 }; // Call the real API const policyData = await (0, policyService_1.getPolicyById)(policyID, config); console.error(`[Falcon MCP] getPolicy completed successfully`); return { content: [ { type: "text", text: JSON.stringify(policyData, null, 2), }, ], }; } catch (error) { console.error(`[Falcon MCP] getPolicy failed: ${error.message}`); return { content: [ { type: "text", text: `Error retrieving policy: ${error.message}`, }, ], }; } }); server.tool("getSubmission", { submissionID: zod_1.z.string(), authToken: zod_1.z.string() }, async ({ submissionID, authToken }) => { console.error(`[Falcon MCP] getSubmission called with submissionID: "${submissionID}"`); try { // Configuration for the Honeycomb Falcon API const config = { baseURL: 'https://sandbox-api-falcon.honeycombinsurance.com', authToken, reduced: false, timeout: 30000 }; // Call the real API using the same endpoint as getPolicy const submissionData = await (0, policyService_1.getPolicyById)(submissionID, config); console.error(`[Falcon MCP] getSubmission completed successfully`); return { content: [ { type: "text", text: JSON.stringify(submissionData, null, 2), }, ], }; } catch (error) { console.error(`[Falcon MCP] getSubmission failed: ${error.message}`); return { content: [ { type: "text", text: `Error retrieving submission: ${error.message}`, }, ], }; } }); // Start receiving messages on stdin and sending messages on stdout async function main() { const transport = new stdio_js_1.StdioServerTransport(); await server.connect(transport); console.error("Falcon MCP Server running on stdio"); } main().catch((error) => { console.error("Fatal error in main():", error); process.exit(1); });