Skip to main content

Typed async Python SDK for daimon MCP services.

Project description

daimon-sdk

Typed async Python SDK for processd-mcp.

daimon-sdk wraps the raw MCP tool surface exposed by processd-mcp and presents it as grouped Python APIs such as client.files.read() and client.exec.start_session(). The SDK keeps processd-standalone as the contract source of truth and focuses on:

  • connection and token wiring
  • typed request/response handling
  • structured tool error mapping
  • interactive session helpers
  • compatibility tests against a real processd-mcp binary

Install

pip install daimon-sdk

For local development:

pip install -e ".[dev]"

Quickstart

import asyncio

from daimon_sdk import DaimonClient


async def main() -> None:
    async with DaimonClient("http://127.0.0.1:8080/mcp") as client:
        runtime = await client.runtime.get_context()
        print(runtime.base_workdir)

        result = await client.files.glob("**/*.rs", path=runtime.base_workdir)
        print(result.filenames[:5])

        bash = await client.exec.bash("printf 'hello from processd\\n'")
        print(bash.stdout)


asyncio.run(main())

Raw MCP vs SDK

Raw MCP:

payload = await mcp_client.call_tool("Read", {"file_path": "/tmp/demo.txt"})

SDK:

read = await client.files.read("/tmp/demo.txt")
print(read.file.content)

API Overview

  • DaimonClient(base_url, access_token=None, timeout_s=30.0)
  • await client.connect() / await client.close()
  • async with DaimonClient(...) as client
  • client.runtime.get_context()
  • client.files.read() / write() / edit() / glob() / grep()
  • client.exec.bash() / start_session()
  • SessionHandle.write() / poll() / wait_for_exit() / close()
  • client.web.fetch()
  • client.raw.call_tool()

Local Testing

The SDK compatibility tests expect a sibling checkout of processd-standalone:

e2b-project/
  processd-standalone/
  processd-sdk/

Run tests with an environment that already has the dev dependencies installed:

PYTHONPATH=src python -m pytest -q

The E2E suite builds and launches ../processd-standalone/target/debug/processd-mcp.

Release

Releases are published from GitHub Actions when a tag matching v* is pushed.

git tag v0.1.0
git push origin v0.1.0

The tag version must match pyproject.toml's project version.

Project details


Download files

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

Source Distribution

daimon_sdk-0.2.0.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

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

daimon_sdk-0.2.0-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file daimon_sdk-0.2.0.tar.gz.

File metadata

  • Download URL: daimon_sdk-0.2.0.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for daimon_sdk-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ce8f19039212d1ad3cd8677cc477fdf1ff7f69082e1b09d187da2853d40bc304
MD5 ca3283a4281b6545da6808a5b5040b1b
BLAKE2b-256 9d37dfddf1541890ea1b1407e06d1571c5c8b8288b0259220c520699832f5e3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for daimon_sdk-0.2.0.tar.gz:

Publisher: publish.yml on daimon-hq/processd-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file daimon_sdk-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: daimon_sdk-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for daimon_sdk-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 70b277c92e9cf31489dcd618a72394373fbbbdf7a042bdcae7a04e5c881f2ebf
MD5 fbdbc434b08cc64d4c92fb82a27f2dba
BLAKE2b-256 8418c3ca37458179b200cf38af5773f46d86f605f138d67cbf6f7c32ad8cad1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for daimon_sdk-0.2.0-py3-none-any.whl:

Publisher: publish.yml on daimon-hq/processd-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page