AdsPower
AdsPower

跨境电商浏览器自动化:Claude Code 集成 AdsPower MCP 实战

By AdsPower||32 Views

本文转载自 CSDN 作者「大鹏AI教育」的原创文章《跨境电商浏览器自动化:Claude Code 集成 AdsPower MCP 实战》,原文链接:https://zhangdapeng.blog.csdn.net/article/details/161016155?spm=1011.2415.3001.5331

本文仅作技术学习与自动化方案参考,版权归原作者所有,转载请以原文授权要求为准。


我是张大鹏,做了十多年人工智能,目前专注于 AI + 全栈教育培训。最近在帮一个跨境电商团队搭建 Instagram 矩阵自动化系统,说实话,最让人头疼的不是 AI 生成内容,是浏览器批量管理——几十个账号要同时操作,指纹隔离要可靠,还要能对接 AI 决策链路。调研了一圈,Claude Code + AdsPower MCP 是目前最优解。本文分享完整集成方案,适合想做浏览器自动化的开发者。

为什么选择 Claude Code + AdsPower?

跨境电商的浏览器管理痛点

做跨境电商的朋友都知道,多账号管理是刚需:

  • 平台限制:Instagram、Facebook、TikTok Shop 等平台对多账号操作限制严格
  • 指纹隔离:每个账号必须有独立的浏览器环境、IP、Cookie
  • 批量操作:几十上百个账号,人工操作不现实
  • AI 赋能:大模型要能控制浏览器,而不是只能生成文字

传统的解决方案:

  • Selenium/Playwright:脚本控制,但需要人工写代码维护
  • RPA 工具:录像模拟,无法与 AI 决策链路打通
  • 指纹浏览器:解决了隔离问题,但 AI 无法直接控制

我的感受是:市面上的工具各有所长,但没有一站式方案。Claude Code + AdsPower MCP 的组合,让我看到了 AI 原生控制浏览器的可能性。

Claude Code 与 AdsPower 的互补关系

要理解这个组合的优势,先看一张整体架构图:

跨境电商浏览器自动化:Claude Code 集成 AdsPower MCP 实战


从图中可以看出三层的协作关系:

为什么是 Claude Code?

  • 专为开发者设计的命令行 AI 编程助手
  • 完整的文件系统访问权限
  • Git 操作自动化
  • 原生支持 MCP 协议

为什么是 AdsPower?

  • 指纹浏览器领域头部厂商
  • 官方提供 MCP Server(GitHub 开源)
  • 20+ Local API 接口
  • 支持 Selenium/Playwright CDP

三种集成方案对比

方案总览

一张图看懂三种集成方式的区别:

跨境电商浏览器自动化:Claude Code 集成 AdsPower MCP 实战

跨境电商浏览器自动化:Claude Code 集成 AdsPower MCP 实战

方案一:MCP 协议(推荐)

原理:Claude Code 通过 MCP 协议调用 AdsPower 提供的 38 个工具。

Claude Code (MCP Client)
       │
       │ claude mcp add adspower -- npx local-api-mcp-typescript
       │
       ▼
AdsPower MCP Server (local-api-mcp-typescript)
       │
       ▼
AdsPower Local API (http://127.0.0.1:50325)

配置步骤

第一步:确保环境满足要求

跨境电商浏览器自动化:Claude Code 集成 AdsPower MCP 实战

第二步:在 Claude Code 中添加 MCP

# 打开 Claude Code,运行命令
claude mcp add adspower -- npx local-api-mcp-typescript

第三步:在 AdsPower 中开启 API

打开 AdsPower → 设置 → API设置 → 关闭"安全校验"

第四步:验证连接

重启 Claude Code,然后在对话中测试:

用户:列出所有浏览器环境
AI:正在调用 get_browser_list...

可用工具一览(共 38 个):

跨境电商浏览器自动化:Claude Code 集成 AdsPower MCP 实战

我的感受是:MCP 协议是未来趋势,配置简单,AI 理解成本低。但目前 Claude Code 的 MCP 支持还有优化空间,复杂场景建议结合 HTTP API。


方案二:HTTP API(灵活)

原理:Claude Code 通过 Python 脚本调用 AdsPower Local API。

# ads_power_client.py
import requests
from typing import Optional, Dict, List, Any

class AdsPowerClient:
    """AdsPower Local API 封装"""
    
    BASE_URL = "http://127.0.0.1:50325"
    
    def __init__(self, api_key: str):
        self.headers = {
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json"
        }
    
    def create_browser(
        self,
        name: str,
        group_id: str = "default",
        country: str = "美国",
        proxy_type: str = "http",
        proxy_host: str = "",
        proxy_port: str = "",
        **kwargs
    ) -> Dict[str, Any]:
        """创建浏览器环境"""
        data = {
            "name": name,
            "group_id": group_id,
            "country": country,
            "proxy_type": proxy_type,
            "proxy_host": proxy_host,
            "proxy_port": proxy_port,
            **kwargs
        }
        resp = requests.post(
            f"{self.BASE_URL}/api/v2/browser-profile/create",
            headers=self.headers,
            json=data
        )
        return resp.json()
    
    def start_browser(self, profile_id: str) -> Dict[str, Any]:
        """启动浏览器,返回 WS 地址"""
        resp = requests.post(
            f"{self.BASE_URL}/api/v2/browser-profile/start",
            headers=self.headers,
            json={"profile_id": profile_id}
        )
        return resp.json()
    
    def get_browser_list(
        self,
        group_id: Optional[str] = None,
        page: int = 1,
        page_size: int = 100
    ) -> List[Dict]:
        """获取浏览器列表"""
        params = {"page": page, "page_size": page_size}
        if group_id:
            params["group_id"] = group_id
        
        resp = requests.get(
            f"{self.BASE_URL}/api/v2/browser-profile/list",
            headers=self.headers,
            params=params
        )
        data = resp.json()
        return data.get("data", {}).get("list", [])
    
    def close_browser(self, profile_id: str) -> Dict[str, Any]:
        """关闭浏览器"""
        resp = requests.post(
            f"{self.BASE_URL}/api/v2/browser-profile/stop",
            headers=self.headers,
            json={"profile_id": profile_id}
        )
        return resp.json()


使用示例

from ads_power_client import AdsPowerClient

client = AdsPowerClient(api_key="your_api_key")

# 批量创建 10 个环境
for i in range(10):
    result = client.create_browser(
        name=f"INS_账号_{i+1}",
        country="美国",
        proxy_type="http",
        proxy_host="proxy.example.com",
        proxy_port="8080"
    )
    print(f"创建 {i+1}: {result.get('msg')}")

# 启动指定环境
info = client.start_browser(profile_id="h1yynkm")
ws_endpoint = info["data"]["ws_endpoint"]
print(f"WS 地址: {ws_endpoint}")

适用场景:

  • 需要批量创建/管理环境
  • 生产环境的自动化工作流
  • 与现有 Python 项目集成


方案三:Playwright CDP(深度控制)

原理:通过 AdsPower 启动浏览器获取 WebSocket 地址,再用 Playwright 连接进行深度控制。

from playwright.sync_api import sync_playwright
import requests

# 第一步:通过 AdsPower API 启动浏览器
API_KEY = "your_api_key"
PROFILE_ID = "h1yynkm"

resp = requests.post(
    "http://127.0.0.1:50325/api/v2/browser-profile/start",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"profile_id": PROFILE_ID}
)

ws_endpoint = resp.json()["data"]["ws_endpoint"]
print(f"连接到: {ws_endpoint}")

# 第二步:用 Playwright 连接该浏览器
with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(ws_endpoint)
    
    # 创建新页面
    page = browser.new_page()
    
    # 导航到目标网站
    page.goto("https://www.instagram.com")
    page.wait_for_load_state("networkidle")
    
    # 截图
    page.screenshot(path="instagram_home.png")
    
    # 填表/点击等复杂操作
    page.fill('input[name="username"]', 'your_username')
    page.fill('input[name="password"]', 'your_password')
    page.click('button[type="submit"]')
    
    # 等待登录完成
    page.wait_for_url("**/accounts/onetap/**", timeout=30000)
    
    # 获取页面内容
    content = page.content()
    
    # 关闭连接
    browser.close()

print("自动化完成!")

适用场景

  • 需要截图/录屏的复杂操作
  • 表单填写、数据抓取
  • 需要模拟用户行为的场景


三种方案的协作关系

这张图展示了实际项目中三种方案的协作方式:

跨境电商浏览器自动化:Claude Code 集成 AdsPower MCP 实战


完整工作流设计

实际应用示例

场景:Instagram 矩阵发帖

Step 1:批量创建环境(HTTP API)

# 创建 10 个 Instagram 账号环境
for i in range(10):
    client.create_browser(
        name=f"INS_矩阵_{i+1}",
        country="美国",
        user_def_config={
            "fingerprint": {
                "resolution": "1920x1080",
                "UA": "Chrome 134"
            }
        }
    )


Step 2:AI 指令发布内容(MCP 协议)

用户:帮我在 INS_矩阵_1 到 INS_矩阵_5 这5个账号上发布同一篇图文
      内容是:AI 时代的跨境电商运营技巧
      图片使用同一张产品图

AI:正在执行批量发布任务...
    - 调用 MCP create-browser 创建临时环境
    - 调用 Playwright CDP 登录每个账号
    - 调用 MCP screenshot 截图确认
    - 发布完成


Step 3:数据监控(Playwright CDP)

# 收集所有账号的发布效果
for profile_id in profile_ids:
    ws = client.start_browser(profile_id)["data"]["ws_endpoint"]
    
    with sync_playwright() as p:
        browser = p.chromium.connect_over_cdp(ws)
        page = browser.new_page()
        
        # 获取帖子数据
        page.goto(f"https://instagram.com/p/{post_id}/")
        likes = page.locator('button[type="button"] >> text="赞"').count()
        
        # 收集数据
        stats.append({
            "profile_id": profile_id,
            "likes": likes,
            "timestamp": datetime.now()
        })
        
        browser.close()


避坑指南

常见问题

跨境电商浏览器自动化:Claude Code 集成 AdsPower MCP 实战

安全建议

  1. API Key 保护:不要硬编码在代码中,使用环境变量
  2. 环境隔离:生产环境和测试环境分开
  3. 操作日志:记录所有 API 调用,便于排查问题
  4. 权限控制:最小化 API Key 的权限范围


我的建议

说实话,MCP 协议是未来,但 HTTP API 是现在。

  • MCP 协议配置简单、AI 友好,适合快速验证
  • HTTP API 稳定可靠,适合生产环境
  • Playwright CDP 功能强大,适合复杂自动化

最佳实践是三者结合,用 MCP 处理 AI 指令,用 HTTP API 处理批量操作,用 Playwright CDP 处理复杂场景。


总结

跨境电商浏览器自动化:Claude Code 集成 AdsPower MCP 实战

核心要点

  • Claude Code + AdsPower MCP 实现了 AI 原生控制浏览器
  • 三种方案各有优势,实际项目中可以结合使用
  • 安全校验要关闭,但要注意环境可信
  • 批量操作用 HTTP API,复杂自动化用 Playwright CDP


参考资料


作者:张大鹏
团队:大鹏 AI 教育
日期:2026-05-12
版权声明:本文为「大鹏 AI 教育」原创,转载需注明出处

AdsPower

与AdsPower一起,开启多账号管理新篇章

跨境电商浏览器自动化:Claude Code 集成 AdsPower MCP 实战

人们还读过

  • 我做INS矩阵管理系统时,菜单是这样设计的(附设备抽象思路)Instagram多账号矩阵管理 | INS矩阵管理系统菜单架构%E

    我做INS矩阵管理系统时,菜单是这样设计的(附设备抽象思路)

    本文详细介绍了INS矩阵管理系统的菜单架构设计思路,重点解决了"多设备统一管理"和"账号设备解耦"的问题。适合正在规划跨境电商自动化系统的技术负责人和开发者,以帮助他们更有效地管理和优化系统架构。

  • AdsPower 官方 MCP Server 深度测评:用自然语言控制指纹浏览器自动化AdsPower 官方 MCP Server 深度测评:用自然语言控制指纹�

    AdsPower 官方 MCP Server 深度测评:用自然语言控制指纹浏览器自动化

    深度评测 AdsPower 官方最新发布的 MCP Server!本文将带你实测如何利用大模型与自然语言,直接控制指纹浏览器实现环境管理与自动化操作。降低出海多账号运营门槛,开启 AI 自动化新篇章!

  • Flask + MCP 协议打通 AdsPower 指纹浏览器自动化,这个方案太丝滑了Flask + MCP 协议打通 AdsPower 指纹浏览器自动化

    Flask + MCP 协议打通 AdsPower 指纹浏览器自动化,这个方案太丝滑了

    本文介绍如何通过 Flask + MCP 架构实现对 AdsPower 指纹浏览器的可视化自动化控制。涵盖方案设计、代码实战和效果展示,适合 AI 应用开发者和跨境电商技术负责人。预计阅读时间 15 分钟。

  • 用AI Agent控制浏览器:MCP协议让指纹浏览器成为Agent的工具用AI Agent控制浏览器:MCP协议让指纹浏览器成为Agent�%9

    用AI Agent控制浏览器:MCP协议让指纹浏览器成为Agent的工具

    本文深入解析AI Agent如何通过AdsPower指纹浏览器的MCP协议实现浏览器自动化控制以及多账号隔离与自动化操作,涵盖Selenium实战、MCP Server接入方式及真实项目应用场景,帮助你构建可规模化的AI自动化系统。

  • 用AI Agent控制指纹浏览器实现Instagram全自动注册(附源码)用AI Agent控制指纹浏览器实现Instagram全自动注册(附源码)

    用AI Agent控制指纹浏览器实现Instagram全自动注册(附源码)

    本文转载自 51CTO 博客,介绍如何结合 AI Agent、AdsPower 指纹浏览器与浏览器自动化技术,实现 Instagram 注册流程的环境隔离、状态管理与自动化控制。