mcp-walmart-marketplace
Walmart Marketplace APIs
Walmart Marketplace APIs용 MCP 서버 — 아이템, 주문, 재고, 가격, 프로모션, 피드, 보고서, 반품, 풀필먼트 등.
스펙 기반 탐색(list_endpoints, describe_endpoint), 범용 API 프록시(call_endpoint), 피드 업로드 및 파일 다운로드 헬퍼, 런타임 스펙 새로고침(refresh_specs)을 제공합니다. AI 에이전트는 번들된 OpenAPI 스펙에서 엔드포인트를 탐색한 후 호출하며, 서버가 OAuth2 토큰 획득, 갱신, Walmart 필수 헤더를 자동으로 처리합니다. 기본 주소는 환경별로 하드코딩되어 있으므로, 설정 파일에는 자격 증명만 담깁니다.
기능
스펙 기반 탐색 — 234개 작업을 포함하는 28개의 번들 OpenAPI 스펙, 런타임에 새로고침 가능
모든 엔드포인트 — 작업 ID 또는 원시 메서드+경로로 호출, API가 진화해도 코드 변경 불필요
자동 OAuth2 — 토큰은 자격 증명별로 가져와 캐시되고, 만료 전에 갱신되며, 401 발생 시 1회 재시도됩니다. 클라이언트 시크릿은 토큰 획득 과정을 벗어나지 않습니다
멀티 어드바이저 — 지역 및 환경별로 여러 판매자 자격 증명을 호출별로 선택
다중 지역, 다중 환경 — 프로덕션 및 샌드박스
필수 Walmart 헤더(
WM_SEC.ACCESS_TOKEN,WM_SVC.NAME,WM_QOS.CORRELATION_ID,WM_MARKET,WM_GLOBAL_VERSION,WM_SANDBOX,WM_PARTNER_ID)는 서버 측에서 주입되며 에이전트에게 숨겨짐대용량 응답은 잘리고, 전체 데이터는 MCP 리소스 URI로 제공
Related MCP server: MoySklad MCP Server
요구 사항
Python 3.13+
판매자별 Walmart Marketplace 클라이언트 ID 및 클라이언트 개발자 포털의 시크릿
빠른 시작
설정을 구성한 후( 설정 참조) 서버를 실행합니다:
# Run directly with uvx (no clone needed)
npx -y @modelcontextprotocol/inspector uvx mcp-walmart-marketplace# Or run from source
git clone https://github.com/alyiox/mcp-walmart-marketplace.git
cd mcp-walmart-marketplace
uv sync
npx -y @modelcontextprotocol/inspector uv run mcp-walmart-marketplace설정
설정 파일은 홈 디렉터리의 ~/.config/mcp-walmart-marketplace/config.json에 있습니다.
Windows 참고:
~는%USERPROFILE%에 매핑되므로 전체 경로는%USERPROFILE%\.config\GXP3입니다.
1. 설정 디렉터리를 만들고 예제를 복사합니다
mkdir -p ~/.config/mcp-walmart-marketplace
cp config.example.json ~/.config/mcp-walmart-marketplace/config.json2. ~/.config/mcp-walmart-marketplace/config.json을 편집합니다
{
"response_cache_ttl": 3600,
"truncate_threshold": 1024,
"regions": {
"primary": {
"production": {
"credentials": [
{
"client_id": "11111111-2222-3333-4444-555555555555",
"client_secret": "acme-client-secret-goes-here",
"advertisers": [
{ "id": 1000001, "partner_id": "10000000001" },
{ "id": 1000002 }
]
}
]
},
"sandbox": {
"credentials": [
{
"client_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"client_secret": "acme-sandbox-client-secret-goes-here",
"advertisers": [{ "id": 1000001 }]
}
]
}
}
}
}설정 필드 | 설명 |
| 잘린 응답을 메모리에 유지하는 시간(초) (기본 |
| 잘림 전 응답 바이트 제한 (기본 |
| 지역 레이블 — 대소문자 구분 없음, 자유 형식. 어드바이저를 그룹화하며 호출 대상 호스트는 변경하지 않음 |
| 환경 — 정확히 |
| Walmart 클라이언트 자격 증명 하나당 하나의 항목 |
| Walmart 클라이언트 ID (UUID) |
| Walmart 클라이언트 시크릿, 일반 텍스트 |
| 이 자격 증명이 서비스하는 판매자, 각각 |
설정 파일은 클라이언트 시크릿을 일반 텍스트로 보관하므로, 사용자만 읽을 수 있도록 유지하세요.
그 외 모든 것은 서버에 의해 고정됩니다: 기본 URL(프로덕션의 marketplace.walmartapis.com, 샌드박스의 sandbox.walmartapis.com), WM_SVC.NAME, client_credentials 권한 부여, 작업별 WM_MARKET / WM_SSON 헤더 값.
지역
지역은 경로가 아닌 네임스페이스입니다. 기본 주소는 환경별로 서버에 의해 고정되므로 모든 지역이 동일한 Walmart 호스트에 도달합니다. 어드바이저 ID가 한 지역 내에서만 고유하면 되도록 수준이 존재합니다 — 두 지역에서 동일한 ID는 서로 다른 자격 증명을 가진 다른 판매자를 의미할 수 있습니다.
파트너 ID
Walmart 파트너 ID가 있는 판매자에 partner_id를 추가합니다:
"advertisers": [
{ "id": 1000001, "partner_id": "10000000001" },
{ "id": 1000002 }
]두 payments 작업 — payments:getTaxForms 및 payments:파트너 ID — WM_PARTNER_ID 헤더로 필요합니다. 파트너 ID가 없는 판매자에 대해 호출하면 Walmart 400 대신 추가하라는 메시지와 함께 실패합니다. 다른 모든 작업은 이를 무시하므로 대부분의 항목은 {"id": …}입니다.
어드바이저
advertiser_네트워크 필수 모든 네트워크에 도달하는 모든 도구에 대한 기본값은 없습니다. wmm://config 리소스를 읽어 어떤 어드바이저 ID가 구성되어 있는지 확인하세요. 지역, 환경, 어드바이저 ID만 보고하며 클라이언트 ID나 시크릿은 절대 보고하지 않습니다.
도구
도구 | 목적 |
| 번들 스펙의 작업을 쿼리, 도메인, 태그 또는 메서드로 필터링하여 나열 |
| 서버 관리 헤더가 제거된 하나의 작업 및 스키마 클로저 |
| ID 또는 원시 메서드+경로로 모든 작업 실행 |
| 피드 유형에 대한 피드 파일(멀티파트) 업로드 |
| 보고서, 라벨 또는 기타 바이너리를 로컬 경로에 다운로드 |
| ReadMe api-registry에서 사용자 캐시로 스펙 다시 가져오기 |
리소스
URI | 내용 |
| 구성된 지역, 환경 및 어드바이저 ID |
| 잘린 응답의 전체 본문 |
| 이전 요청에 대한 동등한 cURL 명령 |
MCP 호스트 예제
Cursor
.cursor/mcp.json에 추가:
{
"mcpServers": {
"walmart-marketplace": {
"command": "uvx",
"args": ["mcp-walmart-marketplace"]
}
}
}Claude Code
Claude Code MCP 설정에 추가:
{
"mcpServers": {
"walmart-marketplace": {
"command": "uvx",
"args": ["mcp-walmart-marketplace"]
}
}
}Codex
[mcp_servers.walmart-marketplace]
command = "uvx"
args = ["mcp-walmart-marketplace"]OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"walmart-marketplace": {
"type": "local",
"enabled": true,
"command": ["uvx", "mcp-walmart-marketplace"]
}
}
}GitHub Copilot
{
"inputs": [],
"servers": {
"walmart-marketplace": {
"type": "stdio",
"command": "uvx",
"args": ["mcp-walmart-marketplace"]
}
}
}스펙
28개의 번들 스펙은 developer.walmart.com을 지원하는 ReadMe api-registry에서 가져온 것입니다. 먼저 사용자 캐시 디렉터리(~/.cache/mcp-walmart-marketplace/스펙/)에서 로드하고, 휠에 포함된 사본으로 대체되므로 refresh_specs는 재설치 없이 즉시 적용됩니다.
디스크의 파일은 레지스트리가 제공한 그대로 그대로 저장되므로 번들이 진실의 원천이며, 새로고침 차이는 Walmart가 변경한 내용을 정확히 보여줍니다. 로드 시 축소가 발생하므로 런타임 정책으로 유지됩니다:
과도하게 큰 예제는 삭제됩니다. 3,514개의 인라인
example페이로드가 총 4.13 MB이지만 중앙값은 16바이트이고 두 개의/v3/날짜페이로드가 3.25 MB를 차지합니다.MAX_EXAMPLE_BYTES(1 KB) 이하의 모든 항목은 97%가 살아남아 ~133 KB로 날짜, SKU, 식별자에 대한 형식 힌트가 에이전트에 도달하지 못하는 괴물이 없도록 합니다.x-readme는 제거됩니다 — 문서 플랫폼 렌더링 메타데이터, API 세부 정보가 아닙니다.
모든 28개 스펙 로드 비용은 프로세스당 ~80 ms이며, 스펙별로 결과가 캐시되고 파일 mtime으로 무효화되므로 refresh_s기존이 즉시 적용됩니다. describe_endpoint 출력은 중앙값 5.1 KB, 최악 88 KB(6개의 order-management 작업이 매우 큰 응답 스키마를 인라인)입니다.
번들 사본을 다시 빌드하려면:
uv run python scripts/fetch_specs.py # all
uv run python scripts/fetch_specs.py order-management주의 사항
스펙과 API는 인증에 대해 의견이 다릅니다. 76개 작업이 클라이언트 ID와 시크릿으로 구성된 Basic Authorization 헤더를 선언하고, fulfillment-management 및 Basic이 액세스 토큰 대신 요구하는 것으로 보입니다. 프로덕션에서 조사한 결과, 이는 잘못된 것입니다: Basic만으로는 401을 반환하고, 액세스 토큰만으로는 모든 테스트 서비스에서 200을 반환합니다. 따라서 이 서버는 모든 요청에 WM_SEC.참조를 보내고 /v3/token 외에는 클라이언트 시크릿을 보내지 않습니다. 참조 문서와 동작을 비교하면 그 차이는 의도적입니다.
WM_SVC.NAME은 스펙에서 읽을 수 없습니다. 103개 작업이 리터럴 자리 표시자 문자열 "Walmart Service Name"을 선언하고 100개만 실제 값을 선언하므로 Walmart Marketplace로 고정되어 라이브 호출로 확인됩니다.
모든 문서화된 엔드포인트가 판매자 자격 증명으로 도달할 수 있는 것은 아닙니다. GET /v3/utilities/apiStatus는 wm_svc.name: PARTNERMANAGEMENTSERVICES 및 wm_svc.env: prod를 예상 헤더로 명명하며 HTTP 520 Unable to route request를 반환하지만, 정확히 그 헤더를 보내도 여전히 520을 반환합니다. 3P 자격 증명이 도달할 수 없는 서비스에 속하는 것으로 보이며 오류 메시지는 오해의 소지가 있습니다. 234개 작업 중 소수의 유사한 사례가 있을 것으로 예상됩니다.
보고서 엔드포인트는 콘텐츠 협상을 엄격하게 처리합니다. Accept: */*를 406으로 거부하고 생성할 수 있는 항목을 나열하므로 Accept는 작업이 성공 응답에 대해 선언한 미디어 유형에서 파생됩니다(제공될 때 application/json 선호). 응답 콘텐츠를 선언하지 않는 엔드포인트를 추가하면 */*로 대체되어 406이 발생할 수 있습니다.
라이브 커버리지는 얇습니다. 5개 도메인의 7개 작업이 프로덕션에서 200을 반환했습니다 — feed-management, advertising, fulfillment-management, insights-management, settings-management — 실제 Excel 통합 문서로 도착하는 두 개의 보고서 다운로드를 포함합니다. 나머지 ~227개는 스펙에서 연결되었으며 호출된 적이 없습니다. 탐색 및 요청 구성은 테스트로 다루어지지만 업스트림 동작은 그렇지 않습니다.
두 가지 알려진 업스트림 실패가 있으며, 둘 다 클라이언트 버그가 아닙니다: fulfillment-management:getInventoryHealthReport는 520 WFS_INTERNAL_SERVER_ERROR로 응답하고, feed-management:getFeedErrorReport는 깨끗하게 처리된 피드에 대해 404로 응답합니다.
샌드박스는 검증되지 않았습니다. Walmart는 프로덕션과 별도로 샌드박스 자격 증명을 발급하며, 여기서 sandbox.walmartapis.com에 대해 실행된 것은 없습니다. WM_SANDBOX: v2 처리 — 라우팅만 하는 것이 아니라 동적 샌드박스를 선택하고 응답 의미를 변경하는 — 는 스펙에서 구현되었으며 관찰되지 않았습니다.
upload_feed는 종단 간 테스트되지 않았습니다. 스크립트된 전송에 대한 단위 테스트로만 실행됩니다 — 라이브로 검증하는 유일한 방법은 실제 피드를 제출하는 것이며, 이는 라이브 카탈로그를 변경합니다. download_file은 프로덕션에서 검증되었습니다.
크로스 호스트 리디렉션 경로는 실행되지 않았습니다. download_file은 리디렉션이 Walmart 호스트를 벗어날 때 자격 증명을 제거하며, 보고서가 서명된 스토리지에서 제공되는 경우 중요합니다. 지금까지 관찰된 모든 다운로드는 한 홉으로 직접 바이트를 반환했으므로 해당 분기는 단위 테스트 커버리지만 있습니다.
라이선스
MIT
Available Tools
6 toolscall_endpointADestructive
[WalmartMarketplace] Execute an authenticated API request. Give operation_id, or method and path together. Auth, WM_MARKET, WM_GLOBAL_VERSION, WM_SANDBOX and correlation headers are added by the server.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | [WalmartMarketplace] JSON request body for POST/PUT/PATCH. | |
| path | No | [WalmartMarketplace] API path after the base URL, e.g. /v3/orders. Required unless operation_id is given. | |
| method | No | [WalmartMarketplace] HTTP method. Required unless operation_id is given. | |
| params | No | [WalmartMarketplace] Query string parameters as a JSON object. | |
| region | Yes | [WalmartMarketplace] Region label, e.g. us. Src: config. | |
| environment | Yes | [WalmartMarketplace] Target environment — production or sandbox. Src: config. | |
| path_params | No | [WalmartMarketplace] Values for {placeholders} in the path, e.g. {"purchaseOrderId": "1796277083022"}. | |
| operation_id | No | [WalmartMarketplace] Operation id as domain:operationId. Resolves method, path, and required headers from the spec. Src: operations. | |
| advertiser_id | Yes | [WalmartMarketplace] Advertiser (seller profile) id to act as. Required — selects the credential. Src: config. |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | No | |
| curl | No | |
| error | No | |
| cached_at | No | |
| truncated | No | |
| status_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this can modify or delete data. The description adds that authentication headers are injected by the server, which is useful but does not elaborate on side effects or risk. Since the annotation already covers the main behavioral traits, the description adds modest context but could explicitly warn about potential for mutations or irreversible actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, tightly packed with the essential information: the tool is an authenticated API caller, accepts either operation_id or method+path, and that auth headers are server-managed. Every sentence earns its place, and the primary guidance is front-loaded. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has nine parameters and an output schema, which covers return values. The description does not address error handling, pagination, or response format, but the output schema likely handles that. However, it lacks guidance on preferred usage (e.g., using operation_id when available vs raw path) and does not mention that it can call any endpoint in the spec, which could be helpful for agent decision-making. Given the schema's richness, this is adequate but not exceptional.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all nine parameters are already documented in the input schema. The description repeats the relationship between operation_id and method/path, which is also captured in the schema. It provides no additional parametric detail or syntax beyond what the schema offers, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Execute an authenticated API request' and specifies the two invocation modes (operation_id or method+path). This distinguishes it from sibling tools like list_endpoints and upload_feed, which are more specialized. The verb 'Execute' and resource 'authenticated API request' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to invoke the tool (operation_id or method+path) but provides no guidance on when to use this tool versus alternatives such as upload_feed or describe_endpoint. It does not mention any exclusions or scenarios where a sibling would be more appropriate, leaving the agent to infer that this is the low-level fallback without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_endpointARead-only
[WalmartMarketplace] Describe one OpenAPI operation with its schema closure. Returns the operation plus every components.schemas entry reachable from it, so request bodies and responses can be built without the full spec. Server-managed auth and QoS headers are omitted — do not supply them.
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | Yes | [WalmartMarketplace] Operation id, qualified as domain:operationId (e.g. order-management:getAllOrders). Src: operations. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: it states that server-managed auth and QoS headers are omitted and instructs not to supply them, and it explains the output (operation plus reachable schemas). Since annotations already mark readOnlyHint=true, this extra detail is valuable and doesn't contradict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core function, followed by concrete output description and a clear instruction. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema and the read-only annotation, the description covers what the tool returns, the intended use case, and an important behavioral note about headers. Nothing critical is missing for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides a full description of the operation_id parameter with format and example, so the tool description adds no additional parameter semantics. With 100% schema description coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to describe an OpenAPI operation and its schema closure. It specifies the verb 'describe', the resource (an OpenAPI operation), and the additional detail of returning reachable schemas. This distinguishes it from siblings like list_endpoints (listing) and call_endpoint (calling).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a usage scenario: when you need to understand the schema of an endpoint to build request bodies and responses without the full spec. However, it does not explicitly compare with alternatives or state when not to use it, so it's clear context but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_fileARead-only
[WalmartMarketplace] Download a report, label, or other binary payload to a local path. Give a full url, or operation_id (or method and path). Follows redirects and drops credentials when a redirect leaves Walmart's host.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | [WalmartMarketplace] Absolute URL to fetch, e.g. a report URL returned by a previous call. | |
| path | No | [WalmartMarketplace] API path when not using url. | |
| method | No | [WalmartMarketplace] HTTP method when using path. | |
| params | No | [WalmartMarketplace] Query string parameters. | |
| region | Yes | [WalmartMarketplace] Region label, e.g. us. Src: config. | |
| dest_path | Yes | [WalmartMarketplace] Local path to write the downloaded bytes to. | |
| environment | Yes | [WalmartMarketplace] Target environment — production or sandbox. Src: config. | |
| path_params | No | [WalmartMarketplace] Values for {placeholders} in path. | |
| operation_id | No | [WalmartMarketplace] Operation id as domain:operationId. Src: operations. | |
| advertiser_id | Yes | [WalmartMarketplace] Advertiser (seller profile) id to act as. Src: config. |
Output Schema
| Name | Required | Description |
|---|---|---|
| path | No | |
| urls | No | |
| error | No | |
| status_code | No | |
| content_type | No | |
| bytes_written | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the read-only nature is covered. The description adds valuable behavioral context: it follows redirects and drops credentials when redirecting away from Walmart's host. This goes beyond the annotations and informs the agent of security-relevant behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero waste. The primary purpose is stated first, followed by essential behavioral detail about redirects. Every sentence earns its place and the structure is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a download tool with 10 parameters and read-only annotations, the description covers the key usage scenarios and security behavior. It does not mention output schema or file handling details, but the presence of an output schema and the tool's straightforward nature make this acceptable. Overall, it is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters have individual descriptions. The tool description adds value by clarifying the relationship between url, operation_id, and method/path (i.e., you can use one of these alternatives), which is not evident from the schema alone. However, it does not add syntax or format details beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (download), the resource type (report, label, or other binary payload), and the destination (local path). It also lists multiple ways to specify the target (full url, operation_id, or method+path), making the tool's purpose distinct from siblings like call_endpoint which are for API calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to invoke the tool (via url, operation_id, or method+path) but does not explicitly contrast it with sibling tools or state conditions for when to choose this over call_endpoint or upload_feed. The context of binary payload download is implied but not made explicit against alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_endpointsBRead-only
[WalmartMarketplace] List OpenAPI operations with optional filters.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | [WalmartMarketplace] Filter to operations whose OpenAPI tags include this value. | |
| query | No | [WalmartMarketplace] Case-insensitive substring match on operation id, path, or summary. | |
| domain | No | [WalmartMarketplace] Limit to one API domain, e.g. order-management. Src: specs. | |
| method | No | [WalmartMarketplace] Filter by HTTP verb — GET, POST, PUT, PATCH, DELETE. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the tool is known to be read-only with a bounded scope. The description adds the concept of 'optional filters' but does not disclose any additional behavioral traits such as sorting, pagination, or the format of the returned list. Given the annotation coverage, a score of 3 is appropriate – the description provides minimal added behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the domain context ('[WalmartMarketplace]') and immediately states the core action and resource. There is zero redundancy or wasted words, making it highly scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (read-only, all parameters optional and documented, output schema present), the description is quite complete. It could arguably mention that it returns a list of operations or that it is a discovery tool, but the output schema covers the return structure, and the tool's purpose is clear. The only minor gap is lack of explicit guidance on when to use it, but that is more about usage guidelines than contextual completeness of the operation itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with detailed descriptions for all four parameters (tag, query, domain, method). The description's mention of 'optional filters' adds no new meaning beyond what the schema already specifies. Baseline 3 is correct because the schema does the heavy lifting; the description does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('OpenAPI operations'), and mentions optional filters, which clearly conveys the tool's purpose. It is distinguishable from siblings like 'describe_endpoint' and 'call_endpoint' by the action and resource, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the sibling tools (e.g., 'describe_endpoint', 'call_endpoint'). It does not mention that it is a discovery tool for finding operations before calling them, nor does it state any exclusions or alternatives. The agent must infer usage from the name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_specsAIdempotent
[WalmartMarketplace] Refresh bundled OpenAPI specs from the public registry into the user cache, which then takes precedence over the bundled copies.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_id | No | [WalmartMarketplace] Refresh only this spec, e.g. order-management. Omit to refresh all. Src: specs. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only, idempotent, non-destructive write. The description adds that the refresh comes from the public registry and that the cache takes precedence over bundled copies, which directly informs the agent of the effect on subsequent tool calls. This goes beyond the annotation baseline and clarifies the behavioral impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence conveys the entire purpose and key constraint. Every word contributes meaning; there is no redundancy or filler. The description efficiently sets expectations without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For such a simple tool with one optional parameter and a full schema description, the description covers everything needed: what it refreshes, where it refreshes from, and the precedence effect. The output schema exists, and no other behavioral aspects are missing, making the definition complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter spec_id is fully described in the schema (including an example and the 'omit to refresh all' behavior), so the schema provides complete coverage. The tool description does not add any additional parameter detail, which is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (refresh bundled OpenAPI specs) with a clear source (public registry) and destination (user cache). It also notes the behavioral consequence that the cache takes precedence over bundled copies, which clearly distinguishes it from the sibling tools that list, describe, or call endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—when you want to update cached spec definitions—but it does not explicitly state alternatives or when not to use it. No exclusions or routing guidance are provided, so an agent must infer appropriate usage from the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_feedA
[WalmartMarketplace] Upload a feed file for a feed type. Posts the local file as multipart/form-data to /v3/feeds and returns the feed id.
| Name | Required | Description | Default |
|---|---|---|---|
| region | Yes | [WalmartMarketplace] Region label, e.g. us. Src: config. | |
| feed_type | Yes | [WalmartMarketplace] Walmart feedType, e.g. MP_ITEM, MP_INVENTORY, RETIRE_ITEM. Valid values are enumerated on each domain's POST /v3/feeds operation. Src: operations. | |
| file_path | Yes | [WalmartMarketplace] Local path of the feed file to upload. | |
| environment | Yes | [WalmartMarketplace] Target environment — production or sandbox. Src: config. | |
| advertiser_id | Yes | [WalmartMarketplace] Advertiser (seller profile) id to act as. Src: config. |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | No | |
| curl | No | |
| error | No | |
| cached_at | No | |
| truncated | No | |
| status_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set readOnlyHint=false and destructiveHint=false, so the description's mention of 'Upload' is consistent and adds no contradiction. The description does add behavioral context beyond annotations by specifying the HTTP method (multipart/form-data) and the endpoint ('/v3/feeds'), as well as the return value (feed id). It does not disclose potential side effects like asynchronous processing or rate limits, but these may be covered by the openWorldHint annotation. Overall, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the purpose and includes the essential technical details (multipart/form-data, endpoint, return value). There is no redundant or vague phrasing; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 5 required parameters, all fully described in the schema, and an output schema present, the description is nearly complete. It covers the action, method, endpoint, and return value. It does not explicitly mention prerequisites like file accessibility or that the operation may be asynchronous, but these are either implied ('local path') or not critical for invocation. The description fills the essential gaps left by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter has a documented description in the schema. The tool description does not add any extra meaning beyond restating 'feed file' and 'feed type'; it does not elaborate on parameter formats, constraints, or relationships. Since the schema already handles parameter documentation, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Upload a feed file'), the resource ('for a feed type'), and the specific mechanism ('Posts the local file as multipart/form-data to /v3/feeds'). It also tells the caller the key result ('returns the feed id'). This is distinct from siblings which handle endpoint listing, generic calling, or downloads, so there's no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (uploading a feed file) but does not explicitly state when to prefer this over other tools or provide exclusions. There is no mention of alternatives or conditions like 'use call_endpoint for non-feed operations'. However, the tool's specificity (multipart feed upload) makes the intent clear enough for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.1.0- First observed
call_endpoint - First observed
describe_endpoint - First observed
download_file - First observed
list_endpoints - First observed
refresh_specs - First observed
upload_feed
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: listing/describing endpoints for discovery, calling endpoints for execution, uploading feeds, refreshing specs, and downloading binaries. No overlapping responsibilities that could cause misselection.
All tool names follow a consistent verb_noun pattern in snake_case (list_endpoints, describe_endpoint, call_endpoint, upload_feed, refresh_specs, download_file). The convention is uniform and predictable.
With 6 tools, the server is well-scoped for its purpose of interfacing with a large external API. Each tool earns its place, covering discovery, generic execution, and targeted conveniences without redundancy or bloat.
The call_endpoint tool provides generic access to all Walmart Marketplace operations, ensuring no dead ends. The other tools handle spec discovery, feed uploads, and binary downloads, covering the full lifecycle without significant gaps.
Maintenance
Related MCP Connectors
Unified MCP server for 70+ eCommerce platforms: products, orders, customers, and more.
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
MCP server for Product Management
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides access to WooCommerce REST API functionality, enabling product, order, customer, and coupon management.1,420 npm1MIT
- AlicenseCqualityBmaintenanceMCP server for MoySklad (МойСклад) warehouse and CRM management API. 21 tools covering the full order lifecycle: products, stock, counterparties, customer orders, shipments, supplies, warehouses, organizations, reports, and webhooks.6054 npm9MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that lets you manage a Walmart Marketplace seller account in plain language, including orders, inventory, pricing, returns, WFS fulfillment, and reports.1MIT
- AlicenseAqualityBmaintenanceMCP server for Walmart Connect Ads APIs, enabling AI agents to execute any Sponsored Search or Display API endpoint with automatic RSA-SHA256 signing and download display snapshots.51MIT