# formto > Form backend for websites and AI agents: create a form, paste the generated HTML, and responses are emailed to you and sent to webhooks, Slack, Discord, Zapier or Google Sheets. Agents never need a secret pasted into chat: connect over OAuth (MCP) or the device login (`npx -y https://formto.io/dl/cli-latest.tgz login`). ## Connect - [Remote MCP server](https://mcp.formto.io/mcp): Streamable HTTP, OAuth 2.1. Claude Code: `claude mcp add --transport http formto https://mcp.formto.io/mcp` - [MCP protected-resource metadata](https://mcp.formto.io/.well-known/oauth-protected-resource/mcp): RFC 9728, names the authorization server - [Agent setup guide](https://formto.io/agent): Claude Code, Cursor, ChatGPT and the CLI - [Install for agents](https://formto.io/install-agent.md): the one-line installs of the CLI, SDK and skill from formto.io (no registry) ## API - [OpenAPI spec](https://api.formto.io/v2/openapi.json): the REST API (/v2), `Authorization: Bearer ` only - [CLI](https://formto.io/install-agent.md): `npx -y https://formto.io/dl/cli-latest.tgz login`, `npx -y https://formto.io/dl/cli-latest.tgz init --yes`, `npx -y https://formto.io/dl/cli-latest.tgz responses` ## MCP tools - formto_whoami: Who am I - formto_list_forms: List forms - formto_get_form: Get a form - formto_create_form: Create a form - formto_generate_form: Draft a form with AI - formto_generate_form_code: Generate form code - formto_go_live: Go live - formto_update_form: Update a form - formto_query_submissions: Query responses - formto_get_submission: Get a response - formto_add_destination: Send responses somewhere - formto_delete_submissions: Delete responses - formto_get_results: Get results - formto_ask: Ask about responses - formto_create_view: Create a view - formto_list_views: List views - formto_get_view_link: Get a view link - formto_export_submissions: Export responses - formto_set_business_brief: Set the business brief - formto_get_business_brief: Get the business brief - formto_bootstrap_brief_from_site: Draft the brief from a website - formto_create_handler: Create a handler - formto_preview_handler: Preview a handler - formto_list_approvals: List approvals - formto_approve: Request approval for a drafted action - formto_reject: Reject a drafted action - formto_summarize_submissions: Summarize responses - formto_create_feed: Create a feed - formto_update_response: Update a response’s workflow - formto_add_response_note: Add a note to a response ## Docs: Start - [What formto does](https://formto.io/docs/start): formto is the backend for the forms on your website. You keep your own HTML; formto receives each response, checks it, stores it, emails it to you and sends it wherever you work. - [Quickstart](https://formto.io/docs/start/quickstart): A form that emails you every response, from an empty terminal. The commands use curl and node; the CLI does the same in fewer keystrokes. ## Docs: Build - [Add a form to your site](https://formto.io/docs/build): Any HTML form works: point its action at your form's endpoint and use method="post". The fastest way to a form that matches your fields is the generator, which the CLI, the MCP tools and the dashboard all use. - [Define your fields](https://formto.io/docs/build/fields): A definition lists a form's fields: their names, types, labels and whether they are required. formto uses it to validate responses, label them in emails and the dashboard, and generate form code. ## Docs: Collect - [Read responses](https://formto.io/docs/collect): Every response is in the dashboard under Responses, where you can search, filter and export CSV. Each one is also emailed to the workspace owner. - [Spam and allowed origins](https://formto.io/docs/collect/spam): formto stops most spam without a CAPTCHA: ## Docs: Connect - [Send responses somewhere](https://formto.io/docs/connect): Every form emails the workspace owner. On paid plans a form can also send each response to a webhook, Slack, Discord or Zapier. Add destinations in the dashboard under a form's Connections, or with the API. - [Connect an AI agent](https://formto.io/docs/connect/agents): An agent can create forms, paste working HTML into your site and read responses. You approve it in the browser and choose what it may do. Deleting responses is off unless you tick it, and you can disconnect it at any time under API keys. ## Docs: Reference - [API reference](https://formto.io/docs/reference): The REST API lives at https://api.formto.io/v2. The full, machine-readable description is the OpenAPI spec, generated from the same route definitions the API runs. - [CLI](https://formto.io/docs/reference/cli): Options: --api for another API origin, --json for machine-readable output. Set FORMTO_TOKEN to use a token without a credentials file, for example in CI. ## Docs: Google Workspace - [Google Workspace](https://formto.io/docs/google): formto delivers responses to Google Sheets, Google Drive, Google Docs, Google Calendar, Gmail, Google Contacts and Google Tasks, and posts them to Google Chat. formto hosts no forms of its own in Google: every product is a place a response is sent to after someone submits your form. Every page in full: https://formto.io/llms-full.txt