jumia-vendor-center
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JUMIA_SHOP_ID | No | The Jumia shop identifier. Overrides the default. | |
| JUMIA_AUDIT_LOG | No | Path to the append-only JSONL audit log file. Defaults to ./data/audit.log. | ./data/audit.log |
| JUMIA_CLIENT_ID | No | Your Jumia Vendor Center Self Authorization application Client ID. Used as an override when not using the interactive setup flow. | |
| JUMIA_API_BASE_URL | No | Base URL for the Jumia Vendor Center API. Overrides the default. | |
| JUMIA_AUTH_BASE_URL | No | Base URL for the Jumia authentication service. Overrides the default. | |
| JUMIA_REFRESH_TOKEN | No | The Refresh Token for your Jumia Vendor Center application. Used as an override when not using the interactive setup flow. Treat as a secret. | |
| JUMIA_RATE_LIMIT_RPM | No | API request rate limit in requests per minute. Defaults to 200. | 200 |
| JUMIA_RATE_LIMIT_RPS | No | API request rate limit in requests per second. Defaults to 4. | 4 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_shopsA | List every shop under the authenticated Vendor Center account. |
| list_brandsA | List brand codes/names known to the catalog (paginated). |
| list_categoriesA | List categories. Each category includes |
| get_attribute_setA | List the attributes (required or not, allowed values/options, validation rules) for a category's attribute set. Get |
| find_outdated_productsA | Scan the catalog for products that look outdated: QC-rejected and never fixed, ACTIVE with zero stock for a long time, or ACTIVE and untouched for a very long time. This is a HEURISTIC - the Vendor Center API has no "outdated" concept - so treat the result as a review list, not an automatic deletion queue. Nothing is changed by calling this; pair it with deactivate_products() after a human (or you, deliberately) has looked at the list. Returns {scanned, flagged: [{listing, reasons}], truncated}. Each |
| deactivate_productsA | The closest thing to "removing" a product from Jumia: sets status to INACTIVE per business client. THIS DOES NOT DELETE THE LISTING - there is no delete endpoint in the published API; INACTIVE just makes it unsellable/hidden. If you actually need a listing permanently gone, that's a request to your Jumia account manager, not something this tool (or any seller-facing API call) can do.
Logs every call to the local audit log before returning. |
| create_productsA | Create new products (async feed). Poll the returned feedId with get_feed_status() until status is COMPLETED, then call it again (or list_products by sellerSku) to learn each product's real productSid and QC status - both are required before you can update stock, price or status on a newly-created product. Each item in Before calling this for a real-world branded product, SEARCH for the manufacturer's actual spec sheet, description copy, and product image URLs (their regional store site) rather than inventing name/description/spec/image content - Jumia's own content guidelines expect accurate listings, and a fabricated spec (wrong wattage, invented weight, wrong included accessories) risks a QC rejection or a listing that doesn't match what ships. If the manufacturer's site blocks a plain fetch (403), a real browser session (e.g. claude-in-chrome) often gets through where a headless fetch doesn't. Only fields you truly cannot find published anywhere (e.g. shipping weight) should be flagged to the user as an unverified estimate rather than silently guessed. Cap ~1000 products per call - this tool does not auto-chunk larger lists for you (chunk them yourself and call this repeatedly, tracking each feedId, so a failure in batch 6 doesn't force you to redo 1-5). |
| update_productsA | Update the MUTABLE subset of product fields (async feed): additional category, brand, config attributes, GTIN barcode, simple attributes, variation. This CANNOT change the main image, main category, parent SKU, price, or initial stock - use update_price / update_stock for price and stock, and be aware main image/category/parent SKU aren't changeable via this API at all once a product is created. Each item needs the product's |
| update_priceB | Update price (async feed). Each item: {"sellerSku", "id", "category", "price": {"currency", "value", "salePrice": {"value","startAt","endAt"}}, "businessClients": [...]}. To clear a sale price, send salePrice's value/startAt/endAt as null rather than omitting salePrice entirely. |
| update_stockA | Update stock (async feed). Each item: {"sellerSku", "id", "stock"}. |
| get_feed_statusA | Poll an async feed (returned by create_products/update_products/update_price/update_stock/deactivate_products) until status is COMPLETED or FAILED. For a PRODUCT_CREATION feed, this is also where you get each new product's productSid and QC status. |
| sync_productsA | Reconcile your source of truth (an ERP export, a spreadsheet you've already parsed to JSON, etc) against what's live on Jumia right now, and push only the fields that actually changed - instead of you hand-writing separate create/update/price/stock calls.
Looks up each sellerSku via list_products, diffs against Returns {matched, not_found: [sellerSku...], plan: {price: [...], stock: [...], status: [...]}, feed_ids: {...} (only when dry_run=false)}. |
| list_productsB | One page of GET /catalog/products with the documented filters. Use |
| get_stockC | One page of GET /catalog/stock. |
| find_duplicate_productsA | Flag products that look like the same real-world item listed more than once: exact GTIN/EAN/barcode match, or same brand+category+images with a near-identical name. Jumia's seller API has NO merge endpoint, so this only reports clusters with a suggested canonical listing (live somewhere - ACTIVE + QC APPROVED on any business client - then oldest wins) - resolving it means you decide, then call deactivate_products() on the ones you're dropping. Narrow with |
| list_ordersA | One page of GET /orders. |
| get_order_itemsC | GET /orders/items for a specific order. |
| cancel_order_itemsA | Cancel one or more order items. Requires the VC - Order Manager role on the calling application/user. No cancellation-reason field exists in this endpoint's schema - the audit log records who/when this tool was called, but not a business reason, so capture that elsewhere if you need it for SLA reporting. |
| get_shipment_providersA | List shipment providers available for an order item, including whether each requires a caller-supplied tracking code (use pack_orders_v2 if so). |
| pack_ordersA | Pack order items (v1). |
| pack_orders_v2A | Pack order items (v2) - required when the shipment provider needs a caller-supplied tracking code. |
| mark_ready_to_shipB | Mark packed order items ready to ship. |
| print_shipping_labelsA | Get printable shipping labels for order items. Returns success.labels[] with a |
| create_consignmentA | Create a consignment (inbound stock shipment to a Jumia warehouse). |
| update_consignmentC | Update a consignment's shipping status. Dates are 'yyyy-MM-dd'. |
| get_consignment_stockB | Check received/quarantined/defective/canceled/returned/failed counts for stock sent to a Jumia warehouse. |
| get_payout_statementsB | List payout statements (for reconciling what Jumia has paid out against your own books). NOT financial/tax advice - just the raw statement data. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/damurka/jumia-vendor-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server