MCP (AI connection)
Syncore runs its own MCP server (Model Context Protocol). With it an AI tool such as Claude Desktop, Claude Code or Cursor can see your products, orders and feeds and — if you allow it — make changes on your behalf, always with the permissions of the user who created the token.
URL and token
https://app.syncore.gr/mcp
- Transport: Streamable HTTP (
POSTwith JSON-RPC, one message per request, no SSE stream). Protocol versions:2025-06-18,2025-03-26,2024-11-05. - Authentication:
Authorization: Bearer <TOKEN>. - Create the token on the AI connection (MCP) page in Syncore. It is separate from REST API tokens:
mcp— read only,mcp+mcp:write— read and change (the "Changes" option when you create it).
- Limit: 120 requests per minute. An active subscription is required, as for the API.
Connecting clients
Claude Code
claude mcp add --transport http syncore https://app.syncore.gr/mcp --header "Authorization: Bearer <TOKEN>"
Claude Desktop
Settings → Developer → Edit Config, in claude_desktop_config.json (needs Node.js for mcp-remote):
{
"mcpServers": {
"syncore": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://app.syncore.gr/mcp", "--header", "Authorization:${SYNCORE_AUTH}"],
"env": { "SYNCORE_AUTH": "Bearer <TOKEN>" }
}
}
}
Cursor and other clients with headers
In .cursor/mcp.json or your client's equivalent file:
{
"mcpServers": {
"syncore": {
"url": "https://app.syncore.gr/mcp",
"headers": { "Authorization": "Bearer <TOKEN>" }
}
}
}
ChatGPT and claude.ai Connectors
These clients connect only with OAuth, which the Syncore MCP server does not support yet. For now use Claude Desktop, Claude Code, Cursor or another client that accepts a Bearer header.
Tools
Read (mcp token)
| Tool | What it does |
|---|---|
search_products |
Search products by name, SKU or EAN; price, stock, enabled state |
get_product |
Full detail of one product: supplier, prices, manual price, stock |
preview_price_change |
Preview a bulk price change (current and new price); changes nothing |
list_orders |
Latest orders, filtered by status or a search |
get_order |
One order with customer, addresses, lines and status history |
list_suppliers |
Catalog suppliers and whether each is active for you |
feeds_status |
Feed channels: active, product count, last build, logs |
dashboard_metrics |
Catalog counts, sales (revenue, orders, profit, margin, AOV) and profit per channel |
explain_feed_product |
Why a SKU is in or missing from the Skroutz / Shopflix feed |
Changes (mcp + mcp:write token)
| Tool | What it does |
|---|---|
set_products_enabled |
Enable / disable products in the feeds (respects the plan limit) |
set_manual_price |
Fixed manual price on one product (and its variants) |
apply_price_change |
Apply or schedule a bulk price change (run preview_price_change first) |
advance_order_status |
Move an order to its next status (pending → processing → shipped → completed) |
mark_order_shipped |
Ship with courier and tracking number; also sent to the order's channel |
issue_invoice |
Issue a myDATA invoice or retail receipt through Oxygen. Irreversible — a wrong document needs a credit note |
update_stock |
Set your own stock of a product (logged as a movement) |
toggle_supplier |
Activate / deactivate a supplier (respects the plan limit) |
rebuild_feed |
Queue a rebuild of a channel's feed file |
Resources: syncore://catalog/summary (catalog summary) and syncore://settings/summary (settings and connected services, no secrets).
Confirmation before changes
- With a read-only token the change tools are not even listed to the client; if called, they are refused.
- Change tools are declared with
readOnlyHint: falseand (exceptrebuild_feed)destructiveHint: true, so clients ask you to confirm before running them. Do not turn on auto-approve for them. - The server tells the model to preview bulk price changes first and to confirm with the user;
issue_invoiceasks for explicit confirmation.
Call history
Every call is logged. On AI connection (MCP) → Call history you see the tool, arguments, result (success, error, denied) and token, with filters and search. If you do not recognise something, revoke the token on the same page.