gomag-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOMAG_API_KEY | Yes | Your Gomag API key (Apikey header) — from Admin → API Settings | |
| GOMAG_API_SHOP | Yes | Your shop URL, e.g. https://yourshop.gomag.ro (ApiShop header) | |
| GOMAG_BASE_URL | No | Gomag API base URL | https://api.gomag.ro |
| GOMAG_USER_AGENT | No | Custom User-Agent (must not be PostmanRuntime/…) | GomagMCP/1.0 |
| GOMAG_MAX_RETRIES | No | Retry attempts for 429 / 5xx responses | 3 |
| GOMAG_AUDIT_LOG_FILE | No | Path to the rotating JSON Lines audit log | gomag_audit.jsonl |
| GOMAG_REQUEST_TIMEOUT | No | HTTP timeout in seconds | 30.0 |
| GOMAG_AUDIT_LOG_MAX_BYTES | No | Max log file size before rotation (10 MB) | 10485760 |
| GOMAG_AUDIT_LOG_TO_STDERR | No | Also emit audit events to stderr | true |
| GOMAG_RETRY_BACKOFF_FACTOR | No | Exponential back-off multiplier (seconds) | 1.0 |
| GOMAG_AUDIT_LOG_BACKUP_COUNT | No | Number of rotated backup files to keep | 5 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| product_listA | List products from the Gomag store. Parameterspage : Page number (pagination). limit : Results per page (1–100). id : Filter by internal product ID. sku : Filter by product SKU/code. category : Filter by category ID. brand : Filter by brand ID. updated : Filter products modified on/after this date (YYYY-MM-DD). add_versions : Include product variants/versions (true/false). include_files: Include attached files (true/false). include_videos: Include attached videos (true/false). promo_tag : Filter by promotional tag key (e.g. "new", "recommended"). view : Language code for localised fields (e.g. "ro", "en", "hu"). |
| product_createA | Create one or more products. Parametersdata : JSON array of product objects. Each object may include: - name (dict, keyed by language code e.g. {"ro": "...", "en": "..."}) - description (dict, keyed by language) - enabled (0 or 1) - vat (VAT percentage, e.g. 19) - currency (e.g. "RON") - brand (brand name string) - categories (array of category path arrays) - versions (array of variant objects with sku, price, stock, weight, ean, ...) Example'[{"name": {"ro": "Produs test", "en": "Test product"}, "enabled": 1, "vat": 19, "currency": "RON", "versions": [{"sku": "TEST-001", "price": 99.99, "stock": 10}]}]' |
| product_updateA | Update (patch) existing products. Parametersdata : JSON array of partial product objects. Must include an identifier field (id or sku) plus the fields to update. Example'[{"sku": "TEST-001", "versions": [{"sku": "TEST-001", "price": 79.99}]}]' |
| product_update_inventoryA | Bulk-update product price and/or stock (inventory sync). Parametersdata : JSON array of inventory update objects, each containing: - sku (required) product SKU - price (optional) new price - stock (optional) new stock quantity - specialPrice (optional) discounted price Example'[{"sku": "TEST-001", "price": 89.99, "stock": 50}]' |
| product_deleteA | Delete products by SKU or ID. Parametersdata : JSON array of objects identifying the products to delete. Each object should contain either "id" or "sku". Example'[{"sku": "TEST-001"}, {"id": 42}]' |
| category_listA | List product categories. Parametersid : Filter by specific category ID. parent_id : Filter by parent category ID (0 = root categories). view : Language code for localised names (e.g. "ro", "en"). page : Page number for pagination. limit : Results per page (1–100). |
| category_createA | Create one or more categories. Parametersdata : JSON array of category objects. Each object may include: - name (dict, keyed by language e.g. {"ro": "...", "en": "..."}) - description (dict, keyed by language) - parent_id (int, ID of parent category; omit or 0 for root) - enabled (0 or 1) - image (URL string) Example'[{"name": {"ro": "Electrocasnice", "en": "Appliances"}, "enabled": 1}]' |
| category_updateA | Update (patch) existing categories. Parametersdata : JSON array of partial category objects. Must include "id" plus the fields to change. Example'[{"id": 12, "name": {"ro": "Electronice", "en": "Electronics"}}]' |
| category_deleteA | Delete categories. Only empty categories (no products, no sub-categories) can be deleted. Parametersdata : JSON array of objects with "id" fields. Example'[{"id": 12}]' |
| order_listB | List orders from the Gomag store. Parametersid : Filter by internal order ID. number : Filter by order number. status : Filter by status key (e.g. "sale", "return", "cancel"). date_from : Include orders placed on/after this date (YYYY-MM-DD). date_to : Include orders placed on/before this date (YYYY-MM-DD). email : Filter by customer e-mail. phone : Filter by customer phone number. page : Page number. limit : Results per page (1–100). |
| order_status_typesA | Return the list of available order status types defined in the store. |
| order_createA | Create a new order. Parametersdata : JSON object describing the order. Key fields: - number (string) order reference number - date (YYYY-MM-DD) - payment (string) payment method key - currency (e.g. "RON") - shippingValue (string/number) - subtotal (string/number) - billing (object: lastname, firstname, address, city, region, country, phone, email) - shipping (object: same fields + zipcode) - products (array: sku, name, price, quantity, tax, weight) - discounts (array: name, voucher, value) — optional Example'{"number": "ORD-001", "date": "2026-03-27", "payment": "cod", "currency": "RON", "shippingValue": "20", "subtotal": "199.99", "billing": {"lastname": "Doe", "firstname": "John", "address": "Str. Test 1", "city": "Bucharest", "region": "Ilfov", "country": "Romania", "phone": "0721000000", "email": "john@example.com"}, "shipping": {"lastname": "Doe", "firstname": "John", "address": "Str. Test 1", "city": "Bucharest", "region": "Ilfov", "country": "Romania", "zipcode": "010101", "phone": "0721000000", "email": "john@example.com"}, "products": [{"sku": "PROD-1", "name": "Product", "price": "199.99", "quantity": "1", "tax": "19", "weight": "500"}]}' |
| order_update_statusA | Update the status of an existing order. Parametersorder_id : Internal order ID. status : New status key (e.g. "sale", "return", "cancel"). Use order_status_types() to see available values. notify_customer : Send a notification e-mail to the customer (true/false). note : Optional internal note to attach to the status change. |
| order_add_noteA | Add a note to an order. Parametersorder_id : Internal order ID. note : Note text. is_public : If true the note is visible to the customer (default false). |
| order_add_fileA | Attach a file (by URL) to an order. Parametersorder_id : Internal order ID. file_url : Publicly accessible URL of the file to attach. file_name : Display name for the file (optional, defaults to the URL filename). |
| customer_listA | List customers registered in the Gomag store. Parametersid : Filter by internal customer ID. email : Filter by e-mail address. phone : Filter by phone number. updated : Filter customers modified on/after this date (YYYY-MM-DD). page : Page number. limit : Results per page (1–100). |
| customer_ordered_productsA | Get a list of products that a specific customer has ordered. Parameterscustomer_id : Internal customer ID. email : Customer e-mail (alternative to customer_id). page : Page number. limit : Results per page. |
| customer_createA | Create a new customer account. Parametersemail : Customer e-mail address (unique).
firstname : First name.
lastname : Last name.
password : Account password (plain text — only use over HTTPS; never logged).
confirm_password : Must match |
| customer_updateB | Update an existing customer's details. Parametersdata : JSON object with customer fields to update. Must include "id" or "email" to identify the customer, plus the fields to change. Example'{"id": 123, "phone": "0721000001", "newsletter": false}' |
| customer_loginA | Authenticate a customer and return session/token data. Parametersemail : Customer e-mail address. password : Customer password (plain text — only use over HTTPS; never logged). Returns the API response which typically includes a session token or authentication confirmation. |
| customer_change_passwordA | Change a customer's password. Parametersemail : Customer e-mail address.
old_password : Current password for verification (plain text — never logged).
new_password : New password to set (plain text — never logged).
confirm_new_password : Must match |
| customer_password_recoveryB | Trigger a password recovery e-mail for a customer. Parametersemail : Customer e-mail address to send the recovery link to. |
| customer_delete_requestA | Submit a GDPR account-deletion request for a customer. The customer will be flagged for deletion in the store's admin panel. This does NOT immediately delete the account. Parametersemail : Customer e-mail address. |
| awb_carrier_listA | Return the list of configured shipping carriers/couriers available in the store. |
| awb_listA | List AWB (Air Waybill / tracking numbers) records. Parametersorder_id : Filter by the order's internal ID. awb_number : Filter by specific AWB tracking number. carrier_id : Filter by carrier/courier ID. page : Page number. limit : Results per page (1–100). |
| awb_createA | Manually create an AWB record for an order. Parametersdata : JSON object with AWB details. Key fields: - orderId (int) internal order ID - carrierId (int) carrier ID from awb_carrier_list() - awbNumber (string) tracking number issued by the carrier - packages (int) number of packages - weight (float) total shipment weight in kg Example'{"orderId": 100, "carrierId": 3, "awbNumber": "1Z999AA10123456784", "packages": 1, "weight": 1.5}' |
| awb_generateA | Generate an AWB automatically through the carrier's integrated API. Parametersdata : JSON object with generation details. Key fields: - orderId (int) internal order ID - carrierId (int) carrier ID from awb_carrier_list() - packages (int) number of packages (default 1) - weight (float) total weight in kg Example'{"orderId": 100, "carrierId": 3, "packages": 1, "weight": 2.0}' |
| awb_deleteB | Delete an AWB record. Parametersawb_id : Internal AWB record ID. |
| awb_printA | Generate a printable shipping label (PDF or similar) for an AWB. Parametersawb_id : Internal AWB record ID. Returns a response typically containing a URL or base64-encoded label content. |
| awb_update_statusA | Update the delivery status of an AWB. Parametersawb_id : Internal AWB record ID. status : New status string (carrier-specific, e.g. "delivered", "in_transit", "returned"). update_order_status : If true, also update the parent order's status accordingly. |
| invoice_createB | Create (register) an invoice for an order. Parametersdata : JSON object with invoice details. Key fields: - orderId (int) internal order ID - number (string) invoice number/series - date (YYYY-MM-DD) invoice date - series (string) invoice series (e.g. "FCT") - dueDate (YYYY-MM-DD) payment due date (optional) Example'{"orderId": 100, "series": "FCT", "number": "0001234", "date": "2026-03-27"}' |
| invoice_generateB | Auto-generate an invoice for an order using the store's configured invoicing settings. Parametersorder_id : Internal order ID. series : Invoice series to use (optional; uses store default if omitted). |
| invoice_cancelC | Cancel (void) an invoice. Parametersinvoice_id : Internal invoice ID to cancel. |
| attribute_listA | List product attributes defined in the store. Parametersid : Filter by specific attribute ID. page : Page number. limit : Results per page (1–100). |
| attribute_createA | Create one or more product attributes. Parametersdata : JSON array of attribute objects. Each object may include: - name (dict, keyed by language e.g. {"ro": "Culoare", "en": "Color"}) - type (string) attribute type (e.g. "select", "text", "multiselect") - values (array of value objects, each with a localised "name" dict) Example'[{"name": {"ro": "Culoare", "en": "Color"}, "type": "select", "values": [{"name": {"ro": "Rosu", "en": "Red"}}, {"name": {"ro": "Albastru", "en": "Blue"}}]}]' |
| attribute_updateA | Update (patch) existing product attributes. Parametersdata : JSON array of partial attribute objects. Must include "id" plus the fields to update. Example'[{"id": 5, "name": {"ro": "Marime", "en": "Size"}}]' |
| review_listA | List product reviews. Parametersproduct_id : Filter by product ID. customer_id : Filter by customer ID. approved : Filter by approval status (true = approved only). page : Page number. limit : Results per page (1–100). |
| review_createB | Submit a product review. Parametersproduct_id : ID of the product being reviewed. rating : Star rating (1–5). title : Short review title/summary. content : Full review text. author_name : Reviewer's display name. author_email : Reviewer's e-mail address. approved : Set approval status immediately (true/false; defaults to store's moderation setting). |
| wishlist_listA | List a customer's saved (wishlist) products. Parameterscustomer_id : Customer's internal ID. email : Customer e-mail (alternative identifier). page : Page number. limit : Results per page (1–100). |
| wishlist_addC | Add a product to a customer's wishlist. Parameterscustomer_id : Customer's internal ID. product_id : Product's internal ID. |
| wishlist_removeB | Remove a product from a customer's wishlist. Parameterscustomer_id : Customer's internal ID. product_id : Product's internal ID. |
| currency_listA | Return the list of currencies configured in the Gomag store. |
| payment_listA | Return the list of payment methods available in the store. |
| brand_listC | Return the list of brands (manufacturers) defined in the store. Parameterspage : Page number. limit : Results per page (1–100). |
| filter_listA | Return the filterable attributes for a specific category. Parameterscategory_id : Category ID to retrieve filters for (required). view : Language code (e.g. "ro", "en"). |
| banner_listB | Return banners (promotional images/links) defined in the store. Parametersposition : Filter by banner position/zone (store-defined key). page : Page number. limit : Results per page. |
| fidelity_readC | Retrieve a customer's fidelity (loyalty) points balance. Parameterscustomer_id : Customer's internal ID. email : Customer e-mail (alternative identifier). |
| rulecart_addA | Create a shopping cart rule (discount / promotion). Parametersdata : JSON object describing the cart rule. Key fields: - name (string) rule name - discount (float) discount amount or percentage - type (string) "fixed" | "percent" - code (string) voucher code (leave empty for auto-apply) - dateFrom (YYYY-MM-DD) start date (optional) - dateTo (YYYY-MM-DD) end date (optional) - usesPerCode (int) maximum total uses (0 = unlimited) - usesPerCustomer (int) maximum uses per customer (0 = unlimited) - enabled (0 or 1) Example'{"name": "Spring Sale 10%", "discount": 10, "type": "percent", "code": "SPRING10", "enabled": 1, "usesPerCode": 100}' |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| rate_limit_resource | Current API rate-limit state (updated after every request). Returns the most recently observed values from the Gomag API response headers: - read_remaining — read requests remaining before throttling - write_remaining — write requests remaining before throttling - read_burst — max read burst capacity - write_burst — max write burst capacity - read_rate — read requests processed per second - write_rate — write requests processed per second |
| health_resource | Server health status. Returns configuration info (without secrets) and the rate-limit state. Use this to confirm the server started correctly and the API shop is set. |
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/florinel-chis/gomag-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server