MCP server for ActionLayer — give Claude Code and other MCP hosts access to ActionLayer's browser-action catalog with human-in-the-loop credentials.
Project description
actionlayer-mcp
MCP server for ActionLayer — let Claude Code (and any MCP host) drive browser-based sites on your behalf.
Install
Get an API key from your ActionLayer dashboard at https://actionlayer.io, then:
claude mcp add --scope user actionlayer "uvx" "actionlayer-mcp" \
--env ACTIONLAYER_API_KEY="ak_…" \
--env ACTIONLAYER_API_URL="https://api.actionlayer.io"
Restart Claude Code and ask it to do something for you.
Usage from other MCP hosts
actionlayer-mcp
Works with Cursor, Cody, Codex, etc.
Env vars:
ACTIONLAYER_API_KEY— requiredACTIONLAYER_API_URL— defaults tohttps://api.actionlayer.io
Changelog
0.4.1
Payment-card approval flow (Phase 2 of the agent payments plan).
actionlayer_replynow acceptspayment_approved: boolfor tickets whose info_request includespayment_status. Users approve a charge against their card-on-file with one call.actionlayer_get_task/actionlayer_next_actionsurfacecard_brand,card_last4,amount_usd, andpayment_statuson the info_request payload so an agent can prompt the user with "Approve $X.XX charge on your card ending ?"- The card PAN itself NEVER crosses the MCP boundary. Operator-
side reveal is a separate HTTPS-only endpoint gated by Auth0 +
claim-holder check + one-shot semantics. This is by design per
docs/agent_payments_plan.md.
0.4.0
Backwards-incompatible — public API taxonomy changed.
- Ticket
statecollapses the in-flight phases (queued,planning,executing,blocked_on_operator) into a single public valuepending. Polling code that branched on the individual sub-phases (e.g.if state == "executing") must switch tostate == "pending". Terminal states (completed,failed,cancelled) andblocked_on_userare unchanged. live_view_urlis no longer returned by the public tools (actionlayer_invoke_action,actionlayer_get_action_ticket). It was an operator-side handoff URL; user-facing callers should drive the task via pollingactionlayer_get_action_ticketand responding toblocked_on_userprompts.actionlayer_invoke_actionsync response now usesoutcome="queued"(instead ofoutcome="blocked") when the task escalated to an asynchronous queue (operator pickup, long-running browser run). Callers handlingoutcomeneed to add aqueuedbranch: pollactionlayer_get_action_ticket.- Terminal tickets now carry a free-text
reasonfield summarising the outcome (derived fromresult.summaryon completed,erroron failed). Pre-existingresult/errorfields preserved for callers that want the raw structured payload.
0.3.1
- Update default API URL to
https://api.actionlayer.io(api.action-layer.devstill redirects, but the new host is the current canonical name).
0.3.0
- Browser-only catalog. Human-in-the-loop credentials.
0.2.0
- Async-by-default dispatch for browser actions + ticket polling tool.
0.1.0
- Initial release.
License
MIT
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 actionlayer_mcp-0.4.1.tar.gz.
File metadata
- Download URL: actionlayer_mcp-0.4.1.tar.gz
- Upload date:
- Size: 18.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5eb7c4849f5507c61e2015b13dd217fb78ed00cdc8adcaca10eb2018bfa7d73b
|
|
| MD5 |
7e62568003f4d4b2cb3368dee3a7bf9d
|
|
| BLAKE2b-256 |
10aa1beefd8a7b9e0202a59c076fdbcf288c1b17697801e70cd6995d7d51f84a
|
File details
Details for the file actionlayer_mcp-0.4.1-py3-none-any.whl.
File metadata
- Download URL: actionlayer_mcp-0.4.1-py3-none-any.whl
- Upload date:
- Size: 19.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b9959d9c77a17c0713c5f57c9925fbbc82c60ccbdfaf1f7e31a55a6d2375890
|
|
| MD5 |
3edbd7a2df97ade6919f4502a409de7b
|
|
| BLAKE2b-256 |
70bac2de37d22049f69a4030698550b35d803f166595b36a178a462343370884
|