Labsco
alyiox logo

Multi-Carrier Shipping API — powered by Secureship

from alyiox

Secureship MCP gives AI assistants access to a multi-carrier shipping API covering rate comparison, label generation, package tracking, pickup scheduling, address book management, shipment history, customs documents, and more — across carriers like UPS, FedEx, Purolator, Canpar, and others. Browse 150+ live endpoint schemas, parameters, and auth details — always current, never stale.

🔥🔥🔥FreeQuick setup

Walmart Connect Advertising APIs

CI PyPI Python 3.13+ License: MIT

<!-- mcp-name: io.github.alyiox/mcp-walmart-ads -->

MCP server for Walmart Connect Ads APIs — Sponsored Search and Display.

Exposes spec-driven discovery (list_endpoints, describe_endpoint), a generic API proxy (call_endpoint), a runtime spec refresher (refresh_specs), and a display-snapshot downloader (download_display_snapshot). The AI agent discovers endpoints from bundled OpenAPI specs then calls them; the server handles RSA-SHA256 signing and auth headers automatically.

Features

  • Spec-driven discovery — list/describe endpoints from bundled OpenAPI specs, refreshable at runtime
  • Any endpoint — call by operation id or raw method+path (raw path reaches unpublished endpoints); no code changes when APIs evolve
  • Supports both Sponsored Search and Display API families
  • Multi-region, multi-environment (production + staging) via config file
  • Per-request RSA-SHA256 signing with automatic header construction
  • Large responses truncated with full data available via MCP resource URI
  • Bundled OpenAPI specs (refreshable at runtime) give the agent endpoint schemas on demand

Tools

list_endpoints

List operations from the bundled OpenAPI spec for an ad_type, with optional filters.

ParameterRequiredDescription
ad_typeyessearch or display
querynoCase-insensitive substring match on operationId, path, or summary
tagnoFilter to operations whose OpenAPI tags include this value
methodnoFilter by HTTP verb

describe_endpoint

Return one operation plus the components.schemas reachable from it (its $ref closure), so request bodies and responses can be built without the full spec.

ParameterRequiredDescription
ad_typeyessearch or display
operation_idyesSpec operation id (from list_endpoints)

call_endpoint

Execute any Walmart Connect Ads API endpoint. Identify it by operation_id, or by raw method + path. Raw method+path also reaches alpha/beta/unpublished endpoints that are not in the bundled specs. The server handles RSA-SHA256 signing.

ParameterRequiredDescription
regionyese.g. US
envyesproduction or staging
ad_typeyessearch or display
operation_idno*Spec operation id; resolves method+path
methodno*GET, POST, PUT, PATCH, or DELETE
pathno*e.g. /api/v1/campaigns
paramsnoQuery string parameters (JSON object)
bodynoJSON request body for POST/PUT (object or array)

* Provide either operation_id, or both method and path.

refresh_specs

Re-fetch the bundled OpenAPI specs from ReadMe's public api-registry into a user cache (~/.cache/mcp-walmart-ads/specs/) that takes precedence over the bundled copy.

ParameterRequiredDescription
spec_idnoOne spec to refresh (e.g. search/sponsored-products); omit to refresh all

download_display_snapshot

Download a display snapshot file (report or entity). Display snapshot URLs require authenticated requests, so this tool handles the signing automatically. Use it with the snapshot ID from the details field after polling a display snapshot to done status.

ParameterRequiredDescription
regionyese.g. US
envyesproduction or staging
snapshot_idyesSnapshot ID from the details URL
advertiser_idyesAdvertiser ID used when creating the snapshot

MCP resources

Endpoint schemas come from the bundled OpenAPI specs via list_endpoints / describe_endpoint (see Tools), not from static resources.

Dynamic resources

Resource URIDescription
wmc://configAvailable regions, environments, and ad types from your config
wmc://responses/{request_id}Full body of a truncated API response (cached in memory, TTL from config)
wmc://curl/{request_id}Reproducible cURL command for a previous API request

MCP host examples

Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "walmart-ads": {
      "command": "uvx",
      "args": ["mcp-walmart-ads"]
    }
  }
}

Claude Code

Add to your Claude Code MCP config:

{
  "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"]
    }
  }
}

Development

uv sync --group dev    # install deps
uv run pytest          # run tests
uv run ruff check .    # lint
uv run ruff format .   # format
uv run pyright         # type check