Skip to main content
Glama
pashaydev

Terminal.shop MCP Server

by pashaydev

add-to-cart

Add products to your shopping cart by specifying product variant ID and quantity for purchase through Terminal.shop's API.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
productVariantIDYes
quantityYes

Implementation Reference

  • Handler function that adds the specified product variant and quantity to the shopping cart via the Terminal.shop API, then returns updated cart summary.
    async ({ productVariantID, quantity }) => {
      try {
        const response = await terminalApi.put("/cart/item", {
          productVariantID,
          quantity,
        });
    
        const cart = response.data.data;
    
        let formattedText = "# Item Added to Cart\n\n";
        formattedText += `Successfully added item to your cart.\n\n`;
    
        formattedText += "## Updated Cart\n";
        formattedText += `Items: ${cart.items.length}\n`;
        formattedText += `Subtotal: $${cart.subtotal / 100}\n`;
    
        if (cart.amount && cart.amount.shipping) {
          formattedText += `Shipping: $${cart.amount.shipping / 100}\n`;
          if (cart.amount.total) {
            formattedText += `Total: $${cart.amount.total / 100}\n`;
          } else {
            formattedText += `Total: $${(cart.amount.subtotal + cart.amount.shipping) / 100}\n`;
          }
        }
    
        return {
          content: [
            {
              type: "text",
              text: formattedText,
            },
          ],
        };
      } catch (error) {
        console.error("Error adding item to cart:", error);
        return {
          content: [
            {
              type: "text",
              text: `Error adding item to cart: ${error.message}`,
            },
          ],
          isError: true,
        };
      }
    },
  • Zod input schema defining required parameters: productVariantID (string) and quantity (positive integer).
    {
      productVariantID: z.string(),
      quantity: z.number().int().positive(),
    },
  • server.js:564-616 (registration)
    MCP server.tool registration that defines the 'add-to-cart' tool including its schema and handler.
    server.tool(
      "add-to-cart",
      {
        productVariantID: z.string(),
        quantity: z.number().int().positive(),
      },
      async ({ productVariantID, quantity }) => {
        try {
          const response = await terminalApi.put("/cart/item", {
            productVariantID,
            quantity,
          });
    
          const cart = response.data.data;
    
          let formattedText = "# Item Added to Cart\n\n";
          formattedText += `Successfully added item to your cart.\n\n`;
    
          formattedText += "## Updated Cart\n";
          formattedText += `Items: ${cart.items.length}\n`;
          formattedText += `Subtotal: $${cart.subtotal / 100}\n`;
    
          if (cart.amount && cart.amount.shipping) {
            formattedText += `Shipping: $${cart.amount.shipping / 100}\n`;
            if (cart.amount.total) {
              formattedText += `Total: $${cart.amount.total / 100}\n`;
            } else {
              formattedText += `Total: $${(cart.amount.subtotal + cart.amount.shipping) / 100}\n`;
            }
          }
    
          return {
            content: [
              {
                type: "text",
                text: formattedText,
              },
            ],
          };
        } catch (error) {
          console.error("Error adding item to cart:", error);
          return {
            content: [
              {
                type: "text",
                text: `Error adding item to cart: ${error.message}`,
              },
            ],
            isError: true,
          };
        }
      },
    );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pashaydev/terminal.shop.mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server