Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
A TypeScript-first library for programmatic browser control, designed for building AI-powered web agents. <p align="center"> <h1 align="center">๐ Browser-Use</h1> <p align="center"> <strong>Make websites accessible for AI agents โ in TypeScript</strong> </p> <p align="center"> A TypeScript-first library for building AI-powered web agents that can autonomously browse, interact with, and extract data from the web using LLMs and Playwright. </p> </p> <p align="center"> <a href="https://github.com/webllm/browser-use/workflo Published capability contract available. No trust telemetry is available yet. 8 GitHub stars reported by the source. Last updated 2/24/2026.
Freshness
Last checked 2/22/2026
Best For
Contract is available with explicit auth and schema references.
Not Ideal For
browser-use is not ideal for teams that need stronger public trust telemetry, lower setup complexity, or more explicit contract coverage before production rollout.
Evidence Sources Checked
editorial-content, capability-contract, runtime-metrics, public facts pack
A TypeScript-first library for programmatic browser control, designed for building AI-powered web agents. <p align="center"> <h1 align="center">๐ Browser-Use</h1> <p align="center"> <strong>Make websites accessible for AI agents โ in TypeScript</strong> </p> <p align="center"> A TypeScript-first library for building AI-powered web agents that can autonomously browse, interact with, and extract data from the web using LLMs and Playwright. </p> </p> <p align="center"> <a href="https://github.com/webllm/browser-use/workflo
Public facts
7
Change events
1
Artifacts
0
Freshness
Feb 22, 2026
Published capability contract available. No trust telemetry is available yet. 8 GitHub stars reported by the source. Last updated 2/24/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 22, 2026
Vendor
Webllm
Artifacts
0
Benchmarks
0
Last release
0.3.0
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Published capability contract available. No trust telemetry is available yet. 8 GitHub stars reported by the source. Last updated 2/24/2026.
Setup snapshot
git clone https://github.com/webllm/browser-use.gitSetup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Webllm
Protocol compatibility
MCP
Auth modes
mcp, api_key
Machine-readable schemas
OpenAPI or schema references published
Adoption signal
8 GitHub stars
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
bash
npm install browser-use # Playwright browsers are installed automatically via postinstall
bash
export OPENAI_API_KEY=sk-your-api-key # or ANTHROPIC_API_KEY, GOOGLE_API_KEY, etc.
typescript
import { Agent } from 'browser-use';
import { ChatOpenAI } from 'browser-use/llm/openai';
const agent = new Agent({
task: 'Go to google.com and search for "TypeScript tutorials"',
llm: new ChatOpenAI({
model: 'gpt-4o',
apiKey: process.env.OPENAI_API_KEY,
}),
});
const history = await agent.run();
console.log('Result:', history.final_result());
console.log('Success:', history.is_successful());bash
npx tsx example.ts
bash
# Interactive mode npx browser-use # One-shot task npx browser-use "Go to example.com and extract the page title" # With specific model npx browser-use --model claude-sonnet-4-20250514 -p "Search for AI news" # Headless mode npx browser-use --headless -p "Check the weather" # MCP server mode npx browser-use --mcp
text
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ Browser-Use โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ Agent โ MessageManager โ LLM Providers โ โ โ โ โ Controller โ Action Registry โ BrowserSession โ โ โ โ โ DomService โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
A TypeScript-first library for programmatic browser control, designed for building AI-powered web agents. <p align="center"> <h1 align="center">๐ Browser-Use</h1> <p align="center"> <strong>Make websites accessible for AI agents โ in TypeScript</strong> </p> <p align="center"> A TypeScript-first library for building AI-powered web agents that can autonomously browse, interact with, and extract data from the web using LLMs and Playwright. </p> </p> <p align="center"> <a href="https://github.com/webllm/browser-use/workflo
TypeScript port of the popular Python browser-use library โ with a native Node.js experience, full type safety, and first-class support for all major LLM providers.
npm install browser-use
# Playwright browsers are installed automatically via postinstall
export OPENAI_API_KEY=sk-your-api-key
# or ANTHROPIC_API_KEY, GOOGLE_API_KEY, etc.
import { Agent } from 'browser-use';
import { ChatOpenAI } from 'browser-use/llm/openai';
const agent = new Agent({
task: 'Go to google.com and search for "TypeScript tutorials"',
llm: new ChatOpenAI({
model: 'gpt-4o',
apiKey: process.env.OPENAI_API_KEY,
}),
});
const history = await agent.run();
console.log('Result:', history.final_result());
console.log('Success:', history.is_successful());
npx tsx example.ts
# Interactive mode
npx browser-use
# One-shot task
npx browser-use "Go to example.com and extract the page title"
# With specific model
npx browser-use --model claude-sonnet-4-20250514 -p "Search for AI news"
# Headless mode
npx browser-use --headless -p "Check the weather"
# MCP server mode
npx browser-use --mcp
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Browser-Use โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Agent โ MessageManager โ LLM Providers โ
โ โ โ
โ Controller โ Action Registry โ BrowserSession โ
โ โ โ
โ DomService โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Component | Description |
| ------------------ | ---------------------------------------------------------------------- |
| Agent | Central orchestrator โ runs the observe โ think โ act loop |
| Controller | Manages action registration and execution via Registry |
| BrowserSession | Playwright wrapper โ browser lifecycle, tab management, screenshots |
| DomService | Extracts interactive elements with indexed mapping for LLM consumption |
| MessageManager | Manages LLM conversation history with token optimization |
| LLM Providers | Unified BaseChatModel interface across 10+ providers |
done action or max_steps| Provider | Import | Vision | Notes |
| ----------------- | ---------------------------- | ------ | --------------------------------------------- |
| OpenAI | browser-use/llm/openai | โ
| Default provider, reasoning models (o1/o3/o4) |
| Anthropic | browser-use/llm/anthropic | โ
| Prompt caching support |
| Google Gemini | browser-use/llm/google | โ
| Extended thinking support |
| Azure OpenAI | browser-use/llm/azure | โ
| Enterprise deployment |
| AWS Bedrock | browser-use/llm/aws | โ
| Claude via AWS |
| Groq | browser-use/llm/groq | โ | Fastest inference |
| Ollama | browser-use/llm/ollama | โ | Local/self-hosted models |
| DeepSeek | browser-use/llm/deepseek | โ | Cost-effective |
| OpenRouter | browser-use/llm/openrouter | Varies | Multi-model routing |
| Mistral | browser-use/llm/mistral | Varies | Mistral models |
| Cerebras | browser-use/llm/cerebras | โ | Fast inference |
// OpenAI
import { ChatOpenAI } from 'browser-use/llm/openai';
const llm = new ChatOpenAI({
model: 'gpt-4o',
apiKey: process.env.OPENAI_API_KEY,
});
// Anthropic
import { ChatAnthropic } from 'browser-use/llm/anthropic';
const llm = new ChatAnthropic({
model: 'claude-sonnet-4-20250514',
apiKey: process.env.ANTHROPIC_API_KEY,
});
// Google Gemini
import { ChatGoogle } from 'browser-use/llm/google';
const llm = new ChatGoogle('gemini-2.5-flash');
// Ollama (local)
import { ChatOllama } from 'browser-use/llm/ollama';
const llm = new ChatOllama('llama3', 'http://localhost:11434');
// OpenAI Reasoning Models
const llm = new ChatOpenAI({ model: 'o3-mini', reasoningEffort: 'medium' });
</details>
const agent = new Agent({
task: `Go to amazon.com, search for "wireless keyboard",
extract the name, price, and rating of the first 5 products as JSON`,
llm,
use_vision: true,
});
const history = await agent.run(30);
console.log(history.final_result());
const agent = new Agent({
task: 'Login to the dashboard',
llm,
sensitive_data: {
'*.example.com': {
username: process.env.SITE_USERNAME!,
password: process.env.SITE_PASSWORD!,
},
},
browser_session: new BrowserSession({
browser_profile: new BrowserProfile({
allowed_domains: ['*.example.com'],
}),
}),
});
import { Controller, ActionResult } from 'browser-use';
import { z } from 'zod';
const controller = new Controller();
controller.registry.action('Save screenshot to file', {
param_model: z.object({
filename: z.string().describe('Output filename'),
}),
})(async function save_screenshot(params, ctx) {
const screenshot = await ctx.page.screenshot();
fs.writeFileSync(`./screenshots/${params.filename}`, screenshot);
return new ActionResult({
extracted_content: `Screenshot saved as ${params.filename}`,
});
});
const agent = new Agent({ task: '...', llm, controller });
const agent = new Agent({
task: 'Navigate to hacker news and summarize the top stories',
llm,
use_vision: true,
vision_detail_level: 'high', // 'auto' | 'low' | 'high'
generate_gif: './session.gif',
});
const agent = new Agent({
task: `Compare "Sony WH-1000XM5" prices:
1. Open amazon.com and search for the product
2. Open bestbuy.com in a new tab and search
3. Provide a comparison summary`,
llm,
use_vision: true,
});
const agent = new Agent({ task: '...', llm });
agent.eventbus.on('CreateAgentStepEvent', (event) => {
console.log('Step completed:', event.step_id);
});
await agent.run();
const agent = new Agent({
task: 'Your task',
llm,
use_vision: true, // Enable screenshot analysis
max_actions_per_step: 5, // Actions per LLM call
max_failures: 3, // Max retries on failure
generate_gif: './recording.gif', // Session recording
validate_output: true, // Strict output validation
use_thinking: true, // Extended thinking prompts
llm_timeout: 60, // LLM call timeout (seconds)
step_timeout: 180, // Step timeout (seconds)
extend_system_message: 'Be concise', // Custom prompt additions
});
const history = await agent.run(50); // Max 50 steps
import { BrowserProfile, BrowserSession } from 'browser-use';
const profile = new BrowserProfile({
headless: true,
viewport: { width: 1920, height: 1080 },
user_data_dir: './my-profile', // Persistent sessions
allowed_domains: ['*.example.com'], // Domain restrictions
highlight_elements: true, // Visual debugging
proxy: { server: 'http://proxy:8080' },
});
const session = new BrowserSession({ browser_profile: profile });
const agent = new Agent({ task: '...', llm, browser_session: session });
| Variable | Description |
| ----------------------------- | ---------------------------------------------- |
| OPENAI_API_KEY | OpenAI API key |
| ANTHROPIC_API_KEY | Anthropic API key |
| GOOGLE_API_KEY | Google API key |
| BROWSER_USE_HEADLESS | Run browser headlessly (true/false) |
| BROWSER_USE_LOGGING_LEVEL | Log level: debug, info, warning, error |
| BROWSER_USE_ALLOWED_DOMAINS | Comma-separated domain allowlist |
| ANONYMIZED_TELEMETRY | Enable/disable anonymous telemetry |
See Configuration Guide for the full list.
Browser-Use can run as an MCP server, exposing browser automation as tools for Claude Desktop:
npx browser-use --mcp
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"browser-use": {
"command": "npx",
"args": ["browser-use", "--mcp"],
"env": {
"OPENAI_API_KEY": "your-api-key"
}
}
}
}
Available MCP tools: browser_run_task, browser_navigate, browser_click, browser_type, browser_scroll, browser_get_state, browser_extract, browser_screenshot, browser_close.
See MCP Server Guide for more details.
sensitive_data requires allowed_domains by defaultconst agent = new Agent({
task: 'Login and fetch invoices',
llm,
sensitive_data: {
'*.example.com': {
username: process.env.USERNAME!,
password: process.env.PASSWORD!,
},
},
browser_session: new BrowserSession({
browser_profile: new BrowserProfile({
allowed_domains: ['*.example.com'],
}),
}),
});
See Security Guide for production deployment best practices.
| Document | Description | | ---------------------------------------- | ------------------------------------ | | Quick Start | Get started in 5 minutes | | Architecture | System design and component overview | | API Reference | Complete API documentation | | Configuration | All configuration options | | LLM Providers | Provider setup and comparison | | Actions | Built-in and custom actions | | MCP Server | MCP integration guide | | Security | Security best practices | | Examples | More code examples | | Contributing | Contribution guidelines |
# Install dependencies
pnpm install
# Build
pnpm build
# Run tests
pnpm test
# Lint & format
pnpm lint
pnpm prettier
# Type checking
pnpm typecheck
# Run an example
pnpm exec tsx examples/simple-search.ts
MIT ยฉ Web LLM
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
ready
Auth
mcp, api_key
Streaming
No
Data region
global
Protocol support
Requires: mcp, lang:typescript
Forbidden: none
Guardrails
Operational confidence: medium
curl -s "https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
80
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
74
Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Rank
72
An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Contract JSON
{
"contractStatus": "ready",
"authModes": [
"mcp",
"api_key"
],
"requires": [
"mcp",
"lang:typescript"
],
"forbidden": [],
"supportsMcp": true,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": "https://github.com/webllm/browser-use#input",
"outputSchemaRef": "https://github.com/webllm/browser-use#output",
"dataRegion": "global",
"contractUpdatedAt": "2026-02-24T19:46:37.312Z",
"sourceUpdatedAt": "2026-02-24T19:46:37.312Z",
"freshnessSeconds": 4441663
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_MCP",
"generatedAt": "2026-04-17T05:34:21.085Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "supported",
"confidenceSource": "contract",
"notes": "Confirmed by capability contract"
},
{
"key": "browser",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "use",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "ai",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "agent",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "web",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "automation",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "cli",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:MCP|supported|contract capability:browser|supported|profile capability:use|supported|profile capability:ai|supported|profile capability:agent|supported|profile capability:web|supported|profile capability:automation|supported|profile capability:cli|supported|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:37.312Z",
"isPublic": true
},
{
"factKey": "auth_modes",
"category": "compatibility",
"label": "Auth modes",
"value": "mcp, api_key",
"href": "https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:37.312Z",
"isPublic": true
},
{
"factKey": "schema_refs",
"category": "artifact",
"label": "Machine-readable schemas",
"value": "OpenAPI or schema references published",
"href": "https://github.com/webllm/browser-use#input",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:37.312Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Webllm",
"href": "https://github.com/webllm/browser-use",
"sourceUrl": "https://github.com/webllm/browser-use",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-24T19:43:14.176Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "8 GitHub stars",
"href": "https://github.com/webllm/browser-use",
"sourceUrl": "https://github.com/webllm/browser-use",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-24T19:43:14.176Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-webllm-browser-use/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub ยท GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to browser-use and adjacent AI workflows.