Skip to main content

mcp_utils/client/
mod.rs

1pub mod config;
2pub mod connect_mcp;
3pub mod connection;
4pub mod error;
5pub mod manager;
6pub mod mcp_client;
7pub mod naming;
8pub use llm::oauth;
9pub mod roots;
10pub mod tool_proxy;
11pub mod variables;
12
13pub use config::*;
14pub use connection::ServerInstructions;
15pub use error::{McpError, Result};
16pub use manager::{
17    ElicitationRequest, McpClientEvent, McpManager, McpServerStatus, McpServerStatusEntry, UrlElicitationCompleteParams,
18};
19pub use mcp_client::{McpClient, cancel_result};
20pub use naming::split_on_server_name;
21pub use roots::root_from_path;
22pub use variables::{VarError, expand_env_vars};
23
24// Re-export rmcp's Root type for convenience
25pub use rmcp::model::Root;
26
27use std::path::PathBuf;
28
29/// Resolve the Aether home directory.
30///
31/// Returns `$AETHER_HOME` if set, otherwise `$HOME/.aether` (or `$USERPROFILE/.aether`
32/// on Windows). Returns `None` if no home directory environment variable is set.
33pub(crate) fn aether_home() -> Option<PathBuf> {
34    utils::SettingsStore::new("AETHER_HOME", ".aether").map(|s| s.home().to_path_buf())
35}