# Manage listings from an MCP client

> Run @zanora/mcp in seller mode to publish, edit, request verification, and follow sales and earnings from Claude or any MCP client. It can see money but can't move it.

The same `@zanora/mcp` package that buyers use has a **seller profile**. It takes a provider key and no wallet key, and gives the model eleven tools for running your listings.

> **Note — It publishes listings; it doesn't serve them:**
>
> Publishing says what's for sale and where. The endpoint or MCP server at that address still has to run the Zanora middleware ([MCP](https://docs.zanora.dev/sellers/mcp.md) or [HTTP](https://docs.zanora.dev/sellers/rest.md)) to charge for calls.

## Add it

```json title="MCP config"
{
  "mcpServers": {
    "zanora-seller": {
      "command": "npx",
      "args": ["-y", "@zanora/mcp"],
      "env": {
        "ZANORA_ROLE": "seller",
        "ZANORA_API_KEY": "zk.akey_…"
      }
    }
  }
}
```

The key is checked against the gateway when the server starts, so a buyer key here fails immediately. A wallet key in a seller config is also refused: sellers don't sign payments, so a spending key there is a mistake.

## The tools

| Tool | Does |
|---|---|
| `zanora_provider_status` | verified? suspended? reputation? and why nothing is selling |
| `zanora_request_verification` | asks an operator to make you discoverable, with your note |
| `zanora_publish_capability` | publishes one capability: REST or MCP, a URL or a pinned package |
| `zanora_publish_capabilities` | publishes a whole catalogue in one call |
| `zanora_update_capability` | edits price, wording, tags, schema or latency, keeping the id. Refuses to move the address |
| `zanora_list_capabilities` | your own listings, including deprecated ones |
| `zanora_deprecate_capability` | withdraws a capability from sale |
| `zanora_sales` | signed receipts for what you sold. Pages with `after` |
| `zanora_earnings` | your settlement wallet's balance |
| `zanora_payout_destinations` | **reads** where payouts go |
| `zanora_rail_transactions` | payouts and their real state |

There's **no payout tool and no tool to change your payout destination.** Changing where payouts go is the first thing someone does with a stolen credential. That's a person's action in the console, with a 24-hour freeze and an alert.

## Being told about sales

The seller profile serves three resources that clients can **subscribe** to:

| Resource | Contents |
|---|---|
| `zanora://sales` | signed receipts for completed calls, newest first |
| `zanora://earnings` | the settlement wallet's balance |
| `zanora://catalogue` | everything you've published |

While a client is subscribed, the server checks for changes (`ZANORA_SALES_POLL_MS`, default 20 seconds, minimum 5) and sends `notifications/resources/updated` when something changes. A publish, edit or deprecate made through this server updates `zanora://catalogue` straight away.

## Try it

```text
Check my Zanora seller status. If I'm not verified, request verification with a note
saying we run an invoice OCR API used by ~200 companies. Then publish an MCP capability
"extract_invoice" at https://acme.example/mcp for $1.00 in category OCR.
```
