Skip to main content

boost/tools/
mod.rs

1//! Built-in MCP tools.
2
3use std::sync::Arc;
4
5use crate::browser::BrowserManager;
6use crate::tool::Tool;
7
8pub mod browser_tools;
9pub mod commands;
10pub mod components;
11pub mod config;
12pub mod database;
13pub mod docs;
14pub mod info;
15pub mod logs;
16pub mod migrations;
17pub mod models;
18pub mod routes;
19
20pub fn all() -> Vec<Arc<dyn Tool>> {
21    let manager = BrowserManager::new();
22    vec![
23        Arc::new(routes::ListRoutes),
24        Arc::new(migrations::ListMigrations),
25        Arc::new(models::ListModels),
26        Arc::new(components::ListComponents),
27        Arc::new(info::ApplicationInfo),
28        Arc::new(config::GetConfig),
29        Arc::new(commands::ListAvailableCommands),
30        Arc::new(database::DatabaseSchema),
31        Arc::new(database::DatabaseQuery),
32        Arc::new(logs::ReadLogEntries),
33        Arc::new(logs::LastError),
34        Arc::new(docs::SearchDocs),
35        Arc::new(browser_tools::BrowserScreenshot {
36            manager: manager.clone(),
37        }),
38        Arc::new(browser_tools::BrowserConsole {
39            manager: manager.clone(),
40        }),
41        Arc::new(browser_tools::BrowserNetwork {
42            manager: manager.clone(),
43        }),
44        Arc::new(browser_tools::BrowserEval {
45            manager: manager.clone(),
46        }),
47        Arc::new(browser_tools::BrowserClick {
48            manager: manager.clone(),
49        }),
50        Arc::new(browser_tools::BrowserFill {
51            manager: manager.clone(),
52        }),
53        Arc::new(browser_tools::BrowserType {
54            manager: manager.clone(),
55        }),
56        Arc::new(browser_tools::BrowserWaitFor { manager }),
57    ]
58}