NeetoForm MCP and CLI: let AI tools make sense of your form responses

Connect NeetoForm to Claude, ChatGPT, Cursor, Codex, and other AI tools. Ask questions about your forms, analyze responses in plain language, and automate exports and alerts from your terminal.

What is NeetoForm MCP?

NeetoForm MCP lets AI tools like Claude and ChatGPT work with your NeetoForm account. Once it's connected, you can ask your AI assistant which forms are collecting responses, read what people submitted, and turn hundreds of answers into a summary, a score, or a list of themes, in the same conversation where you're already working.

MCP stands for Model Context Protocol, an open standard for connecting AI tools to the apps you use. You don't need to know anything about it. You connect once, sign in to NeetoForm, and start asking.

YouTube video placeholderNeetoForm MCP and CLI demo (about 6 minutes)

YouTube walkthrough: connect NeetoForm to Claude, find a form, summarize free-text feedback, calculate an NPS score, then export submissions from the terminal with the CLI.

Your AI tool talks to the NeetoForm MCP server. NeetoForm hosts it, so there's nothing to install or keep updated, and every workspace uses the same address:

https://connect.neetoform.com/mcp/messages

When you connect, you sign in with your NeetoForm account and pick your workspace. The assistant then works as you: it sees only the forms you can see, and does only what your role allows. It can find forms, read their questions, read completed submissions, and manage your team members. Your forms and submissions stay read-only to AI. You never name a tool; you ask in plain language. The full list is in the NeetoForm MCP tools reference.

NeetoForm also has a command-line tool, the NeetoForm CLI. It lists your forms and submissions from your terminal, in scripts, and in scheduled jobs. It's open source, so you can read exactly what it does, change it, and build on it.

Real prompts for real work

These are real prompts for real work with forms. Copy any of them and try it with Claude, ChatGPT, or another AI tool. For repeatable jobs in automation, we have included CLI examples too.

Ask NeetoForm questions

NeetoForm isn't only somewhere responses pile up. It's something you can ask questions about. Try these:

Which of my forms are collecting responses right now?

Which active forms haven't received a single submission?

Which form gets the most submissions?

Find my form about onboarding feedback and show me its questions.

Show me the ten most recent submissions to the Contact sales form.

How many people registered for the webinar this week?

Who created the Event registration form, and when?

Which forms have we archived?

The assistant reads your forms and submissions and works out the answer. For forms with thousands of submissions, the CLI is the better fit. See MCP or CLI.

Analyze responses

Summarize free-text feedback

Read the free-text answers on the Event feedback form. What did people like, what did they dislike, and what came up more than once?

Instead of reading every answer, you get the themes, with a few quotes for each.

Screen recording placeholderSummarizing feedback in Claude

Screen recording: the prompt above, the assistant reading submissions, and the summary with themes and quotes.

Calculate a score

Calculate our NPS from the last 200 responses to the Customer feedback form. Show me how many promoters, passives and detractors we have, and what the detractors complained about.

Group requests into themes

Go through this month's Feature request submissions. Group the requests into themes, count how many people asked for each, and rank them.

Find leads worth a call

From this week's Contact sales submissions, list the companies with more than 50 employees and what each of them asked about.

Compare two rounds

Compare the answers on the March and April Workshop feedback forms. What improved, what got worse, and what's new?

Find who hasn't responded

Which people who registered on the Webinar registration form haven't filled in the Post-webinar survey? Match them by email.

Spot a confusing question

On the Customer onboarding form, which questions do people skip, answer with "N/A", or clearly misunderstand? Suggest clearer wording.

Draft follow-ups

For everyone who rated us 6 or lower on the Customer feedback form this month, draft a short personal follow-up email based on what they wrote. Don't send anything.

The assistant writes the drafts in the chat for you to review and send from your own email.

Manage your team

Invite teammates

Invite oliver@example.com and sam@example.com to NeetoForm as Standard members.

Change a role

Make oliver@example.com an Admin in NeetoForm.

Remove someone who left

Sam has left the company. Deactivate sam@example.com in NeetoForm.

Deactivating keeps everything Sam built. Their forms and submissions stay where they are.

Automate with the CLI

Why have a CLI when MCP exists? Because some jobs shouldn't need an AI at all. These run on a schedule, with nothing but the neetoform binary and the tools you already use, such as jq, curl, and your cloud CLI. No model account, no cost per run, and the same result every time.

Post submission counts every morning

# Every weekday at 9am
0 9 * * 1-5 neetoform forms list --status active --page-size 100 --json | jq '{text: ([.data[] | "\(.title): \(.submissions_count)"] | join("\n"))}' | curl -s -X POST -H "Content-Type: application/json" -d @- "$SLACK_WEBHOOK_URL"

Export a form's submissions to a spreadsheet

Look up the form by title, then write every submission to CSV.

form_id=$(neetoform forms list --status active --page-size 100 --json | jq -r '.data[] | select(.title == "Contact sales") | .id')

page=1
while :; do
  out=$(neetoform forms submissions list "$form_id" --page "$page" --page-size 100 --json)
  echo "$out" | jq -r '.data[] | [.created_at] + [.responses[].value | tostring] | @csv'
  [ "$(echo "$out" | jq '.pagination.total_pages')" -le "$page" ] && break
  page=$((page + 1))
done > contact-sales.csv

Send new leads to your CRM

Every 15 minutes, push submissions you haven't seen yet into your CRM.

touch seen.txt
neetoform forms submissions list "$FORM_ID" --page-size 100 --json \
  | jq -c '.data[]' \
  | while read -r submission; do
      id=$(echo "$submission" | jq -r '.id')
      grep -qx "$id" seen.txt && continue
      curl -s -X POST -H "Content-Type: application/json" -d "$submission" https://crm.example.com/api/leads
      echo "$id" >> seen.txt
    done

Back up every submission nightly

form_page=1
while :; do
  forms=$(neetoform forms list --page "$form_page" --page-size 100 --json)
  echo "$forms" | jq -r '.data[].id' | while read -r form_id; do
    page=1
    while :; do
      out=$(neetoform forms submissions list "$form_id" --page "$page" --page-size 100 --json)
      echo "$out" | jq -c --arg form "$form_id" '.data[] | {form: $form} + .'
      [ "$(echo "$out" | jq '.pagination.total_pages')" -le "$page" ] && break
      page=$((page + 1))
    done
  done
  [ "$(echo "$forms" | jq '.pagination.total_pages')" -le "$form_page" ] && break
  form_page=$((form_page + 1))
done > submissions.jsonl

aws s3 cp submissions.jsonl "s3://your-backup-bucket/neetoform/$(date +%F).jsonl"

Notice when a form goes quiet

Every evening, compare today's submission counts with yesterday's and flag forms that didn't move.

neetoform forms list --status active --page-size 100 --json \
  | jq '[.data[] | {id, title, submissions_count}]' > counts-today.json

[ -s counts-yesterday.json ] && jq -r --slurpfile y counts-yesterday.json '
  ($y[0] | map({(.id): .submissions_count}) | add) as $prev
  | .[] | select($prev[.id] == .submissions_count) | "No new submissions: \(.title)"' counts-today.json

mv counts-today.json counts-yesterday.json

Add and remove people from your HR scripts

# Onboarding
neetoform team-members create --emails oliver@example.com,sam@example.com --role Standard

# Offboarding: deactivates the member and keeps their forms and submissions
neetoform team-members delete "$(neetoform team-members list --email sam@example.com --quiet | jq -r '.[0].id')"

Let a coding agent build it for you

You don't have to write these scripts yourself. Claude Code, Codex, or another coding agent can write the automation and use the open-source NeetoForm CLI to work with your account. Run neetoform setup claude (or setup codex, setup cursor) once, then ask:

Every Monday at 8 AM, use the NeetoForm CLI to export last week's Contact sales submissions to CSV and email it to the sales team. Write the script, test it, and set up the cron job.

Using the NeetoForm CLI, write a script that saves every submission from all our active forms as JSON, one file per form.

You get the convenience of a chat, and the result is a script you can read, run, and commit.

Screen recording placeholderClaude Code building a NeetoForm automation

Terminal recording: the Monday export prompt, Claude Code running neetoform commands, writing the script, and adding the cron job.

MCP or CLI: which should you use?

Both read the same forms and submissions. Pick based on how the work reaches NeetoForm.

Use MCP when:

  • You want to understand the answers. Summaries, themes, scores, and comparisons need someone to read the responses.
  • You're asking a question. "Which forms got nothing this week?" needs someone to look and explain.
  • You need to find a form by name or read its questions. MCP can search forms and show their questions; the CLI can't.
  • You don't use a terminal. NeetoForm hosts the server. There's nothing to install.

Use the CLI when:

  • No AI should be in the loop. A cron job or CI step runs the CLI with nothing but the binary. No model account, no cost per run.
  • The output feeds another program. The CLI prints raw JSON for jq, a spreadsheet, your CRM, or your own script.
  • You're working through thousands of submissions. The CLI pages through everything unattended.
  • The run has to be repeatable. A command records exactly what ran and does the same thing every time.

You can also have both. With neetoform setup claude, your AI assistant drives the CLI for you, so a plain-language request still ends in a command you can read and reuse.

Connect NeetoForm to your AI tool

Claude

  1. Open NeetoForm in the Claude directory and click Connect to Claude.
  2. Sign in to NeetoForm and choose your workspace and permissions.

This works in Claude on the web, desktop, and mobile. On a Claude Team or Enterprise plan, an admin may need to turn on NeetoForm under Organization settings, then Connectors.

Screen recording placeholderConnecting NeetoForm to Claude

Screen recording of the two steps above, ending with a first prompt.

ChatGPT

  1. In ChatGPT, open Settings, then Security and login, and turn on Developer mode.
  2. Go to chatgpt.com/plugins and click +.
  3. Name it NeetoForm, set the connection to Server URL, and paste https://connect.neetoform.com/mcp/messages.
  4. Leave authentication on OAuth, accept the notice, and click Create. Then sign in to NeetoForm.

Claude Code

claude mcp add --transport http neetoform https://connect.neetoform.com/mcp/messages

Then start Claude Code, run /mcp, pick neetoform, and sign in.

Cursor, Codex, VS Code, Windsurf, and Gemini CLI

Each of these connects to the same server address. The NeetoForm MCP setup guide has the exact configuration for each one.

To check the connection, ask your assistant: "List the active forms in my NeetoForm workspace."

Install the NeetoForm CLI

macOS with Homebrew:

brew install neetozone/tap/neetoform

macOS or Linux:

curl -fsSL https://neetoform.com/cli/install.sh | sh

Windows (PowerShell):

irm https://neetoform.com/cli/install.ps1 | iex

Then sign in. This opens your browser, and there's no API key to manage:

neetoform login --subdomain your-workspace

To teach your AI coding assistant how to use the CLI, run one of these from your project folder:

neetoform setup claude      # Claude Code
neetoform setup cursor      # Cursor
neetoform setup codex       # Codex
neetoform setup copilot     # GitHub Copilot
neetoform setup gemini      # Gemini CLI
neetoform setup windsurf    # Windsurf

Every command supports --json for scripts and --toon, a compact format that uses fewer tokens when an AI tool reads the output. See the NeetoForm CLI reference for every command.

Permissions and safety

  • Your assistant works as you. When you sign in with NeetoForm, it sees only the forms you can see and does only what your role allows.
  • Your forms and responses are read-only to AI. Your assistant can read forms and submissions, but it can't edit, publish, or delete them.
  • You choose the access. Read is always on. Create and update lets it invite and update team members, and Delete lets it deactivate them. Those are the only changes it can make. Leave both off for a read-only connection.
  • Removing someone is safe. Deactivating a team member keeps their forms and submissions, and the last admin can't be removed.
  • You can disconnect anytime. Remove the NeetoForm connector from your AI tool and its access ends.

Open source

The NeetoForm CLI is open source on GitHub. You can read every command, see exactly what it sends to NeetoForm, and adapt it to your own workflows. It's written in Go and runs on macOS, Linux, and Windows.

The CLI is built on neeto-cli-commons, the shared foundation behind every Neeto CLI, so what you learn in one works the same way in the others.

Found a bug or want a new command? Open an issue or a pull request.

Frequently asked questions

Do I need to know what MCP is?

No. Connect NeetoForm to your AI tool once, sign in, and ask in plain language.

Can ChatGPT analyze my NeetoForm responses?

Yes. Connect ChatGPT to the NeetoForm MCP server and it can find your forms, read submissions, and summarize, score, or compare responses. Today you add NeetoForm to ChatGPT as a custom connector in Developer mode. See Connect NeetoForm to your AI tool.

Can Claude read my NeetoForm submissions?

Yes. Connect NeetoForm from the Claude directory and you can ask Claude to find a form, read its latest submissions, and turn the answers into summaries, themes, or scores in plain language.

Can AI create or edit my forms?

Not today. Your assistant can find forms, read their questions, and read submissions, but building and editing forms still happens in NeetoForm.

Can I use NeetoForm with Claude Code?

Yes, in two ways. Add the NeetoForm MCP server with claude mcp add, or run neetoform setup claude so Claude Code can drive the NeetoForm CLI. You can use both.

Can I use NeetoForm MCP with Cursor or Codex?

Yes. Cursor, Codex, VS Code with GitHub Copilot, Windsurf, and Gemini CLI all connect to the same NeetoForm MCP server. The setup guide has the configuration for each.

Does NeetoForm MCP require an API key?

No. You sign in with your NeetoForm account and approve access, so there's no key to copy or rotate. Developer tools such as Claude Code, Cursor, and Codex can use a NeetoForm API key instead if you prefer, but a key reaches the whole workspace rather than acting as you.

Can I automate NeetoForm without using AI?

Yes. The NeetoForm CLI works directly from your terminal, shell scripts, cron jobs, and CI workflows. You don't need Claude, ChatGPT, or another AI service to use it.

Is the NeetoForm CLI open source?

Yes. It's on GitHub, and you can use it, read it, and change it.

Where is the NeetoForm MCP server hosted?

NeetoForm hosts the MCP server at https://connect.neetoform.com/mcp/messages. You don't need to download or run a server yourself.

Does NeetoForm MCP work on the free plan?

Yes. NeetoForm offers all of its features free, including the MCP server and the CLI.

Bereit, ein Formular zu erstellen?

Lass uns jetzt anfangen.