oak_pascal/
mcp.rs

1#![cfg(feature = "mcp")]
2
3use crate::lsp::PascalLanguageService;
4use oak_mcp::OakMcpService;
5use oak_vfs::MemoryVfs;
6
7/// Start an MCP server for Pascal semantics (Stdio).
8pub async fn serve_pascal_mcp(vfs: MemoryVfs) {
9    let service = PascalLanguageService::new(vfs);
10    let server = service.into_mcp_server();
11
12    server.run().await.unwrap();
13}
14
15#[cfg(feature = "axum")]
16pub async fn serve_pascal_mcp_axum(vfs: MemoryVfs) {
17    let service = PascalLanguageService::new(vfs);
18    let app = service.into_mcp_axum_router();
19    let listener = tokio::net::TcpListener::bind("127.0.0.1:3086").await.unwrap();
20    axum::serve(listener, app).await.unwrap();
21}