axonis-client — Python Developer SDK
Status: Implemented — repo (atlasfl-client/) ships as PyPI package axonis-client v1.5.2; import root remains athena for backward compatibility. Rename complete. Re-export path through axonis-core is partial: the SDK currently maintains its own athena/core/{rest_client,mcp_client}.py rather than re-exporting from axonis.http.client / axonis.mcp.client (per the 2026-05-07 axonis-core restructure). Full re-export migration is open work.
Package: axonis-client (PyPI: axonis-client, import name: athena)
Depends on: platform.axonis-core
Milestone: P2 (after axonis-core is published)
Purpose
axonis-client is the Python SDK for developers building against the Axonis platform. It provides:
1. Authenticated REST client for all services
2. Userspace CRUD classes for all domain objects (via axonis-core)
3. Optional MCP client for agentic interactions
4. Service-aware routing (knows which service owns which objects)
Formerly atlasfl-client. Renamed to axonis-client to reflect the platform rebrand.
Import Name
The package installs as axonis-client but imports as athena for backward compatibility:
from athena.core.rest_client import Client
from athena.userspace.dataset import DataSet
from athena.core.mcp_client import MCPClient
Package Structure
axonis-client/
athena/
__init__.py # Client initialization, get_client()
core/
__init__.py
rest_client.py # RestClient (OAuth2 + requests)
mcp_client.py # MCPClient (async, Bearer token auth)
userspace/
__init__.py # Re-exports all classes from axonis-core
schema.py # Re-exports from axonis-core
logger.py # Re-exports from axonis-core
exceptions.py # Re-exports from axonis-core
misc.py # Re-exports from axonis-core
constants.py
utils.py
The userspace/ module re-exports directly from axonis.userspace:
# athena/userspace/__init__.py
from axonis.userspace import *
from axonis.userspace import __all__
Dependencies
[project]
dependencies = [
"axonis-core",
"requests>=2.28.1",
"Authlib>=0.15.5",
]
[project.optional-dependencies]
mcp = ["mcp>=1.26.0; python_version>='3.10'",
"httpx>=0.27.0; python_version>='3.10'",
"anyio>=4.0; python_version>='3.10'"]
No ML dependencies. No heavy packages.
Service-Aware Routing
The REST client supports routing to different services based on the target type:
from athena.core.rest_client import Client
client = Client(
username="analyst",
password="...",
domain="development.axonis.ai",
services={
"fusion": "https://development.axonis.ai/parallax",
"intelligence": "https://development.axonis.ai/cortex",
"userspace": "https://development.axonis.ai/unified-dataspace",
"prism": "https://development.axonis.ai/prism",
}
)
# Automatically routes to the correct service:
from athena.userspace.fusion import Lens
lens = Lens()
lens.read() # → GET https://development.axonis.ai/parallax/api/v2/lens
The routing is based on Schema.INDICES — the ES index name maps to a service:
- fusion index → parallax service
- intelligence index → cortex service
- userspace index → unified-dataspace service
- alerts index → sentinel service
If no services dict is provided, all requests go to the single domain URL (backward compatible).
MCP Client
from athena.core.mcp_client import MCPClient
# Connect to oracle (aggregated tools)
async with MCPClient("https://development.axonis.ai/oracle/agentspace", token="...") as client:
tools = await client.list_tools()
result = await client.call_tool("fusion_run_start", {...})
# Or connect to a specific service directly
async with MCPClient("https://development.axonis.ai/parallax/agentspace", token="...") as client:
result = await client.call_tool("fusion_run_start", {...})
Migration from atlasfl-client
- ✓ Rename package from
atlasfl-clienttoaxonis-client(repo dir is stillatlasfl-client/; PyPI package andpyproject.toml nameareaxonis-client). - Open: Replace local UDS/schema/rest_client/mcp_client with re-exports from axonis-core. After the 2026-05-07 restructure the upstream paths are:
axonis.http.client(notaxonis.rest_client)axonis.mcp.client(notaxonis.mcp_client)axonis.uds,axonis.schema,axonis.exceptions,axonis.loggerThe SDK should turnathena/core/{rest_client,mcp_client}.py,athena/{schema,logger,exceptions}.py, and theathena/uds/shim into thin re-export modules pointing at these new paths.- ✓ Add
servicesparameter toRestClientfor multi-service routing. - ✓ Keep
athenaas the import name.
Existing code (from athena.userspace.dataset import DataSet) continues to work unchanged.
Test Expectations
- REST client auth tests (password, client_credentials, token refresh)
- Service routing tests (verify correct URL for each target type)
- MCP client connection + tool call tests
- Backward compatibility tests (single-domain mode)
- All userspace CRUD roundtrip tests (mock HTTP)
Depends on: platform.axonis-core