NotRobophobic shop

Machine-history prints, merch and £4 print files at notrobo.shop, run by an AI. Cards for downloads.

Should I use this

Quality & Safety

A
Description quality
97%
Schema completeness
92%
Naming quality
66%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (12)

  • LOWTool 'view-basket' description lacks action verbin view-basket
  • LOWTool 'search-products' doesn't follow camelCase/snake_casein search-products
  • LOWTool 'get-product' doesn't follow camelCase/snake_casein get-product
  • LOWTool 'create-basket' doesn't follow camelCase/snake_casein create-basket
  • LOWTool 'add-to-basket' doesn't follow camelCase/snake_casein add-to-basket
  • LOWTool 'view-basket' doesn't follow camelCase/snake_casein view-basket
  • LOWTool 'update-basket-item' doesn't follow camelCase/snake_casein update-basket-item
  • LOWTool 'remove-from-basket' doesn't follow camelCase/snake_casein remove-from-basket
  • LOWTool 'apply-discount-to-basket' doesn't follow camelCase/snake_casein apply-discount-to-basket
  • LOWTool 'list-shipping-methods' doesn't follow camelCase/snake_casein list-shipping-methods

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,178Tokens (tool definitions)
~842 BTypical response size
Moderate attention impact (0.92% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "shop": {
      "url": "https://notrobo.shop/mcp/shop"
    }
  }
}

Remote endpoints

https://notrobo.shop/mcp/shopstreamable-http

What it can do

Tool inventory

Tools (11)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search-products(query)

Search the shop catalogue. Returns matching products with their slugs, price and stock availability. Use get-product for full details and variants.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Search terms. Omit or leave empty to list the latest products.",
      "type": "string"
    }
  }
}
🟡get-product(slug)

Get a product's full details by slug: description, options, and every variant with its SKU, price and stock. Variant IDs are what you add to a basket.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "description": "The product slug, e.g. \"enamel-mug\".",
      "type": "string"
    }
  },
  "required": [
    "slug"
  ]
}
🟡create-basket

Create a new basket. Returns a basket_token — keep it and pass it to every basket and checkout tool. Treat it as a secret.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟡add-to-basket(basket_token, variant_id, quantity)

Add a product variant to a basket. Get variant IDs from get-product. Returns the updated basket.

Input Schema

{
  "type": "object",
  "properties": {
    "basket_token": {
      "description": "The basket token from create-basket.",
      "type": "string"
    },
    "variant_id": {
      "description": "The product variant ID to add.",
      "type": "integer"
    },
    "quantity": {
      "description": "Quantity to add (default 1).",
      "type": "integer"
    }
  },
  "required": [
    "basket_token",
    "variant_id"
  ]
}
🟢view-basket(basket_token)

View a basket: its lines, quantities and subtotal.

Input Schema

{
  "type": "object",
  "properties": {
    "basket_token": {
      "description": "The basket token from create-basket.",
      "type": "string"
    }
  },
  "required": [
    "basket_token"
  ]
}
🟡update-basket-item(basket_token, item_id, quantity)

Change the quantity of a basket line. A quantity of 0 removes it. Returns the updated basket.

Input Schema

{
  "type": "object",
  "properties": {
    "basket_token": {
      "description": "The basket token from create-basket.",
      "type": "string"
    },
    "item_id": {
      "description": "The basket line ID (from view-basket).",
      "type": "integer"
    },
    "quantity": {
      "description": "New quantity; 0 removes the line.",
      "type": "integer"
    }
  },
  "required": [
    "basket_token",
    "item_id",
    "quantity"
  ]
}
🔴remove-from-basket(basket_token, item_id)

Remove a line from a basket. Returns the updated basket.

Input Schema

{
  "type": "object",
  "properties": {
    "basket_token": {
      "description": "The basket token from create-basket.",
      "type": "string"
    },
    "item_id": {
      "description": "The basket line ID (from view-basket).",
      "type": "integer"
    }
  },
  "required": [
    "basket_token",
    "item_id"
  ]
}
⚪apply-discount-to-basket(basket_token, code)

Apply a discount code to a basket. Returns the updated basket with the discount reflected in the totals.

Input Schema

{
  "type": "object",
  "properties": {
    "basket_token": {
      "description": "The basket token from create-basket.",
      "type": "string"
    },
    "code": {
      "description": "The discount code to apply.",
      "type": "string"
    }
  },
  "required": [
    "basket_token",
    "code"
  ]
}
🟢list-shipping-methods(country)

List available delivery methods, optionally filtered by destination country (ISO 2-letter code). Use the method ID in start-checkout.

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "description": "Optional ISO 3166-1 alpha-2 destination country, e.g. \"GB\".",
      "type": "string"
    }
  }
}
🟢start-checkout(basket_token, email, shipping_method_id, shipping_address)

Turn a basket into an order and get payment links. Two ways to pay: a human pay_url (pay-by-bank, the customer authorises in their banking app) and, when offered, an x402_payment_url for autonomous USDC settlement with no human needed. Never claim to have paid — confirm with get-order-status. For digital-only baskets, only name and country are required in shipping_address.

Input Schema

{
  "type": "object",
  "properties": {
    "basket_token": {
      "description": "The basket token from create-basket.",
      "type": "string"
    },
    "email": {
      "description": "Customer email for order confirmation.",
      "type": "string"
    },
    "shipping_method_id": {
      "description": "Delivery method ID from list-shipping-methods. Omit for baskets containing only digital products.",
      "type": "integer"
    },
    "shipping_address": {
      "description": "Customer address. For digital-only baskets only name and country are needed; physical orders also need line1, city and postcode.",
      "properties": {
        "name": {
          "type": "string"
        },
        "line1": {
          "description": "Street address. Required for physical delivery; omit for digital-only baskets.",
          "type": "string"
        },
        "line2": {
          "type": "string"
        },
        "city": {
          "description": "Required for physical delivery; omit for digital-only baskets.",
          "type": "string"
        },
        "county": {
          "type": "string"
        },
        "postcode": {
          "description": "Required for physical delivery; omit for digital-only baskets.",
          "type": "string"
        },
        "country": {
          "description": "ISO 2-letter country code, e.g. GB.",
          "type": "string"
        },
        "phone": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "name",
        "country"
      ]
    }
  },
  "required": [
    "basket_token",
    "email",
    "shipping_address"
  ]
}
🟢get-order-status(order_number, email)

Check an order's status. Requires the order number AND the email it was placed with.

Input Schema

{
  "type": "object",
  "properties": {
    "order_number": {
      "description": "The order number, e.g. ORD-260612-AB3D.",
      "type": "string"
    },
    "email": {
      "description": "The email address the order was placed with.",
      "type": "string"
    }
  },
  "required": [
    "order_number",
    "email"
  ]
}

Recommended Prompts

search_research
Search for information about [topic] using NotRobophobic shop
Expected tools: search-products
find_specific
Find [specific item] using NotRobophobic shop
Expected tools: search-products
retrieve_data
Get details about [item] from NotRobophobic shop
Expected tools: get-product
fetch_info
Fetch [information type] using NotRobophobic shop
Expected tools: get-product
list_items
List all [items] available in NotRobophobic shop
Expected tools: list-shipping-methods

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded11 tools
verifiedversion not recorded11 tools