Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.actionlayer.dev/llms.txt

Use this file to discover all available pages before exploring further.

Every MCP-compatible client gets the same surface area. Auth is Authorization: Bearer nc_live_… at the transport layer; tools resolve to your workspace via the bearer token.

Tools

ToolPurpose
list_threadsList threads with filters
get_threadFull thread + message + draft history
list_draftsList drafts with filters
get_draftOne draft by ID
submit_draftSubmit a new draft for human approval
approve_draftApprove a pending draft (does not send)
reject_draftReject with optional reason
edit_draftEdit a pending draft
send_draftSend an approved draft (or pending — bypasses approval)
list_identitiesList sender identities
get_identityOne identity by ID
list_contactsList contacts
get_contactOne contact by ID

list_threads

Filter and page through inbox threads.
ParameterTypeNotes
statusopen|waiting|draft_pending|closedoptional
needs_reviewbooloptional
identity_idUUIDoptional — scope to one identity
limitintdefault 20
offsetintdefault 0

get_thread

ParameterTypeNotes
thread_idUUIDrequired
Returns the thread, all messages, and all drafts attached to it. Use this to read context before drafting.

list_drafts

ParameterTypeNotes
thread_idUUIDoptional
identity_idUUIDoptional
statuspending|approved|sent|stale|rejected|failedoptional
limit / offsetintpagination

get_draft

ParameterTypeNotes
draft_idUUIDrequired

submit_draft

The core agent action. The server runs a soft stale check; if a newer inbound exists, the response includes stale_warning: true.
ParameterTypeNotes
thread_idUUIDrequired
identity_idUUIDrequired
based_on_message_idUUIDrequired — last inbound message your agent read
body_textstringone of body_text/body_html required
body_htmlstring
subject_overridestringoptional, defaults to thread subject
ccstring[]optional
bccstring[]optional
rationalestringoptional but recommended — surfaced to approvers

approve_draft

Marks a pending draft as approved. Does not send — call send_draft next.
ParameterTypeNotes
draft_idUUIDrequired

reject_draft

ParameterTypeNotes
draft_idUUIDrequired
reasonstringoptional
Rejection resets the thread status to open and fires the draft.rejected webhook.

edit_draft

Only drafts with status: "pending" can be edited. Each edit snapshots prior state.
ParameterTypeNotes
draft_idUUIDrequired
body_text / body_htmlstringoptional
subject_overridestringoptional
cc / bccstring[]optional
rationalestringoptional

send_draft

Queues delivery via Postmark. Returns 202 immediately; delivery is async.
ParameterTypeNotes
draft_idUUIDrequired
The hard stale check runs here. If a newer inbound arrived since the draft was generated, the call fails with 409 stale_draft (status moves to stale, draft.stale webhook fires).

list_identities / get_identity

ParameterTypeNotes
statusactive|disabledlist only
domain_idUUIDlist only
identity_idUUIDget only

list_contacts / get_contact

Contacts are external senders that have appeared on your inbound threads.
ParameterTypeNotes
qstringlist — fuzzy search across name + email
statustrusted|pending|blockedlist only
contact_idUUIDget only

Resources

Resources are read-only context blocks that your agent can attach without calling a tool.
URIReturns
workspace://currentCurrent workspace name, slug, plan, plan status, settings
identities://activeAll active sender identities for this workspace
threads://recentThe 25 most recently active threads

Prompts

Prompts are pre-baked instruction templates your agent can invoke.

draft_reply

Walks the agent through reading a thread and submitting a draft reply.
ParameterRequired
thread_idyes
message_idyes (the last inbound)
identity_idyes
Effect: agent calls get_thread, drafts a reply, calls submit_draft with based_on_message_id set correctly, and reports the result.

triage_inbox

Read-only triage. Surfaces threads that need attention, ranked by urgency. Does not submit any drafts — pure reading. No required parameters. Optional limit (default 25) and identity_id (default: all).

Sample interactions

“List my open threads.”list_threads(status="open")
“What’s in thread abc-123?”get_thread(thread_id="abc-123")
“Draft a reply to my latest email.” Agent flow: list_threads(needs_review=true)get_thread(...)submit_draft(...). Approval channel pings you.
“Triage my inbox.” → invokes the triage_inbox prompt; agent reads but submits nothing.

Server-side enforcement

These constraints apply to every tool call regardless of client:
  • submit_draft never auto-approves unless the identity has auto_approve_replies: true.
  • send_draft blocks stale drafts with 409.
  • send_draft enforces plan limits before queuing delivery.
  • All Postmark sends use TrackOpens: false and TrackLinks: "None".
  • ActionLayer makes no AI provider calls. Your agent supplies the intelligence; ActionLayer supplies the email plumbing.