get_userLABSCO SUMMARY
Full API coverage, plus one search tool the API does not give you.
Most of the tools map one-to-one onto Jotform endpoints, which makes the server predictable but not clever. The exception is search_submissions_by_date, which sweeps several forms at once and understands relative periods including an accounting month whose start day you set yourself — that is the call worth having when someone asks what came in last month.
What it is
A Python server that exposes the Jotform API as tools: forms and their questions, submissions, folders, reports, webhooks and account settings. Every public method of its JotformAPIClient becomes a tool, so the surface is close to the API itself rather than a curated subset.
What you get
- Forms:
get_forms,get_form,create_form,clone_form,delete_form, andget_form_properties/set_form_propertiesfor the settings behind them - Questions:
get_form_questions,create_form_question,edit_form_question,delete_form_question, plus the bulkcreate_form_questions - Submissions:
get_form_submissionslists them for one form,get_submissionreads one,edit_submissionanddelete_submissionchange them,create_form_submissionfiles a new one search_submissions_by_datesearches across forms bystart_date/end_dateor by a namedperiodsuch as last_7_days or current_accounting_month, withlimit_per_formdefaulting to 1000- Folders and reports:
get_folders,create_folder,add_form_to_folder,get_reports,create_report - Webhooks:
get_form_webhooks,create_form_webhook,delete_form_webhook - Account:
get_user,get_usagefor monthly submission and upload counts,get_historyfor the activity log,get_planfor the plan details
Requirements
A Jotform API key, created in the API section of your account settings and passed as JOTFORM_API_KEY. The repository is jotform-mcp-server (version 0.1.0), run as python jotform_mcp_server.py after uv pip sync uv.lock or pip install -r requirements.txt, or from the provided Dockerfile. It speaks stdio or SSE — MCP_TRANSPORT picks which, and the SSE server listens on port 8067 by default.
Setup effort
Add the configuration to your client
USE CASES
Pulling last month's submissions across every form
Search by a named period instead of paging each form separately.
Building a form from a description
Create the form, then add its questions in one batch rather than through the builder UI.
Fixing a bad submission
Read the entry, correct the field, and write it back.
Wiring a form into something downstream
Check which webhooks a form already has, then add the one you need.
Checking where you are against your plan
Read this month's submission and upload counts alongside the plan limits.
50 tools
Listed in project docs. Your client may show a different list.
get_usageget_submissionsget_subusersget_settingsupdate_settingsget_historyregister_userlogin_userlogout_userget_formsget_formget_form_questionsget_form_questioncreate_formcreate_formsdelete_formclone_formdelete_form_questioncreate_form_questioncreate_form_questionsedit_form_questionget_form_propertiesget_form_propertyset_form_propertiesset_multiple_form_propertiesget_form_filesget_form_webhookscreate_form_webhookdelete_form_webhookget_form_reportscreate_reportget_form_submissionscreate_form_submissioncreate_form_submissionsget_submissiondelete_submissionedit_submissionget_foldersget_foldercreate_folderdelete_folderupdate_folderadd_forms_to_folderadd_form_to_folderget_reportsget_reportdelete_reportget_plansearch_submissions_by_dateBEFORE YOU INSTALL
What to know first
Tools you get
50 tools named in the project's documentation.
Requires
- cmd on PATH
- JOTFORM_API_KEY in your environment
Where it runs
All 6 documented setups run the server on your machine.
INSTALLATION
Connect your client
MCP Clients
Claude Desktop — Python
{
"mcpServers": {
"jotform": {
"command": "python",
"args": [
"<YOUR_PATH_TO_JOTFORM_MCP_SERVER>/jotform_mcp_server.py"
],
"env": {
"JOTFORM_API_KEY": "<YOUR_JOTFORM_API_KEY>"
}
}
}
}Claude Desktop — venv
{
"mcpServers": {
"jotform": {
"command": "<YOUR_PATH_TO_JOTFORM_MCP_SERVER>/venv/bin/python",
"args": [
"<YOUR_PATH_TO_JOTFORM_MCP_SERVER>/jotform_mcp_server.py"
],
"env": {
"JOTFORM_API_KEY": "<YOUR_JOTFORM_API_KEY>"
}
}
}
}Claude Desktop — uv
{
"mcpServers": {
"jotform": {
"command": "uv",
"args": [
"--directory",
"<YOUR_PATH_TO_JOTFORM_MCP_SERVER>",
"run",
"jotform_mcp_server.py"
],
"env": {
"JOTFORM_API_KEY": "<YOUR_JOTFORM_API_KEY>"
}
}
}
}Any MCP client — SSE
{
"mcpServers": {
"jotform": {
"type": "sse",
"url": "http://localhost:8067/sse"
}
}
}Windsurf — SSE
{
"mcpServers": {
"jotform": {
"serverUrl": "http://localhost:8067/sse"
}
}
}Any MCP client — Docker
{
"mcpServers": {
"jotform": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"TRANSPORT=stdio",
"-e",
"JOTFORM_API_KEY",
"-e",
"JOTFORM_BASE_URL",
"-e",
"JOTFORM_OUTPUT_TYPE",
"-e",
"JOTFORM_DEBUG_MODE",
"jotform-mcp-server:latest"
],
"env": {
"TRANSPORT": "stdio",
"JOTFORM_API_KEY": "<YOUR_JOTFORM_API_KEY>",
"JOTFORM_BASE_URL": "https://api.jotform.com/",
"JOTFORM_OUTPUT_TYPE": "json",
"JOTFORM_DEBUG_MODE": "False"
}
}
}
}