# browserbase
Rust SDK for [Browserbase](https://browserbase.com) - cloud browser automation platform.
**Repository:** https://github.com/imranye/rusterbase
## Features
- **Full API coverage**: Sessions, Contexts, Projects, uploads/downloads
- **Type-safe**: Strongly typed request/response models
- **Async**: Built on `tokio` and `reqwest`
- **Error handling**: Structured errors with API error details
- **MCP server**: Included stdio MCP server for LLM/agent integration
## Installation
```toml
[dependencies]
browserbase = "0.1"
tokio = { version = "1", features = ["full"] }
```
## Usage
Create a Browserbase session:
```rust
use browserbase::Browserbase;
use browserbase::models::CreateSessionRequest;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let api_key = std::env::var("BROWSERBASE_API_KEY")?;
let project_id = std::env::var("BROWSERBASE_PROJECT_ID")?;
let bb = Browserbase::new(api_key)?;
// Create a session
let session = bb
.sessions()
.create(CreateSessionRequest::new(&project_id))
.await?;
println!("Session created: {}", session.id);
println!("Connect URL: {:?}", session.connect_url);
// List sessions
let sessions = bb.sessions().list(browserbase::models::ListSessionsParams::new()).await?;
println!("Total sessions: {}", sessions.len());
Ok(())
}
```
## MCP Server
The `browserbase-mcp` binary provides a Model Context Protocol server:
```sh
export BROWSERBASE_API_KEY=...
export BROWSERBASE_PROJECT_ID=...
cargo install browserbase-mcp
browserbase-mcp
```
## License
Apache-2.0