Skip to main content

c3po-sdk

Python SDK, CLI, and MCP server for the C3PO research platform.

Installation

uv tool install c3po-sdk

Modules

Client (c3po_sdk.client)

Python SDK for the C3PO API.

from c3po_sdk.client.client import C3poClient

async with C3poClient() as client:
    cursor: str | None = None
    while True:
        page = await client.datasets.list(last_evaluated_key=cursor, limit=50)
        for dataset in page.items:
            ...
        if not page.has_more:
            break
        cursor = page.last_evaluated_key

CLI (c3po_sdk.cli)

c3po --help

CLI commands

Global options (where supported): --output / -o (rich | plain | json), --profile, --no-pager (skip paging for JSON on a TTY), --output-file / -O PATH (write JSON to a file; requires -o json), --version / -V. Set C3PO_NO_PAGER=1 to disable paging without a flag. Use c3po <group> <command> --help for flags and arguments.

auth

  • c3po auth status

configure

  • c3po configure auth

datasets

  • c3po datasets list
  • c3po datasets get
  • c3po datasets update
  • c3po datasets tree
  • c3po datasets assets

kb (analytics knowledge base — POST /v1/kb/query: NL question → generated SQL and executed result rows in one response)

  • c3po kb query [QUESTION] — pass the question as an argument or pipe text on stdin; use --output json for the raw sql / columns / rows object.
  • Timeouts: In CDK this route uses the streaming API Lambda with a 15-minute Lambda and API Gateway integration timeout (c3po_backend/services/api/_constructs/api.py). The SDK applies the same ceiling for the HTTP read timeout so long NL2SQL + Redshift runs are not cut off early by the default httpx limits used elsewhere.

nodes (all subcommands take a NODE_ID unless noted)

  • c3po nodes get NODE_ID — node details; optional --tree for dataset subtree
  • c3po nodes update NODE_ID--name, --description
  • c3po nodes reset NODE_ID — clear pipeline outputs (--force / -f)
  • c3po nodes cluster NODE_ID — cell clustering (--obs-variable, repeatable --obs-values, --run-pipeline)
  • c3po nodes assets NODE_ID — presigned asset URLs; --download to fetch files

nodes pipeline

  • c3po nodes pipeline run NODE_ID — start execution (see --help for Leiden / IDS params); --watch / --no-watch
  • c3po nodes pipeline list NODE_ID — paginated history (--all / -a, --limit)
  • c3po nodes pipeline status NODE_ID EXECUTION_ID — Step Functions payload; --watch to poll until terminal

nodes programs (gene programs for a node)

  • c3po nodes programs list NODE_ID — paginated (--all / -a, --limit)
  • c3po nodes programs get NODE_ID PROGRAM_ID — full program record

nodes clusters (cell clusters for a node)

  • c3po nodes clusters list NODE_ID — paginated (--all / -a, --limit)
  • c3po nodes clusters get NODE_ID CLUSTER_ID — full cluster record

tenants

  • c3po tenants me
  • c3po tenants users list
  • c3po tenants credentials generate
  • c3po tenants credentials regenerate

users

  • c3po users me
  • c3po users update
  • c3po users tenants list
  • c3po users tokens list
  • c3po users tokens create
  • c3po users tokens revoke

MCP Server (c3po_sdk.mcp)

See docs/MCP.md for detailed configuration instructions.

c3po.mcp

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

c3po_sdk-0.5.0.tar.gz (39.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

c3po_sdk-0.5.0-py3-none-any.whl (66.0 kB view details)

Uploaded Python 3

File details

Details for the file c3po_sdk-0.5.0.tar.gz.

File metadata

  • Download URL: c3po_sdk-0.5.0.tar.gz
  • Upload date:
  • Size: 39.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for c3po_sdk-0.5.0.tar.gz
Algorithm Hash digest
SHA256 c37c57ee5e12a1c2de424d3190e75c41369458b2b1939be8dbb79c5344b5dc9e
MD5 129899994dca172490e682f51ca6f3fc
BLAKE2b-256 2fb241761cb9026674046fa611053de3ef8bba43d1b7d2c4232cb1359285f5b7

See more details on using hashes here.

File details

Details for the file c3po_sdk-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: c3po_sdk-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 66.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for c3po_sdk-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 56a06d84a1e94cff21416854cb493dd1668aa488b0c438255fd1a095f7ecf6b9
MD5 2a40a5400e75293351fe88f40861947e
BLAKE2b-256 46081e0c8fae5a8ef18bf6b45862d340c93b6cb489fd490955eb7caa6926708d

See more details on using hashes here.

Release history Release notifications | RSS feed

1.0.0

2 files

0.6.0

2 files

This release

0.5.0 This release

2 files

0.4.2

2 files

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