MCP-Server

ShipMyForm

com.shipmyform/shipmyform
Business & Betrieb Entwicklertools Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

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.
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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).
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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).
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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
Eingabeschema
{'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.
Eingabeschema
{'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.
Eingabeschema
{'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
Eingabeschema
{'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).
Eingabeschema
{'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).
Eingabeschema
{'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.
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['connectorId'], 'properties': {'connectorId': {'type': 'string'}}}
unpublish_hosted_page
Unpublish the hosted page
Eingabeschema
{'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).
Eingabeschema
{'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.
Eingabeschema
{'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."}}}
Hinzugefügt
export_submissions
1. October 2026 02:40
Hinzugefügt
delete_submissions
1. October 2026 02:40
Hinzugefügt
label_submissions
1. October 2026 02:40
Hinzugefügt
get_submission
1. October 2026 02:40
Hinzugefügt
list_submissions
1. October 2026 02:40
Hinzugefügt
unpublish_hosted_page
1. October 2026 02:40
Hinzugefügt
publish_hosted_page
1. October 2026 02:40
Hinzugefügt
remove_connector
1. October 2026 02:40
Hinzugefügt
set_connector_active
1. October 2026 02:40
Hinzugefügt
test_connector
1. October 2026 02:40
Hinzugefügt
add_connector
1. October 2026 02:40
Hinzugefügt
list_connectors
1. October 2026 02:40
Hinzugefügt
list_connector_types
1. October 2026 02:40
Hinzugefügt
get_submission_stats
1. October 2026 02:40
Hinzugefügt
get_form_snippet
1. October 2026 02:40
Hinzugefügt
delete_form
1. October 2026 02:40
Hinzugefügt
update_form
1. October 2026 02:40
Hinzugefügt
get_form
1. October 2026 02:40
Hinzugefügt
create_form
1. October 2026 02:40
Hinzugefügt
list_forms
1. October 2026 02:40
Hinzugefügt
get_billing_portal
1. October 2026 02:40
Hinzugefügt
start_upgrade
1. October 2026 02:40
Hinzugefügt
revoke_api_key
1. October 2026 02:40
Hinzugefügt
list_api_keys
1. October 2026 02:40
Hinzugefügt
create_api_key
1. October 2026 02:40
Hinzugefügt
get_account
1. October 2026 02:40
Hinzugefügt
resend_verification_code
1. October 2026 02:40
Hinzugefügt
verify_account
1. October 2026 02:40
Hinzugefügt
sign_up
1. October 2026 02:40