Changelog
MCP & AI access
Section titled “MCP & AI access”8 October 2026
Formtress now runs a Model Context Protocol (MCP) server at https://app.formtress.com/api/mcp, so AI assistants like Claude and Cursor can read your workspace directly: list forms, search submissions, check webhook deliveries, and report on usage.
- Read-only personal access tokens: create tokens under Connect → MCP & AI. Tokens (
fmt_live_...) are workspace-scoped, shown once, and revocable at any time. - 12 MCP tools: workspace info, usage, forms, submissions (with full-text search), webhook attempts, and analytics.
- MCP resources: each form is exposed as a
formtress://forms/{formId}resource for clients with a resource browser. - One-click setup: in-app flows for Claude Code and Claude connectors (claude.ai / Desktop / mobile), plus copyable configs for Cursor and other HTTP-based clients.
- Read-only REST API (v1): the same data is available at
https://app.formtress.com/api/v1with the same tokens, CORS-enabled. - Plan limits: MCP is rate limited at 120 requests/min on free and 600 requests/min on paid plans; free workspaces can keep 2 active tokens, paid plans 10.
See the MCP & AI Access docs for setup instructions.
v1.0.0
Section titled “v1.0.0”7 June 2026
Breaking changes
Section titled “Breaking changes”- Package renamed:
formtress-jsis now published as@formtress/js. The old package is deprecated but will continue to work for existing installs.Terminal window # Beforenpm install formtress-js# Afternpm install @formtress/js
New features
Section titled “New features”- Server SDK: new
@formtress/serverpackage for server-side spam filtering. Check submissions for spam before storing or acting on them.import { Formtress } from '@formtress/server'const formtress = new Formtress({ apiKey: 'ftk_...' })const result = await formtress.filter({ip: '1.2.3.4',headers: Object.fromEntries(request.headers),fields: [{ name: 'email', value: 'test@gmail.com', type: 'email' },],blockFreeEmailProviders: true,}) - Filter API endpoint:
POST /public/api/v1/filterreturns a spam score without storing any data. Supports rate-limiting, bot detection, and content analysis. - Type exports: full TypeScript support for
FilterField,FilterOptions,FilterResult,FormtressOptions, andFormtressError. - PostHog analytics: filter API usage is tracked (spam vs clean, scores, rate limits) with zero user data logged.
v0.2.4
Section titled “v0.2.4”21 May 2026
Changes
Section titled “Changes”- Added support for file uploads
v0.2.0
Section titled “v0.2.0”25 March 2026
Breaking changes
Section titled “Breaking changes”submitFormAPI changed: theformIdparameter is replaced byurl. Passform.action(or the full endpoint URL directly) instead of a bare Form ID.// BeforesubmitForm({ formId: 'abc123', data: new FormData(form) })// AftersubmitForm({ url: form.action, data: new FormData(form) })SubmitResult.redirectremoved: the return value no longer includes aredirectfield. Handle redirects in your own success handler if needed.SubmitResult.statusadded: the HTTP status code is now returned alongsideokandmessage.
Changes
Section titled “Changes”- Forms now connect to Formtress via the standard HTML
actionattribute (https://app.formtress.com/api/f/your-form-id) rather than adata-ftattribute. This means forms work without JavaScript by default. - The Webflow script is now purely progressive enhancement: it detects forms whose
actionpoints to Formtress and intercepts them to show Webflow’s native success/error states. Without the script, the form still submits successfully. - The
data-ftattribute is no longer used or required.
v0.1.x
Section titled “v0.1.x”Initial releases. Forms were connected via data-ft="your-form-id" on the form element. The Webflow script intercepted all tagged forms and posted to the Formtress endpoint.