Python SDK for the MACP Rust runtime
Project description
macp-sdk-python
Python SDK for the MACP Rust runtime.
What this package does
- Connects to the Rust runtime over gRPC
- Provides typed session helpers for all 5 standard coordination modes
- Maintains in-process projections for local state tracking
- Supports envelope builders, retry helpers, and structured logging
Important runtime boundary
This SDK calls the Rust runtime. The runtime does not call into this Python package. If you need runtime-driven business logic, run a Python agent/orchestrator as a separate process and let it communicate with the runtime over MACP transport.
Install
pip install macp-sdk-python
Quick start
Production (Bearer + TLS)
from macp_sdk import AuthConfig, DecisionSession, MacpClient
# TLS is the default; Bearer + expected_sender binds the session to this identity.
client = MacpClient(
target="runtime.example.com:50051",
auth=AuthConfig.for_bearer("tok-coord", expected_sender="coordinator"),
)
Local dev (runtime started with MACP_ALLOW_INSECURE=1)
client = MacpClient(
target="127.0.0.1:50051",
allow_insecure=True, # dev only
auth=AuthConfig.for_dev_agent("coordinator"),
)
Driving a decision
session = DecisionSession(client)
session.start(
intent="pick a deployment plan",
participants=["coordinator", "alice", "bob"],
ttl_ms=60_000,
)
session.propose("p1", "deploy v2.1", rationale="tests passed")
session.evaluate(
"p1", "approve", confidence=0.94, reason="low risk",
sender="alice", auth=AuthConfig.for_dev_agent("alice"),
)
session.vote(
"p1", "approve", reason="ship it",
sender="bob", auth=AuthConfig.for_dev_agent("bob"),
)
winner = session.decision_projection.majority_winner()
if winner and not session.decision_projection.has_blocking_objection(winner):
session.commit(
action="deployment.approved",
authority_scope="release-management",
reason=f"winner={winner}",
)
Supported modes
| Mode | Session Helper | Projection | Example |
|---|---|---|---|
| Decision | DecisionSession |
DecisionProjection |
examples/decision_smoke.py |
| Proposal | ProposalSession |
ProposalProjection |
examples/proposal_negotiation.py |
| Task | TaskSession |
TaskProjection |
examples/task_delegation.py |
| Handoff | HandoffSession |
HandoffProjection |
examples/handoff_escalation.py |
| Quorum | QuorumSession |
QuorumProjection |
examples/quorum_approval.py |
Development
# Setup
make setup # pip install -e ".[dev,docs]"
# Quality
make lint # ruff check
make fmt # ruff format
make typecheck # mypy strict
make test # unit tests
make test-all # lint + typecheck + all tests
make coverage # coverage report
# Build
make build # sdist + wheel
# Proto definitions (provided by macp-proto package)
make dev-link-protos # link local proto package for development
For local development against the runtime:
export MACP_ALLOW_INSECURE=1
export MACP_ALLOW_DEV_SENDER_HEADER=1
cargo run # in the runtime repo
Documentation
Full docs available in docs/ — build with mkdocs serve after make setup.
Architecture boundary
This SDK is a thin typed client library. It provides:
- Typed state models and action builders
- Session helpers (
propose(),vote(),commit()) - Local state projections (because
GetSessionreturns metadata only)
Business logic — voting rules, AI decision heuristics, policy enforcement — belongs in the orchestrator/agent layer above the SDK.
Known runtime limitations
GetSessionreturns metadata only (not mode state/transcript) — hence the local projection patternStreamSessionhas no late-attach handshake for already-running sessions- Business policy (majority, quorum, veto) belongs in your orchestrator/policy layer
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file macp_sdk_python-0.2.2.tar.gz.
File metadata
- Download URL: macp_sdk_python-0.2.2.tar.gz
- Upload date:
- Size: 42.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
daee98a4b104e0be4e3e1d826145e9daf0a7ff382560fc9b73a4bff4e882807b
|
|
| MD5 |
2032e5113b4ca1ade377be29ece18cc1
|
|
| BLAKE2b-256 |
695816088e33a2776689d6aaa7f8d226b9002ac4f692705ce67f11200f722420
|
Provenance
The following attestation bundles were made for macp_sdk_python-0.2.2.tar.gz:
Publisher:
publish.yml on multiagentcoordinationprotocol/python-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
macp_sdk_python-0.2.2.tar.gz -
Subject digest:
daee98a4b104e0be4e3e1d826145e9daf0a7ff382560fc9b73a4bff4e882807b - Sigstore transparency entry: 1339763201
- Sigstore integration time:
-
Permalink:
multiagentcoordinationprotocol/python-sdk@0c97d0a95335b3109d6724700f887cb28bfb88a5 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/multiagentcoordinationprotocol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0c97d0a95335b3109d6724700f887cb28bfb88a5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file macp_sdk_python-0.2.2-py3-none-any.whl.
File metadata
- Download URL: macp_sdk_python-0.2.2-py3-none-any.whl
- Upload date:
- Size: 52.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d3902746b24b6e31ac274025f780e854f7a94457f8844ca54da122597869338
|
|
| MD5 |
0101c41e5ba28712af4506e429ad3bf9
|
|
| BLAKE2b-256 |
0880d2c3714d24cc7741e8a083f7b4f7d159b979bafdc42ccff6dfa75f3b4e6d
|
Provenance
The following attestation bundles were made for macp_sdk_python-0.2.2-py3-none-any.whl:
Publisher:
publish.yml on multiagentcoordinationprotocol/python-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
macp_sdk_python-0.2.2-py3-none-any.whl -
Subject digest:
7d3902746b24b6e31ac274025f780e854f7a94457f8844ca54da122597869338 - Sigstore transparency entry: 1339763239
- Sigstore integration time:
-
Permalink:
multiagentcoordinationprotocol/python-sdk@0c97d0a95335b3109d6724700f887cb28bfb88a5 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/multiagentcoordinationprotocol
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0c97d0a95335b3109d6724700f887cb28bfb88a5 -
Trigger Event:
push
-
Statement type: