actionlayer
MCP server for ActionLayer — the concierge for Claude Code (and any MCP host) that takes action in the physical world on your behalf: book, order, register, resolve.
Previously published as actionlayer-mcp. That project is no longer
maintained and stopped at 0.6.0 — install actionlayer instead.
Install
Get an API key from your ActionLayer dashboard at https://actionlayer.io, then:
claude mcp add --scope user actionlayer "uvx" "actionlayer" \
--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
Works with Cursor, Cody, Codex, etc.
Env vars:
ACTIONLAYER_API_KEY — required
ACTIONLAYER_API_URL — defaults to https://api.actionlayer.io
Changelog
0.7.1
Metadata-only. Repositions the listing copy — ActionLayer is a
concierge that takes action in the physical world, not just a
browser driver — and drops the repository URL from the published
metadata.
0.7.0
Renamed: published as actionlayer on PyPI from this release on
(actionlayer-mcp is orphaned and frozen at 0.6.0). No code changes.
The command is now actionlayer; actionlayer-mcp remains as an
alias. Includes everything from the unreleased 0.6.1.
0.6.1
No code changes. Embeds the MCP Registry mcp-name ownership token
so the package can be listed at registry.modelcontextprotocol.io.
0.4.2
Internal taxonomy scrub. No behavior change; tool descriptions and
next_action.prompt fallbacks rephrased so calling agents don't
surface ActionLayer's internal terminology in their own user-facing
text.
0.4.1
Payment-card approval flow (Phase 2 of the agent payments plan).
actionlayer_reply now accepts payment_approved: bool for
tickets whose info_request includes payment_status. Users
approve a charge against their card-on-file with one call.
actionlayer_get_task / actionlayer_next_action surface
card_brand, card_last4, amount_usd, and payment_status
on 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. The charge
is completed against the user's card on file; the PAN never
appears on agent-visible surfaces. This is by design per
docs/agent_payments_plan.md.
0.4.0
Backwards-incompatible — public API taxonomy changed.
- Ticket
state collapses the in-flight phases into a single
public value pending. Polling code that branched on the
individual sub-phases (e.g. if state == "executing") must
switch to state == "pending". Terminal states (completed,
failed, cancelled) and blocked_on_user are unchanged.
live_view_url is no longer returned by the public tools
(actionlayer_invoke_action, actionlayer_get_action_ticket).
User-facing callers should drive the task via polling
actionlayer_get_action_ticket and responding to
blocked_on_user prompts.
actionlayer_invoke_action sync response now uses
outcome="queued" (instead of outcome="blocked") when the
task is taking longer than the sync window allows. Callers
handling outcome need to add a queued branch: poll
actionlayer_get_action_ticket for terminal state.
- Terminal tickets now carry a free-text
reason field summarising
the outcome (derived from result.summary on completed, error
on failed). Pre-existing result / error fields preserved
for callers that want the raw structured payload.
0.3.1
- Update default API URL to
https://api.actionlayer.io
(api.action-layer.dev still redirects, but the new host is the
current canonical name).
0.3.0
- Browser-only catalog. Per-session credential intake.
0.2.0
- Async-by-default dispatch for browser actions + ticket polling tool.
0.1.0
License
MIT