// mcp/src/index.ts
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { createMcpServer } from './server.js';
/**
* WhkerDB MCP 服务器入口
*
* 支持的环境变量:
* - WHKERDB_SERVER_URL: WhkerDB 服务器地址(默认 http://localhost:3001)
*
* 使用方式:
* - stdio 模式: node dist/index.js
* - 或通过 Claude Desktop 配置
*/
async function main() {
const serverUrl = process.env.WHKERDB_SERVER_URL || 'http://localhost:3001';
console.error(`WhkerDB MCP Server starting...`);
console.error(`Server URL: ${serverUrl}`);
const { server, cleanup } = createMcpServer({ serverUrl });
// 使用 stdio 传输
const transport = new StdioServerTransport();
// 处理退出信号
process.on('SIGINT', () => {
console.error('Received SIGINT, cleaning up...');
cleanup();
process.exit(0);
});
process.on('SIGTERM', () => {
console.error('Received SIGTERM, cleaning up...');
cleanup();
process.exit(0);
});
// 连接传输层
await server.connect(transport);
console.error('WhkerDB MCP Server running on stdio');
}
main().catch((error) => {
console.error('Fatal error:', error);
process.exit(1);
});