Servidor MCP

ShipMyForm

com.shipmyform/shipmyform

Qué hace este MCP

Creates hosted or embeddable web form endpoints, manages submissions, exports data, and routes submissions to email, webhooks, and business applications.

add_connector
Add a connector
Route a form's submissions somewhere: email, webhook, Slack, Discord, Airtable, HubSpot, Telegram and more. Get the config fields from list_connector_types. OAuth connectors (Google Sheets, Notion) must be added in the dashboard.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['formId', 'type', 'config'], 'properties': {'type': {'type': 'string', 'description': "Connector type from list_connector_types, e.g. 'slack'"}, 'config': {'type': 'object', 'description': 'Field values keyed by the config field names', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'formId': {'type': 'string', 'description': 'Form id, e.g. frm_abc123'}}}
create_api_key
Create an API key
Mint another API key for this workspace (shown once), optionally narrower than this one. A key can never grant scopes it does not itself hold, so this is the safe way to hand a limited key to another agent.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'preset': {'enum': ['full', 'wiring', 'readonly', 'triage'], 'type': 'string', 'description': 'Named scope bundle: full (everything), wiring (forms only, no submission access), readonly, triage'}, 'scopes': {'type': 'array', 'items': {'enum': ['forms:read', 'forms:write', 'forms:delete', 'submissions:read', 'submissions:write', 'submissions:delete', 'account:manage'], 'type': 'string'}, 'description': "Explicit scopes, instead of a preset. Ignored where it would exceed the calling key's own scopes."}}}
create_form
Create a form
Create a form and get its endpoint plus a paste-ready HTML snippet. Email notifications to the account owner are set up automatically. Works on every plan.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "Human-readable form name, e.g. 'Contact form'"}, 'purpose': {'type': 'string', 'maxLength': 500, 'description': 'What the form is for, in a sentence. Helps the spam classifier.'}, 'allowedDomains': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20, 'description': "Sites allowed to submit, e.g. ['example.com']. Empty = any."}}}
delete_form
Delete form
Delete a form; its endpoint stops accepting submissions.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['formId'], 'properties': {'formId': {'type': 'string', 'description': 'Form id, e.g. frm_abc123'}}}
delete_submissions
Delete submissions
Permanently delete submissions (and their files).
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 200, 'minItems': 1}}}
export_submissions
Export submissions as CSV
All of a form's submissions (up to 2,000) as CSV text, optionally filtered by status.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['formId'], 'properties': {'formId': {'type': 'string', 'description': 'Form id, e.g. frm_abc123'}, 'status': {'enum': ['ok', 'spam', 'flagged'], 'type': 'string'}}}
get_account
Get account
The account's email, verification state, plan, limits, usage and dashboard URL.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
get_billing_portal
Billing portal link
A self-service billing portal URL: change plan, update the card, cancel.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
get_form
Get form
A form's full configuration, connectors and hosted-page status.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['formId'], 'properties': {'formId': {'type': 'string', 'description': 'Form id, e.g. frm_abc123'}}}
get_form_snippet
Get form snippet
A copy-paste form snippet for a framework (html, react, vue, or fetch) wired to the form's endpoint.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['formId'], 'properties': {'formId': {'type': 'string', 'description': 'Form id, e.g. frm_abc123'}, 'framework': {'enum': ['html', 'react', 'vue', 'fetch'], 'type': 'string', 'default': 'html'}}}
get_submission
Get a submission
One submission with spam signals and delivery history.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['submissionId'], 'properties': {'submissionId': {'type': 'string'}}}
get_submission_stats
Get submission stats
Delivered / spam-held / flagged counts for a form, plus workspace quota usage. Works on every plan.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['formId'], 'properties': {'formId': {'type': 'string', 'description': 'Form id, e.g. frm_abc123'}}}
label_submissions
Classify submissions
Mark submissions as spam, ok (not spam) or flagged. spam/ok also teach the classifier, so your judgement improves future filtering. This is how you triage in your own environment: list, decide, label.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['ids', 'label'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 200, 'minItems': 1}, 'label': {'enum': ['ok', 'spam', 'flagged'], 'type': 'string'}}}
list_api_keys
List API keys
API keys on this workspace (metadata only).
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
list_connectors
List a form's connectors
Connectors on a form with their status and last error.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['formId'], 'properties': {'formId': {'type': 'string', 'description': 'Form id, e.g. frm_abc123'}}}
list_connector_types
List connector types
Every destination submissions can be routed to, with the config fields each needs and which plan it requires.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
list_forms
List forms
The workspace's forms with their public endpoint URLs.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
list_submissions
List submissions
Read submissions across the workspace or for one form, with filters (status, date range, text search, country, attachments, failed deliveries) and paging. Spam is excluded unless status is 'spam'. Requires a paid plan.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'q': {'type': 'string', 'description': 'Free-text search across field values'}, 'sort': {'enum': ['newest', 'oldest', 'score'], 'type': 'string'}, 'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1}, 'since': {'type': 'string', 'description': 'ISO date; received on/after'}, 'until': {'type': 'string', 'description': 'ISO date; received before'}, 'formId': {'type': 'string', 'description': 'Form id, e.g. frm_abc123'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0}, 'status': {'enum': ['ok', 'spam', 'flagged'], 'type': 'string'}, 'hasFiles': {'type': 'boolean'}, 'countries': {'type': 'array', 'items': {'type': 'string'}, 'description': 'ISO 3166 alpha-2 codes'}, 'deliveryFailed': {'type': 'boolean'}}}
publish_hosted_page
Publish a hosted form page
Publish a standalone page for the form on shipmyform.com (no website needed) and get its URL plus an embed script. Uses the designed page if one exists, otherwise a default email + message form.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['formId'], 'properties': {'formId': {'type': 'string', 'description': 'Form id, e.g. frm_abc123'}}}
remove_connector
Remove a connector
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['connectorId'], 'properties': {'connectorId': {'type': 'string'}}}
resend_verification_code
Resend the verification code
Email a fresh 6-digit verification code to the account's address.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
revoke_api_key
Revoke an API key
Revoke a key by id. The key in use on this connection cannot revoke itself.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['keyId'], 'properties': {'keyId': {'type': 'string'}}}
set_connector_active
Enable or disable a connector
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['connectorId', 'active'], 'properties': {'active': {'type': 'boolean'}, 'connectorId': {'type': 'string'}}}
sign_up
Create an account
Start a ShipMyForm account from an email address, with no browser. A 6-digit code is emailed to the address; verify_account with { email, code } then returns the API key. Works without authentication. Also works for an existing account (the code approves API access).
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['email'], 'properties': {'agent': {'type': 'string', 'maxLength': 40, 'description': "Your name, e.g. 'Claude Code', shown in the verification email."}, 'email': {'type': 'string', 'description': "The user's email address. Ask for it; never invent one."}, 'preset': {'enum': ['full', 'wiring', 'readonly', 'triage'], 'type': 'string', 'description': 'Named scope bundle: full (everything), wiring (forms only, no submission access), readonly, triage'}, 'scopes': {'type': 'array', 'items': {'enum': ['forms:read', 'forms:write', 'forms:delete', 'submissions:read', 'submissions:write', 'submissions:delete', 'account:manage'], 'type': 'string'}, 'description': "Explicit scopes, instead of a preset. Ignored where it would exceed the calling key's own scopes."}, 'workspaceName': {'type': 'string', 'maxLength': 80}}}
start_upgrade
Start a paid plan
Get a hosted checkout URL for the Starter or Pro plan. Payment is completed by a person on that page; the plan activates automatically afterwards (check with get_account).
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['plan'], 'properties': {'plan': {'enum': ['starter', 'pro'], 'type': 'string'}, 'period': {'enum': ['monthly', 'annual'], 'type': 'string', 'default': 'monthly'}}}
test_connector
Test a connector
Send a test delivery through a connector and report the result.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['connectorId'], 'properties': {'connectorId': {'type': 'string'}}}
unpublish_hosted_page
Unpublish the hosted page
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['formId'], 'properties': {'formId': {'type': 'string', 'description': 'Form id, e.g. frm_abc123'}}}
update_form
Update form settings
Change any subset of a form's settings: name, purpose, allowedDomains, redirectUrl, spamMode, active, storeSubmissions, validation rules, blocklist, autoResponder (Pro).
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['formId'], 'properties': {'name': {'type': 'string'}, 'active': {'type': 'boolean'}, 'formId': {'type': 'string', 'description': 'Form id, e.g. frm_abc123'}, 'purpose': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'spamMode': {'enum': ['basic', 'strict'], 'type': 'string'}, 'blocklist': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Emails, @domains or keywords that mark a submission as spam'}, 'validation': {'anyOf': [{'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'Server-side rules by field, e.g. { "email": { "required": true, "type": "email" }, "message": { "minLength": 10 } }. null clears.'}, 'redirectUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Absolute URL visitors are sent to after submitting'}, 'autoResponder': {'type': 'object', 'properties': {'enabled': {'type': 'boolean'}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'subject': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}}, 'allowedDomains': {'type': 'array', 'items': {'type': 'string'}}, 'storeSubmissions': {'type': 'boolean'}}}
verify_account
Verify the account email
Prove the address with the 6-digit code emailed by sign_up. Without a key on the connection, pass the email too: on success this returns the API key (shown once). Turns on email notifications.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['code'], 'properties': {'code': {'type': 'string', 'maxLength': 6, 'minLength': 6}, 'agent': {'type': 'string', 'maxLength': 40}, 'email': {'type': 'string', 'description': 'Required when not yet connected with a key'}, 'preset': {'enum': ['full', 'wiring', 'readonly', 'triage'], 'type': 'string', 'description': 'Named scope bundle: full (everything), wiring (forms only, no submission access), readonly, triage'}, 'scopes': {'type': 'array', 'items': {'enum': ['forms:read', 'forms:write', 'forms:delete', 'submissions:read', 'submissions:write', 'submissions:delete', 'account:manage'], 'type': 'string'}, 'description': "Explicit scopes, instead of a preset. Ignored where it would exceed the calling key's own scopes."}}}
Añadido
export_submissions
1 de October de 2026 a las 02:40
Añadido
delete_submissions
1 de October de 2026 a las 02:40
Añadido
label_submissions
1 de October de 2026 a las 02:40
Añadido
get_submission
1 de October de 2026 a las 02:40
Añadido
list_submissions
1 de October de 2026 a las 02:40
Añadido
unpublish_hosted_page
1 de October de 2026 a las 02:40
Añadido
publish_hosted_page
1 de October de 2026 a las 02:40
Añadido
remove_connector
1 de October de 2026 a las 02:40
Añadido
set_connector_active
1 de October de 2026 a las 02:40
Añadido
test_connector
1 de October de 2026 a las 02:40
Añadido
add_connector
1 de October de 2026 a las 02:40
Añadido
list_connectors
1 de October de 2026 a las 02:40
Añadido
list_connector_types
1 de October de 2026 a las 02:40
Añadido
get_submission_stats
1 de October de 2026 a las 02:40
Añadido
get_form_snippet
1 de October de 2026 a las 02:40
Añadido
delete_form
1 de October de 2026 a las 02:40
Añadido
update_form
1 de October de 2026 a las 02:40
Añadido
get_form
1 de October de 2026 a las 02:40
Añadido
create_form
1 de October de 2026 a las 02:40
Añadido
list_forms
1 de October de 2026 a las 02:40
Añadido
get_billing_portal
1 de October de 2026 a las 02:40
Añadido
start_upgrade
1 de October de 2026 a las 02:40
Añadido
revoke_api_key
1 de October de 2026 a las 02:40
Añadido
list_api_keys
1 de October de 2026 a las 02:40
Añadido
create_api_key
1 de October de 2026 a las 02:40
Añadido
get_account
1 de October de 2026 a las 02:40
Añadido
resend_verification_code
1 de October de 2026 a las 02:40
Añadido
verify_account
1 de October de 2026 a las 02:40
Añadido
sign_up
1 de October de 2026 a las 02:40