Backforms MCP
Backforms MCP Server (backforms-mcp)
Official Model Context Protocol (MCP) server for Backforms. Connect serverless forms, anti-spam shields, and lead telemetry directly to Cursor, Windsurf, Claude Code, and Claude Desktop.
⚡ The Zero-Click Advantage
Instead of leaving your IDE, opening a browser, manually provisioning forms, and copying IDs:
Your AI coding agent executes the complete lifecycle in a single chat prompt:
"Create a Contact Us form in Next.js with honeypot spam protection and connect it to Backforms"
The agent automatically calls create_form, receives the live action URL (https://app.backforms.com/f/[uuid]), and injects ready-to-run HTML or Next.js code directly into your project.
Related MCP server: @lex-tools/codebase-context-dumper
🚀 Quick Setup
1. Get Your API Key
Sign in to your dashboard: Backforms Dashboard → API Keys & MCP.
Click Create API Key and copy your secret personal access token (
bf_live_sec_...).
2. Configure Your IDE
Cursor (.cursor/mcp.json or Settings → Features → MCP)
Add to your project's .cursor/mcp.json:
{
"mcpServers": {
"backforms": {
"command": "npx",
"args": ["-y", "backforms-mcp"],
"env": {
"BACKFORMS_API_KEY": "bf_live_sec_your_token_here"
}
}
}
}Windsurf (~/.codeium/windsurf/mcp_config.json)
{
"mcpServers": {
"backforms": {
"command": "npx",
"args": ["-y", "backforms-mcp"],
"env": {
"BACKFORMS_API_KEY": "bf_live_sec_your_token_here"
}
}
}
}Claude Desktop (claude_desktop_config.json)
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"backforms": {
"command": "npx",
"args": ["-y", "backforms-mcp"],
"env": {
"BACKFORMS_API_KEY": "bf_live_sec_your_token_here"
}
}
}
}Claude Code (CLI)
claude mcp add backforms --env BACKFORMS_API_KEY=bf_live_sec_your_token_here -- npx -y backforms-mcp🛠️ Complete Tool Catalog
Tool | Parameters | Description |
|
| Provisions a new form endpoint with action URL and JSX snippets. |
|
| Lists all forms in the workspace with throughput metrics. |
|
| Retrieves security config, access keys, and active integrations. |
|
| Retrieves leads, contact inquiries, and spam analysis. |
|
| Modifies form settings, allowed CORS origins, or custom redirects. |
|
| Configures webhook endpoints and email notification routing. |
|
| Dispatches an authenticated test submission to verify the live pipeline. |
|
| Permanently deletes a form endpoint from the workspace. |
| (none) | Checks monthly quota consumption, spam blocked, and storage. |
🔒 Security & Privacy Architecture
Stateless & Serverless: Runs locally via standard I/O (
stdio). Zero long-lived streaming overhead.SHA-256 Authentication: Personal Access Tokens are verified with secure hash comparisons.
No Sensitive Credential Storage: Tokens and database credentials are never logged or stored in plain text.
Strict CORS & Domain Origin Locks: Perimeter origin restrictions protect against unauthorized cross-site form posting.
📦 Links & Community
SaaS Platform: https://backforms.com
Web App Console: https://app.backforms.com
NPM Package: https://www.npmjs.com/package/backforms-mcp
Issues & Contributions: https://github.com/Arneld18/backforms-mcp/issues
License
MIT © AC Softworks, LLC (contact: info@acsoftworks.com)
Available Tools
9 toolscheck_workspace_usageA
Checks the current workspace submission quota, active plan tier, active forms count, and cloud storage usage.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Checks' implies a non-mutating read with no parameters, so the risk surface is inherently small, but the description never explicitly states read-only behavior, permission requirements, or whether results are cached/live.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Every clause names a distinct piece of information the tool returns, so nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description's enumeration of the four returned metrics effectively documents the response shape, which is the main thing an agent needs. Only the absence of usage-timing guidance keeps it short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to document. Baseline 4 applies; nothing in the description contradicts or misrepresents the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Checks') plus a clearly scoped resource ('current workspace submission quota, active plan tier, active forms count, cloud storage usage'). The four enumerated metrics leave no ambiguity, and none of the sibling tools (form CRUD, submissions, webhooks) overlap with this usage-reporting purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never states when to call this tool — no mention of calling it before form creation to check quota, before uploads to check storage, or any other trigger condition. No alternatives exist among siblings, but no usage context is offered either.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_formB
Creates a new serverless form endpoint in Backforms and returns the public action URL along with ready-to-use HTML and Next.js code snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Descriptive name of the form (e.g. 'Landing Page Contact', 'Waitlist Signup') | |
| redirect_url | No | Optional custom URL to redirect users after successful submission | |
| honeypot_field | No | Name of the hidden honeypot field (default: 'botcheck') | |
| allowed_domains | No | Comma-separated list of allowed origin domains for CORS protection (e.g. 'mycompany.com, app.mycompany.com') | |
| honeypot_enabled | No | Enable built-in anti-bot honeypot protection (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the return payload (public action URL plus code snippets), but omits that this is a persistent mutation, whether the name must be unique, auth/scope requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the verb and resource, then supplies the return value. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because there is no output schema, the description rightly summarizes the response. However, for an unannotated mutation tool it leaves gaps around persistence, permissions, and how creation interacts with workspace usage (see check_workspace_usage).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (name, redirect_url, honeypot_field, allowed_domains, honeypot_enabled) are already documented. The description adds no parameter-level meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Creates a new serverless form endpoint in Backforms') and even states what is returned (action URL, HTML/Next.js snippets). This clearly separates it from read/update/delete siblings, though no sibling is named explicitly and there is no scope qualifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says only what the tool does, never when to reach for it versus update_form_settings or setup_webhook, nor what prerequisites (workspace, plan limits) apply. No alternatives or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_formA
Permanently deletes a form endpoint from the Backforms workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| form_id | Yes | UUID of the form endpoint to permanently delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It importantly discloses that deletion is permanent and scoped to the Backforms workspace, but it omits permissions required, whether associated submissions or webhooks are also removed, and whether any confirmation is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single, front-loaded sentence with no filler. Every word contributes to stating the action, target, and permanence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter destructive tool, the description covers the core action and irreversibility. However, with no annotations or output schema, it should say more about blast radius and permissions to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: form_id is already documented as the UUID of the form endpoint to permanently delete. The description adds no further parameter meaning beyond what the schema provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ("permanently deletes") and resource ("form endpoint") with workspace scope. It distinguishes itself from siblings like create_form, list_forms, update_form_settings, and get_form_details by clearly being the destructive removal operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states what the tool does but offers no guidance on when to use it versus alternatives, no prerequisites, and no when-not-to-use conditions. An agent must infer that this is for removing a form endpoint rather than updating or inspecting it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_form_detailsB
Retrieves complete configuration details, access keys, security settings, and active integrations for a specific form.
| Name | Required | Description | Default |
|---|---|---|---|
| form_id | Yes | UUID of the form endpoint to inspect |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Retrieves' implies a read-only operation and the enumeration of access keys and security settings usefully signals that sensitive data is returned, but there is no statement about required permissions or the read-only nature being guaranteed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the enumeration of returned content is the only density cost. Appropriate size for a one-parameter read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-form read with no output schema, the description does give a high-level inventory of what comes back, which is more than nothing. However, with no annotations and no output schema it could say more about return shape and whether the call is safe/idempotent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 100% schema description coverage ('UUID of the form endpoint to inspect'), so the schema already does the work. The phrase 'a specific form' corroborates form_id but adds no format or scoping detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (retrieves) and resource (form configuration) and enumerates the content categories returned (access keys, security settings, integrations), which separates it from list_forms and get_form_submissions. It stops short of explicitly naming a sibling, so a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the eight siblings. The agent must infer that this is the inspection tool for a single form's configuration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_form_submissionsC
Retrieves recent leads, contact inquiries, and submission entries received by a specific form endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of submissions to retrieve (default: 10, max: 50) | |
| status | No | Filter submissions by spam status (default: 'all') | |
| form_id | Yes | UUID of the form endpoint in Backforms |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it says little beyond 'Retrieves'. It does not disclose ordering, pagination, whether spam is included by default, authentication requirements, or what a result entry looks like. 'Recent' is the sole behavioral hint and is vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition of the tool name. The enumerated list ('leads, contact inquiries, and submission entries') is slightly redundant, keeping it just short of ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with 100% schema coverage, the description covers the essential purpose and hints at return content. However, with no output schema and no annotations, it should say more about the returned shape, ordering, and pagination than it does, leaving gaps for an agent calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (limit, status, form_id) are already documented in the schema, establishing a baseline of 3. The description adds only that submissions are 'recent' and consist of leads/contact inquiries, which is marginal semantic value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Retrieves') and resource ('leads, contact inquiries, and submission entries received by a specific form endpoint'), making clear this is a read of form submissions. It does not explicitly contrast itself with siblings like get_form_details, but no sibling plausibly overlaps, so an agent can still select it confidently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives, no prerequisites (e.g. needing a valid form_id from list_forms), and no exclusions. The only hint is the word 'recent', which implies a recency-oriented listing but is not framed as usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_formsB
Lists all form endpoints in the Backforms workspace, including their IDs, action URLs, and security configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of forms to retrieve (default: 20, max: 100) | |
| offset | No | Pagination offset (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully enumerates the returned payload (including security configuration, which signals sensitive data), but never states that the operation is read-only, how pagination behaves, or what an empty workspace returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the operation and scope front-loaded and the return inventory following. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by describing the return contents, and the schema covers both parameters. Missing only pagination behavior and any read-only/safety note, which is minor for a simple enumeration tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with limit and offset documented including defaults and max. The description adds no parameter detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Lists) and resource (form endpoints) with workspace scope, and names the returned fields (IDs, action URLs, security configuration). It does not explicitly contrast with the single-form sibling get_form_details, so sibling differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement and no mention of alternatives, despite siblings like get_form_details covering a single form. The agent must infer that this is the bulk-enumeration entry point rather than a targeted lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_test_submissionA
Sends an authenticated test submission to verify that the form endpoint and notification pipeline work end-to-end.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Optional custom key-value payload to submit (e.g. { name: 'Test Lead', email: 'lead@example.com', message: 'Hello' }) | |
| form_id | Yes | UUID of the form endpoint to test |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It usefully reveals two traits: the call is authenticated and it exercises the notification pipeline (a real side effect, likely sending email/SMS). It does not say whether the test submission is persisted, whether it appears in get_form_submissions or counts toward workspace usage, or how failures are reported — significant gaps for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states the action, the auth requirement, and the verification purpose with zero filler. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no output schema, the description covers what it does but leaves key operational questions unanswered: whether the test lead is stored, whether it consumes workspace quota (a listed sibling, check_workspace_usage, tracks usage), and what the caller gets back to confirm success. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (form_id UUID and the optional custom data payload with an example) are already fully documented in the schema. The description adds no format, validation, or default information beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (sends) and resource (test submission) plus the intent: verifying the form endpoint and notification pipeline end-to-end. This clearly separates it from sibling read tools like get_form_submissions and from configuration tools like create_form/update_form_settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use — verifying a form endpoint and its notification pipeline work end-to-end — and the word 'test' implies it is not for real lead capture. However, it names no explicit exclusion or alternative (e.g., whether to prefer this over a real submission or how it relates to check_workspace_usage).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_webhookC
Configures or updates custom webhook URL forwarding and email notification destinations for a form endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| form_id | Yes | UUID of the form endpoint | |
| webhook_url | No | Destination URL where submissions should be forwarded via HTTP POST (e.g. n8n, Zapier, Discord, or Slack) | |
| webhook_enabled | No | Enable or disable webhook forwarding (default: true) | |
| secondary_emails | No | Comma-separated list of secondary CC notification emails | |
| notification_email | No | Primary destination email address for submission alert notifications |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Configures or updates' hints at upsert semantics, but nothing is said about whether omitted fields are preserved or cleared, what permissions are required, whether the call is idempotent, or what confirmation is returned for this mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states the action and full scope without filler, covering both the webhook and the email-notification halves of the tool. It is efficient, though it does not use the remaining space to address the obvious behavioral gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter mutation tool with no annotations and no output schema, the description covers the functional scope but omits side-effect and omission behavior that an agent would need to call it safely. Adequate as a minimum viable statement, incomplete as a behavioral guide.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each of the five parameters is already well documented (form_id UUID, webhook_url destinations, webhook_enabled default, notification emails). The description only broadly groups them into 'webhook forwarding' and 'email destinations' and adds no format or constraint detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb pair (configures/updates) and the exact resources affected: custom webhook URL forwarding and email notification destinations for a form endpoint. That is enough to distinguish it from create_form, list_forms, and get_form_submissions, though it does not explicitly contrast itself with the overlapping update_form_settings sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus update_form_settings or update_form_settings-style config, no prerequisites (e.g. form must already exist), and no mention of what happens if it is called on a form with no existing webhook. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_form_settingsC
Updates settings, redirect URLs, honeypot protection, or CORS domains for an existing form.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Updated form name | |
| form_id | Yes | UUID of the form to modify | |
| is_active | No | Set whether the form endpoint accepts new submissions | |
| redirect_url | No | Updated success redirect URL | |
| allowed_domains | No | Updated allowed CORS domains | |
| honeypot_enabled | No | Enable or disable anti-bot honeypot |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says "Updates" but never states whether this is a partial patch (omitted fields preserved) or a full overwrite, whether it requires ownership/auth, whether changes are reversible, or what happens on invalid IDs. For an unannotated mutation tool this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence naming the verb and the affected areas, with no filler. It is efficient, though the enumeration of fields partially duplicates the schema rather than adding new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should disclose mutation semantics and safety context, and it does not. The schema does document all six parameters, so the gap is behavioral rather than structural, leaving the definition only minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter already has its own description and the baseline is 3. The description merely groups the same fields at a higher level and adds no format, default, or dependency information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Updates") and resource (settings on "an existing form") and enumerates the affected fields, so the agent knows this is a mutation on a persisted form. It does not name or contrast with siblings like create_form or delete_form, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"For an existing form" is the only usage constraint, implying the form must already exist, but there is no explicit when-to-use guidance, no mention of alternatives such as create_form for new forms, and no prerequisites or required permissions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v1.0.3- First observed
check_workspace_usage - First observed
create_form - First observed
delete_form - First observed
get_form_details - First observed
get_form_submissions - First observed
list_forms - First observed
send_test_submission - First observed
setup_webhook - First observed
update_form_settings
TDQS
Scored across 9 tools
Most tools target distinct resources and actions (create/list/update/delete form, get submissions, get details, test submission, workspace usage). Minor overlap exists between update_form_settings and setup_webhook (both tweak a form's configuration), and between get_form_details and get_form_submissions, but descriptions clearly separate config from data and add a slight risk of misselection.
All nine tools use a consistent snake_case verb_noun pattern (create_form, list_forms, get_form_submissions, update_form_settings, delete_form, get_form_details, setup_webhook, send_test_submission, check_workspace_usage). The convention is predictable and readable throughout.
Nine tools is well-scoped for a serverless form backend, covering the create/read/update/delete lifecycle plus submissions, webhooks, testing, and usage. Each tool earns its place with no obvious redundancy.
Full form CRUD, submissions retrieval, webhook/email setup, test submission, and usage checking are covered, giving solid lifecycle support. The main gap is submission-level management (e.g., fetching or deleting an individual submission by ID/export), which agents may want but can partly work around.
Maintenance
Related MCP Connectors
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- AlicenseBqualityDmaintenanceAn educational implementation of a Model Context Protocol server that demonstrates how to build a functional MCP server for integrating with various LLM clients like Claude Desktop.1162MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server designed to easily dump your codebase context into Large Language Models (LLMs).13 npm3Apache 2.0
- FlicenseBqualityDmaintenanceA Model Context Protocol (MCP) server that can be deployed locally via stdio or remotely via SSE/HTTP endpoints, supporting multiple MCP clients including VS Code, Cursor, Windsurf, and Claude Desktop.1-
- AlicenseAqualityCmaintenancePersistent memory MCP server for Claude Code, Cursor, and GitHub Copilot. Semantic search, Git sync, project-based, Persistent memory MCP server for Claude Code, Cursor, and GitHub Copilot. Semantic search, Git sync, project-based organization, and team collaboration via Model Context Protocol.1188 npm2MIT