Skip to main content
Glama

Create an Instant Form (lead form)

ads_lead_form_create

[writes · ads:manage scope] Creates a Meta Instant Form on the brand's selected ad account: name, privacyPolicyUrl (https), questions (Meta question objects, e.g. { type: "EMAIL" }, { type: "FULL_NAME" }, or a CUSTOM question with label and options), optional contextCard, thankYou* fields and followUpActionUrl (same fields as the dashboard form). Same builder and limits as the dashboard. One vendor call, never retried; pass idempotencyKey to make repeats safe. Pass agentName and reason. Audited in Ads > Agent activity. (Wraps POST /api/v2/ads/lead-forms.)

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "agentName": "<agentName>",
      "reason": "<reason>",
      "name": "<name>",
      "privacyPolicyUrl": "<privacyPolicyUrl>",
      "questions": "<questions>"
    },
    "name": "ads_lead_form_create"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameYes
localeNo
reasonYesWhy the agent is doing this. Shown to the owner and kept in the audit trail.
brandIdNoA brand id (GET /api/v2/brands) or "personal"; default: the key owner's active brand.
platformNoOptional; Meta only.
agentNameYesWhich agent is acting. Shown to the owner in Ads > Agent activity.
questionsYesMeta question objects, e.g. { "type": "EMAIL" }, { "type": "FULL_NAME" }, { "type": "CUSTOM", "label": "…", "options": [{ "key": "a", "value": "A" }] }.
contextCardNoOptional intro card shown before the questions.
thankYouBodyNo
thankYouTitleNo
idempotencyKeyNoOptional; 1-255 characters of A-Z a-z 0-9 . _ : -. Repeats with the same key are safe to send.
privacyPolicyUrlYesAbsolute https URL.
followUpActionUrlNoOptional https URL the thank-you button opens.
thankYouButtonTextNo
thankYouButtonTypeNo
thankYouWebsiteUrlNohttps URL; required with a VIEW_WEBSITE button.
isOptimizedForQualityNo
privacyPolicyLinkTextNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the mutation/open-world profile; the description adds the auth scope requirement, the retry contract ("One vendor call, never retried"), the idempotency escape hatch, and the fact that the call is audited in Ads > Agent activity. The idempotencyKey note refines rather than contradicts idempotentHint=false, since safety exists only when a key is supplied. What is missing is failure behavior (validation errors, partial creation).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: scope, resource, and key fields come first, with the API wrapper and audit note trailing. Some redundancy exists, since the questions example largely restates the schema's own description, but no sentence is wasted overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-param mutating tool with nested objects and no output schema, the definition covers purpose, prerequisites, idempotency, audit trail, and limits. The main gap is that it never says what a successful call returns (e.g., the created form id), which an agent needs to chain follow-up calls.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 18 parameters and only 56% schema description coverage, the description carries meaningful weight for the highest-risk params: the `questions` object shape including CUSTOM with label/options, https requirement on privacyPolicyUrl, and the cross-reference that thankYou*/followUpActionUrl mirror the dashboard form. Several params (locale, isOptimizedForQuality, privacyPolicyLinkText, platform) get no semantic explanation in either place, so the compensation is partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Creates a Meta Instant Form on the brand's selected ad account") and immediately enumerates the field groups it sets, so an agent can distinguish this from the sibling list/read tools without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives real operational guidance: required `ads:manage` scope, mandatory agentName/reason, and an explicit instruction to pass idempotencyKey when repeats are possible. It does not name a specific alternative tool or state when not to use it, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources