Walmart Connect has hundreds of uniformly JSON:API endpoints; wrapping each one would mean a release every time Walmart ships something. Here the agent reads the spec at call time, and raw `method` plus `path` reaches endpoints the spec has not caught up with. Signing is the part you never think about — every request is RSA-SHA256 signed with the headers built for you. Truncated responses are not lost either: the full body stays retrievable through the response resource.
A Python server built around discovery rather than one tool per endpoint. The agent lists and describes operations from bundled OpenAPI specs, then calls them through a generic proxy — so a new API endpoint does not need a new release.
- Operations listed from the bundled spec for `search` or `display`, filterable by query, tag or HTTP method — `list_endpoints`
- One operation returned with the `components.schemas` reachable from it, so a request body can be built without loading the whole spec — `describe_endpoint`
- Any endpoint executed by operation id, or by raw `method` plus `path`, which also reaches alpha and beta endpoints missing from the bundled specs — `call_endpoint`
- Specs re-fetched at runtime into a user cache that takes precedence over the bundled copy — `refresh_specs`
- Authenticated download of a display snapshot report or entity file — `download_display_snapshot`
- Three resources alongside them: `wmc://config` for your configured regions and environments, `wmc://responses/{request_id}` for the full body of a truncated response, and `wmc://curl/{request_id}` for a reproducible cURL of an earlier request
Python 3.13+ and Walmart Connect Partner Network credentials: a consumer ID, an RSA key pair and a bearer token. Configuration lives at `~/.config/mcp-walmart-ads/config.json` with a block per region and environment, and the RSA private key PEM under `~/.config/mcp-walmart-ads/keys/`. `response_cache_ttl` defaults to `3600` and `truncate_threshold` to `1024`. Run with `uvx mcp-walmart-ads`. For non-US markets pass `tenant` per call — `WMT_CA` for Canada, `WMT_MX`, `WBD_OD` or `WMT_BD` for Mexico — and omit it for US.
One command plus a key — uvx mcp-walmart-ads, then supply credentials
