Actions Runtime (Action Server)
actions-runtime is the canonical community PyPI distribution for the Action Server. It provides the action-server command and the actions.server module for serving Python functions to AI agents through MCP and OpenAPI.
A tool or action is a Python function with declared inputs and outputs served by the Action Server. The server also manages the action lifecycle and provides full run traceability.
1. Install Action Server
Install the canonical community distribution:
python -m pip install actions-runtime
This installs the action-server command in the active Python environment.
Standalone release binaries
The standalone binaries are an alternative compatibility path when a Python environment is not wanted. The 1.0.1 binaries are unsigned and are not publisher-signed or notarized.
For macOS (Apple Silicon)
curl -o action-server https://github.com/joshyorko/actions/releases/download/actions-runtime-1.0.1/actions-runtime-1.0.1-macos-arm64
chmod a+x action-server
For Windows
curl -o action-server.exe https://github.com/joshyorko/actions/releases/download/actions-runtime-1.0.1/actions-runtime-1.0.1-windows64.exe
# Add to PATH or move to a folder that is in PATH
setx PATH=%PATH%;%CD%
For Linux
curl -o action-server https://github.com/joshyorko/actions/releases/download/actions-runtime-1.0.1/actions-runtime-1.0.1-linux64
chmod a+x action-server
# Add to PATH or move to a folder that is in PATH
sudo mv action-server /usr/local/bin/
2. Run your first MCP tool
# Bootstrap a new project using this template.
# You'll be prompted for the name of the project (directory):
action-server new
# Start Action Server
cd my-project
action-server start
👉 You should now have an Action Server running locally at: http://localhost:8080, so open that in your browser and the web UI will guide you further.
MCP compatibility
/mcp supports the MCP 2026-07-28 per-request contract through the Python
MCP SDK v2. Clients use server/discover and then send calls without an
initialize/initialized exchange or Mcp-Session-Id. The legacy /sse
endpoint and initialization/session-era compatibility path are intentionally
not provided.
What do you need in your Action Package
An Action Package is currently defined as a local folder that contains at least one Python file containing an action entry point (a Python function marked with @action -decorator from actions).
The package.yaml file is required for specifying the Python environment and dependencies for your Action (RCC will be used to automatically bootstrap it and keep it updated given the package.yaml contents).
Note: the
package.yamlis optional if the action server is not being used as a standalone (i.e.: if it was pip-installed it can use the same python environment where it's installed).
Community RCC Fork
This Action Server uses the joshyorko/rcc v18.19.3 community fork, which provides:
- Faster startup - no proprietary cloud service calls
- Official sources - downloads micromamba directly from conda-forge instead of Robocorp CDN
- Decoupled infrastructure - works fully offline after initial environment bootstrap
- Security hardening - includes upstream archive extraction and TLS fixes, built with Go 1.25.7
Environment caching means subsequent startups are near-instant once the holotree is built.
Bootstrapping a new Action
Start new projects with:
action-server new
Note: the action-server executable should be automatically added to your Python installation after pip install actions-runtime; if it was not, use python -m actions.server instead.
After creating the project, it's possible to serve the actions under the current directory with:
action-server start
For example: When running action-server start, the action server will scan for existing actions under the current directory, and it'll start serving those.
After it's started, it's possible to access the following URLs:
/index.html: UI for the Action Server./openapi.json: Provides the openapi spec for the action server./docs: Provides access to the APIs available in the server and a UI to test it.
Robot run artifacts
After a Robot task exits, Runtime retains regular files from its configured
artifactsDir, or output when absent, including failure diagnostics. List
them at /api/runs/{run_id}/artifacts and download them through the existing
artifact endpoints with your configured Runtime credentials.
Collection captures the trusted output tree as it exists at task completion. Pre-existing files can be included. Avoid concurrent writers while Runtime collects the files; collection does not provide an atomic tree snapshot or prove which invocation created them. Later source changes do not alter the retained copies.
Output roots must be canonical relative paths inside the Robot package.
Runtime rejects links, hardlinks, special files, portable-name collisions and
reserved names such as env.json and __action_server_*. Limits are 50 MiB per
file, 500 MiB total, 10,000 entries and depth 32. A collection error marks the
Run failed and preserves its console and any complete files already retained.
The selected Robot configuration must fit within 64 KiB.
Documentation
Explore our docs for extensive documentation.
Changelog
Clean-break Actions Runtime releases and actions-runtime-* tags use the
Actions Runtime changelog. The historical
Action Server changelog
is retained for the older action-server-v1.2.x delivery line.
Maintainer and attribution
Maintained by Joshua Yorko. Upstream copyright and license attribution is preserved in NOTICE.md and LICENSE.
Metadata
Release files for actions-runtime 1.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| actions_runtime-1.0.4.tar.gz | 1.3 MB | Without provenance | Details for actions_runtime-1.0.4.tar.gz |
Built distributions (wheels)
Total release size: 81.0 MB
Release files / actions_runtime-1.0.4.tar.gz
| Download URL | actions_runtime-1.0.4.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ad6a88dabd10b0e3ac00d747697c0a9f77ee9b98d431709c48cc08a6e6ddc716
|
|
BLAKE2b-256 checksum How to use checksums |
2a2674157a153546866b9792f281b9cbb909a08b4664c989d28b256a42e4bad5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.15
|
Release files / actions_runtime-1.0.4-cp313-cp313-win_amd64.whl
| Download URL | actions_runtime-1.0.4-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 11.9 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
3e464609d66bb29a2008fdaf5a63dac94e1f70b9c0a9bfede6915a8d65355b68
|
|
BLAKE2b-256 checksum How to use checksums |
e4650152e244eb922436ccef2ce66e246096e9af808a0d98dfe7af214a005f54
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.15
|
Release files / actions_runtime-1.0.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | actions_runtime-1.0.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 14.4 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
f87dacccffd82066d5a2ecbad07ee825ad9fcab75af73c5500c1858c8e0f620b
|
|
BLAKE2b-256 checksum How to use checksums |
54bcffa2a4f96eee6fe043a68391814f1c2a71c771dfed791fe9994a91f810c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.15
|
Release files / actions_runtime-1.0.4-cp313-cp313-macosx_12_0_arm64.whl
| Download URL | actions_runtime-1.0.4-cp313-cp313-macosx_12_0_arm64.whl |
|---|---|
| Size | 13.5 MB |
| Tags | CPython 3.13 macOS 12.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
12a23994cb20f71e3b886b160eaf2375b5aa41cbe9801734bf1077c210ee8298
|
|
BLAKE2b-256 checksum How to use checksums |
c23bf7e4b50ced4f91fb4821a08595c7c51c84d346cb936eea0078d656908332
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.15
|
Release files / actions_runtime-1.0.4-cp312-cp312-win_amd64.whl
| Download URL | actions_runtime-1.0.4-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 11.9 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
bc6c426f1634a4fcd6a3dee1570ec079b65cfd64acd94c1b206744977ca3fd7f
|
|
BLAKE2b-256 checksum How to use checksums |
c0037d57bf09036f3c6b872435d17719a2be1166c110fe07b6e9e657c584d78f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.15
|
Release files / actions_runtime-1.0.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | actions_runtime-1.0.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 14.4 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
ab0925ddfbc804d4790b5bd839461310b851c3dedf5f4781e4b4c8472bcf5eba
|
|
BLAKE2b-256 checksum How to use checksums |
94d34b019821c0333af2b21a0ce8765e5551166e77749c1452604ab6c5653d0e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.15
|
Release files / actions_runtime-1.0.4-cp312-cp312-macosx_12_0_arm64.whl
| Download URL | actions_runtime-1.0.4-cp312-cp312-macosx_12_0_arm64.whl |
|---|---|
| Size | 13.5 MB |
| Tags | CPython 3.12 macOS 12.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5b2a1bf8b32473d9a5ae2798f7389320f2236da4b8f0e5b70613cda9d74aaa8f
|
|
BLAKE2b-256 checksum How to use checksums |
358d6bef2f87aa434c56f9ff9e6c46d909048be16622fe6e92037483c849d76a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.15
|
Security for actions-runtime 1.0.4
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.