Appearance
Changelog
Appendix
What changed in the AIOTIC API, the Python SDK and the MCP server, and what integrators need to do.
Guide 1.0.0 — verified against API 1.0.0 (2026-09)
First public edition.
- Full contract for the ERP receive endpoint and the processing webhook (also as OpenAPI
webhooks). - Public OpenAPI 3.1 document covering intake, status, ERP hand-off, rejected e-mails, master data and health.
- Sync guidance: event-driven first, hash-based reconciliation as safety net, initial load order and throughput.
- Python SDK 0.1.0: client, receive endpoint, pipeline, ERP adapter templates, sync engine, watcher, webhooks, CLI, mock tenant.
- LLM-native docs (
llms.txt,llms-full.txt) and the MCP server (docs mode + opt-in tenant mode). - Appendix with the headless-API proposal (corrections, cancel, signed events, batch upserts, change detection, scoped keys).
Availability
- Python SDK 0.1.1 (2026-10-04):
aiotic-sdkis on PyPI —pip install "aiotic-sdk[all]"— and on GitHub at https://github.com/devopscompanynl/aiotic-sdk-python, where every release carries the wheel and the sdist. Releases are announced below; the package's own changelog has the details. - Hosted MCP endpoint (2026-10-04):
https://mcp.aiotic.ai/mcpis live — docs mode, no key, the same tools as the package, always the latest published revision. Setup and limits: MCP server. - MCP package 0.2.1 (2026-10-05):
@aiotic/mcpis on npm —npx -y @aiotic/mcp— with build provenance, and on GitHub at https://github.com/devopscompanynl/aiotic-mcp, where every release has its tag and notes. Releases are announced below; the package's own changelog has the details.
Python SDK
Python SDK 0.1.2 — 2026-10-04
A fix to the package page only: the changelog and license links in the README now also work when read on PyPI. No code changed; there is nothing to do.
Python SDK 0.1.1 — 2026-10-04
The first release on PyPI, and a hardening release. What integrators need to know:
- Service start-up:
build_app()now refuses to start withoutAIOTIC_ERP_RECEIVE_KEY. The.envwritten byaiotic initalready has one; set it if you configured the service by hand.POST /erp/eventsexists only when a sync engine is configured and needs a key (AIOTIC_ERP_EVENTS_KEY, falling back to the receive key). - Uploads:
orders.upload()always sends arequest_id(generated when you pass none), so a request repeated after a lost response creates no second order. Requests the API does not declare idempotent are no longer retried on502,503or504; you see the error instead. - Identifiers: customer numbers, item numbers, language codes, file names and search text are percent-encoded in URLs; values with a slash, a dot segment or control characters raise
AioticIdentifierErrorbefore any request. - Sync: CSV and JSON files are validated before anything is sent,
reconcile()refuses an empty data set unlessallow_empty=True(--allow-empty), and batches keep the order of a record's events and the dependencies between records. - Receive endpoint: one receiver instance handles deliveries with the same
request_idone at a time; the ERP adapter contract now requires a unique external reference in the ERP, whichFunctionalApiAdapter(HTTP 409) andDataApiAdapter(unique column) resolve to the existing order. - Models: product responses may have no description; writing a product still requires one.
- Two clients that share one
Settingsobject no longer affect each other.
MCP server
MCP package 0.2.1 — 2026-10-05
A release of the package only; the server is the one of 0.2.0. The workflow that hands a release to npm passed the packed file by a path npm reads as a GitHub repository, so 0.2.0 never reached npm. 0.2.1 is the first version on npm (see Availability). The package's author contact is dev@aiotic.ai.
MCP package 0.2.0 — 2026-10-05
The first release of the package @aiotic/mcp: the server behind the hosted endpoint, to run on your own machine. What integrators need to know:
- Docs mode (the default) has the hosted endpoint's tools and answers from the edition of the guide and of the API document that the package carries. It needs no key and makes no network request. A package version is one fixed edition, so pin it when you need reproducible answers; the hosted endpoint stays the place for the latest revision.
- Tenant mode exists in the package only, on the stdio transport: with
AIOTIC_BASE_URLandAIOTIC_API_KEYin its environment the server adds read tools for your own test tenant or the mock. Write tools, deletes andsend_order_to_erpstay off until you switch them on. Tools and switches: MCP server. - Where to get it: npm, from 0.2.1 on (
npx -y @aiotic/mcp); 0.2.0 itself exists as a GitHub release only.
Setup for coding assistants — 2026-10-04
The MCP server page now has ready-made setup for the hosted endpoint: one-click links for VS Code, Cursor and Kiro; one-line commands for Claude Code, Codex, Copilot CLI, Gemini CLI, VS Code and Kiro CLI; configuration entries for JetBrains AI Assistant, Junie, Antigravity, Windsurf and OpenCode. Nothing changed on the server; an existing configuration keeps working.
Hosted endpoint — 2026-10-04
The docs-mode server is available at https://mcp.aiotic.ai/mcp (Streamable HTTP). What integrators need to know:
- Setup:
{ "mcpServers": { "aiotic": { "type": "http", "url": "https://mcp.aiotic.ai/mcp" } } }— no account, no key; the same tools as the package in docs mode (search_guide,get_page,list_endpoints,get_endpoint,get_schema,get_example,get_status_lifecycle). - Content: always the latest published revision of this guide. The revision is reported on connect (
serverInfo.version) and athttps://mcp.aiotic.ai/healthz. Pin the npm package once it is released when you need reproducible answers. - Limits: 60 requests at once per client address, then one per second; HTTP 429 with
Retry-Afterbeyond that. - Logging: requests are logged with the client address, country, MCP client, tool and arguments; entries are deleted after 180 days. Requests carrying a browser
Originheader are refused. Details on the MCP server page.
API changes tracked
This section lists changes to the public API as they are released.
2026-09-08
- The processing-artifacts download (zip of everything for a request) is no longer part of the public API. Use the per-file download (
GET /order/{request_id}/{filename}) instead.