Skip to content

Changelog

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/v1 with 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.

7 June 2026

  • Package renamed: formtress-js is now published as @formtress/js. The old package is deprecated but will continue to work for existing installs.
    Terminal window
    # Before
    npm install formtress-js
    # After
    npm install @formtress/js
  • Server SDK: new @formtress/server package 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/filter returns 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, and FormtressError.
  • PostHog analytics: filter API usage is tracked (spam vs clean, scores, rate limits) with zero user data logged.

21 May 2026

  • Added support for file uploads

25 March 2026

  • submitForm API changed: the formId parameter is replaced by url. Pass form.action (or the full endpoint URL directly) instead of a bare Form ID.
    // Before
    submitForm({ formId: 'abc123', data: new FormData(form) })
    // After
    submitForm({ url: form.action, data: new FormData(form) })
  • SubmitResult.redirect removed: the return value no longer includes a redirect field. Handle redirects in your own success handler if needed.
  • SubmitResult.status added: the HTTP status code is now returned alongside ok and message.
  • Forms now connect to Formtress via the standard HTML action attribute (https://app.formtress.com/api/f/your-form-id) rather than a data-ft attribute. This means forms work without JavaScript by default.
  • The Webflow script is now purely progressive enhancement: it detects forms whose action points to Formtress and intercepts them to show Webflow’s native success/error states. Without the script, the form still submits successfully.
  • The data-ft attribute is no longer used or required.

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.