1 file changed
+15
-3
crates/cli/src/mcp.rs
+15
-3
@@ -22,12 +22,15 @@ use {
22
schemars::JsonSchema,
23
serde::Deserialize,
24
smbcloud_auth::me::me,
25
+ smbcloud_mail::mail_app::get_mail_apps,
26
smbcloud_model::project::ProjectCreate,
27
smbcloud_network::environment::Environment,
28
smbcloud_networking_project::{
28
- crud_project_create::create_project, crud_project_delete::delete_project,
29
- crud_project_deployment_read::get_deployments, crud_project_read::get_project,
30
- crud_project_read::get_projects, crud_project_update::update_project,
29
+ crud_project_create::create_project,
30
+ crud_project_delete::delete_project,
31
+ crud_project_deployment_read::get_deployments,
32
+ crud_project_read::{get_project, get_projects},
33
+ crud_project_update::update_project,
34
},
35
};
36
@@ -202,6 +205,15 @@ impl SmbMcpServer {
205
"Project deleted.",
206
)]))
207
}
208
+
209
+ #[tool(description = "List the authenticated user's smbCloud Mail apps as a JSON array.")]
210
+ async fn mail_list(&self) -> Result<CallToolResult, ErrorData> {
211
+ let token = self.access_token()?;
212
+ let projects = get_mail_apps(self.environment, client(), token)
213
+ .await
214
+ .map_err(|e| ErrorData::internal_error(e.to_string(), None))?;
215
+ json_result(&projects)
216
+ }
217
}
218
219
#[tool_handler]