# OpenClaw

> Add your advertising accounts to OpenClaw with one entry in openclaw.json. What to bound first, because OpenClaw runs unattended.

[Guides](https://www.getmcpads.com/guides)

## For you

OpenClaw speaks the Model Context Protocol, so there is nothing to install. You paste one URL, sign in once, and your advertising accounts become tools it can call.

## Setup

~/.openclaw/openclaw.json

```json
{
  "mcpServers": {
    "get-mcp-ads": {
      "url": "https://mcp.getmcpads.com/mcp"
    }
  }
}
```

Restart the OpenClaw gateway. It supports both stdio and HTTP transports; this gateway is HTTP, so there is nothing to install locally.

> **Warning** OpenClaw runs unattended. Read the section below on what that changes before you connect an account that can spend money.

## Before it can answer anything

Connecting the client is one half. The other is connecting at least one advertising platform in the dashboard and ticking which accounts to expose. Both need you, not the assistant: one is a consent screen at Google or Meta, the other is a decision about which accounts a machine may read.

- [Quickstart](https://www.getmcpads.com/docs/quickstart): The four steps, in order.
- [All guides](https://www.getmcpads.com/guides): What to ask once it is connected.

## For your agent

Setting up OpenClaw against this gateway. The endpoint is `https://mcp.getmcpads.com/mcp`, and each source also has its own endpoint if a narrower tool list is wanted.

## Running unattended

An agent that runs without a person watching is the case this gateway is most careful about. The protections are the same as everywhere else, they just matter more here.

- Keep the account on a plan without writes if nothing should ever change. Write tools are then absent from the tool list, not merely discouraged.
- Tick only the ad accounts the agent should reach. The allowlist is checked server side on every call.
- Every write still previews first. An unattended agent that calls a write once and never confirms changes nothing.
- Watch the monthly call allowance. A loop that retries on error will spend it, and a refused call costs nothing but a failing loop still costs the successful calls before it.

> **Note** Two steps in this setup need the account owner and cannot be done by an agent: approving the OAuth consent screen, and ticking which ad accounts to expose. If either is missing, hand back to the person rather than retrying.

## What the client does on its own

1. It requests `https://mcp.getmcpads.com/mcp` and receives a 401 with a `WWW-Authenticate` header.
2. It reads the protected resource metadata named in that header.
3. It registers itself through dynamic client registration. No key is issued or pasted.
4. It opens the authorisation page with PKCE and waits for the person to approve.
5. It calls `tools/list` and receives the tools for the connected sources, plus four routing tools.

## Checking it worked

Call `list_accounts`. It answers without touching any advertising API, so it separates a connection problem from an account problem. An empty list means the platform is connected but nothing was ticked.

- [Tool discovery](https://www.getmcpads.com/docs/concepts/discovery): Why the list is short, and how to reach the rest.
- [Account scoping](https://www.getmcpads.com/docs/concepts/accounts): What is refused, and why.
- [Authentication](https://www.getmcpads.com/docs/authentication): The metadata documents, in full.

---

This page as HTML: https://www.getmcpads.com/guides/setup/openclaw
Every page under /guides and /docs is available as Markdown: append `.md`, or send `Accept: text/markdown`.
