ShipMyForm
Form backend as 29 tools: create endpoints, route submissions, publish pages, run the inbox.
What it can do
What data it sees
Do you need an account
An API key from the service settings is required
Form backend as 29 tools: create endpoints, route submissions, publish pages, run the inbox.
How to connect
How to connect ShipMyForm to Claude
The server address to paste into Claude settings:
https://shipmyform.com/api/mcp
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect ShipMyForm to ChatGPT
The server address to paste into ChatGPT settings:
https://shipmyform.com/api/mcp
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect ShipMyForm to Cursor
The server address to paste into Cursor settings:
https://shipmyform.com/api/mcp
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (29)
Raw names from tools/list. Only developers need these.
| sign_up | 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). |
| verify_account | 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. |
| resend_verification_code | Email a fresh 6-digit verification code to the account's address. |
| get_account | The account's email, verification state, plan, limits, usage and dashboard URL. |
| create_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. |
| list_api_keys | API keys on this workspace (metadata only). |
| revoke_api_key | Revoke a key by id. The key in use on this connection cannot revoke itself. |
| start_upgrade | Get a hosted checkout URL for the Starter or Business plan. Payment is completed by a person on that page; the plan activates automatically afterwards (check with get_account). |
| get_billing_portal | A self-service billing portal URL: change plan, update the card, cancel. |
| list_forms | The workspace's forms with their public endpoint URLs. |
| create_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. |
| get_form | A form's full configuration, connectors and hosted-page status. |
| update_form | Change any subset of a form's settings: name, purpose, allowedDomains, redirectUrl, spamMode, active, storeSubmissions, validation rules, blocklist, autoResponder (Pro). |
| delete_form | Delete a form; its endpoint stops accepting submissions. |
| get_form_snippet | A copy-paste form snippet for a framework (html, react, vue, or fetch) wired to the form's endpoint. |
| get_submission_stats | Delivered / spam-held / flagged counts for a form, plus workspace quota usage. Works on every plan. |
| list_connector_types | Every destination submissions can be routed to, with the config fields each needs and which plan it requires. |
| list_connectors | Connectors on a form with their status and last error. |
| add_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. |
| test_connector | Send a test delivery through a connector and report the result. |
| set_connector_active | |
| remove_connector | |
| publish_hosted_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. |
| unpublish_hosted_page | |
| 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. |
| get_submission | One submission with spam signals and delivery history. |
| label_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. |
| delete_submissions | Permanently delete submissions (and their files). |
| export_submissions | All of a form's submissions (up to 2,000) as CSV text, optionally filtered by status. |