Connects Claude directly to the Clappia no-code platform for building internal tools and workflow apps. You get full programmatic control over apps, forms, and submissions. Create new apps with custom sections and fields, add validation rules and conditional logic, submit and edit form data, update submission status and owners, and pull analytics with aggregations. Useful if you're managing Clappia workspaces at scale or need to automate form creation and data entry flows. Requires a Clappia API key and workplace ID. The server exposes about a dozen tools covering the full CRUD lifecycle, from defining new fields with responsive layouts to querying submissions with complex filters.
A Python-based MCP server that provides a comprehensive interface for interacting with the Clappia platform. This server enables programmatic management of Clappia applications, forms, submissions, and more.
Clappia is a no-code platform that allows businesses, operations teams, and non-developers to create custom apps—like inspection forms, approval workflows, field data collection tools, internal dashboards, and more—without writing a single line of code. It's used across industries for automating manual processes, digitizing paperwork, and improving operational efficiency. Click here to learn more.
App Management
Create new Clappia apps with customizable sections and fields
Retrieve detailed app definitions with field metadata
Submission Management
Field Management
Set up Clappia API Access:
Set up Claude for Desktop:
claude_desktop_config.json:
{
"mcpServers": {
"clappia-mcp": {
"command": "uv",
"args": [
"--directory",
"/Users/<YOUR_DIECTORY>/Desktop/clappia-mcp",
"run",
"clappia-mcp.py"
],
"env": {
"CLAPPIA_API_KEY": "<ENTER_YOUR_WORKPLACE_API_KEY_HERE>",
"CLAPPIA_WORKPLACE_ID": "<ENTER_YOUR_WORKPLACE_ID_HERE>"
}
}
}
}
Clone the repository:
git clone https://github.com/clappia-dev/clappia-mcp.git
cd clappia-mcp
Set up Python Environment:
# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies
uv sync
clappia-mcp/
├── clappia-mcp.py # Main MCP server implementation
├── tools/ # Core functionality modules
│ ├── add_field.py # Field addition functionality
│ ├── create_app.py # App creation functionality
│ ├── create_submission.py # Submission creation
│ ├── edit_submission.py # Submission editing
│ ├── get_definition.py # App definition retrieval
│ ├── get_submissions.py # Submission retrieval
│ ├── get_submissions_aggregation.py # Analytics functionality
│ ├── update_field.py # Field update functionality
│ ├── update_submission_owners.py # Owner management
│ └── update_submission_status.py # Status management
├── pyproject.toml # Project metadata and dependencies
├── uv.lock # Dependency lock file (if using uv)
└── .env # Environment variables
Server Not Starting:
API Connection Issues:
claude_desktop_config.json fileTool Execution Failures:
Create a New Application
from tools.create_app import create_app, Section, Field
result = create_app(
app_name="Employee Survey",
requesting_user_email_address="user@company.com",
sections=[
Section(
sectionName="Personal Information",
fields=[
Field(
fieldType="singleLineText",
label="Full Name",
required=True
)
]
)
]
)
Add a Field to an Application
from tools.add_field import add_field_to_app
result = add_field_to_app(
app_id="APP123",
requesting_user_email_address="user@company.com",
section_index=0,
field_index=1,
field_type="singleLineText",
label="Employee ID",
required=True,
validation="number",
block_width_percentage_desktop=50,
block_width_percentage_mobile=100
)
Update a Field
from tools.update_field import update_field_in_app
result = update_field_in_app(
app_id="APP123",
requesting_user_email_address="user@company.com",
field_name="employeeName",
label="Full Employee Name",
required=True,
validation="none",
display_condition="status == 'active'"
)
Create a Submission
from tools.create_submission import create_app_submission
result = create_app_submission(
app_id="APP123",
data={"employeeName": "John Doe", "employeeId": "12345"},
email="user@company.com"
)
Get Submissions with Filtering
from tools.get_submissions import get_app_submissions, Filters, QueryGroup, Query, Condition
filters = Filters(queries=[
QueryGroup(queries=[
Query(
conditions=[
Condition(
operator="EQ",
filterKeyType="STANDARD",
key="status",
value="active"
)
],
operator="AND"
)
])
])
result = get_app_submissions(
app_id="APP123",
requesting_user_email_address="user@company.com",
page_size=10,
filters=filters
)
Text Fields
singleLineText: Single line text inputmultiLineText: Multi-line text inputrichTextEditor: Rich text editor with formattingSelector Fields
singleSelector: Single choice selectionmultiSelector: Multiple choice selectiondropDown: Dropdown selectionDate/Time Fields
dateSelector: Date selectiontimeSelector: Time selectiondateTime: Combined date and time selectionFile Fields
file: File upload with configurable typescamera: Direct camera capturesignature: Digital signature captureAdvanced Fields
calculationsAndLogic: Formula-based calculationsgpsLocation: Location trackingcodeScanner: Barcode/QR code scanningnfcReader: NFC tag readingliveTracking: Real-time location trackingaddress: Address input with validationnone: No validationnumber: Numeric validationemail: Email format validationurl: URL format validationcustom: Custom validation rulesLayout
block_width_percentage_desktop: Width on desktop (25, 50, 75, 100)block_width_percentage_mobile: Width on mobile (50, 100)number_of_cols: Number of columns for selector fieldsBehavior
required: Whether field is mandatoryis_editable: Whether field can be editedhidden: Whether field is hiddenretain_values: Whether to retain values when hiddenConditions
display_condition: Condition for field visibilityeditability_condition: Condition for field editabilityFile Settings
allowed_file_types: List of allowed file typesmax_file_allowed: Maximum files allowed (1-10)image_quality: Image quality (low, medium, high)file_name_prefix: Prefix for uploaded filesThe server implements comprehensive error handling for:
All errors are logged with appropriate context for debugging.
For support, please:
This project is licensed under the MIT License - see the LICENSE file for details.
The MCP server integrates with Clappia's public API to provide the following capabilities:
Authentication:
Endpoints:
API Documentation:
API Versioning:
CLAPPIA_API_KEY*secretClappia API key for authentication
io.github.infoinlet-marketplace/mcp-observability
betterdb-inc/monitor
com.mcparmory/datadog
thotischner/observability-mcp
io.github.tantiope/datadog-mcp
io.github.us-all/datadog