#!/usr/bin/env node
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
// Import tool modules
import { registerDebugTools } from "./tools/debug.js";
import { registerBoardTools } from "./tools/boards.js";
import { registerTaskTools } from "./tools/tasks.js";
import { registerCommentTools } from "./tools/comments.js";
import { registerLabelTools } from "./tools/labels.js";
// Create the MCP server
const server = new McpServer({
name: "fluent-boards",
version: "1.0.0",
description: "MCP server for FluentBoards project management",
});
// Register all tool modules
registerDebugTools(server);
registerBoardTools(server);
registerTaskTools(server);
registerCommentTools(server);
registerLabelTools(server);
// Main execution
async function main() {
try {
const transport = new StdioServerTransport();
await server.connect(transport);
console.error("FluentBoards MCP server running on stdio");
} catch (error) {
console.error("Failed to start MCP server:", error);
process.exit(1);
}
}
// Error handling
process.on("unhandledRejection", (error) => {
console.error("Unhandled promise rejection:", error);
process.exit(1);
});
process.on("uncaughtException", (error) => {
console.error("Uncaught exception:", error);
process.exit(1);
});
// Start the server
main().catch((error) => {
console.error("Fatal error in main():", error);
process.exit(1);
});