module Unison.MCP.Server (mcpServer) where import Network.MCP.Server qualified as MCP import Network.MCP.Transport.Types qualified as MCP import UnliftIO (MonadIO (..)) mcpServer :: (MonadIO m) => MCP.Server -> (MCP.Message -> m (Maybe MCP.Message)) mcpServer :: forall (m :: * -> *). MonadIO m => Server -> Message -> m (Maybe Message) mcpServer Server server Message msg = do IO (Maybe Message) -> m (Maybe Message) forall a. IO a -> m a forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO (IO (Maybe Message) -> m (Maybe Message)) -> IO (Maybe Message) -> m (Maybe Message) forall a b. (a -> b) -> a -> b $ Server -> Message -> IO (Maybe Message) MCP.handleMessage Server server Message msg