JotForm API - Python Client & MCP Server

by The-AI-Workshops

219 downloads Not rated yet GPL-2.0 license
GitHub

About

MCP Server for interacting with the Jotform API, generated from the original Python client.

Details

License
GPL-2.0 license

Explore

- Exposes 50+ tools for JotForm operations.
- Supports user, form, submission, folder, and report management.
- Custom search_submissions_by_date tool for date‑based searches.
- SSE and stdio transport options.
- Runs locally, via Smithery, or in Docker.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name JotForm API - Python Client & MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Manual Setup and Running (for Development or Non-Smithery Use)

1. Clone the Repository:

git clone https://github.com/The-AI-Workshops/jotform-mcp-server.git
cd jotform-mcp-server

2. Create Virtual Environment (Recommended):

python3 -m venv venv
source venv/bin/activate  # On Windows use venv\Scripts\activate

3. Install Dependencies:

Choose one of the following methods:

Using uv (Recommended):
If you don't have uv, install it: pip install uv
Install dependencies using the lock file for reproducibility:

        uv pip sync uv.lock

Using pip:
Install dependencies using the requirements.txt file:

        pip install -r requirements.txt

4. Configure API Key:

Rename the .env.example file to .env.
Open the .env file and replace "YOUR_JOTFORM_API_KEY_HERE" with your actual Jotform API key.
You can also adjust other settings like MCP_PORT or JOTFORM_BASE_URL if needed.

```dotenv

get_user

Get user account details.

get_usage

Get monthly usage stats (submissions, uploads).

get_submissions

Get a list of submissions for the account (paginated, filterable).

get_subusers

Get a list of sub users.

get_settings

Get user's settings (timezone, language).

update_settings

Update user's settings.

get_history

Get user activity log.

register_user

Register a new user (use with caution).

login_user

Login user (use with caution).

logout_user

Logout user.

get_forms

Get a list of forms for the account (paginated, filterable).

get_form

Get basic information about a specific form.

get_form_questions

Get a list of all questions on a form.

get_form_question

Get details about a specific question.

create_form

Create a new form.

create_forms

Create multiple new forms (PUT).

delete_form

Delete a specific form.

clone_form

Clone a single form.

delete_form_question

Delete a single form question.

create_form_question

Add a new question to a form.

create_form_questions

Add multiple new questions to a form (PUT).

edit_form_question

Add or edit properties of a single question.

get_form_properties

Get all properties of a form.

get_form_property

Get a specific property of a form.

set_form_properties

Add or edit properties of a form (POST).

set_multiple_form_properties

Add or edit multiple properties of a form (PUT).

get_form_files

List files uploaded to a form.

get_form_webhooks

Get list of webhooks for a form.

create_form_webhook

Add a new webhook to a form.

delete_form_webhook

Delete a specific webhook from a form.

get_form_reports

Get all reports associated with a form.

create_report

Create a new report for a form.

get_form_submissions

List submissions for a specific form (paginated, filterable).

create_form_submission

Submit data to a specific form.

create_form_submissions

Submit multiple data entries to a form (PUT).

get_submission

Get data for a specific submission.

delete_submission

Delete a single submission.

edit_submission

Edit a single submission.

get_folders

Get a list of form folders.

get_folder

Get details of a specific folder.

create_folder

Create a new folder.

delete_folder

Delete a specific folder and its subfolders.

update_folder

Update properties of a specific folder.

add_forms_to_folder

Add multiple forms to a folder.

add_form_to_folder

Add a specific form to a folder.

get_reports

List all reports for the account.

get_report

Get details of a specific report.

delete_report

Delete a specific report.

get_plan

Get details of a specific Jotform plan (e.g., FREE, PREMIUM).

form_ids

(Optional `List[str]`): List of form IDs. Defaults to all enabled forms.

start_date

(Optional `str`): Start date "YYYY-MM-DD" (inclusive). Use with `end_date`.

end_date

(Optional `str`): End date "YYYY-MM-DD" (inclusive). Use with `start_date`.

period

(Optional `str`): Relative period ("today", "last_7_days", "last_30_days", "current_month", "last_month", "current_accounting_month", "last_accounting_month"). Cannot be used with specific dates. Uses `ACCOUNTING_MONTH_START_DAY` from `.env` for accounting periods.

limit_per_form

(Optional `int`): Max submissions per form (default 1000).

This server exposes the following tools, derived from the JotformAPIClient methods and custom additions. Refer to the JotForm API documentation for details on parameters and return values for the underlying API calls, unless otherwise specified for custom tools.

User Tools:
get_user: Get user account details.
get_usage: Get monthly usage stats (submissions, uploads).
get_submissions: Get a list of submissions for the account (paginated, filterable).
get_subusers: Get a list of sub users.
get_settings: Get user's settings (timezone, language).
update_settings: Update user's settings.
get_history: Get user activity log.
register_user: Register a new user (use with caution).
login_user: Login user (use with caution).
logout_user: Logout user.

Form Tools:
get_forms: Get a list of forms for the account (paginated, filterable).
get_form: Get basic information about a specific form.
get_form_questions: Get a list of all questions on a form.
get_form_question: Get details about a specific question.
create_form: Create a new form.
create_forms: Create multiple new forms (PUT).
delete_form: Delete a specific form.
clone_form: Clone a single form.
delete_form_question: Delete a single form question.
create_form_question: Add a new question to a form.
create_form_questions: Add multiple new questions to a form (PUT).
edit_form_question: Add or edit properties of a single question.
get_form_properties: Get all properties of a form.
get_form_property: Get a specific property of a form.
set_form_properties: Add or edit properties of a form (POST).
set_multiple_form_properties: Add or edit multiple properties of a form (PUT).
get_form_files: List files uploaded to a form.
get_form_webhooks: Get list of webhooks for a form.
create_form_webhook: Add a new webhook to a form.
delete_form_webhook: Delete a specific webhook from a form.
get_form_reports: Get all reports associated with a form.
create_report: Create a new report for a form.

Submission Tools:
get_form_submissions: List submissions for a specific form (paginated, filterable).
create_form_submission: Submit data to a specific form.
create_form_submissions: Submit multiple data entries to a form (PUT).
get_submission: Get data for a specific submission.
delete_submission: Delete a single submission.
edit_submission: Edit a single submission.

Folder Tools:
get_folders: Get a list of form folders.
get_folder: Get details of a specific folder.
create_folder: Create a new folder.
delete_folder: Delete a specific folder and its subfolders.
update_folder: Update properties of a specific folder.
add_forms_to_folder: Add multiple forms to a folder.
add_form_to_folder: Add a specific form to a folder.

Report Tools:
get_reports: List all reports for the account.
get_report: Get details of a specific report.
delete_report: Delete a specific report.
(Note: create_report is listed under Form Tools)

System Tools:
get_plan: Get details of a specific Jotform plan (e.g., FREE, PREMIUM).

Custom Tools:
search_submissions_by_date:
Searches submissions across specified forms (or all enabled forms if none specified) based on a date range or a predefined period.
Arguments:
form_ids (Optional List[str]): List of form IDs. Defaults to all enabled forms.
start_date (Optional str): Start date "YYYY-MM-DD" (inclusive). Use with end_date.
end_date (Optional str): End date "YYYY-MM-DD" (inclusive). Use with start_date.
period (Optional str): Relative period ("today", "last_7_days", "last_30_days", "current_month", "last_month", "current_accounting_month", "last_accounting_month"). Cannot be used with specific dates. Uses ACCOUNTING_MONTH_START_DAY from .env for accounting periods.
limit_per_form (Optional int): Max submissions per form (default 1000).
* Returns: JSON string with a list of submissions and search details.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "jotform api - python client & mcp server": {
            "jotform-mcp-server": {
                "command": "python3",
                "args": [
                    "-m",
                    "venv",
                    "venv"
                ]
            }
        }
    }
}

McpServers

{
    "jotform-mcp-server": {
        "command": "python3",
        "args": [
            "-m",
            "venv",
            "venv"
        ]
    }
}

This repository contains the Python client for the JotForm API and an MCP (Model Context Protocol) server built using this client. The MCP server allows interaction with the Jotform API through standardized tools.

Installation via Smithery (Recommended for MCP Clients)

This server is available on Smithery. You can easily install and configure it within compatible MCP clients (like Windsurf):

1. Search: In your MCP client's server management interface, search for servers.
2. Find: Look for JotForm API Server or use the ID @The-AI-Workshops/jotform-mcp-server.
3. Install: Select the server and click "Install".
4. Configure: After installation, you will be prompted to configure the required environment variables. The most important one is:
JOTFORM_API_KEY: Your Jotform API key.

Smithery handles the underlying setup (Docker or Python environment) based on the server's configuration.

Authentication

JotForm API requires an API key for all user-related calls. You can create your API Keys at the API section of your JotForm account settings. This key is needed to run the MCP server, whether installed manually or via Smithery.

Manual Setup and Running (for Development or Non-Smithery Use)

1. Clone the Repository:

git clone https://github.com/The-AI-Workshops/jotform-mcp-server.git
cd jotform-mcp-server

2. Create Virtual Environment (Recommended):

python3 -m venv venv
source venv/bin/activate  # On Windows use venv\Scripts\activate

3. Install Dependencies:

Choose one of the following methods:

Using uv (Recommended):
If you don't have uv, install it: pip install uv
Install dependencies using the lock file for reproducibility:

        uv pip sync uv.lock

Using pip:
Install dependencies using the requirements.txt file:

        pip install -r requirements.txt

4. Configure API Key:

Rename the .env.example file to .env.
Open the .env file and replace "YOUR_JOTFORM_API_KEY_HERE" with your actual Jotform API key.

  • You can also adjust other settings like MCP_PORT or JOTFORM_BASE_URL if needed.


```dotenv

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.