falcon-mcp-server
Version:
MCP server for Honeycomb Falcon Insurance API integration
91 lines (90 loc) • 3.23 kB
JavaScript
;
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);
});