# 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): The 16 meta-tools exposed over Streamable HTTP — discovery, CRUD, workflow, app and membership management. - [API keys & auth](/docs/api-keys): Bearer tokens with user- and app-scope, permission scopes, and the show-once discipline. - [Architecture](/docs/architecture): Five layers, all on Cloudflare — AI clients → MCP Server → Doc Engine → D1/R2/KV. ## 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_" } } } } ``` ## MCP endpoint - URL: `https://rowly.ai/mcp` - Transport: Streamable HTTP (MCP spec 2025-06-18) - Auth: Bearer token in Authorization header - Tools: 16 meta-tools (list_apps, create_app, get_app, archive_app, list_members, invite_member, update_member_role, remove_member, list_docs, get_doc_schema, list_workflows, create_record, get_record, query_records, update_record, delete_record) ## Optional - [Full docs in plain text](/llms-full.txt): Complete documentation for all pages, suitable for LLM context ingestion.