Repository navigation
Releases
Releases · Drums-Labs/drums-python-sdk
drums-sdk 0.3.0
Install: pip install drums-sdk==0.3.0
The MCP server and the drums command. The hosted MCP endpoint on the gateway (<gateway URL>/mcp) is live already;
this release adds the local server and the client methods for the new gateway routes.
drums mcp(the same aspython -m drums.mcp): a stdio MCP server with the 34 workspace and desktop tools of
drums/mcp_tools.json, the list the gateway serves.--env <computer id>binds the desktop tools to one computer;
--print-config claude|claude-local|cursor|codexprints the matching client snippet with a placeholder key.
Destructive tools (destroy_computer,delete_snapshot,revoke_api_key) are refused unless the caller passes
confirm: truein the tool arguments, before any request is sent; the MCP client, not Drums, owns the user's
approval of such a call.- Token transport rule, in the
Clientand the CLI: a token is sent over https, or over plain http to loopback
only (localhost,127.0.0.0/8,::1). Any otherhttp://URL (--url,DRUMS_URL) raises the new
drums.InsecureTransportbefore any request (exit 2 with a one-line message fromdrums mcp); the message names
the host and the opt-ins, never the token. Opt in withdrums mcp --allow-insecure-http,
DRUMS_ALLOW_INSECURE_HTTP=1, orconnect(..., allow_insecure_http=True)/Client(..., allow_insecure_http=True).
drums.check_transport(url, token, allow_insecure_http=None)is the check itself. - Redirect rule: the
Clientfollows a redirect only to the same origin (scheme, host, port) as the request, at
mostdrums.MAX_REDIRECTS(5) hops, and runs the transport check on every hop. A redirect to another origin
(another host or port, https to http) or a sixth hop raises the newdrums.RedirectRefusedbefore it is
followed, so the token is never re-sent elsewhere by way of aLocationheader (urllib's default follows and
re-sendsAuthorization). The message names the target's scheme, host and port only.308is followed like
307on every supported Python. drumsconsole script (drums mcp,drums version);mcp_tools.jsonships in the wheel.Client.runs,create_run,run,api_keys,create_api_key,revoke_api_key,auditfor the gateway's
/v1/runs,/v1/api-keysand/v1/auditroutes;call()takes extra headers.- The repository is a Claude Code plugin (
.claude-plugin/plugin.json,.mcp.json, thedrums-workflowskill). drums.hybridwrite_filesends chunks of 8000 base64 characters (the gateway caps a step argument at 8192);
guicode is at most 16384 characters.
drums-sdk 0.2.5
The first version published on PyPI, as drums-sdk (pip install drums-sdk; the import name stays drums). Versions 0.2.0 to 0.2.4 shipped as wheels sent with invites.
Everything below in the 0.2.x entries is included.
Packaging and release:
- Package metadata for PyPI: readme, classifiers, project URLs,
requires-python >= 3.9, no runtime dependencies. LICENSE,CHANGELOG.md,RELEASE.md, and a GitHub Actions release workflow (PyPI Trusted Publishing, TestPyPI
on demand).- Docstrings no longer point at documents that live in other repositories.
Since 0.2.4 (drumsd 0.4.2 and later):
Env.prefork(): prepare a fork right after an action, so a laterfork()from that point is fast.Reward.audit,Reward.audit_flags,Reward.trusted: the per-rollout reward audit drumsd returns (recheck,
redundant checker, scope, checker timeout or crash).trustedisTrueonly for a valid episode with a score and
no audit flag; an older drumsd sends no audit, sotrustedisNone, neverTrue.drums.hybrid: GUI, shell, file and app-API tools over one desktop (HybridTools, andTOOLSas JSON schema).drums.mcp: an MCP stdio server exposing the hybrid tools plusverify;python -m drums.mcp --env IDor
--create [--task task.json]. Token fromDRUMS_TOKEN, else the file inDRUMS_TOKEN_FILE, else
/etc/drums/token. A bound env is never closed on exit; a created one is.TaskUnsupported(422task_unsupported): the task needs the agent itself to act as root, which this execution
profile does not allow. Setup steps that need root are run by drumsd as provisioning and are supported.
Install: pip install drums-sdk==0.2.5 (import name drums). PyPI: https://pypi.org/project/drums-sdk/0.2.5/