Gooten MCP by usefulapi
io.usefulapi/gootenusefulapi.iostreamable-httpv1.0.0Scanned
Browse the Gooten catalog, stock, shipping and price quotes; search orders and cancel items.
17 tools: 2 can delete or cancel things, 1 change things and 14 only read.
- Reads private data · 1
- Reads text others write · 17
- Can send data out · 0
- No findings
Anlyon alternative
3 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
17 tools
Deletes or cancels 2Claude Code: deny
gooten_cancel_order_itemsWRITE: cancel specific items of an order (cannot be undone).Reads text others writeNo findings
Why it is in this group
- The name "gooten_cancel_order_items" says "cancel": a word for removing or ending something.
- The description says "cannot be undone".
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WRITE: cancel specific items of an order (cannot be undone). Only items of orders in a pre-production status can be cancelled. Pass the numeric Gooten order id and the order item ids (OrderItemId from gooten_get_order). PUT /orderCancel.
Annotations the server declares
- title: Cancel order items
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
gooten_set_order_statusWRITE: change an order's status.Reads text others writeNo findings
Why it is in this group
- The name "gooten_set_order_status" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WRITE: change an order's status. Allowed targets: Cancelled (cancels the whole order), Hold (pause before production) and New (re-submit an order that was fixed, e.g. after an image or address issue; it then goes on to production and billing). Only orders in AccountingIssue, AddressIssue, HoldByCIImageIssue, ImageIssue, NeedsManualApproval, New, ReadyForAccounting, ReadyForImageDl or Pending can change; a held order cannot be released through the API (Gooten support must release it); otherwise Gooten refuses. POST /orderstatus.
Annotations the server declares
- title: Set order status
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
Changes things 1Claude Code: ask
gooten_check_stockWhich of the given SKUs are out of stock for a destination (country, state, postal code).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Which of the given SKUs are out of stock for a destination (country, state, postal code). Returns only the out-of-stock SKUs; an empty list means all are available. Unknown SKUs are an error. POST /variantstatus (a read: nothing is changed).
Annotations the server declares
- title: Check stock for SKUs
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
Only reads 14Show 14 read-only tools
gooten_get_orderOne order by its Safe Order ID: items with status, tracking numbers and carriers, images, options, totals, shipping and billing addresses, discount and metadata.Reads text others writeNo findings
Why it is in this group
- The name "gooten_get_order" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One order by its Safe Order ID: items with status, tracking numbers and carriers, images, options, totals, shipping and billing addresses, discount and metadata. GET /orders.
Annotations the server declares
- title: Get order
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gooten_get_order_billingBilling breakdown of an order: product cost per item, shipping, surcharge, tax, fees, discount and total.Reads text others writeNo findings
Why it is in this group
- The name "gooten_get_order_billing" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Billing breakdown of an order: product cost per item, shipping, surcharge, tax, fees, discount and total. Takes the numeric Gooten order id (GootenId from gooten_get_order), not the Safe Order ID. Needs the Partner Billing Key. GET /orderbilling.
Annotations the server declares
- title: Get order billing
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gooten_get_price_estimateEstimate the cost of an order before placing it: per-item partner price, customer price and tax, plus shipping total, for SKUs shipped to an address.Reads text others writeNo findings
Why it is in this group
- The name "gooten_get_price_estimate" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Estimate the cost of an order before placing it: per-item partner price, customer price and tax, plus shipping total, for SKUs shipped to an address. POST /price (a quote: nothing is ordered or charged).
Annotations the server declares
- title: Get price estimate for an order
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gooten_get_product_templatesPrint templates for a SKU: how many images are needed, required pixel sizes/DPI, print spaces and layer coordinates, and preview assets.Reads text others writeNo findings
Why it is in this group
- The name "gooten_get_product_templates" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Print templates for a SKU: how many images are needed, required pixel sizes/DPI, print spaces and layer coordinates, and preview assets. GET /producttemplates.
Annotations the server declares
- title: Get product templates
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gooten_get_shipping_estimateShipping price range and delivery time for a product to a country: whether expedited is possible and estimated shipping days, plus min/max price and producing country when Gooten r…Reads text others writeNo findings
Why it is in this group
- The name "gooten_get_shipping_estimate" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Shipping price range and delivery time for a product to a country: whether expedited is possible and estimated shipping days, plus min/max price and producing country when Gooten returns them. GET /shippriceestimate.
Annotations the server declares
- title: Get shipping estimate for a product
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gooten_get_shipping_optionsAvailable shipping methods (Standard, Expedited, Overnight) with price and delivery days for a cart of SKUs to a destination.Reads text others writeNo findings
Why it is in this group
- The name "gooten_get_shipping_options" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Available shipping methods (Standard, Expedited, Overnight) with price and delivery days for a cart of SKUs to a destination. POST /shippingprices (a quote: nothing is ordered).
Annotations the server declares
- title: Get shipping options for a cart
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gooten_list_currenciesCurrencies Gooten can quote prices in (name, code, display format).Reads text others writeNo findings
Why it is in this group
- The name "gooten_list_currencies" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Currencies Gooten can quote prices in (name, code, display format). GET /currencies.
Annotations the server declares
- title: List supported currencies
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gooten_list_print_ready_productsYour print-ready products (PRPs: SKUs with artwork already attached) with their variant counts.Reads text others writeNo findings
Why it is in this group
- The name "gooten_list_print_ready_products" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Your print-ready products (PRPs: SKUs with artwork already attached) with their variant counts. Paging starts at 1. GET /prpproducts.
Annotations the server declares
- title: List print-ready products
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gooten_list_print_ready_variantsOrderable SKUs of your print-ready products, optionally for one PRP product name (from gooten_list_print_ready_products).Reads text others writeNo findings
Why it is in this group
- The name "gooten_list_print_ready_variants" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Orderable SKUs of your print-ready products, optionally for one PRP product name (from gooten_list_print_ready_products). GET /prpvariants.
Annotations the server declares
- title: List print-ready variants
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gooten_list_product_variantsThe orderable variants (SKUs) of a catalog product for a destination country, with option values (size, color, ...) and Gooten's price for your account.Reads text others writeNo findings
Why it is in this group
- The name "gooten_list_product_variants" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it The orderable variants (SKUs) of a catalog product for a destination country, with option values (size, color, ...) and Gooten's price for your account. SKUs differ by region (inch vs cm sizes). GET /productvariants.
Annotations the server declares
- title: List product variants
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gooten_list_productsBrowse the Gooten print-on-demand product catalog (public data): product id, name, categories, cheapest price and shipping, stock and deprecation flags.Reads text others writeNo findings
Why it is in this group
- The name "gooten_list_products" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "browse": it reads web pages, which anyone can write.
Description, as the server wrote it Browse the Gooten print-on-demand product catalog (public data): product id, name, categories, cheapest price and shipping, stock and deprecation flags. Filter by name text or category; use product_id with gooten_list_product_variants. Prices are in USD for the cheapest variant.
Annotations the server declares
- title: List catalog products
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gooten_list_shipping_countriesCountries Gooten ships to (code, name, whether supported, measurement system, default currency).Reads text others writeNo findings
Why it is in this group
- The name "gooten_list_shipping_countries" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Countries Gooten ships to (code, name, whether supported, measurement system, default currency). By default only supported countries. GET /countries.
Annotations the server declares
- title: List shipping countries
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gooten_search_ordersSearch your Gooten orders by free text (name, address, phone...), last name, email, postal code, creation date range or your own user id.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "gooten_search_orders" says "search": a word for reading.
What it can reach
- private-dataThe description's first sentence says "search" and "email": it reads mail.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "search" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it Search your Gooten orders by free text (name, address, phone...), last name, email, postal code, creation date range or your own user id. Returns order id, items with status and tracking, totals and addresses. Needs the Partner Billing Key. GET /ordersearch.
Annotations the server declares
- title: Search orders
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
gooten_validate_addressCheck a shipping address: validity, a score and Gooten's suggested corrected address.Reads text others writeNo findings
Why it is in this group
- The name "gooten_validate_address" says "validate": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Check a shipping address: validity, a score and Gooten's suggested corrected address. GET /addressvalidation.
Annotations the server declares
- title: Validate a shipping address
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.
- Reads private data1
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write17
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- gooten_cancel_order_items
- gooten_check_stock
- gooten_get_order
- gooten_get_order_billing
- gooten_get_price_estimate
- gooten_get_product_templates
- gooten_get_shipping_estimate
- gooten_get_shipping_options
- gooten_list_currencies
- gooten_list_print_ready_products
- gooten_list_print_ready_variants
- gooten_list_product_variants
- and 5 more
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
No check matched anything in these tool definitions. That is not a safety guarantee.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http gooten https://gooten.usefulapi.io/mcpclaude mcp add --transport http gooten https://gooten.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__gooten__gooten_list_products",
"mcp__gooten__gooten_list_product_variants",
"mcp__gooten__gooten_get_product_templates",
"mcp__gooten__gooten_get_shipping_estimate",
"mcp__gooten__gooten_get_shipping_options",
"mcp__gooten__gooten_get_price_estimate",
"mcp__gooten__gooten_validate_address",
"mcp__gooten__gooten_list_currencies",
"mcp__gooten__gooten_list_shipping_countries",
"mcp__gooten__gooten_list_print_ready_products",
"mcp__gooten__gooten_list_print_ready_variants",
"mcp__gooten__gooten_search_orders",
"mcp__gooten__gooten_get_order",
"mcp__gooten__gooten_get_order_billing"
],
"ask": [
"mcp__gooten__gooten_check_stock"
],
"deny": [
"mcp__gooten__gooten_set_order_status",
"mcp__gooten__gooten_cancel_order_items"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as gooten. Review it before you use it.
Capability tags behind 17 rules
- mcp__gooten__gooten_list_products untrusted-input
- mcp__gooten__gooten_list_product_variants untrusted-input
- mcp__gooten__gooten_get_product_templates untrusted-input
- mcp__gooten__gooten_check_stock untrusted-input
- mcp__gooten__gooten_get_shipping_estimate untrusted-input
- mcp__gooten__gooten_get_shipping_options untrusted-input
- mcp__gooten__gooten_get_price_estimate untrusted-input
- mcp__gooten__gooten_validate_address untrusted-input
- mcp__gooten__gooten_list_currencies untrusted-input
- mcp__gooten__gooten_list_shipping_countries untrusted-input
- mcp__gooten__gooten_list_print_ready_products untrusted-input
- mcp__gooten__gooten_list_print_ready_variants untrusted-input
- mcp__gooten__gooten_search_orders private-data, untrusted-input
- mcp__gooten__gooten_get_order untrusted-input
- mcp__gooten__gooten_get_order_billing untrusted-input
- mcp__gooten__gooten_set_order_status untrusted-input
- mcp__gooten__gooten_cancel_order_items untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/io.usefulapi/gooten/verify?hash=105dcfb4d4afdb83fb5185b9ba407d3d3f0cacb53a6d81d0c39e058eec747625" | jq -e '.changed == false'Pinned hash 105dcfb4d4af, from Oct 23, 2026, 08:21 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/io.usefulapi/gooten/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/io.usefulapi/gooten)Source: MCP Registry · repository. Synced Oct 23, 2026, 08:18 UTC.