Skip to main content

actionstep-mcp

PyPI version Python 3.10+ License: MIT

MCP server for Actionstep — 144 tools covering the full Actionstep REST API for law firm practice management. Use Actionstep from Claude Desktop with natural language.

What you can do

  • Actions (Matters) — create, update, assign, track workflow steps, manage billing settings
  • Participants (Contacts) — full CRUD, relationships, contact notes, phone records
  • Tasks — create, assign, complete, filter by matter or assignee
  • Time Records & Time Entries — log time, manage billable entries, activity codes
  • Disbursements — log expenses, link to matters
  • Calendar — appointments linked to matters
  • Emails & SMS — log communications, associate with matters
  • File Notes — attendance notes and case notes on matters
  • Documents — action documents and folders
  • Data Collections — custom form data on matters
  • Webhooks — REST hook subscriptions for real-time events
  • Reference data — action types, participant types, rates, UTBMS codes, tax codes

Requirements

  • Python 3.10+
  • Python MCP SDK >=2.2,<3 (the protocol target is 2026-07-28)
  • Claude Desktop (or any MCP-compatible client)
  • Actionstep developer credentials (Client ID, Client Secret)

Actionstep developer access: Register at the Actionstep developer portal to obtain OAuth credentials.

Installation

pip install actionstep-mcp

Setup

actionstep-mcp-setup

This opens a browser for OAuth authorization and saves credentials to ~/.actionstep-mcp/.

Verify:

actionstep-mcp-verify

Claude Desktop Configuration

{
  "mcpServers": {
    "actionstep": {
      "command": "actionstep-mcp"
    }
  }
}

Credential storage

By default credentials are stored in your operating system's native secret store via the cross-platform keyring library:

OS Backend
macOS Keychain
Windows Credential Manager
Linux Secret Service (GNOME Keyring / KWallet)

Secrets saved to keyring use the service name actionstep-mcp.

File fallback. On a host with no keyring backend (e.g. a headless Linux box without Secret Service), or if you set ACTIONSTEP_MCP_USE_KEYRING=0, credentials fall back to a ~/.actionstep-mcp/.env file with 0600 permissions.

On Windows, the file is stored in the user's profile and protected by Windows' default per-user access rules. On POSIX, files are created with 0600 permissions and writes fail closed if private permissions cannot be established.

Read order. Credentials resolve in the order OS keyring → process environment → .env file. So a rotated secret in the keyring always wins, and an ACTIONSTEP_CLIENT_ID / ACTIONSTEP_CLIENT_SECRET exported in your shell overrides the file fallback without touching the keyring.

Authentication Notes

Actionstep uses a dynamic api_endpoint — the URL for your organisation's API is returned in the OAuth token response and varies per firm. The setup wizard captures and stores this automatically.

Example usage in Claude

"List my open actions"

"Create a task on action 456 — send retainer agreement to client"

"Log 2.5 hours on action 789, description: drafted statement of claim"

"Add a file note on action 123 — client called re: mediation date"

"Create a calendar appointment for the Jones hearing on Monday 10am"

License

MIT

Approved destination URLs

Set ACTIONSTEP_ALLOWED_DESTINATION_HOSTS in the server environment, for example ACTIONSTEP_ALLOWED_DESTINATION_HOSTS=hooks.firm.example,.integrations.firm.example. Comma-separated exact hosts allow only that host; a leading dot allows the domain and its subdomains. Matching ignores case and trailing dots and normalizes IDNA. An empty or unset list refuses destination URLs before any request. HTTPS, no userinfo, and public literal addresses remain required. This administrator-owned list prevents model-supplied destinations from sending data to arbitrary hosts, including private-address DNS aliases and unapproved redirectors. Approve only hosts whose DNS and redirects the firm trusts; the vendor executes requests later. Tools cannot change this setting.

Configured API endpoints may use any host under actionstep.com or actionstepstaging.com, including per-organization and regional hosts such as ap-southeast-2.actionstep.com (or actionstepstaging.com for staging), with no userinfo, query, fragment, or non-default port. Both an origin and the vendor-returned /api/ base are accepted. See the Actionstep authentication documentation.

Metadata

Release files for actionstep-mcp 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for actionstep-mcp 0.2.0
File Size Uploaded
actionstep_mcp-0.2.0.tar.gz 147.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for actionstep-mcp 0.2.0
File Interpreter ABI Platform
actionstep_mcp-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 181.9 kB

Release files / actionstep_mcp-0.2.0.tar.gz

Download URL actionstep_mcp-0.2.0.tar.gz
Size 147.8 kB
Tags Source
SHA-256 checksum
How to use checksums
dc08773e819a71315e5e9abdf0d0f70be19ef2fa88b691e911b3096f2ecb668e
BLAKE2b-256 checksum
How to use checksums
dc08214c35e18dc6ae0d5274dd66aab26bd91cc4e707e255fc2ab89ccd6a3271
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.4 {"installer":{"name":"uv","version":"0.12.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / actionstep_mcp-0.2.0-py3-none-any.whl

Download URL actionstep_mcp-0.2.0-py3-none-any.whl
Size 34.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
72aae317ed6e76947574b295c8956b1384c716619d13e49f1f94ab065b2c65aa
BLAKE2b-256 checksum
How to use checksums
9ce977ee05cd3ee7ffca04b6a72170647804c6203612b95804309390dd7ce8d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.4 {"installer":{"name":"uv","version":"0.12.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page