Tools
33 tools across six surfaces. Every tool checks the token's abilities before running; missing the ability returns a refusal.
Forms
| Tool |
Ability |
Description |
list_forms |
forms:read |
List active forms in the team |
get_form |
forms:read |
Fetch one form by public_id |
create_form |
forms:write |
Create a new form |
update_form |
forms:write |
Patch fields, theme, settings, custom rules |
publish_form |
forms:write |
Set published_at = now() |
unpublish_form |
forms:write |
Clear published_at |
archive_form |
forms:write |
Soft-delete |
restore_form |
forms:write |
Reverse archive |
send_test_autoresponder |
forms:test-email |
Send preview autoresponder to your account email |
send_test_notification |
forms:test-email |
Send preview owner-notification |
Submissions
| Tool |
Ability |
Description |
list_submissions |
submissions:read |
Paginate, filter by folder |
get_submission |
submissions:read |
Fetch one with files |
update_submission |
submissions:write |
Patch payload or status |
delete_submission |
submissions:write |
Permanent delete + file cleanup |
bulk_submissions |
submissions:write |
Up to 500 ids: delete, mark_spam, mark_not_spam |
export_submissions |
submissions:export |
Inline JSON, up to 500 rows |
get_submission_file |
submissions:read |
Short-TTL signed URL |
mark_as_spam |
submissions:write |
Quick mark with reason manual:mcp |
get_form_stats |
submissions:read |
30-day totals, spam ratio, AI score average |
Webhooks
| Tool |
Ability |
Description |
list_webhooks |
webhooks:read |
Webhooks for a form, with delivery counts |
get_webhook |
webhooks:read |
Single webhook (no secret) |
create_webhook |
webhooks:write |
Returns plaintext signing secret ONCE |
update_webhook |
webhooks:write |
URL, label, active flag |
delete_webhook |
webhooks:write |
Remove |
list_webhook_deliveries |
webhooks:read |
Last 50 (configurable up to 200) |
replay_webhook_delivery |
webhooks:write |
Re-dispatch a previous delivery |
Billing (read-only)
| Tool |
Ability |
Description |
get_team |
billing:read |
Current team summary |
get_plan |
billing:read |
Plan key, features, limits |
get_usage |
billing:read |
Current period: submissions, storage, deliveries |
get_subscription_state |
billing:read |
active / on_trial / on_grace_period / past_due / canceled |
AI Insights
| Tool |
Ability |
Description |
get_ai_insights |
insights:read |
Insights payload (or { locked: true }) |
regenerate_ai_insights |
insights:write |
Trigger regen; locked 5 min between calls |
Tokens (self-management)
| Tool |
Ability |
Description |
list_tokens |
tokens:read |
Your own tokens |
create_token |
tokens:write |
Mint a token; abilities ⊆ caller's |
revoke_token |
tokens:write |
Revoke (refuses on the active token) |
Example call
list_submissions {
form_id: "r2EdO-orF-3S",
folder: "spam",
limit: 25
}
returns
{
"submissions": [
{
"id": "01HFXX0X9R7KZJVN9VS6TG2C5T",
"status": "spam",
"spam_reason": "akismet",
"ai_moderation_score": 87,
"payload": { "email": "spam@bad.com", "message": "..." },
"created_at": "2026-05-07T16:09:10Z"
}
]
}
What's next