2026-09-04
Summary
New features
MCP servers
atoti_ai.AiConfig.mcp connects a session to other MCP servers and uses their tools as its own: they are offered to the LLM in chat and reported on the session’s own MCP endpoint.Level descriptions
atoti.Level.description joins atoti.Dimension.description, atoti.Hierarchy.description, and atoti.Measure.description to give Atoti UI users (including AI agents) more context about the data model.Improvements
Chat and Auto-Explain tuning
atoti_ai.AiConfig.chat_enabledserves a session with no chat at all.atoti_ai.AiConfig.dynamic_tool_discoverysends the LLM only the tools matching each request.atoti_ai.AiConfig.auto_explainbounds how many Auto-Explain analyses stay retrievable from the chat, and for how long.
2026-07-27
The changes below are relative to Atoti Python SDK
0.9.16.
Summary
New features
Atoti Intelligence
Atoti Intelligence has been stabilized:atoti_ai.Chatanswers natural-language questions about the data, powering the AI chat in Atoti UI. Fill in the newatoti.Dimension.descriptionto give it more context about the data model.atoti_ai.AutoExplainsurfaces the hierarchies and members that best explain a measure’s variation, speeding up root-cause analysis.AggregateProviders.recommenderanalyzes aCube’s query traffic and recommends the most impactfulAggregateProvidercoverage for it.
Limits plugin
Theatoti-limits plugin connects an Atoti session to a Limits server and adds the Limits app extension to Atoti UI.Query History
When theobservability plugin is enabled and atoti.SessionConfig.user_content_storage is not None, the history of executed queries is recorded and accessible in Admin UI’s Query history tab.Improvements
Upgraded dependencies
- Bumped the minimum required Python version to 3.12 as per NEP 29.
- Bumped the minimum required Pandas version to 3.0.3.
- Aligned Atoti Python SDK’s version with Atoti Server.
Going forward, each
6.2.xPython SDK release depends on the matching6.2.xServer release, making compatibility obvious at a glance.
Safer data loading default
atoti.Table.load(error_handling) defaults to "fail" instead of "log", so loading errors surface immediately instead of being silently logged.