32 lines
1.1 KiB
TypeScript

import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
import type { SceneBridge } from './bridge/scene-bridge'
import { createSceneOperations, type SceneOperations } from './operations'
import { registerPrompts } from './prompts'
import { registerResources } from './resources'
import type { SceneStore } from './storage/types'
import { registerTools } from './tools'
import { registerVisionTools } from './tools/vision'
export type CreatePascalMcpServerOptions = {
bridge: SceneBridge
operations?: SceneOperations
/** Required for persistence tools. Hosted apps and CLIs inject their own store. */
store?: SceneStore
name?: string
version?: string
}
export function createPascalMcpServer(opts: CreatePascalMcpServerOptions): McpServer {
const server = new McpServer({
name: opts.name ?? 'pascal-mcp',
version: opts.version ?? '0.1.0',
})
const operations =
opts.operations ?? createSceneOperations({ bridge: opts.bridge, store: opts.store })
registerTools(server, operations)
registerVisionTools(server, operations)
registerResources(server, operations)
registerPrompts(server, operations)
return server
}