Welcome to Harbor! This guide will help you install, configure, and start using Harbor to bring AI capabilities to your browser.
Harbor is a Firefox browser extension that lets websites access AI models and MCP (Model Context Protocol) tools with your permission. Think of it like a bridge between web applications and local AI capabilities.
With Harbor, you can:
- Use AI-powered features on websites that support Harbor
- Run local AI models (like Ollama or llamafile) without sending data to the cloud
- Connect MCP servers to extend AI capabilities with tools (file access, GitHub, databases, etc.)
- Control exactly which sites can access which capabilities
Before installing Harbor, make sure you have:
| Requirement | Details |
|---|---|
| Firefox | Version 109 or later (required) |
| LLM Provider | Ollama or llamafile (at least one) |
| Node.js | Version 18+ (for development/manual install only) |
| Docker | Optional, for isolated MCP server execution |
Harbor needs a local LLM to generate AI responses. Choose one:
Option A: Ollama (Recommended)
# Install Ollama (macOS)
brew install ollama
# Start Ollama
ollama serve
# Pull a model (e.g., llama2, mistral, or any model you prefer)
ollama pull llama2Option B: llamafile
# Download a llamafile from https://github.com/Mozilla-Ocho/llamafile
# Make it executable and run:
chmod +x ./your-model.llamafile
./your-model.llamafile --server- Download the Harbor installer package (
Harbor-x.x.x.pkg) - Double-click the package to run the installer
- Follow the prompts — the installer will:
- Check that Firefox is installed
- Install the Harbor bridge to
/Library/Application Support/Harbor/ - Configure Firefox to load the extension
- Restart Firefox after installation completes
- Look for the Harbor icon in the Firefox sidebar
If you're building from source:
# 1. Clone the repository
git clone --recurse-submodules https://github.com/anthropics/harbor.git
cd harbor
# 2. Build the extension
cd extension
npm install
npm run build
cd ..
# 3. Build the bridge
cd bridge-ts
npm install
npm run build
cd ..
# 4. Install the native messaging manifest
cd bridge-ts/scripts
./install_native_manifest_macos.sh # macOS
# OR
./install_native_manifest_linux.sh # Linux
cd ../..
# 5. Load the extension in Firefox
# Go to: about:debugging#/runtime/this-firefox
# Click "Load Temporary Add-on..."
# Select: extension/dist/manifest.jsonAfter installation, let's make sure everything is working:
Click the Harbor icon in your Firefox sidebar (or press the sidebar shortcut).
You should see:
- Connection status indicator
- "Curated Servers" section with recommended MCP servers
- "My Servers" section (empty at first)
The sidebar should show "Connected" in green. If you see "Disconnected":
- Make sure the bridge is installed correctly
- Check the Firefox Browser Console (
Cmd+Shift+Jon Mac) for errors - Try rebuilding the bridge if you installed manually
- Click the Settings (gear icon) in the sidebar
- Under "LLM Provider", click "Detect"
- Harbor will find available LLM providers:
- Ollama at
localhost:11434 - llamafile at
localhost:8080
- Ollama at
- Select your preferred provider
MCP servers give the AI tools like file access, memory, or web search.
- In "Curated Servers", find "Memory" (a good starter)
- Click "Install"
- Wait for installation to complete
- Click "Start" to run the server
- The server should show a green "Running" status
When you visit a website that uses Harbor, it may request permissions:
- Permission Prompt: A Harbor popup appears asking for access
- Review Scopes: See what capabilities the site is requesting:
model:prompt— Generate text with AImodel:tools— Use AI with tool callingmcp:tools.list— List available toolsmcp:tools.call— Execute toolsbrowser:activeTab.read— Read the current page
- Grant or Deny:
- Allow Once — Temporary permission (expires when you close the tab)
- Always Allow — Persistent permission for this site
- Deny — Block the request
The Harbor sidebar lets you:
- Chat — Send messages to the AI directly
- Manage Servers — Install, start, stop MCP servers
- View Tools — See all available tools from connected servers
- Configure Settings — LLM provider, debug options
Try the included demos to see Harbor in action:
- Make sure you have MCP servers running
- Open a new tab and go to:
http://localhost:8000(if demo server is running) - Or open the demo from the sidebar by clicking "API Demo"
From Curated List:
- Find a server in "Curated Servers"
- Click "Install"
- Wait for download/installation
From GitHub URL:
- Click "Install from URL"
- Paste the GitHub repository URL
- Harbor detects the package type and installs
Import from Claude/Cursor:
- Click "Import JSON"
- Paste your Claude Desktop or Cursor MCP configuration
- Servers are added to "My Servers"
| Status | Meaning |
|---|---|
| 🟢 Running | Server is connected and operational |
| ⚪ Stopped | Installed but not running |
| 🟡 Starting | Server is starting up |
| 🔴 Crashed | Server exited unexpectedly |
Some MCP servers require API keys (e.g., GitHub, Brave Search):
- Click the key icon next to the server
- Enter the required credentials
- Click "Save"
- Restart the server
-
Check the bridge is installed:
ls -la "/Library/Application Support/Harbor/" # Should show harbor-bridge binary
-
Check the native messaging manifest:
cat "/Library/Application Support/Mozilla/NativeMessagingHosts/harbor_bridge_host.json" -
Rebuild the bridge (if manual install):
cd bridge-ts npm run build -
Check Firefox Browser Console (
Cmd+Shift+J) for errors
-
Make sure Ollama or llamafile is running:
# Check Ollama curl http://localhost:11434/api/tags # Check llamafile curl http://localhost:8080/v1/models
-
Click "Detect" again in Harbor settings
-
Check for missing dependencies:
- Some servers need API keys configured first
- Click the key icon to see required credentials
-
Check runtime availability:
- npm servers need Node.js
- Python servers need Python + uvx
- Check sidebar "Runtimes" section
-
View server logs:
- Click the server name → "Logs"
- Look for error messages
- You may have previously denied permission
- Go to Harbor sidebar → Settings → Permissions
- Find the site and remove the denial
- Refresh the page and try again
Harbor stores data in ~/.harbor/:
| File | Contents |
|---|---|
harbor.db |
Server configurations |
catalog.db |
Cached server catalog |
installed_servers.json |
Installed server metadata |
secrets/credentials.json |
API keys (encrypted) |
sessions/*.json |
Chat history |
To completely reset Harbor:
rm -rf ~/.harbor# Remove Harbor files
sudo rm -rf "/Library/Application Support/Harbor"
sudo rm "/Library/Application Support/Mozilla/NativeMessagingHosts/harbor_bridge_host.json"
sudo rm "/Library/Application Support/Mozilla/policies/policies.json"
# Remove user data
rm -rf ~/.harbor- Go to
about:debugging#/runtime/this-firefox - Click "Remove" next to the Harbor extension
- Delete the harbor directory
- GitHub Issues: Report bugs or request features
- Developer Guide: docs/DEVELOPER_GUIDE.md for technical details
- Browser Console:
Cmd+Shift+Jfor debugging
- Try the Chat POC Demo to see the full API in action
- Read the Developer Guide to build apps with Harbor
- Explore more MCP servers in the Curated Directory