# Rowly > The AI-native backend for SMEs. Define business entities as docs, expose them automatically to AI agents via the Model Context Protocol. Built on Cloudflare Workers + D1. Rowly is a backend framework where you define data schemas ("docs") once and they compile to: a database table, a Zod validation schema, permission rules, a workflow state machine, an MCP tool interface, and an admin UI — all in sync, no drift. ## Documentation - [Overview](/docs): What Rowly is and how the docs fit together. - [Getting started](/docs/getting-started): Sign up, create an app, define your first doc, and invoke it from Claude Desktop in five minutes. - [Doc spec](/docs/doc-spec): Twelve field types, four naming modes, and the schema/meta split that compiles to all 8 runtime artifacts. - [MCP tools](/docs/mcp-tools): Current MCP catalog over Streamable HTTP — core tools, Thai accounting, and extensions. - [API keys & auth](/docs/api-keys): Bearer tokens with user- and app-scope, permission scopes, and the show-once discipline. ## Quick start for AI agents To connect an MCP client (Claude Desktop, Cursor, etc.) to Rowly: 1. Sign up at https://rowly.ai/signup (email OTP, no password) 2. Create an app in the admin dashboard 3. Define a doc (e.g. Vehicle with fields: plate, daily_rate, status) 4. Create an app-scoped API key at /api-keys (shown once — copy it) 5. Add to your MCP client config: ```json { "mcpServers": { "rowly": { "url": "https://rowly.ai/mcp", "headers": { "Authorization": "Bearer rowly_live_a_" } } } } ``` ## Agent Skill Rowly publishes a first-party public skill catalog for supported coding agents: ```bash npx skills add https://rowly.ai --list npx skills add https://rowly.ai --skill rowly -g -a codex -y ``` - Preferred catalog: `https://rowly.ai/.well-known/agent-skills/index.json` - Legacy catalog: `https://rowly.ai/.well-known/skills/index.json` - The public skill contains only first-party Rowly guidance. Tenant-private Skill records stay behind authenticated `/api/v1/skills` endpoints and are not published by default. ## MCP endpoint - URL: `https://rowly.ai/mcp` - Transport: Streamable HTTP (MCP spec 2025-06-18) - Auth: Bearer token in Authorization header - Tools: current MCP catalog covering workspace, schema, records, workflow, AI memory, Thai accounting, and extensions. Key tools include list_apps, create_record, run_workflow_action, make_payment_from_invoice, and get_thai_pp30_summary. ## Async bulk tasks - `bulk_update` and `bulk_delete` run synchronously up to 100 matched rows. Larger matches return `{ "async": true, "task_id": "tsk_...", "poll_tool": "get_task_status" }`. - `export_records` runs synchronously up to 1,000 matched rows. Larger exports write the body to R2 and expose the storage key in `result.storageKey` on the completed task; fetch it through authenticated `/files/get?key=...`. - Poll `get_task_status` with the returned `task_id` until `status` is `done` or `failed`. Completed tasks include `result`; task ids are scoped to the tenant/app that started them. ## Optional - [Full docs in plain text](/llms-full.txt): Complete documentation for all pages, suitable for LLM context ingestion.