Skip to main content
Glama
AdsPower

AdsPower LocalAPI MCP Server

Official
by AdsPower
README.md
# AdsPower Skill & MCP & CLI

## adspower-browser Skill

Claude Code/Codex/Cursor/OpenCode/Gemini GL

```bash
npx skills add https://github.com/adspower/adspower-browser --skill adspower-browser
```

OpenClaw(小龙虾)
```bash
npx clawhub@latest install adspower-browser --force
```

Hermes agent(爱马仕)
```bash
hermes skills install https://github.com/AdsPower/adspower-browser/blob/main/skills/adspower-browser --force
```


## AdsPower CLI

The AdsPower CLI is completely isolated from the AdsPower client, runs independently, and does not share local caches/kernels, etc. However, the CLI also supports headless mode for operating the AdsPower client.

```bash
npm install -g adspower-browser # 安装

ads start -k <KEY>                    # 启动 adspower
ads stop                              # 停止 adspower
ads restart                           # 重启 adspower
ads status                            # 查询 adspower 运行状态
ads get-browser-list                  # 获取配置文件列表
... #查看 https://github.com/AdsPower/adspower-browser/blob/main/packages/adspower-browser/README.MD
```


AdsPower client headless mode:
```bash
AdsPower Global:
Windows: "AdsPower Global.exe" --headless=true --api-key=your_api_key --api-port=50325
MacOS:"/Applications/AdsPower Global.app/Contents/MacOS/AdsPower Global" --args --headless=true --api-key=your_api_key --api-port=50325
Linux:adspower_global --headless=true --api-key=your_api_key --api-port=50325
```


### AdsPower MCP

Claude Code: 
```bash
claude mcp add adspower-local-api -e PORT="50325" -e API_KEY="your_api_key" -- npx -y local-api-mcp-typescript
```

Codex:
```bash
codex mcp add --env PORT="50325" --env API_KEY="your_api_key" adspower-local-api -- npx -y local-api-mcp-typescript
```

OpenClaw:
```bash
openclaw mcp set adspower-local-api '{"command":"npx","args":["-y","local-api-mcp-typescript"],"env":{"PORT":"50325","API_KEY":"your_api_key"}}'
```

Cursor: Go to Cursor Settings -> MCP -> Add New MCP Server, and then paste the following content:
```json
{
  "mcpServers": {
    "adspower-local-api": {
      "command": "npx",
      "args": ["-y", "local-api-mcp-typescript"],
      "env": {
        "PORT": "50325",
        "API_KEY": "your_api_key"
      }
    }
  }
}
```

OpenCode: update `~/.config/opencode/opencode.json`
```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "adspower-local-api": {
      "command": "npx",
      "args": ["-y", "local-api-mcp-typescript"],
      "env": {
        "PORT": "50325",
        "API_KEY": "your_api_key"
      }
    }
  }
}
```

### How to use?

#### Requirements

- [AdsPower](https://www.adspower.com/?source=github)

- Node version 18 or greater

#### Version Compatibility

Some APIs are introduced incrementally by AdsPower client version.  
If the client has not been upgraded to a version that includes a specific API, requests may return `Not found`.

When this happens:
- Upgrade AdsPower client to the latest patch version first.
- Then retry the same command/API.


#### Port Configuration

The port parameter specifies the AdsPower Local API port. Default is `50325`.

**Priority order:**
1. Command-line argument `--port` (highest priority)
2. Environment variable `PORT` (medium priority)
3. Default value `50325` (lowest priority)

**Examples:**

Using command-line argument:
```json
{
  "mcpServers": {
    "adspower-local-api": {
      "command": "npx",
      "args": ["-y", "local-api-mcp-typescript", "--port", "50325"]
    }
  }
}
```

Using environment variable:
```json
{
  "mcpServers": {
    "adspower-local-api": {
      "command": "npx",
      "args": ["-y", "local-api-mcp-typescript"],
      "env": {
        "PORT": "50325"
      }
    }
  }
}
```

## Development

```bash
# clone
git clone https://github.com/AdsPower/adspower-browser.git
cd adspower-browser

# install (monorepo)
pnpm install

# build all packages
pnpm run build
```

For local MCP development, point Claude Desktop to the MCP package:

```json
"mcpServers": {
  "adspower-local-api": {
    "command": "node",
    "args": ["<Replace Your Project Path>/adspower-browser/packages/local-api-mcp/build/index.js"]
  }
}
```


### Use AdsPower Cli in Docker

copy the [`/packages/adspower-browser/docker-compose.yml`](/packages/adspower-browser/docker-compose.yml)

```bash
cd packages/adspower-browser

docker-compose -f ./docker-compose.yml up -d

docker-compose exec adspower-cli /bin/bash
```

TDQS

C2.8/5.0

Scored across 27 tools

Disambiguation4/5

Most tools have distinct purposes, such as create-browser vs. open-browser, but some overlap exists, like get-browser-list and get-opened-browser, which could cause confusion. The descriptions help clarify, but the boundaries between these list tools are not perfectly clear.

Naming Consistency5/5

All tool names follow a consistent verb-noun pattern with hyphens, such as create-browser, get-browser-list, and navigate. There are no deviations in style or convention, making the naming highly predictable and readable throughout the set.

Tool Count3/5

With 27 tools, the count is borderline high for a browser automation server, as it may feel heavy and complex for agents to navigate. However, given the domain's scope covering browser management, groups, and page interactions, it is not extreme but could benefit from consolidation.

Completeness5/5

The tool set provides comprehensive coverage for browser automation, including CRUD operations for browsers and groups, navigation, element interactions, and page content retrieval. There are no obvious gaps, and the surface supports full lifecycle management and interaction workflows.

Maintenance

ActivityStale
ResponsivenessSlow