MCP server
Connect Claude, ChatGPT, Le Chat, Perplexity or any MCP client to your workspace to build forms and read responses.
Connect an AI assistant to your workspace over the Model Context Protocol. It can build forms, publish them, read responses and answer questions about how they are performing — from whichever tool you already work in.
Endpoint
https://quesli.com/api/mcpStreamable HTTP, POST only. MCP revision 2026-07-28.
Two ways to connect, and which one you need
It depends entirely on your client, so it is worth getting right before you start.
The chat assistants sign in with your MakingFlow account. There is nothing to create on our side — you add the URL above as a custom connector in their settings, and they send you here to choose what they may reach. They have nowhere to put an API key, so making one for them would not help.
Everything else uses a key. Create one in Integrations, choosing its permissions and workspaces, then paste it into your client's config. A key can cover several workspaces, so you set it up once.
Signing in with MakingFlow
These clients handle authentication themselves. Start in their settings, not here.
Claude
claude.ai, and the desktop and mobile apps
- 1Open Claude → Customize → Connectors, then + → Add custom connector. On Team and Enterprise an owner adds it once under Organization settings → Connectors, and everyone else then presses Connect on it.
- 2Paste the URL below and choose Add. Leave the OAuth client id and secret under Advanced settings empty — Claude registers itself, so anything typed there is a credential nothing issued.
- 3Claude sends you back here to sign in and choose what it may reach.
https://quesli.com/api/mcpChatGPT
Requires developer mode for custom connectors
- 1Open ChatGPT → Settings and turn on Developer mode, under Security and login. Custom connectors stay hidden until you do, and it needs a paid plan.
- 2Still in Settings, open Plugins, press + and paste the URL below as the server URL, then save.
- 3ChatGPT sends you back here to sign in and choose what it may reach.
https://quesli.com/api/mcpLe Chat
Mistral's assistant — a workspace admin adds connectors
- 1Open Le Chat → Connectors, then + Add Connector.
- 2Switch to the Custom MCP Connector tab. Give it a name without spaces, and paste the URL below as the server URL.
- 3Choose Connect. Le Chat detects the authentication itself — there is no client id or secret to supply — and sends you back here to sign in and choose what it may reach.
https://quesli.com/api/mcpPerplexity
Custom connectors need Pro, Max or Enterprise
- 1Open Perplexity → Settings → Connectors, then Add a connector → Custom MCP server.
- 2Paste the URL below. Open Advanced settings and leave the transport on Streamable HTTP — we do not serve SSE.
- 3Leave the authentication on OAuth with the client fields empty: we register Perplexity ourselves, so an id and secret typed in here are ones nothing issued.
- 4Tick the risk acknowledgement and choose Add. Perplexity sends you back here to sign in and choose what it may reach.
https://quesli.com/api/mcpConnecting with a key
Open Integrations in MakingFlow, choose Connect, and pick your app. The key is shown once — we store only a one-way hash, so it cannot be recovered. If you lose it, revoke it and make another.
Claude Code
Anthropic's terminal and IDE agent
Create a key in Integrations, then:
claude mcp add --scope user --transport http makingflow https://quesli.com/api/mcp --header "Authorization: Bearer mf_sk_live_..."Run it as a single line. A line break inside the quotes puts a newline in the HTTP header and fails with an unhelpful error.
Cursor
The AI code editor
Create a key in Integrations, then:
{
"mcpServers": {
"makingflow": {
"url": "https://quesli.com/api/mcp",
"headers": {
"Authorization": "Bearer mf_sk_live_..."
}
}
}
}If the button doesn't open Cursor, paste this into Settings → MCP instead.
The connect dialog also offers a one-click Add to Cursor button, which installs this for you.
VS Code
With GitHub Copilot's agent mode
Create a key in Integrations, then:
{
"servers": {
"makingflow": {
"type": "http",
"url": "https://quesli.com/api/mcp",
"headers": {
"Authorization": "Bearer mf_sk_live_..."
}
}
}
}If the button doesn't open VS Code, add this to your mcp.json instead.
The connect dialog also offers a one-click Add to VS Code button, which installs this for you.
Something else
Any MCP client that can send a header
Create a key in Integrations, then:
https://quesli.com/api/mcp
Authorization: Bearer mf_sk_live_...Streamable HTTP, POST only. Point the client at the endpoint and send the key as a bearer token.
Permissions
| Scope | Grants | What it covers |
|---|---|---|
| forms:read | Read forms | See forms, fields and settings |
| forms:write | Build and edit forms | Create, edit and publish |
| submissions:read | Read responsesSensitive | Includes names, emails and anything else respondents submitted |
| submissions:write | Analyse responses | Run AI summaries and scoring |
| analytics:read | Read analytics | Views, completion and drop-off |
| integrations:write | Manage integrations | Webhooks, Sheets, Notion and notifications |
| team:write | Manage the teamSensitive | Invite and remove members. Owners only, whatever is granted here |
Whichever way you connect, a connection only ever sees the tools its permissions allow, and can never do more than the person who set it up — its role is re-read from your workspace on every request, so removing someone cuts their connections off immediately.
Deleting forms and responses is never offered when you connect. It stays off by design, and the deletion tools additionally require an explicit confirmation on every call.
What it can do
| Area | Permissions | Tools |
|---|---|---|
| Forms | forms:read, forms:write | list, get, create, edit, publish, rename, duplicate, delete, folders, move |
| Responses | submissions:read, submissions:write | list, get, export, analyse with AI, delete |
| Analytics | analytics:read | workspace dashboard, per-form insights |
| Integrations | integrations:write | webhooks, Sheets, Notion, email and Discord notifications |
| Team & domains | team:write, forms:write | members, invitations, custom domains |
Disconnecting
Integrations → View details lists everything connected, whichever way it was set up, and disconnects any of it. That takes effect on the connection's very next request — not whenever a token happens to expire.
A note on responses
Something wrong or missing on this page? Tell us.