MCP server and permissions
Connect ChatGPT, Codex, or Cursor to Dashform's MCP server, choose exactly what it may do, and revoke it.
Dashform's MCP server lets an AI client list, read, and manage your forms and their replies. Its endpoint is:
https://getaiform.com/api/mcpClients sign in with OAuth 2.1. They discover Dashform's authorization server from the endpoint, register themselves, and send you to Dashform to approve the connection, so there is no key to copy.
Permissions
Each permission is an OAuth scope for one resource, and reading is separate from writing:
| Scope | Consent screen shows | Tools it reaches |
|---|---|---|
forms:read | Read your forms | list_forms, get_form, list_form_revisions, get_form_revision |
forms:write | Manage your forms | create_form, update_form, publish_form, delete_form |
replies:read | Read your replies | list_replies, get_reply |
replies:write | Manage your replies | create_reply, update_reply, delete_reply, batch_delete_replies |
offline_access | Stay connected | Issues a refresh token |
Any granted scope also reaches the tools that read your Organizations and the public Marketplace: list_my_organizations, get_organization, and the *_marketplace_* tools. A token sees only the tools its scopes reach, both when the client lists tools and when it calls one.
Without offline_access the client gets no refresh token. Its access token lasts one hour, and then you approve the connection again.
The older mcp scope still grants every tool, so existing connections and clients that ask for it keep working. Discovery no longer advertises it. A client that still asks for it shows Full access to Dashform on the consent screen. When it also asks for the permissions above, untick full access to hold the connection to those you leave ticked.
Approve only what the client needs
ChatGPT, Codex, and Cursor request every scope Dashform advertises, so the choice is yours on the consent screen. Each requested permission is a checkbox, and all of them start ticked. Untick what the client shouldn't have, then choose Allow:
Allow ChatGPT to access Dashform?
[x] Read your forms
[ ] Manage your forms
[x] Read your replies
[ ] Manage your replies
[ ] Stay connected
[Cancel] [Allow]That connection can list and read forms and replies, can't create, change, or delete anything, and has no refresh token. A client that lets you set its scopes can request forms:read replies:read itself, and the consent screen then lists only those two.
ChatGPT
- Open ChatGPT Plugins, choose Add, then Add custom MCP server.
- Name it "Dashform", paste the endpoint into Server URL, and choose OAuth.
- Install the plugin and sign in to Dashform. On the consent screen, untick the permissions ChatGPT shouldn't have, then choose Allow.
Codex
- Run
codex mcp add dashform --url https://getaiform.com/api/mcp. - Run
codex mcp login dashform, sign in to Dashform, untick the permissions Codex shouldn't have, and choose Allow.
Cursor
-
Add Dashform to
~/.cursor/mcp.json:{ "mcpServers": { "dashform": { "url": "https://getaiform.com/api/mcp" } } } -
When Cursor asks you to sign in, sign in to Dashform, untick the permissions Cursor shouldn't have, and choose Allow.
To change what a connection may do later, remove it as below and connect again.
See and revoke connections
Open Settings > Security in Dashform. Connected applications lists every client you approved, with the permissions you granted. Choose Remove authorization to revoke one: its refresh tokens stop working at once, and its current access token expires within the hour. The client must ask for your approval before it can connect again.
Removing Dashform inside ChatGPT, Codex, or Cursor only deletes the client's copy of its tokens. Remove the authorization in Dashform to end the client's access.