UnoPim MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@UnoPim MCP Servercreate a new blue t-shirt with SKU TSH-01 in the apparel family"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
UnoPim MCP Server
Version 2.0.0 -- A Model Context Protocol server that connects Claude Desktop (and other MCP clients) to a UnoPim PIM instance. Provides 35 tools for managing attributes, families, categories, products, media, and configuration.
Transports
Stdio -- Runs as a local subprocess of Claude Desktop. Requires UnoPim credentials in env vars.
HTTP -- Exposes SSE and Streamable HTTP endpoints. Intended for remote access via ngrok or cloud deployment.
Authentication
HTTP transport: OAuth browser-based (per-user)
Each user authenticates through a browser login form that Claude Desktop opens automatically (MCP OAuth spec). Uses PKCE with S256 challenge. Tokens expire after 24 hours by default (configurable via MCP_TOKEN_EXPIRY_SECONDS). Credentials are stored in localStorage for seamless re-auth.
When UNOPIM_* env vars are absent, the server runs in OAuth-only mode.
HTTP transport: API key fallback
Uses shared credentials from env vars. Set MCP_API_KEY or it defaults to UNOPIM_CLIENT_ID.
Stdio transport
Uses UNOPIM_* env vars directly. No browser-based auth.
Claude Desktop Configuration
HTTP mode with OAuth (recommended)
{
"mcpServers": {
"unopim": {
"url": "https://your-ngrok-url.ngrok-free.app/mcp"
}
}
}Stdio mode (local)
{
"mcpServers": {
"unopim": {
"command": "node",
"args": ["/path/to/unopim-mcp/dist/index.js"],
"env": {
"UNOPIM_BASE_URL": "http://your-unopim:8000",
"UNOPIM_CLIENT_ID": "your-client-id",
"UNOPIM_CLIENT_SECRET": "your-client-secret",
"UNOPIM_USERNAME": "user@example.com",
"UNOPIM_PASSWORD": "password"
}
}
}
}Tools (35)
Schema and Discovery
unopim_get_schema-- Fetch complete data modelunopim_get_attributes-- List all attributes with typesunopim_get_families-- List all product familiesunopim_get_family_schema-- Get detailed schema for a specific family
Attribute Management
unopim_create_attribute-- Create attribute (text, select, boolean, price, etc.)unopim_create_attribute_options-- Create options for select attributesunopim_get_attribute_options-- Get options for a select attributeunopim_get_attribute_groups-- List attribute groupsunopim_create_attribute_group-- Create attribute groupunopim_delete_attribute-- Delete attributeunopim_delete_attribute_group-- Delete attribute group
Family Management
unopim_create_family-- Create product familyunopim_update_family-- Update familyunopim_delete_family-- Delete family
Category Management
unopim_get_categories-- Fetch category treeunopim_create_category-- Create categoryunopim_delete_category-- Delete categoryunopim_get_category_fields-- List category fieldsunopim_create_category_field-- Create category field
Product Management
unopim_get_products-- List products with filteringunopim_get_product-- Get single product by SKUunopim_create_product-- Create simple productunopim_update_product-- Update productunopim_upsert_product-- Create or update productunopim_smart_create_product-- Auto-validates against family schema before creatingunopim_bulk_create_products-- Batch create productsunopim_delete_product-- Delete product
Configurable Products
unopim_create_configurable_product-- Create parent product with variantsunopim_add_variant-- Add variant to configurable productunopim_update_configurable_product-- Update configurable product
Media Upload
unopim_upload_product_media-- Upload image and auto-link to productunopim_upload_category_media-- Upload image and auto-link to category
Configuration
unopim_get_channels-- List channelsunopim_get_locales-- List localesunopim_get_currencies-- List currencies
Environment Variables
Required for stdio mode / Optional for HTTP mode (enables API key auth)
Variable | Description |
| UnoPim API URL (e.g., |
| OAuth2 Client ID |
| OAuth2 Client Secret |
| API username |
| API password |
Optional
Variable | Default | Description |
|
| Default locale |
|
| Default channel |
|
| Default currency |
|
| HTTP server port |
| Value of | API key for shared-credential auth |
|
| OAuth token expiry |
| unset | Set to |
Docker
The server is packaged as a Docker image (node:20-alpine). See the unopim-deploy repo for the Docker Compose setup.
docker compose build mcp
docker compose up -dDevelopment
npm install
npm run build # Build TypeScript
npx tsc --noEmit # Type check onlyProject Structure
src/
index.ts # Stdio transport entry point
index-http.ts # HTTP transport with OAuth + per-session servers
config.ts # Environment configuration
auth/
oauth.ts # UnoPim OAuth2 token management
mcp-oauth.ts # MCP OAuth server (PKCE, stores, token exchange)
login-form.ts # HTML login form with localStorage
client-registry.ts # Per-user UnoPimClient cache
client/
unopim-client.ts # HTTP client with retry logic
tools/
registry.ts # Shared tool registry
register-all.ts # Tool registration
schema.ts # Schema discovery
attributes.ts # Attribute CRUD
families.ts # Family management
categories.ts # Category management
category-fields.ts # Category field management
groups.ts # Attribute groups
products.ts # Product CRUD + media upload
configuration.ts # Channels, locales, currencies
delete.ts # Delete operations
prompts/
index.ts # MCP prompt handlers
types/
errors.ts # Error types
oauth.ts # OAuth + MCP auth types
unopim.ts # UnoPim API typesTech Stack
Node.js 20, TypeScript
@modelcontextprotocol/sdk, zod
No other runtime dependencies -- OAuth uses Node.js built-in crypto
License
ISC
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/oledmansfeld/unopim-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server