1#![doc = include_str!("readme.md")]
2use oak_lsp::service::LanguageService;
3use oak_mcp::McpServer;
4use oak_vfs::Vfs;
5
6pub async fn serve_css_mcp<V: Vfs + Send + Sync + 'static + oak_vfs::WritableVfs>(vfs: V) -> Result<(), Box<dyn std::error::Error + Send + Sync>>
8where
9 crate::lsp::CssLanguageService<V>: LanguageService,
10{
11 let service = crate::lsp::CssLanguageService::new(vfs);
12 let server = McpServer::new(service);
13 let reader = tokio::io::BufReader::new(tokio::io::stdin());
14 let writer = tokio::io::BufWriter::new(tokio::io::stdout());
15 server.run(reader, writer).await.unwrap();
16 Ok(())
17}