MCP Server for Pimcore PIM - AI-powered product catalog management
npm install @plugix/mcp-pimcoreMCP server for Pimcore PIM (Product Information Management) integration.
- get_products - Query products with filters (category, search, limit)
- get_categories - List all product categories
- get_stats - Catalog statistics (total products, languages, gaps)
- save_descriptions - Save AI-generated descriptions (with confirmation)
- save_translations - Save translations (with confirmation)
- save_seo - Save SEO metadata (with confirmation)
``bash`
npm install
cp .env.example .env
Edit .env:
`envAI Integration API
API_URL=wss://api.ai-integration.com
API_TOKEN=sk_live_your_token_here
Usage
$3
`bash
npm run dev
`$3
`bash
npm run build
npm start
`$3
`bash
docker build -t mcp-pimcore .
docker run --env-file .env mcp-pimcore
`Tools Reference
$3
Query products from the Pimcore catalog.
Parameters:
| Name | Type | Description |
|------|------|-------------|
| category | string | Filter by category name |
| search | string | Search in name/SKU |
| limit | number | Max results (default: 10) |
| offset | number | Pagination offset |
| missingDescription | boolean | Only products without description |
Example:
`json
{
"name": "get_products",
"arguments": {
"category": "Footwear",
"limit": 5
}
}
`$3
List all product categories.
Parameters: None
$3
Get catalog statistics.
Returns:
- Total products
- Products without descriptions
- Available languages
- Category breakdown
$3
Save AI-generated descriptions. Requires confirmation.
Parameters:
| Name | Type | Required | Description |
|------|------|----------|-------------|
| items | array | Yes |
[{productId, description}] |
| language | string | No | Target language (default: en) |
| confirmed | boolean | Yes | Must be true to save |Example:
`json
{
"name": "save_descriptions",
"arguments": {
"items": [
{"productId": "123", "description": "Premium leather boots..."},
{"productId": "456", "description": "Elegant handbag..."}
],
"language": "en",
"confirmed": true
}
}
`$3
Save product translations. Requires confirmation.
Parameters:
| Name | Type | Required | Description |
|------|------|----------|-------------|
| items | array | Yes |
[{productId, translations: {lang: text}}] |
| confirmed | boolean | Yes | Must be true to save |$3
Save SEO metadata. Requires confirmation.
Parameters:
| Name | Type | Required | Description |
|------|------|----------|-------------|
| items | array | Yes |
[{productId, title, description, keywords}] |
| confirmed | boolean | Yes | Must be true to save |Pimcore API Requirements
Your Pimcore instance needs:
1. REST API enabled with API key authentication
2. Data Object classes for Products with fields:
-
name (localized)
- description (localized)
- sku
- categories (relation)
3. Permissions for read/write on Product objectsTesting
`bash
npm test
`Troubleshooting
$3
- Check API_URL is correct
- Verify API_TOKEN is valid
- Ensure firewall allows outbound WebSocket$3
- Verify PIMCORE_URL and PIMCORE_API_KEY
- Check API permissions in Pimcore admin
- Ensure REST API is enabled$3
- Restart server after tool changes
- Check tool is exported in src/tools/index.ts`MIT