---
name: catalog-qa-jobs
description: "Step-by-step job recipes for the Catalog QA Desk MCP server: Check a product CSV before import; Check products for Merchant Center rules; Audit product listing text. Use when the user asks things like \"I edited my Shopify product CSV by hand. Will it import cleanly? Here is the file.\" or \"What would Google Merchant Center reject in this product export?\""
license: MIT
---

# Catalog QA Desk jobs

Each section below walks through one job with the tools of the `catalog-qa` MCP server. The same recipes are MCP prompts (prompts/list) on `https://api.openkrill.app/gateway/mcp`.
Connect the server at `https://catalogqa.openkrill.app/mcp` in your MCP client settings (remote streamable HTTP, no key), then call its tools as normal tool calls. They are not command line programs: Bash, curl and scripts cannot reach them.

## Check a product CSV before import

Job: Check a product CSV before import, with the Catalog QA Desk MCP server.

Use the `csv_import_preflight` tool for this job.

Work on the user's request. If there is none yet, ask what they need. A request this job handles: "I edited my Shopify product CSV by hand. Will it import cleanly? Here is the file."

Steps:
1. Call `csv_import_preflight` as a normal MCP tool call, with the request's values in the fields of its inputSchema. It needs `csv`.
2. If a value the tool needs is missing and you cannot tell it from the request, ask the user one short question first.
3. This input is known to work; copy its format, not its values: `{"csv":"Handle,Title,Variant Price\nprobe-shirt,Probe Shirt,19.99\n"}`
4. For the request "I edited my Shopify product CSV by hand. Will it import cleanly? Here is the file.", a correct answer looks like this: Blocking findings and warnings, each with row, handle, rule and fix, plus totals; blocking items are reported first.
5. Follow the server's own rules:
   - Nothing is stored: a file or feed is used for one answer and dropped, so pass the full text on every call.
   - Use csv_import_preflight with the text of a Shopify product CSV before an import: report blocking items first, then warnings, naming row and fix; it checks barcodes too, so no second call is needed for them.
   - Counts in totals are before lists were cut; say so when truncated is true.
   - Do not call a GTIN valid beyond its check digit.
   - When a store refuses its feed, ask the user to export the CSV from Shopify admin (Products > Export).
   - A CSV over 2 MB is refused with csv_too_large: split it by rows, header row in each part.
6. If the call fails or the answer looks wrong, tell the user, then report it with `submit_feedback` (kind bug, tool `csv_import_preflight`).

## Check products for Merchant Center rules

Job: Check products for Merchant Center rules, with the Catalog QA Desk MCP server.

Use the `merchant_feed_check` tool for this job.

Work on the user's request. If there is none yet, ask what they need. A request this job handles: "What would Google Merchant Center reject in this product export?"

Steps:
1. Call `merchant_feed_check` as a normal MCP tool call, with the request's values in the fields of its inputSchema.
2. If a value the tool needs is missing and you cannot tell it from the request, ask the user one short question first.
3. This input is known to work; copy its format, not its values: `{"csv":"Title,URL handle,Price\nWool Beanie,wool-beanie,24.00"}`
4. For the request "What would Google Merchant Center reject in this product export?", a correct answer looks like this: A summary with counts of products, missing or invalid GTINs, long titles and missing descriptions, and a list of issues per product and rule.
5. Follow the server's own rules:
   - Nothing is stored: a file or feed is used for one answer and dropped, so pass the full text on every call.
   - Use merchant_feed_check and listing_text_audit with either csv (the file text) or domain (a store address), never both; domain reads the store's public product feed once and a large store may refuse it, in which case ask for the CSV.
   - Counts in totals are before lists were cut; say so when truncated is true.
   - Do not call a GTIN valid beyond its check digit.
   - When a store refuses its feed, ask the user to export the CSV from Shopify admin (Products > Export).
   - A CSV over 2 MB is refused with csv_too_large: split it by rows, header row in each part.
6. If the call fails or the answer looks wrong, tell the user, then report it with `submit_feedback` (kind bug, tool `merchant_feed_check`).

## Audit product listing text

Job: Audit product listing text, with the Catalog QA Desk MCP server.

Use the `listing_text_audit` tool for this job.

Work on the user's request. If there is none yet, ask what they need. A request this job handles: "Which of my products have no image alt text, and are any descriptions copied from another product? Here is my product CSV."

Steps:
1. Call `listing_text_audit` as a normal MCP tool call, with the request's values in the fields of its inputSchema.
2. If a value the tool needs is missing and you cannot tell it from the request, ask the user one short question first.
3. This input is known to work; copy its format, not its values: `{"csv":"Title,URL handle,Price\nWool Beanie,wool-beanie,24.00"}`
4. For the request "Which of my products have no image alt text, and are any descriptions copied from another product? Here is my product CSV.", a correct answer looks like this: Lists no_alt, duplicate_descriptions, thin_descriptions and title_issues with totals, and says when a list was cut.
5. Follow the server's own rules:
   - Nothing is stored: a file or feed is used for one answer and dropped, so pass the full text on every call.
   - Use merchant_feed_check and listing_text_audit with either csv (the file text) or domain (a store address), never both; domain reads the store's public product feed once and a large store may refuse it, in which case ask for the CSV.
   - Counts in totals are before lists were cut; say so when truncated is true.
   - Do not call a GTIN valid beyond its check digit.
   - When a store refuses its feed, ask the user to export the CSV from Shopify admin (Products > Export).
   - A CSV over 2 MB is refused with csv_too_large: split it by rows, header row in each part.
6. If the call fails or the answer looks wrong, tell the user, then report it with `submit_feedback` (kind bug, tool `listing_text_audit`).
