MCP tools

Current Rowly MCP catalog across core tools, Thai accounting, and extensions.

Rowly exposes a current MCP catalog shared with admin documentation and API tests. The catalog stays docs-first: schema discovery lets the AI inspect a doc before constructing payloads, so it can self-correct instead of hallucinating fields.

App management

Create, list, and archive named workspaces.

  • list_apps — List apps the caller can access. [read-only]
  • create_app — Create a new named workspace.
  • get_app — Fetch one app with its member list. [read-only]
  • archive_app — Two-step destructive archive with confirm_token. [destructive]

Bulk + async tasks

Large bulk jobs return a task id immediately; poll until done or failed.

{
  "async": true,
  "task_id": "tsk_01HXYZ...",
  "poll_tool": "get_task_status"
}
  • bulk_update / bulk_delete — Sync up to 100 matched rows; larger jobs run through TaskRunner.
  • export_records — Sync up to 1,000 matched rows; larger exports write the body to R2 and return result.storageKey in the completed task for authenticated /files/get download.
  • get_task_status — Returns status, timestamps, result, result_sha256, and error_code for the current tenant/app scope.

Membership

Invite, list, promote, and remove members inside an app.

  • list_members — List members + roles for the app. [read-only]
  • invite_member — Send an email invite with a role.
  • update_role — Change a member's role.
  • remove_member — Two-step removal with confirm_token. [destructive]

Discovery

Introspect docs so AI can self-correct payloads.

  • list_docs — List docs in the current app. [read-only]
  • get_doc_schema — Fetch the compiled schema + meta for a doc. [read-only]
  • list_workflows — List workflows attached to a doc. [read-only]

CRUD

Generic create / read / query / update / delete against any doc — not per-doc tools.

  • create_record — Create a record; supports idempotency_key.
  • get_record — Fetch one record by id. [read-only]
  • query_records — Cursor-paginated query with filters and response_format modes. [read-only]
  • update_record — Optimistic-lock update using version. [idempotent]
  • delete_record — Two-step destructive delete with confirm_token. [destructive]

Workflow + admin

Drive state transitions and define new docs.

  • run_workflow_action — Run a named action on a record, enforcing role + CEL condition.
  • define_doc — Create / update a doc schema. dry_run defaults to true in production. [destructive]

Tool annotations

Hints the server sets so MCP clients can render safer UX.

  • openWorldHint: false on every tool — Rowly is a closed D1 world, not a web fetcher.
  • readOnlyHint: true on all list_*, get_*, plus search + fetch.
  • destructiveHint: true on delete_record, archive_app, and other two-step mutations.
  • idempotentHint: true on update_record.