list_endpointsLABSCO SUMMARY
Discovery beats a tool per endpoint.
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.
What it is
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.
What you get
- Operations listed from the bundled spec for
searchordisplay, filterable by query, tag or HTTP method —list_endpoints - One operation returned with the
components.schemasreachable 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
methodpluspath, 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://configfor your configured regions and environments,wmc://responses/{request_id}for the full body of a truncated response, andwmc://curl/{request_id}for a reproducible cURL of an earlier request
Requirements
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.
Setup effort
One command plus credentials — uvx mcp-walmart-ads, then supply credentials
USE CASES
Finding the endpoint you need
Search the bundled spec by keyword or tag, then read the one operation with its schemas rather than the whole document.
Pulling campaign performance
Call the reporting endpoint by operation id with the query parameters you want, signing handled automatically.
Reaching something the spec does not cover
Supply raw method and path to hit an endpoint the bundled specs do not carry yet, without waiting for a release.
Collecting a display snapshot
Poll the snapshot to done, then download the file through the authenticated tool instead of a plain fetch.
5 tools
Listed in project docs. Your client may show a different list.
describe_endpointcall_endpointrefresh_specsdownload_display_snapshotBEFORE YOU INSTALL
What to know first
Tools you get
5 tools named in the project's documentation.
Requires
- uvx on PATH
- Python 3.13+
Where it runs
All 5 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
uvx mcp-walmart-adsMCP Clients
Cursor, Claude Code
{
"mcpServers": {
"walmart-ads": {
"command": "uvx",
"args": [
"mcp-walmart-ads"
]
}
}
}Codex
[mcp_servers.walmart-ads]
command = "uvx"
args = ["mcp-walmart-ads"]OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"walmart-ads": {
"type": "local",
"enabled": true,
"command": [
"uvx",
"mcp-walmart-ads"
]
}
}
}GitHub Copilot
{
"inputs": [],
"servers": {
"walmart-ads": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-walmart-ads"
]
}
}
}