Skip to main content

Marona Python SDK

Universal Model Gateway and MCP/Skill SDK for Python 3.10+.

Install

pip install marona==1.1.3

Authentication

A project-scoped Marona Developer Key is mandatory for every client and runtime mode. Pass api_key explicitly or set MARONA_API_KEY.

from marona import Marona

marona = Marona(api_key=marona_developer_key)

Missing, invalid, revoked, and expired keys raise typed MaronaAuthenticationError subclasses. Create and rotate keys in the Marona Developer Portal.

Universal Model Gateway

response = marona.responses.create(
    model="marona/auto",
    input="Review this architecture.",
    routing={
        "strategy": "balanced",
        "allowed_models": [
            "marona/auto",
            "marona/company-assistant",
        ],
    },
)

print(response.output)

Every model name must use the marona/* namespace. marona/auto delegates selection to the project-scoped Model Registry; named aliases such as marona/company-assistant resolve there. Provider credentials and custom endpoints are configured once through the Marona Developer Portal or Model Registry API. They are write-only and never exposed through this package.

All calls—including registered Edge models—go through authenticated Marona Runtime. There is no direct-provider, local-executor, credential-cache, or public model-registration bypass.

Agents and Hub tools

from marona import Agent, Runner

tools = marona.hub.connect(apps=["sda-books"])
agent = Agent(
    name="Customer Assistant",
    model="marona/auto",
    instructions="Help clearly.",
    tools=tools,
)

result = Runner.run(
    agent,
    "Download Steps to Christ",
    user_id="customer_482",
    session_id="chat_91a7",
)
print(result.output)

The SDK also supports streaming, realtime, handoffs, delegation, A2A peers, validated function tools, lifecycle hooks, and published Marona Skills while keeping every model invocation behind the Universal Model Gateway.

Errors

MaronaError exposes code, request_id, retryable, required_action, retry_after_ms, and safe details. Typed subclasses cover authentication, namespace/model, credits, upstream service, custom model, billing, and Marona availability failures. Responses expose only safe routing fields, never upstream endpoints or raw provider payloads.

External MCP federation

tools = marona.hub.connect(apps=["microsoft-365"])

Marona manages the Microsoft OAuth client; each application user only follows the authorization URL returned by the first protected tool call and consents. Use the same runtime user_id afterward. The managed connection covers Outlook, Calendar, OneDrive, Excel, PowerPoint, and SharePoint, subject to the signed-in user's permissions and tenant policy.

An unscoped connect() returns every capability available to the developer key. External calls always pass through Marona's governed gateway; upstream credentials and direct external endpoints are never returned to the SDK.

Release

Version 1.1.3 is published to PyPI from tag python-v1.1.3 only after tests, wheel/sdist validation, and coordinated release checks succeed on main.

Metadata

Release files for marona 1.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for marona 1.1.3
File Size Uploaded Provenance Actions
marona-1.1.3.tar.gz 88.0 kB With provenance Details for marona-1.1.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for marona 1.1.3
File Interpreter ABI Platform Actions
marona-1.1.3-py3-none-any.whl Python 3 none any Details for marona-1.1.3-py3-none-any.whl

Total release size: 165.0 kB

Release files / marona-1.1.3.tar.gz

Download URL marona-1.1.3.tar.gz
Size 88.0 kB
Tags Source
SHA-256 checksum
How to use checksums
75f5b510cfae404dd7f03fd0d37f3e961d4e8cf81a6414f28cc5fc2204372c8d
BLAKE2b-256 checksum
How to use checksums
f6d48d551a2d530a1f1e2d78c27e42eb8aa367e8b021bb25cfae3da0b3073de7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 6, 2026.

Transparency log

Release files / marona-1.1.3-py3-none-any.whl

Download URL marona-1.1.3-py3-none-any.whl
Size 76.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
002f1e94385767dd0ab93a76a83429b8289cb8a01794607a0c47591b8a626cfb
BLAKE2b-256 checksum
How to use checksums
07ecdc4718298a51c2374678be6be56e0e8b5d6022deb59cf97a8da2c9a50d05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 6, 2026.

Transparency log

Security for marona 1.1.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for marona-1.1.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 6, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.1.3 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page