import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { loadTools } from './toolLoader.js';
// Create server instance
const server = new McpServer({
name: 'Apache OFBiz MCP Server (stdio)',
version: '0.1.0'
});
// Load and register tools from external files
async function registerTools() {
try {
const tools = await loadTools();
for (const tool of tools) {
server.registerTool(tool.name, tool.metadata, tool.handler);
console.error(`Registered tool: ${tool.name}`);
}
} catch (error) {
console.error('Error loading tools:', error);
throw error;
}
}
// Start the server
async function main() {
await registerTools();
const transport = new StdioServerTransport();
await server.connect(transport);
console.error('Apache OFBiz MCP Server running on stdio');
}
main().catch((error) => {
console.error('Fatal error in main():', error);
process.exit(1);
});