#!/usr/bin/env node
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { registerUserStepsTool } from './tools/user-steps.js';
import { SessionManager } from './state/session-manager.js';
async function main() {
const server = new McpServer({
name: 'user-steps',
version: '1.0.0',
});
const sessionManager = new SessionManager();
// Register the user_steps tool
registerUserStepsTool(server, sessionManager);
// Connect via stdio transport
const transport = new StdioServerTransport();
await server.connect(transport);
// Log startup to stderr (stdout is reserved for MCP protocol)
console.error('[user-steps] MCP server started');
console.error(`[user-steps] Sessions stored at: ${sessionManager.getStorePath()}`);
// Handle graceful shutdown
process.on('SIGINT', () => {
console.error('[user-steps] Shutting down...');
process.exit(0);
});
process.on('SIGTERM', () => {
console.error('[user-steps] Shutting down...');
process.exit(0);
});
}
main().catch((error) => {
console.error('[user-steps] Fatal error:', error);
process.exit(1);
});