AutoID Product Catalog & Support
Read-only AutoID Romania MCP for product search, live stock/prices, specs, and technical support.
Open source Repository Open in the app JSON README (API)
About
Read-only AutoID Romania MCP for product search, live stock/prices, specs, and technical support.
Details
- Kind
- MCP servers
- Topic
- E-commerce & business
- Publisher
- ro.autoid
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 0.3.0
- Open pull requests
- 2
- Last push
- 2026-09-12T06:19:30Z
- Repository state
- ativo
- Language
- Python
- Added
- 2026-09-11 09:04:45
- Updated
- 2026-09-11 09:04:45
- Origin id
ro.autoid/autoid-support
README
# AutoID MCP Server v0.3.1
Read-only MCP server over the AutoID canonical WordPress/WooCommerce API.
This release includes the product, offer, grouped-variant and related-product behavior validated with the AutoID canonical API plugin v0.3.9.
## MCP tools
- `search_products`
- `get_product_group`
- `list_product_variants`
- `get_product`
- `get_product_offer`
- `get_related_products`
- `get_related_products_summary`
- `search_support`
- `fetch_support`
- `autoid_support_health`
- `autoid_api_health`
## Source of truth
The MCP server does not read WordPress SQL and does not calculate commercial or compatibility data itself. It reads the canonical API at:
`https://www.autoid.ro/wp-json/autoid-ai/v1`
Authoritative commercial fields:
- exact SKU MSRP EUR ex VAT: `pret_lista`
- exact SKU AutoID price EUR ex VAT: `pret_autoid_euro`
- grouped catalog MSRP from: `grp_pret_lista_mic`
- grouped catalog AutoID from: `grp_pret_autoid_mic`
- AutoID stock: `stock_autoid`
- distribution stock: `stock_distributie`
For a current exact-SKU price/stock answer, use `get_product_offer`. For Romanian customer-facing price output, use the canonical `ron_display` projection and prefer the inc-VAT value. RON is sourced from WooCommerce `_regular_price` / `_sale_price`; do not convert authoritative EUR prices into RON inside MCP.
## RON display pricing
Canonical API v0.3.9 adds a compact RON projection without changing commercial authority.
Exact SKU cards use `pricing.ron_display`; exact live offers use `price.ron_display`. Typical fields are `msrp_ex_vat`, `msrp_inc_vat`, `autoid_ex_vat`, and `autoid_inc_vat`. Grouped products use FROM fields such as `msrp_from_inc_vat` and `autoid_from_inc_vat`.
Rules:
- customer-facing Romanian answer: prefer RON `inc_vat`
- B2B/ex-VAT context: RON `ex_vat` may also be shown
- EUR `pret_lista` / `pret_autoid_euro` remain the commercial authority
- RON values are WooCommerce storefront display/validation data
- never calculate RON by applying an FX rate to the EUR authority inside MCP
## Related-product contract
`get_related_products` reads:
`/wp-json/autoid-ai/v1/relations/{sku-or-model}`
Supported relation types:
- `accessory` - stock-managed
- `consumable` - stock-managed
- `software` - not stock-managed
- `service_contract` - not stock-managed
- `all`
Compatibility is accepted only from the canonical API's `product_tag` evidence. WooCommerce `product_cat` determines whether the related entity is an accessory, consumable, software item or service contract.
For accessories and consumables, MCP defaults to `availability=available`:
`stock_autoid > 0 OR stock_distributie > 0`
The canonical API ranks AutoID stock before distribution-only stock. Out-of-stock items are intentionally extra catalog information and are not returned by default. Request `availability=out_of_stock` or `availability=all` only when needed.
For large consumable sets, filter using an exact category slug. Validated ZT610 examples include:
- `ribboane-imprimanta`
- `role-de-etichete`
- `intretinere-imprimante`
`get_related_products_summary` queries `availability=all` with a one-item page, then returns a compact projection of the canonical summary. Use it for total compatibility counts and out-of-stock counts without loading hundreds of catalog items into MCP context.
## Validated datasets
MC9300 full relation graph at validation time:
- 85 accessories
- 23 software entities = 22 exact SKUs + 1 grouped product
- 130 service contracts
- 0 consumables
- 238 related entities total
ZT610 full relation graph at validation time:
- 85 accessories
- 752 consumables
- 29 software entities = 28 exact SKUs + 1 grouped product
- 69 service contracts
- 935 related entities total
ZT610 consumables at validation time:
- 32 with AutoID stock
- 206 supplier-only
- 514 out of stock
These numbers are validation snapshots, not hard-coded production data. MCP always reads the live canonical API.
## Requirements
- Node.js 20+
- public HTTPS hostname, recommended `mcp.autoid.ro`
- outbound HTTPS access to `www.autoid.ro`
No WordPress DB access, WooCommerce API key or WordPress administrator credentials are required.
## Fresh install
```bash
unzip autoid-mcp-v0.3.1.zip
cd autoid-mcp-v0.3.1
npm install
cp .env.example .env
npm run build
npm run smoke:api
npm start
```
Environment variables:
```env
AUTOID_API_BASE=https://www.autoid.ro/wp-json/autoid-ai/v1
MCP_PUBLIC_HOST=mcp.autoid.ro
PORT=3000
AUTOID_API_TIMEOUT_MS=15000
```
The public MCP endpoint is:
`https://mcp.autoid.ro/mcp`
HTTP process health:
`https://mcp.autoid.ro/health`
Canonical API readiness check:
`https://mcp.autoid.ro/ready`
## Upgrade from v0.1.0 with systemd
Assuming the live application directory is `/opt/autoid-mcp`:
```bash
sudo systemctl stop autoid-mcp
sudo cp -a /opt/autoid-mcp /opt/autoid-mcp-backup-v0.1.0
sudo rm -rf /opt/autoid-mcp
sudo mkdir -p /opt/autoid-mcp
sudo cp -a ./autoid-mcp-v0.3.1/. /opt/autoid-mcp/
sudo cp /opt/autoid-mcp-backup-v0.1.0/.env /opt/autoid-mcp/.env
cd /opt/autoid-mcp
sudo npm install
sudo npm run smoke:api
sudo npm run build
sudo chown -R www-data:www-data /opt/autoid-mcp
sudo cp deploy/autoid-mcp.service /etc/systemd/system/autoid-mcp.service
sudo systemctl daemon-reload
sudo systemctl enable autoid-mcp
sudo systemctl restart autoid-mcp
sudo systemctl status autoid-mcp
```
Then verify:
```bash
curl -s https://mcp.autoid.ro/health
curl -s https://mcp.autoid.ro/ready
```
## Docker
The included Dockerfile intentionally uses `npm install` because this release archive does not include a generated lock file.
```bash
docker compose -f deploy/docker-compose.yml up -d --build
```
The container binds only to `127.0.0.1:3000`; expose it through the supplied Nginx reverse-proxy configuration.
## First MCP validation
After deployment, validate these tool calls in an MCP client:
```text
autoid_api_health({})
get_product_group({ model: "MC9300" })
list_product_variants({ model: "MC9300", availability: "available", limit: 20 })
get_product_offer({ sku: "MC930B-GSHDG4RW" })
get_related_products({ target: "MC9300", relation_type: "accessory", availability: "available", limit: 20 })
get_related_products({ target: "ZT610", relation_type: "consumable", category: "ribboane-imprimanta", availability: "available", limit: 20 })
get_related_products_summary({ target: "ZT610", relation_type: "consumable" })
```
## HestiaCP deployment note
If the host is managed by HestiaCP and a domain template already proxies `mcp.autoid.ro` to port `3000`, do not overwrite Hestia Nginx or Certbot configuration. Replace/build only the application files and restart the existing Node process through the host administrator's preferred supervisor.
## Security
v0.3.1 is read-only. It exposes no WordPress credentials and performs no writes. The canonical API remains the data and security boundary.
Before adding write tools such as RFQ creation, add authentication, authorization, audit logging and abuse controls separately.
## Public root
Opening `https://mcp.autoid.ro/` in a browser returns a small human landing page with links to `/health`, `/ready`, and `/mcp`. The Node process binds to `127.0.0.1:3000` and is intended to be published only through the existing HestiaCP/Nginx reverse proxy.
## Support Center tools — v0.3.1
The public endpoint `https://mcp.autoid.ro/mcp` now exposes the existing catalog tools plus three Support Center tools:
- `search_support` — search models, manuals, drivers, firmware, software, videos and troubleshooting resources.
- `fetch_support` — fetch one exact `model:<id>` or `resource:<id>` returned by search.
- `autoid_support_health` — verify the read-only Support Center source.
Support data is proxied from the existing first-party AutoID Support MCP source (`AUTOID_SUPPORT_MCP_URL`, default `https://www.autoid.ro/mcp/`). The Node service does not read WordPress SQL, filesystem or admin APIs. Product data continues to come from `AUTOID_API_BASE`.
`search_support` is intent-aware in v0.3.1: it merges the original query with model-wide and requested-resource-type searches, deduplicates results, and ranks requested types above generic resources. A multi-intent query such as `MC9300 firmware manual` should surface both the firmware/LifeGuard entry and the documentation/manual entry before unrelated generic resources.
For chat integrations, the recommended OpenAI Responses API configuration is one read-only remote MCP tool pointing to `https://mcp.autoid.ro/mcp`, with an explicit `allowed_tools` list and `require_approval: never`. Current price/stock questions should use `get_product_offer`; technical support resources should use `search_support` followed by `fetch_support`.