local-api-mcp-typescript

MCP.Pizza Chef: AdsPower

Built for people who juggle many separate browser identities, it exposes 47 tools through the AdsPower desktop app running on your own machine: create, launch, group, tag and delete profiles, attach proxies, then click, type, scroll, screenshot and read pages inside an open profile. Setup is a short snippet in Claude Code, Cursor, Codex, OpenCode or Claude Desktop, plus the AdsPower app itself, which is a paid product beyond its small free tier. All traffic stays on your own computer.

Other
Web/Research

Use This MCP server To

Launch one of my saved browser profiles by name Create a batch of new profiles with proxies attached Fill in a form on a page inside an open profile Take a screenshot of what a profile is showing Group and tag my profiles so I can find them Read the visible text off a page I have open

README

AdsPower Skill & MCP & CLI

adspower-browser Skill

Claude Code/Codex/Cursor/OpenCode/Gemini GL

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

OpenClaw(小龙虾)

npx clawhub@latest install adspower-browser --force

Hermes agent(爱马仕)

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.

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:

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:

claude mcp add adspower-local-api -e PORT="50325" -e API_KEY="your_api_key" -- npx -y local-api-mcp-typescript

Codex:

local-api-mcp-typescript FAQ

Do I need to pay for anything?
Yes, in practice. This drives the AdsPower desktop app, which must be installed and running on the same machine. AdsPower has a small free tier, but running a meaningful number of profiles means a paid plan.
Is the key an online account key?
No. It is the local access key AdsPower's own app generates for connections on your machine, pasted into the settings snippet along with the port number. In the code the key is optional and is simply left off when absent, and every request goes to your own computer rather than an outside service.
Which apps does it work in?
Anything that can start a local tool from a settings snippet. The instructions cover Claude Code, Cursor, Codex, OpenCode and OpenClaw, and Claude Desktop works the same way.
Can I use this to log in somewhere and pull a report?
Yes, with a profile that is already signed in. It can go to a page, click through it, type into fields, and hand back the visible text or a picture of the screen.
Can it delete or overwrite things?
Yes. There are tools that delete profiles, delete proxies, delete tags and wipe a profile's saved local data, and none of them ask you to confirm first.
Is there anything I should be careful about?
Three things worth knowing. One tool returns a profile's browser cookies straight into the conversation, and those are live sign-in credentials, so anything that stores your chat history stores them too. Another runs whatever JavaScript it is given inside the open page. A third can hand up to 200 profiles, saved logins included, to someone else's account by email or phone number, with no confirmation step.
Will it hit a rate limit?
It can. AdsPower's local connection expects requests to be spaced out, and the pacing code in this tool is switched off unless you set an extra environment variable, so a rapid burst of commands can start failing.
Why do some commands come back saying 'Not found'?
Newer capabilities depend on the version of the AdsPower app you have installed. Update the app to the latest patch and try the same request again.