pub mod server;
pub mod tools;
pub use server::{McpServer, ParamDef, ServerManifest, ToolArgs, ToolDef, ToolResult};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum DolTool {
Parse,
TypeCheck,
CompileRust,
CompileTypeScript,
CompileWasm,
Eval,
Reflect,
Format,
ListMacros,
ExpandMacro,
}
impl DolTool {
pub fn as_str(&self) -> &'static str {
match self {
DolTool::Parse => "parse",
DolTool::TypeCheck => "typecheck",
DolTool::CompileRust => "compile_rust",
DolTool::CompileTypeScript => "compile_typescript",
DolTool::CompileWasm => "compile_wasm",
DolTool::Eval => "eval",
DolTool::Reflect => "reflect",
DolTool::Format => "format",
DolTool::ListMacros => "list_macros",
DolTool::ExpandMacro => "expand_macro",
}
}
pub fn from_name(s: &str) -> Option<Self> {
match s {
"parse" => Some(DolTool::Parse),
"typecheck" => Some(DolTool::TypeCheck),
"compile_rust" => Some(DolTool::CompileRust),
"compile_typescript" => Some(DolTool::CompileTypeScript),
"compile_wasm" => Some(DolTool::CompileWasm),
"eval" => Some(DolTool::Eval),
"reflect" => Some(DolTool::Reflect),
"format" => Some(DolTool::Format),
"list_macros" => Some(DolTool::ListMacros),
"expand_macro" => Some(DolTool::ExpandMacro),
_ => None,
}
}
}