Cursor
Step-by-step guide to connect Cursor to FormsReach via MCP. Manage forms, submissions, and notifications programmatically.
FormsReach has a built-in MCP (Model Context Protocol) server that allows Cursor to programmatically manage forms, read submissions, configure notification channels, view analytics, and manage workflow rules.
Overview
Once connected, Cursor can use FormsReach MCP tools to:
- Manage forms (list, create, update, delete)
- Read and export submissions
- Configure notification channels (email, Discord, WhatsApp, Telegram, webhooks)
- View analytics and usage data
- Manage workflow rules
Two Ways to Connect
Option 1: MCP Connect (Recommended - Easier)
This is the guided browser-based flow:
- In Cursor’s MCP settings, configure the FormsReach server and trigger the auth flow
- Your browser opens to the consent page at
https://app.formsreach.com/connect/mcp?callback=http://localhost:PORT&client_name=Cursor - Sign in (if needed) and select the scopes you want to grant
- Click Approve - FormsReach creates an API key and redirects back to Cursor
- Done! Cursor now has the API key and can call the MCP server
Benefits:
- No manual copy-paste
- Browser-based consent flow
- Keys automatically named “Cursor”
- Can revoke from
/settingslater
Option 2: Manual API Key (More Control)
If you prefer manual setup:
Step 1: Create an API Key
- Open FormsReach: Visit https://app.formsreach.com/settings
- Click “Create API key”
- Fill in details:
- Name: e.g., “Cursor MCP”
- Scopes: All scopes are selected by default (or customize as needed)
- Click “Create key”
- COPY THE KEY NOW - It’s only shown once!
- Format:
fr_live_<32 random bytes> - Example:
fr_live_3Kx9mP2vQwRtYnBjLdHsAuCeNzFgMoXk
- Format:
Step 2: Configure Cursor
Add this to your Cursor MCP config file:
Production:
{
"mcpServers": {
"formsreach": {
"type": "http",
"url": "https://app.formsreach.com/api/mcp",
"headers": {
"Authorization": "Bearer fr_live_YOUR_API_KEY_HERE"
}
}
}
}
Local Development:
{
"mcpServers": {
"formsreach": {
"type": "http",
"url": "http://localhost:3000/api/mcp",
"headers": {
"Authorization": "Bearer fr_live_YOUR_API_KEY_HERE"
}
}
}
}
Step 3: Reload Cursor
Restart Cursor or reload the MCP configuration to connect.
Available MCP Tools
Forms Management
list_forms- List all your formsget_form- Get full details for a specific formcreate_form- Create a new formupdate_form- Update form settingsdelete_form- Delete a form
Submissions
list_submissions- List submissions for a form (with cursor pagination)get_submission- Get full details of a specific submissionexport_submissions- Export submissions as CSV/JSONmark_submission_spam- Mark a submission as spamdelete_submission- Delete a submission
Channels
get_channels- Get notification channel configurationupdate_email_channel- Configure email notificationsupdate_webhook_channel- Configure webhook notificationsupdate_discord_channel- Configure Discord notifications
Rules
list_rules- List workflow rulescreate_rule- Create a new ruleupdate_rule- Update a ruledelete_rule- Delete a rule
Analytics & Usage
get_analytics- Get form analyticsget_usage- Get credit usage information
API Key Scopes
Your API key can have these scopes (all selected by default):
| Scope | Permissions |
|---|---|
forms:read |
Read forms |
forms:write |
Create, update, delete forms |
submissions:read |
Read submissions |
submissions:write |
Mark spam, delete submissions |
channels:read |
Read notification channels |
channels:write |
Update notification channels |
rules:read |
Read workflow rules |
rules:write |
Create, update, delete rules |
analytics:read |
Read analytics |
usage:read |
Read plan and credit usage |
Rate Limits & Security
Rate Limits:
- 1,000 requests per API key per hour (shared between MCP and REST API calls)
- On limit exceeded: 429 error with Retry-After header
Security Notes:
- API keys are only shown once at creation - store them securely
- Keys use SHA-256 hashing - never stored in plaintext
- Revoke anytime - Go to
/settings→ API Keys → Revoke - Scoped permissions - Limit what each key can do
- Audit logging - Destructive operations are logged
Example Usage
Once configured, you can ask Cursor things like:
- “List all my FormsReach forms”
- “Create a new contact form called ‘Newsletter Signup’”
- “Show me the latest 10 submissions for form xyz”
- “Export submissions from my contact form as CSV”
- “Update the webhook channel to post to https://example.com/webhook”
Cursor will use the MCP tools automatically!
Troubleshooting
401 Unauthorized?
- Check your API key is correct and not revoked
- Verify the
Authorization: Bearerheader format - Check key hasn’t expired (if expiry was set)
403 Forbidden / Missing tools?
- Your API key might not have the required scope
- Recreate key with proper scopes selected
429 Rate Limited?
- Wait for rate limit window to reset (check Retry-After header)
- Consider creating separate keys for different use cases
404 Not Found?
- Verify the MCP server URL is correct
- For local dev: ensure server is running on localhost:3000