Ninox integration
Ninox is a low-code database and app builder. Read and write the records of a Ninox 4 workspace (list with filters and sorting, get one, create, update, upsert by a unique field, delete, import a CSV file, read changes since a timestamp, attach a file to a record), and manage its structure: modules, tables, fields (one by one or in batch), views, reports (render a report as a PDF), and global function scripts; read pages and components and a module's full definition; run a Ninox script against a record. Not included: creating or editing pages and components (UI layout), applying a whole module definition, the two-step presigned file upload and the XLSX view export. Authentication is a Workspace API key, created under Workspace Integration in the Ninox app and scoped to one workspace, sent as a Bearer token.
Say what should happen.
The workflow builds itself.
What you can do with Ninox
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Field, 8 operations
create_fieldCreate fieldPOSTCreates a new field in a table. **Choice / multi fields:** provide an `options` array with initial values.create_fields_batchCreate fields batchPOSTCreates multiple fields in a table within a single transaction. If any field creation fails, all changes are rolled back.delete_fieldDelete fieldDELETEDeletes one field from a table, identified by its machine name (see delete_fields_batch for several).delete_fields_batchDelete fields batchDELETEDeletes multiple fields in a table within a single transaction. If any field deletion fails, all changes are rolled back.get_fieldGet fieldGETRetrieves detailed information about a specific field in a table. For choice/multi fields the response includes an `options` array with stable ids.list_fieldsList fieldsGETLists all fields of a table with their machine names, types and settings.update_fieldUpdate fieldPATCHUpdates an existing field in a table. **choice / multi fields:** `options` replaces the full option list.update_fields_batchUpdate fields batchPATCHUpdates multiple fields in a table within a single transaction. If any field update fails, all changes are rolled back.
Record, 7 operations
create_recordsCreate recordsPOSTCreates records in a table (max 6 MB payload). Each record is an object of field name to value. Returns the created record ids.delete_recordsDelete recordsDELETEDeletes existing records from a table in a single transaction. If any record id is invalid, does not exist, or deletion fails, all changes are rolled back.get_recordGet recordGETRetrieves a single record by its id. The record id is not a filterable field, so this is the only way to fetch a known record by id.import_records_csvImport records csvPOSTImports records from a CSV file into an existing table (max 50 MB), in append, update or upsert mode, with optional column-to-field mappings.list_recordsList recordsGETLists records of a table, up to 100 per page (limit, offset), with optional filter (a JSON object of field name to value), sort and field selection. Choice values come back as option ids.update_recordsUpdate recordsPATCHUpdates existing records in a table (max. 6MB payload size). Each record must include an `id` field referencing an existing record.upsert_recordsUpsert recordsPOSTCreates or updates records in a table, matched by a single explicit field (max. 6MB payload size). The match field must be marked `unique: true` on the table.
Function, 5 operations
create_global_functionCreate global functionPOSTCreates a script of global function definitions, callable from every script of the module.delete_global_functionDelete global functionDELETEDeletes a global function script. Scripts after it that call its functions are not checked again. Needs records:writeget_global_functionGet global functionGETRetrieves a global function script of a module by name, with its code.list_global_functionsList global functionsGETLists the module's global function scripts, in the name order they compile inupdate_global_functionUpdate global functionPATCHUpdates or renames a global function script. The result is compiled again with the functions of the scripts before it by name.
Module, 5 operations
create_moduleCreate modulePOSTCreates a new module in the workspace, identified by its machine name.delete_moduleDelete moduleDELETEDeletes a module from the workspace, identified by its machine name as returned by list_modules.get_moduleGet moduleGETRetrieves detailed information about a specific module, including its tableslist_modulesList modulesGETRetrieves all modules available in a workspaceupdate_moduleUpdate modulePATCHUpdates a module (name, labels, icon, visibility, open roles or open script). Omitted properties are left unchanged.
Table, 5 operations
create_tableCreate tablePOSTCreates a new table in a module, identified by its machine name, with localized labels and optional permissions and triggers.delete_tableDelete tableDELETEDeletes a table from a module, identified by its machine name as returned by list_tables.get_tableGet tableGETRetrieves detailed information about a specific table, including its fieldslist_tablesList tablesGETLists all tables of a module with their machine names, for the record and field tools.update_tableUpdate tablePATCHUpdates an existing table in a module. Omitted properties are left unchanged.
View, 5 operations
create_viewCreate viewPOSTCreates a view in a table. Every view type can be created, with field references by name.delete_viewDelete viewDELETEDeletes a view of a table, identified by its id as returned by list_views.get_viewGet viewGETRetrieves one view of a table by id, with its type and configuration.list_viewsList viewsGETLists all views of a table (table, list, calendar, chart, kanban and other types) with their ids.update_viewUpdate viewPATCHUpdates a view. Nested configs (chartConfig, ganttConfig, pivot) are merged onto the stored ones, so a PATCH can send just the settings it changes.
Report, 4 operations
create_reportCreate reportPOSTCreates a report (print layout) for a table. Omit `objects` to auto-generate a layout from the table's current fields, matching the report designer's automatic layout option.get_reportGet reportGETRetrieves a report (print layout) by id, with its page settings and layout objects.list_reportsList reportsGETLists all reports (print layouts) of a table with their ids, for print_report.print_reportPrint reportPOSTRenders a report for one record (or a merged run across several) as a PDF and returns a presigned download URL for it.
Change, 2 operations
list_record_changesList record changesGETRetrieves rows created, updated, or deleted since a given timestamp, for incremental sync. Only available for tables with history tracking enabled; returns 400 otherwise.list_schema_changesList schema changesGETRetrieves the log of changes to modules, tables, and fields since a given timestamp, for incremental sync.
Component, 2 operations
delete_componentDelete componentDELETEDeletes a page or component, and every component nested under itget_componentGet componentGETRetrieves a page or component of a module by id, with its type and settings.
Module definition, 1 operation
get_module_definitionGet module definitionGETReturns every object of a module as one definition that the PUT route applies, in this or another workspace. Custom roles are referenced by name as @role:<name>.
Module label, 1 operation
update_module_labelsUpdate module labelsPATCHUpdates labels across a module, its tables, their fields, and choice/multi option labels in a single transaction.
Record file, 1 operation
upload_record_fileUpload record filePOSTUploads a file and attaches it to a record in a single multipart/form-data request, with the file in the `file` form field, like the Ninox 3 files endpoint.
Script, 1 operation
execute_scriptExecute scriptPOSTRuns a Ninox script expression against a record, with writes and trigger cascades enabled (the API key needs the records:write grant). do as database is confined to the module named.
Workspace, 1 operation
get_workspaceGet workspaceGETRetrieves comprehensive details about a workspace, including all its modules
Use Ninox from Claude Code, Cursor or Codex
Connect Ninox in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Ninox operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Ninox
- Create your workspace
Sign up free. Nothing to install.
- Connect Ninox once
Add your Ninox connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Ninox integration FAQ
What can you do with the Ninox integration?
LiveContext exposes 48 operations on Ninox, covering field, record, function and module.
