Furrow Forms is a remote MCP server that gives an AI agent 27 tools, among them archive_client, archive_form, archive_project. It answers at https://api.furrowforms.com/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 5 September 2026; the last check, on 18 October 2026, succeeded.
Form backend an agent runs end to end: provision forms, snippets, spam, signed webhooks.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
archive_client | Use to archive a client. Do not use this as a hard delete. There is no unarchive tool in v1. Inputs: client_id |
archive_form | Use to archive a form so public submit returns 404. Do not use this as a hard delete. Inputs: form_id |
archive_project | Use to archive a website. Archived projects reject public submit. Do not use this as a hard delete. There is no unarchive tool in v1. Inputs: project_id |
bootstrap_site | Use this to stand up a client, one website (project), and its forms in a single call. name/slug are the client; optional project_name/project_slug default to the same. Free accounts cannot create a fourth active project — call create_upgrad |
create_client | Use 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_s Inputs: name, slug, strict, team_id |
create_form | Use 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 / em Inputs: name, slug, notify_emails_override, webhook_url_override, webhook_secret_override, redirect_url_override |
create_project | Use 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 Inputs: name, slug, allowed_domains, turnstile_site_key, turnstile_secret, notify_emails |
create_upgrade_link | Use 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 Checko Inputs: team_id, product |
get_account | Use to read the team's plan, usage this month, limits, expansion_packs, retention_days, and branding. Plans are capacity, not a feature ladder. Free: one workspace, 100 clean submissions/month pooled on the team, 3 active (non-archived) pro Inputs: team_id |
get_client | Use to inspect one client. Do not use to list that client's sites — call list_projects with client_id. Inputs: client_id |
get_form | Use 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 inheri Inputs: form_id |
get_project | Use 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 capa Inputs: project_id |
get_snippet | Use 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. Checkb Inputs: form_id, framework |
get_submission | Use 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. Inputs: submission_id |
list_clients | Use 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. Inputs: limit, cursor, status, team_id |
list_forms | Use 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 Inputs: limit, cursor, status, project_id, client_id, team_id |
list_projects | Use 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 works Inputs: limit, cursor, status, client_id, team_id |
list_submissions | Use 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 Inputs: project_id, form_id, spam, since, limit, cursor |
list_teams | Use 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. Creati |
rotate_project_inbox | Use 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. Inputs: project_id |
test_webhook | Use 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 s Inputs: project_id |
update_account | Use to rename the workspace or set branding. Free accounts cannot set branding.mode or email.footer_mode to anything but furrow — those writes are ignored. Yearly may set branding.mode to furrow, off, or agency (name + optional link + optio Inputs: name, branding, team_id |
update_client | Use to rename a client. Do not use this to change domains, Turnstile, or webhooks — call update_project. Inputs: name, client_id |
update_form | Use 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 Inputs: name, notify_emails_override, webhook_url_override, webhook_secret_override, redirect_url_override, require_turnstile_override |
update_project | Use 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 | ag Inputs: name, allowed_domains, turnstile_site_key, turnstile_secret, notify_emails, from_name |
update_team | Use 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 requ Inputs: name, team_id |
upsert_project_webhook | Use 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 te Inputs: webhook_url, webhook_secret, project_id |
Every block below points at https://api.furrowforms.com/mcp. Pick your client and copy.
claude mcp add --transport http furrow-forms https://api.furrowforms.com/mcp
{
"mcpServers": {
"furrow-forms": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.furrowforms.com/mcp"]
}
}
}{
"mcpServers": {
"furrow-forms": {
"url": "https://api.furrowforms.com/mcp"
}
}
}{
"servers": {
"furrow-forms": {
"type": "http",
"url": "https://api.furrowforms.com/mcp"
}
}
}{
"context_servers": {
"furrow-forms": {
"url": "https://api.furrowforms.com/mcp"
}
}
}{
"mcpServers": {
"furrow-forms": {
"serverUrl": "https://api.furrowforms.com/mcp"
}
}
}{
"mcpServers": {
"furrow-forms": {
"url": "https://api.furrowforms.com/mcp"
}
}
}name: Furrow Forms
version: 0.0.1
schema: v1
mcpServers:
- name: Furrow Forms
type: streamable-http
url: https://api.furrowforms.com/mcp{
"mcpServers": {
"furrow-forms": {
"httpUrl": "https://api.furrowforms.com/mcp"
}
}
}{
"mcpServers": {
"furrow-forms": {
"type": "http",
"url": "https://api.furrowforms.com/mcp"
}
}
}{
"mcpServers": {
"furrow-forms": {
"url": "https://api.furrowforms.com/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fapi.furrowforms.com%2Fmcp&type=streamable_http&id=furrow-forms&name=Furrow%20Forms
It answered our last check on 18 October 2026 in 368 ms. Over 10 checks since 5 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by furrowforms.com and served from api.furrowforms.com, the vendor's own domain: https://api.furrowforms.com/mcp.
27, as returned by the server's own tools/list on 10 September 2026: archive_client, archive_form, archive_project, bootstrap_site, create_client, create_form, create_project, create_upgrade_link, and 19 more.
It answered our last check on 18 October 2026 in 368 ms. Over 10 checks since 5 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://api.furrowforms.com/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: com.furrowforms. Endpoint host: api.furrowforms.com. ARD identifier: urn:air:com.furrowforms:mcp:furrow-forms.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.