Skip to main content
Glama

MCP VTEX Server

npm version License: MIT TypeScript VTEX

Complete VTEX API integration for Claude Desktop and Cursor - Manage your entire e-commerce operation through AI conversations. Control catalog, inventory, pricing, promotions, orders, and marketplace operations with natural language.


✨ Features

πŸ“¦ Catalog Management

  • Products: Full CRUD operations for products

  • SKUs: Create, update, and manage stock keeping units

  • Categories: Hierarchical category management

  • Brands: Brand creation and management

  • Specifications: Product and SKU specifications

πŸ’° Pricing & Promotions

  • Pricing API: Base prices, list prices, cost prices, and markup

  • Computed Prices: Get final prices including promotions and taxes

  • Promotions: Create and manage all types of promotions

  • Coupons: Generate and manage discount coupons

πŸ“Š Inventory & Logistics

  • Inventory: Real-time stock management across warehouses

  • Warehouses: Create and manage storage facilities

  • Docks: Loading dock configuration

  • Shipping Policies: Configure shipping methods and rules

πŸ›’ Orders Management

  • Order Operations: View, process, and update orders

  • Order Status: Change order status through workflow

  • Invoicing: Add invoices and tracking information

  • Cancellations: Cancel orders with reasons

πŸͺ Marketplace Operations

  • Seller Management: Invite and manage sellers

  • Commissions: Configure seller commissions

  • SKU Approval: Approve or deny seller SKUs

  • Multi-seller: Full marketplace functionality

πŸ›οΈ Checkout & Cart (NEW!)

  • Order Form: Complete cart management

  • Shipping Simulation: Calculate shipping costs and delivery times

  • Cart Operations: Add, remove, update items

  • Coupon Application: Apply discount coupons to cart

  • Cart Management: Clear cart and manage order form

πŸ‘₯ Customer Data (NEW!)

  • Master Data: Full CRM functionality

  • Client Management: Create, read, update, delete customer data

  • Document Management: Handle custom data entities

  • Search & Filter: Advanced query capabilities

  • Client Lookup: Find customers by email and other fields

πŸ” Product Search (NEW!)

  • Advanced Search: Powerful product search with filters

  • Facets & Filters: Dynamic filter generation

  • Autocomplete: Search suggestions

  • Product Lookup: Find by ID, EAN, Reference, SKU

  • Indexing: Bulk product and SKU ID retrieval

⭐ Reviews & Ratings (NEW!)

  • Review Management: Create, update, delete reviews

  • Approval Workflow: Approve or reject customer reviews

  • Rating Statistics: Get average ratings and distributions

  • Review Listing: Filter and sort reviews

  • Social Proof: Build customer trust with reviews

πŸ’³ Payment Configuration (NEW!)

  • Payment Providers: Configure payment gateways

  • Payment Methods: Manage available payment options

  • Transaction Tracking: Monitor payment transactions

  • Provider Management: Add, update, remove payment integrations

  • Payment Configuration: Complete gateway setup

🎁 Gift Cards (NEW v1.5.0!)

  • Gift Card Creation: Create custom gift cards with balance and expiration

  • Gift Card Lookup: Retrieve by ID or redemption code

  • Transaction Management: Add credits or debits to gift cards

  • Gift Card Listing: View all gift cards with pagination

  • Restrictions: Configure owner-only usage

  • Use Cases: Loyalty programs, VIP reactivation, store credit, refunds


Related MCP server: ecommerce-mcp

πŸš€ Quick Start

npm install -g mcp-vtex

Configuration

  1. Get your VTEX API credentials:

    • Navigate to your VTEX Admin β†’ Account Settings β†’ Account

    • Go to Security β†’ Application Keys

    • Create a new App Key and App Token

    • Save both credentials securely

  2. Configure Claude Desktop:

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (Mac/Linux) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

Option A - Using global installation:

{
  "mcpServers": {
    "vtex": {
      "command": "mcp-vtex",
      "env": {
        "VTEX_ACCOUNT_NAME": "your-account-name",
        "VTEX_ENVIRONMENT": "vtexcommercestable",
        "VTEX_APP_KEY": "your-app-key",
        "VTEX_APP_TOKEN": "your-app-token"
      }
    }
  }
}

Option B - Using npx (always latest version):

{
  "mcpServers": {
    "vtex": {
      "command": "npx",
      "args": ["-y", "mcp-vtex"],
      "env": {
        "VTEX_ACCOUNT_NAME": "your-account-name",
        "VTEX_ENVIRONMENT": "vtexcommercestable",
        "VTEX_APP_KEY": "your-app-key",
        "VTEX_APP_TOKEN": "your-app-token"
      }
    }
  }
}
  1. Configure Cursor:

Add to Cursor MCP settings (Settings β†’ Extensions β†’ MCP):

{
  "mcpServers": {
    "vtex": {
      "command": "npx",
      "args": ["-y", "mcp-vtex"],
      "env": {
        "VTEX_ACCOUNT_NAME": "your-account-name",
        "VTEX_ENVIRONMENT": "vtexcommercestable",
        "VTEX_APP_KEY": "your-app-key",
        "VTEX_APP_TOKEN": "your-app-token"
      }
    }
  }
}
  1. Restart Claude Desktop or Cursor


πŸ’¬ Usage Examples

Once configured, interact with VTEX using natural language:

Catalog Management

"Create a new product called 'Premium T-Shirt' in category 5 with brand 10"
"List all active SKUs for product 123"
"Update the price of SKU 456 to $29.99"

Inventory Operations

"Check inventory levels for SKU 789"
"Update inventory for SKU 101 in warehouse 1 to 50 units"
"List all warehouses"

Promotions & Pricing

"Create a 20% discount promotion for Black Friday"
"Generate a coupon code 'WELCOME10' for new customers"
"Get the computed price for SKU 202 including all promotions"

Order Management

"Get details for order v12345-01"
"List all orders from the last 7 days"
"Start handling order v12345-01"
"Add invoice 12345 with tracking ABC123 to order v12345-01"

Marketplace Operations

"List all sellers in the marketplace"
"Approve SKU xyz from seller seller-123"
"Invite new seller 'Premium Store' with email seller@example.com"

πŸ› οΈ Available Tools (164 Tools)

Catalog API (30 tools)

  • Products: Create, Get, Update, Delete, List

  • SKUs: Create, Get, Get by RefId, Update, List

  • Categories: Create, Get, Update, Delete, List

  • Brands: Create, Get, Update, Delete, List

  • Specifications: Create Field, Create Spec, Get SKU Specs, Assign Values, List Category Specs

Pricing API (5 tools)

  • Get Price, Create/Update Price, Delete Price, List Prices, Get Computed Price

Inventory API (3 tools)

  • Get Inventory, Update Inventory, List Inventory by Warehouse

Logistics API (10 tools)

  • Warehouses: Create, Get, Update, Delete, List

  • Docks: Create, Get, Update, Delete, List

Promotions & Coupons API (10 tools)

  • Promotions: Create, Get, Update, List, Archive, Unarchive

  • Coupons: Create, Get, List, Archive

Orders API (5 tools)

  • Get Order, List Orders, Start Handling, Cancel Order, Invoice Order

Marketplace API (7 tools)

  • Get/Update Seller Commissions, Get SKU Approval Status, Approve SKU, Deny SKU, Invite Seller, List Sellers

Checkout API (7 tools) πŸ†•

  • Get Order Form, Simulate Shipping, Add Item to Cart, Remove Item, Update Quantity, Add Coupon, Clear Cart

Master Data API (6 tools) πŸ†•

  • Create Document, Get Document, Update Document, Delete Document, Search Documents, Get Client by Email

Search API (5 tools) πŸ†•

  • Search Products, Get Product by Identifier, Get Product & SKU IDs, Get Facets, Autocomplete

Reviews and Ratings API (7 tools) πŸ†•

  • Create Review, Get Review, List Reviews, Update Review, Delete Review, Approve Review, Get Review Summary

Payment Gateway API (7 tools) πŸ†•

  • List Providers, Get Provider, Create Provider, Update Provider, Delete Provider, List Payment Methods, Get Transaction

Gift Card API (5 tools) 🎁 NEW in v1.5.0!

  • Create Gift Card, Get Gift Card, List Gift Cards, Get Gift Card by Code, Create Gift Card Transaction


πŸ“ Project Structure

mcp-vtex/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ index.ts          # MCP server implementation
β”‚   β”œβ”€β”€ vtex-client.ts    # VTEX API client
β”‚   └── types.ts          # TypeScript definitions
β”œβ”€β”€ dist/                 # Compiled output
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ README.md
β”œβ”€β”€ CHANGELOG.md
└── LICENSE

πŸ”§ Development

Local Installation (For Development)

# Clone repository
git clone https://github.com/leosepulveda/mcp-vtex.git
cd mcp-vtex

# Install dependencies
npm install

# Build
npm run build

# Development with auto-rebuild
npm run watch

Configure with Local Build

For Claude Desktop, add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "vtex": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-vtex/dist/index.js"],
      "env": {
        "VTEX_ACCOUNT_NAME": "your-account-name",
        "VTEX_ENVIRONMENT": "vtexcommercestable",
        "VTEX_APP_KEY": "your-app-key",
        "VTEX_APP_TOKEN": "your-app-token"
      }
    }
  }
}

πŸ“‹ Requirements

  • Node.js: 18 or higher

  • VTEX Store: Active VTEX account

  • API Credentials: App Key and App Token with appropriate permissions

  • AI IDE: Claude Desktop or Cursor with MCP support

Required VTEX Permissions

Your App Key needs the following permissions:

  • Catalog - Full Access

  • Pricing - Full Access

  • Logistics - Full Access

  • OMS - Full Access

  • Promotions & Taxes - Full Access

  • Marketplace - Full Access (if using marketplace features)


πŸ” Security Best Practices

  • Never commit credentials to version control

  • Store API credentials in environment variables

  • Rotate API keys regularly for security

  • Use separate App Keys for development and production

  • Limit permissions to only what's needed for each key

  • Monitor API usage in VTEX Admin


πŸ“Š API Coverage

This MCP server covers the following VTEX APIs:

βœ… Catalog API - Complete
βœ… Pricing API - Complete
βœ… Inventory & Logistics API - Complete
βœ… Promotions & Taxes API - Complete
βœ… Orders Management API - Core features
βœ… Marketplace API - Complete


πŸ› Troubleshooting

Connection Issues

Problem: "Cannot connect to VTEX API"

  • Verify VTEX_ACCOUNT_NAME is correct

  • Check that App Key and App Token are valid

  • Ensure your VTEX store is active

  • Verify API credentials have necessary permissions

Permission Errors

Problem: "Insufficient permissions" or "Access denied"

  • Check App Key permissions in VTEX Admin

  • Ensure the App Key has access to the specific API

  • Some operations require admin-level permissions

Rate Limiting

Problem: "Too many requests"

  • VTEX has rate limits per API

  • Implement delays between bulk operations

  • Consider batching operations when possible


🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/AmazingFeature)

  3. Commit your changes (git commit -m 'Add some AmazingFeature')

  4. Push to the branch (git push origin feature/AmazingFeature)

  5. Open a Pull Request


πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments

  • VTEX - E-commerce platform

  • Anthropic - Claude and Model Context Protocol

  • Cursor - AI-powered code editor


πŸ”— Resources


πŸ“§ Support


⚑ Environment Variables

Variable

Required

Default

Description

VTEX_ACCOUNT_NAME

Yes

-

Your VTEX account name

VTEX_ENVIRONMENT

No

vtexcommercestable

VTEX environment (usually vtexcommercestable)

VTEX_APP_KEY

Yes

-

Your VTEX App Key

VTEX_APP_TOKEN

Yes

-

Your VTEX App Token


⬆ Back to Top

Available Tools

84 tools
vtex_approve_reviewC

Approve a review for display

Inputs: reviewId (required).

vtex_archive_couponC

Archive a coupon

Inputs: couponCode (required).

vtex_archive_promotionC

Archive a promotion

Inputs: promotionId (required).

vtex_autocompleteB

Get autocomplete suggestions for search

Inputs: searchTerm (required).

vtex_cancel_orderC

Cancel an order

Inputs: orderId (required), reason.

vtex_create_brandC

Create a new brand

Inputs: Name (required), Text, Keywords, Active.

vtex_create_categoryC

Create a new category

Inputs: Name (required), FatherCategoryId, Title, Description, +1 more.

vtex_create_couponC

Create a new coupon

Inputs: couponCode (required), maxItemsPerClient.

vtex_create_dockC

Create a new dock (loading dock)

Inputs: name (required), priority, dockTimeCost.

vtex_create_documentC

Create a document in Master Data entity

Inputs: entity (required), document (required).

vtex_create_email_templateC

Create an email template

Inputs: name (required), friendlyName, subject, message.

vtex_create_gift_cardC

Create a new gift card

Inputs: balance (required), caption, expiringDate, relationName, +2 more.

vtex_create_gift_card_transactionC

Add transaction to gift card (credit or debit)

Inputs: giftCardId (required), value (required), operation (required), description.

vtex_create_or_update_priceC

Create or update price for a SKU

Inputs: skuId (required), basePrice (required), listPrice, costPrice, +1 more.

vtex_create_payment_providerC

Create a payment provider configuration

Inputs: name (required), connector (required), configuration (required).

vtex_create_productC

Create a new product in VTEX catalog

Inputs: Name (required), CategoryId (required), BrandId (required), LinkId, +4 more.

vtex_create_promotionC

Create a new promotion

Inputs: name (required), beginDateUtc (required), endDateUtc (required), description, +4 more.

vtex_create_skuC

Create a new SKU for a product

Inputs: ProductId (required), Name (required), RefId, IsActive, +4 more.

vtex_create_warehouseC

Create a new warehouse

Inputs: name (required), warehouseDocks.

vtex_delete_brandC

Delete a brand

Inputs: brandId (required).

vtex_delete_categoryC

Delete a category

Inputs: categoryId (required).

vtex_delete_dockC

Delete a dock

Inputs: dockId (required).

vtex_delete_documentC

Delete a Master Data document

Inputs: entity (required), documentId (required).

vtex_delete_payment_providerC

Delete a payment provider

Inputs: providerId (required).

vtex_delete_priceC

Delete price for a SKU

Inputs: skuId (required).

vtex_delete_productC

Delete a product

Inputs: productId (required).

vtex_delete_warehouseC

Delete a warehouse

Inputs: warehouseId (required).

vtex_get_brandC

Get brand details by ID

Inputs: brandId (required).

vtex_get_categoryC

Get category details by ID

Inputs: categoryId (required).

vtex_get_client_by_emailB

Get client data by email

Inputs: email (required).

vtex_get_computed_priceB

Get computed price for a SKU (includes promotions and taxes)

Inputs: skuId (required), tradePolicy, regionId.

vtex_get_couponC

Get coupon details by code

Inputs: couponCode (required).

vtex_get_dockB

Get dock details by ID

Inputs: dockId (required).

vtex_get_documentC

Get a document from Master Data

Inputs: entity (required), documentId (required), fields.

vtex_get_email_templateC

Get email template by ID

Inputs: templateId (required).

vtex_get_facetsC

Get facets and filters for search

Inputs: categoryId.

vtex_get_gift_cardC

Get gift card by ID

Inputs: giftCardId (required).

vtex_get_gift_card_by_codeC

Search gift card by redemption code

Inputs: redemptionCode (required).

vtex_get_inventoryC

Get inventory information for a SKU

Inputs: skuId (required).

vtex_get_orderC

Get order details by ID

Inputs: orderId (required).

vtex_get_payment_providerC

Get payment provider configuration

Inputs: providerId (required).

vtex_get_priceB

Get price information for a SKU

Inputs: skuId (required).

vtex_get_productB

Get product details by ID

Inputs: productId (required).

vtex_get_product_and_sku_idsC

Get all product and SKU IDs (useful for indexing)

Inputs: categoryId, brandId.

vtex_get_product_by_identifierB

Get product by ID, EAN, Reference ID, or SKU

Inputs: field (required), value (required).

vtex_get_promotionC

Get promotion details by ID

Inputs: promotionId (required).

vtex_get_review_summaryB

Get review summary and rating statistics for a product

Inputs: productId (required).

vtex_get_segmentC

Get segment data (campaigns, UTM, location)

Inputs: sessionToken.

vtex_get_skuC

Get SKU details by ID

Inputs: skuId (required).

vtex_get_sku_by_refidC

Get SKU details by reference ID

Inputs: refId (required).

vtex_get_transactionC

Get transaction details

Inputs: transactionId (required).

vtex_get_warehouseC

Get warehouse details by ID

Inputs: warehouseId (required).

vtex_invoice_orderC

Add invoice to an order

Inputs: orderId (required), invoiceNumber (required), invoiceValue (required), invoiceUrl, +2 more.

vtex_list_brandsB

List all brands

Inputs: no named parameters.

vtex_list_categoriesB

List all categories in a tree structure

Inputs: no named parameters.

vtex_list_couponsC

List all coupons

Inputs: no named parameters.

vtex_list_docksC

List all docks

Inputs: no named parameters.

vtex_list_email_templatesB

List all email templates

Inputs: no named parameters.

vtex_list_gift_cardsC

List all gift cards

Inputs: page, perPage.

vtex_list_inventory_by_warehouseC

List all inventory items in a warehouse

Inputs: warehouseId (required), page.

vtex_list_ordersC

List orders with filters

Inputs: f_creationDate, f_status, page, per_page.

vtex_list_payment_providersB

List all payment providers/gateways

Inputs: no named parameters.

vtex_list_pricesC

List all prices with pagination

Inputs: page, pageSize.

vtex_list_productsC

List products with pagination

Inputs: page, pageSize.

vtex_list_promotionsC

List all promotions

Inputs: archived.

vtex_list_skusB

List SKUs, optionally filtered by product

Inputs: productId.

vtex_list_warehousesB

List all warehouses

Inputs: no named parameters.

vtex_search_documentsC

Search documents in Master Data

Inputs: entity (required), fields, where, size, +2 more.

vtex_search_productsC

Search products in catalog

Inputs: query, category, brand, orderBy, +4 more.

vtex_send_emailC

Send an email using template

Inputs: templateName (required), jsonData (required), providerName.

vtex_start_handlingC

Start handling an order (change status to handling)

Inputs: orderId (required).

vtex_unarchive_promotionC

Unarchive a promotion

Inputs: promotionId (required).

vtex_update_brandC

Update an existing brand

Inputs: brandId (required), Name, Text, Active.

vtex_update_categoryC

Update an existing category

Inputs: categoryId (required), Name, Description, IsActive.

vtex_update_dockC

Update an existing dock

Inputs: dockId (required), name, priority.

vtex_update_documentC

Update a Master Data document

Inputs: entity (required), documentId (required), document (required).

vtex_update_email_templateC

Update an email template

Inputs: templateId (required), template (required).

vtex_update_inventoryC

Update inventory quantity for a SKU in a warehouse

Inputs: skuId (required), warehouseId (required), quantity (required), unlimitedQuantity.

vtex_update_payment_providerC

Update payment provider configuration

Inputs: providerId (required), provider (required).

vtex_update_productC

Update an existing product

Inputs: productId (required), Name, Description, IsVisible, +1 more.

vtex_update_promotionC

Update an existing promotion

Inputs: promotionId (required), name, isActive, description.

vtex_update_reviewC

Update a review

Inputs: reviewId (required), updates (required).

vtex_update_skuC

Update an existing SKU

Inputs: skuId (required), Name, IsActive, Height, +3 more.

vtex_update_warehouseC

Update an existing warehouse

Inputs: warehouseId (required), name.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 84 tools

    Disambiguation5/5

    Every tool has a clearly distinct purpose with no ambiguity. Tools are organized by resource (e.g., brand, category, product) and action (e.g., create, get, update, delete), making it easy to distinguish between them. For example, vtex_get_product and vtex_search_products serve different functions without overlap.

    Naming Consistency5/5

    Tool names follow a consistent verb_noun pattern throughout, all using snake_case with a 'vtex_' prefix. The verbs are standardized (e.g., create, get, update, delete, list), and nouns clearly identify the resource, ensuring predictability and readability across all 84 tools.

    Tool Count2/5

    With 84 tools, the count is too high for typical agent use, making the server feel heavy and potentially overwhelming. While VTEX is a complex e-commerce platform, this many tools could lead to confusion or inefficiency in agent workflows, suggesting it might be better scoped into smaller, more focused sets.

    Completeness5/5

    The tool set provides complete CRUD/lifecycle coverage for the VTEX e-commerce domain, including resources like products, orders, promotions, and inventory. There are no obvious gaps; tools cover creation, retrieval, updating, deletion, listing, and specific operations like invoicing or handling orders, ensuring agents can handle full workflows without dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables AI to view and manage e-commerce data such as products, orders, and coupons, and perform actions like updating prices, stock, and generating sales reports.
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to manage WooCommerce stores, including products, orders, customers, categories, coupons, attributes, variations, order notes, refunds, reports, payment gateways, meta data, reviews, settings, data, posts, and system status through natural language.
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      Connects AI agents like Claude to the Tray Commerce platform, enabling natural language management of products, orders, and customers.
      -