picoclaw-mcp-server
Enables browser automation with stealth features, GitHub integration, and persistent opencode repository access through MCP tools.
README
picoclaw-mcp-server
A Model Context Protocol (MCP) server with browser automation, GitHub integration, and persistent opencode repository support.
Features
Browser Automation
- Human-like behavior: Random delays, bezier-curve mouse movements, viewport/user-agent randomization
- Stealth mode: Avoids bot detection using playwright-stealth
- Full browser control: Navigate, click, type, scroll, hover, screenshot, get page content
GitHub Integration
- List repository files
- Read file contents
- Search code
- Search repositories
- Get repository information
OpenCode Integration (Persistent)
- Auto-clone/pull: Automatically clone or pull your opencode repository on startup
- Heartbeat refresh: Periodic automatic refresh (configurable interval)
- Manual refresh: MCP tools to force pull/refresh
- Local file access: Read, list, and search your opencode repository
Utilities
- Web search via DuckDuckGo
- URL fetching
Installation
# Clone the repository
git clone https://github.com/Evansxm/picoclaw-mcp-server.git
cd picoclaw-mcp-server
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Install Playwright browsers
playwright install chromium
Configuration
Environment Variables
| Variable | Default | Description |
|---|---|---|
GITHUB_TOKEN |
- | GitHub Personal Access Token for higher rate limits |
HEADLESS |
true |
Run browser in headless mode |
STEALTH_MODE |
true |
Enable stealth mode to avoid bot detection |
OPENCODE_ENABLED |
true |
Enable opencode repository integration |
OPENCODE_REPO_URL |
- | URL of your opencode repository |
OPENCODE_LOCAL_PATH |
~/opencode-clone |
Local path to clone the repository |
OPENCODE_REFRESH_INTERVAL |
1800 |
Seconds between automatic refreshes |
Configuration File
You can also configure via ~/.picoclaw/config.json:
{
"opencode": {
"enabled": true,
"repo_url": "https://github.com/yourusername/your-opencode-repo",
"local_path": "~/opencode-clone",
"refresh_interval": 1800,
"github_token": "your-github-token"
}
}
Claude Desktop Configuration
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"picoclaw": {
"command": "/path/to/picoclaw-mcp-server/venv/bin/python",
"args": ["/path/to/picoclaw-mcp-server/server.py"],
"env": {
"GITHUB_TOKEN": "your-github-token-here",
"OPENCODE_ENABLED": "true",
"OPENCODE_REPO_URL": "https://github.com/yourusername/your-repo",
"HEADLESS": "false",
"STEALTH_MODE": "true"
}
}
}
}
Cursor Configuration
Add to Cursor settings (Settings → Tools → MCP):
{
"mcpServers": {
"picoclaw": {
"command": "python",
"args": ["/absolute/path/to/picoclaw-mcp-server/server.py"],
"env": {
"GITHUB_TOKEN": "your-github-token-here",
"OPENCODE_ENABLED": "true"
}
}
}
}
Available Tools
OpenCode Tools
| Tool | Description |
|---|---|
| `opencode | Force pull/refresh the opencode repository |
_pull_repoopencode_clone_repo` |
Clone or ensure repository exists locally |
opencode_list_files |
List files in the opencode repository |
opencode_read_file |
Read a file from the opencode repository |
opencode_search_code |
Search for code in the opencode repository |
opencode_get_status |
Get status of the opencode repository |
Browser Tools
| Tool | Description |
|---|---|
browser_navigate |
Navigate to a URL |
browser_click |
Click element by CSS selector |
browser_click_text |
Click element by text content |
browser_type |
Type text into input |
browser_scroll |
Scroll the page |
browser_screenshot |
Take a screenshot |
browser_get_screenshot_base64 |
Get screenshot as base64 |
browser_get_page_content |
Get page text content |
browser_get_page_html |
Get page HTML source |
browser_hover |
Hover over element |
browser_wait |
Wait for seconds |
browser_close |
Close browser |
GitHub Tools
| Tool | Description |
|---|---|
list_repo_files |
List files in a repository |
read_file |
Read file contents |
search_code |
Search code on GitHub |
search_repositories |
Search repositories |
get_repository_info |
Get repository information |
Utility Tools
| Tool | Description |
|---|---|
web_search |
Search the web via DuckDuckGo |
fetch_url |
Fetch URL content |
Systemd Service (Always-On)
For persistent always-on behavior on Linux:
# Copy the service file
sudo cp picoclaw-mcp.service /etc/systemd/system/
# Reload systemd
sudo systemctl daemon-reload
# Enable and start the service
sudo systemctl enable picoclaw-mcp
sudo systemctl start picoclaw-mcp
# Check status
sudo systemctl status picoclaw-mcp
Systemd Service Customization
Edit the service file to customize:
[Service]
Environment="OPENCODE_REPO_URL=https://github.com/yourusername/your-repo"
Environment="OPENCODE_REFRESH_INTERVAL=1800"
Environment="HEADLESS=true"
Development
# Run with MCP Inspector
uv run mcp dev server.py
# Run directly
python server.py
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.