ferridriver_mcp/lib.rs
1//! ferridriver-mcp -- Browser automation MCP server library.
2//!
3//! Provides a fully-functional MCP server for browser automation that
4//! consumers can customize and extend:
5//!
6//! - Implement [`McpServerConfig`] to control chrome args (base + per-instance),
7//! instance resolution, and server metadata.
8//! - Use [`McpServer::with_extra_tools`] to compose additional tool routers.
9//! - Use [`McpServer::with_extension`] to attach custom state accessible
10//! from tool handlers via [`McpServer::extension`].
11
12pub mod config;
13pub mod mcp;
14pub mod params;
15pub mod plugin;
16pub mod server;
17pub mod tools;
18
19use rmcp::model::Tool;
20
21// Re-export key types at crate root for ergonomic imports.
22pub use config::FileConfig;
23pub use server::{DefaultConfig, McpServer, McpServerConfig, SharedState, State};
24
25/// Browser tool definitions (no live `BrowserState` required). Sorted by name.
26#[must_use]
27pub fn list_browser_tools() -> Vec<Tool> {
28 McpServer::tool_router().list_all()
29}