import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'

import { register as registerCompile } from './mcp-tools/compile'
import { register as registerLottie } from './mcp-tools/lottie'
import { register as registerIcons } from './mcp-tools/icons'
import { register as registerHuggingface } from './mcp-tools/huggingface'
import { register as registerMedia } from './mcp-tools/media'

const server = new McpServer({
  name: 'bricks-ctor',
  version: '1.0.0',
})

const { dirname } = import.meta
const projectDir = String(dirname).split('/node_modules/')[0]

// NOTE: Cursor (Or VSCode) seems set ELECTRON_RUN_AS_NODE to 1, so we need to unset it
process.env.ELECTRON_RUN_AS_NODE = ''

registerCompile(server, projectDir)
registerLottie(server)
registerIcons(server)
registerHuggingface(server)
registerMedia(server, projectDir)

const transport = new StdioServerTransport()
await server.connect(transport)
