Bots St

bots.st/furrow-forms

furrow-forms

Provision forms and validate signed webhooks

2173 ms

answered our call

State
Answered
Protocol
MCP 2025-06-18
Tools listed
29
Answered
3 of the last 3 calls

How to reach it

  • MCP, HTTPhttps://api.furrowforms.com/mcp
  • npmnpx -y @furrowforms/mcpReleased 26 Aug 2026, version 1.0.1Set FURROW_TOKEN

What it can do

ToolWhat it says it does
archive_clientUse to archive a client. Do not use this as a hard delete. There is no unarchive tool in v1.
archive_formUse to archive a form so public submit returns 404. Do not use this as a hard delete.
archive_projectUse to archive a website. Archived projects reject public submit. Do not use this as a hard delete. There is no unarchive tool in v1.
bootstrap_siteUse this to stand up a client, one website (project), and its forms in a single call. Before calling, ask the human who should receive notification emails (notify_emails has no default; empty means nobody is emailed), thank-you page vs on-page message, and whether to add Turnstile — see…
create_clientUse to add a client (company) by slug. Idempotent on slug unless strict is true. Operator tokens (all workspaces) must pass team_id from list_teams. Team-scoped tokens may omit team_id and cannot target another workspace. Prefer bootstrap_site when also creating a website and forms. Do not put…
create_formUse to add a form under an existing project_id. Idempotent on slug unless strict is true. Overrides are nullable; omit them to inherit project notify emails, webhook, redirect, require_turnstile, and email templates. Pass email.subject / email.intro to override notification copy for this form…
create_projectUse to add one website under an existing client_id. Idempotent on slug unless strict is true. Free accounts are limited to 3 active (non-archived) projects; yearly is unlimited. If create_project returns plan_limit, call create_upgrade_link and hand the human the Stripe URL. Prefer bootstrap_site…
create_upgrade_linkUse when a free team is blocked on the 3-project, 100-submission, or one-workspace limit, or when a human should upgrade to yearly ($199/year) so you can keep adding projects, workspaces, and storing new submissions. Returns a Stripe Checkout URL to hand the human. If the team is already yearly…
get_accountUse to read the team's plan, usage this month, limits, expansion_packs, retention_days, branding, and AI spam filter (ai.typesafe_key_set, ai.notify_suspected_spam), and text alerts (sms.configured, provider, account_sid, from). The TypeSafe key and Twilio Auth Token are never returned. Plans are…
get_clientUse to inspect one client. Do not use to list that client's sites — call list_projects with client_id.
get_formUse to read a form plus resolved and inherited settings, including resolved.email and resolved.uploads. files_url is the private inbox folder for this form under the project inbox (do not put it in a public snippet). Turnstile always inherits from the project (inherited.turnstile is true). Form…
get_projectUse to inspect one website's settings, domains, webhook URL, email templates, upload policy, plan, usage this month, limits, retention_days, and branding. Returns stored values plus resolved.email. Secrets are never returned. Plans are capacity, not a feature ladder. Free: one workspace, 100 clean…
get_snippetUse after the form exists to get copy-paste html, astro, or next code that posts to /s/:publicKey. Do not invent a submit URL — this tool returns it. Snippets are single-value inputs; write checkbox groups and multi-selects yourself. Checkbox groups, select multiple, and other multi-value HTML…
get_submissionUse to read one stored submission by id, including file metadata and files_url (the form inbox). Do not use this for live submit tests — POST to /s/:publicKey instead. Do not expect signed bucket URLs — download from the inbox.
list_clientsUse to browse clients (companies). Operator tokens (all workspaces) must pass team_id from list_teams. Team-scoped tokens may omit team_id and cannot target another workspace. Do not use to list websites — call list_projects with client_id. Archived clients are hidden unless status=all or…
list_formsUse to list forms. Pass project_id for one website or client_id for one company (team is inferred). Otherwise Operator tokens (all workspaces) must pass team_id from list_teams. Team-scoped tokens may omit team_id and cannot target another workspace. Do not use to read resolved inheritance — call…
list_projectsUse to browse websites. Pass client_id to list one client's sites (team is inferred). Without client_id, Operator tokens (all workspaces) must pass team_id from list_teams. Team-scoped tokens may omit team_id and cannot target another workspace. Do not use to read one project's settings — call…
list_submissionsUse to inspect recent posts. Available on free and yearly. Pass project_id or form_id to infer the team; omit both and Operator tokens (all workspaces) must pass team_id from list_teams. Team-scoped tokens may omit team_id and cannot target another workspace. Free teams prune submissions after 30…
list_teamsUse to see workspaces this token can act on. A team-scoped frw_ token returns that team only. An operator token or an MCP OAuth login returns every team you belong to — pass team_id on list_clients, create_client, and bootstrap_site. Creating another workspace is dashboard-only after signing in…
move_clientUse when the human asks to move a client (company) and all its projects, forms, submissions, and files into another workspace they own. Public keys, snippets, inbox links, and webhook secrets stay the same, so the live site needs no change. Needs an owner of both teams (dashboard session or…
rotate_project_inboxUse when a project's private inbox URL may have leaked. Issues a new inbox key; every previously shared inbox link stops working immediately. get_project returns the new files_url.
test_smsUse after setting notify_phones to send one test text to each of the project's numbers through the team's Twilio account. Returns per-number results with Twilio's error when one fails. Fails if the team has no Twilio account (update_account sms) or the project has no notify_phones. A successful…
test_webhookUse to POST a signed webhook.test event to the project's webhook URL. Available on free and yearly. Do not use this to inspect past deliveries — that is REST GET /api/projects/:id/webhook-deliveries. Fails if no webhook URL and secret are set.
update_accountUse to rename the workspace, set branding, configure the AI spam filter, or connect the team's own Twilio account for new-lead text alerts. Pass sms { account_sid, auth_token, from } to save Twilio (auth_token is write-only; omit it later to keep the saved one; sms: null disconnects). Numbers to…
update_clientUse to rename a client. Do not use this to change domains, Turnstile, or webhooks — call update_project.
update_formUse to patch form overrides. Pass null on an override to inherit again. Set email.subject or email.intro to override project notification copy for this form only; from_name, footer_mode, and include_meta stay on the project. Email templates support {{project.name}}, {{project.slug}}…
update_projectUse to patch website settings. Nested email sets notification templates: email.subject, email.from_name, email.intro, email.footer_mode (furrow | minimal | off), email.include_meta. Optional branding updates the team (mode furrow | off | agency on yearly only; other modes return plan_limit on…
update_teamUse to rename a team. Operator tokens (all workspaces) must pass team_id from list_teams. Team-scoped tokens may omit team_id and cannot target another workspace. Do not use this to create another workspace — that is dashboard-only and requires yearly. For plan, usage, retention, and branding…
upsert_project_webhookUse to set or replace the project webhook URL. Available on free and yearly. A signing secret is generated once if the project has none. Forms inherit this unless webhook_url_override is set. Do not use this for a one-off delivery — call test_webhook.

In its maker's words

Form backend an agent runs end to end: provision forms, snippets, spam, signed webhooks.

Website
furrowforms.com/ai
Source
github.com/useburrow/furrow-forms
Publisher
furrowforms.com
Listed from
the official MCP Registry as com.furrowforms/furrow-forms
Version
1.0.1, updated 26 Aug 2026
Kinds of work
Documents and files, Messaging and support, Writing and translation

The domain it lives on

furrowforms.com
registered 18 Aug 2026 (3 months ago), at Cloudflare, Inc., its name does not resolve now

From our own crawl of domain names: registry records and the home page as our crawler last saw it.

Every call we made

WhenWhat happenedTime
Answered2173 ms
Answered2212 ms
Answered803 ms

Next door

Is this your bot? Claim its address to add a verified badge and keep the listing current.