Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
220 changes: 155 additions & 65 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,101 +1,191 @@
# Agent Browser

This repository contains the source code for the Agent Browser.

### Quickstart
install on mac and linux using [homebrew](https://brew.sh/):
```
<div align="center">

![Version](https://img.shields.io/github/v/release/co-browser/agent-browser?label=version)
![License](https://img.shields.io/badge/license-MIT-green)
[![macOS](https://img.shields.io/badge/macOS-supported-success)](https://github.com/co-browser/agent-browser/releases)
[![Windows](https://img.shields.io/badge/Windows-supported-success)](https://github.com/co-browser/agent-browser/releases)
[![Linux](https://img.shields.io/badge/Linux-supported-success)](https://github.com/co-browser/agent-browser/releases)
[![Twitter URL](https://img.shields.io/twitter/url/https/twitter.com/cobrowser.svg?style=social&label=Follow%20%40cobrowser)](https://x.com/cobrowser)

**Connect all your MCP clients to a single endpoint that manages all your MCP servers**

[Installation](#installation) •
[Client Integration](#client-integration) •
[API Documentation](#api-documentation) •
[Development](#development)

</div>

---

## Overview

Agent Browser eliminates the need to configure each MCP server in every client. Connect your clients once to Agent Browser, and it will manage all your Server-Sent Events (SSE) MCP servers for you.

<div align="center">
<table>
<tr>
<th align="center">Without Agent Browser</th>
<th align="center">With Agent Browser</th>
</tr>
<tr>
<td>
<pre>
Client ─────► MCP Server
└────► MCP Server
</pre>
</td>
<td>
<pre>
Client ─────► Agent Browser ─────► MCP Server
└─────► MCP Server
</pre>
</td>
</tr>
</table>
</div>

## Usage

Access the web UI at [http://localhost:8080/ui/](http://localhost:8080/ui/) to:

- **View** connection status of your MCP servers
- **Add** new MCP server connections
- **Remove** existing connections
- **Monitor** connection health in real-time

---

## Installation

### Package Managers

**macOS and Linux**
```bash
brew tap cob-packages/homebrew-agent-browser
brew install cob-packages/agent-browser/agent-browser
agent-browser
```

install on windows using [scoop](https://scoop.sh/):
```
**Windows**
```bash
scoop bucket add https://github.com/cob-packages/scoop-agent-browser
scoop install agent-browser
agent-browser
```

<details>
<summary><b>Direct Download</b></summary>
<br>

## Project Structure

This project uses Go modules and follows a standard Go project layout:

* `/cmd`: Main application entry points.
* `/internal`: Private application code (not intended for import by other projects).
* `/app`: Core application setup and Fx module wiring.
* `/config`: Configuration loading and management.
* `/log`: Logging setup and utilities.
* `/mcp`: MCP abstraction and utilities.
* `/services`: Core business logic implementations.
* `/sync`: Sync daemon. (PLACEHOLDER)
* `/updater`: Software update logic. (PLACEHOLDER)
* `/web`: Web server related code.
* `/handlers`: HTTP request handlers.
* `/templates`: HTML templates (using `templ`).
* `/pkg`: Library code intended for external use (currently N/A).
* `/scripts`: Scripts in Bash, Python, etc., for complex actions in this repository.
* `/out`: Compiled binaries (ignored by git).

## Getting Started
You can also download the latest release directly from [GitHub Releases](https://github.com/co-browser/agent-browser/releases):

### Prerequisites
| Platform | Architecture | Download |
|----------|--------------|----------|
| macOS | Intel (x86_64) | `agent-browser-[version]-darwin-amd64.tar.gz` |
| macOS | Apple Silicon (M1/M2) | `agent-browser-[version]-darwin-arm64.tar.gz` |
| Linux | x86_64 (64-bit) | `agent-browser-[version]-linux-amd64.tar.gz` |
| Linux | ARM 64-bit | `agent-browser-[version]-linux-arm64.tar.gz` |
| Linux | ARM 32-bit | `agent-browser-[version]-linux-arm7.tar.gz` |
| Windows | 64-bit | `agent-browser-[version]-windows-amd64.zip` |
| Windows | 32-bit | `agent-browser-[version]-windows-386.zip` |
| Windows | ARM 64-bit | `agent-browser-[version]-windows-arm64.zip` |

1. **Go:** Ensure you have Go installed (version 1.21 or later recommended). You can download it from [https://go.dev/dl/](https://go.dev/dl/).
2. **Bash:** The setup script uses `bash` specific features.
3. **Environment Setup:** The setup script (`make setup`) will check if your `$GOPATH/bin` directory is in your `PATH` and provide instructions if it isn't. This directory is needed to run Go tools installed via `go install`.
> After downloading, extract the archive and run the executable.
</details>

You can manually verify by running `go env GOPATH` and checking your shell's configuration (e.g., `.zshrc`, `.bashrc`). Example:
```bash
export GOPATH="$(go env GOPATH)" # Or explicitly set, e.g., export GOPATH="$HOME/go"
export PATH="$PATH:$GOPATH/bin"
```
---

### Installation & Setup
## Client Integration

1. **Clone the repository:**
### Cursor

```
git clone https://github.com/co-browser/agent-browser.git
cd agent-browser
```
After installing and running Agent Browser, Cursor will automatically detect and connect to it. No additional configuration needed.

2. **Install Tools & Dependencies:** Run the setup command. This executes `scripts/setup.sh` which installs required Go tools (`templ`, `golangci-lint`) and checks your `PATH`.
### Other MCP Clients

```bash
make setup
```
Add Agent Browser as an SSE endpoint in your MCP client configuration:

3. **Download Go Modules:**
```json
{
"Agent Browser": {
"url": "http://localhost:8087/sse"
}
}
```

```bash
make tidy
```
Once your client is connected to Agent Browser, you can add or remove MCP servers without touching your client configurations.

### Running the Application
---

1. **Build and Run:**
## Project Structure

```bash
make run
```
<details>
<summary><b>View Project Structure</b></summary>
<br>

This will compile the application into the `out/` directory and start the server (defaulting to `localhost:8080`).
```
/cmd - Application entry points
/internal
/app - Core application setup with Fx
/backend - Database and persistence layer
/config - Configuration management
/cursor - Cursor integration
/events - Event bus for internal communication
/log - Logging utilities
/mcp - MCP server implementation
/web - Web server and UI
/scripts - Build and utility scripts
/out - Compiled binaries (git-ignored)
```
</details>

2. **Access the UI (Placeholder):** Open your browser to `http://localhost:8080`.
---

## API Documentation

The backend server exposes a REST API for managing resources. When the server is running, you can access the documentation via:

* **Interactive Documentation (Swagger UI):** `http://localhost:8080/api/docs`
* **Raw OpenAPI Specification:** `http://localhost:8080/api/docs/openapi.yaml`
The Agent Browser exposes a REST API for integration. For details on accessing the API documentation, using Swagger UI, or integrating with tools like Postman, see [API.md](API.md).

See [API.md](API.md) for additional details, such as importing the specification into tools like Postman.
---

## Development

### Common Makefile Targets
### Prerequisites
- Go 1.21 or later
- Bash (for setup scripts)

### Setup and Run

```bash
# Clone the repository
git clone https://github.com/co-browser/agent-browser.git
cd agent-browser

# Install development tools
make setup

# Build and run
make run
```

The application will be available at `http://localhost:8080`.

---

## Support

For issues or inquiries: [cobrowser.xyz](https://cobrowser.xyz)

## Star History

* `
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=co-browser/agent-browser&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=co-browser/agent-browser&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=co-browser/agent-browser&type=Date" />
</picture>
</div>